基于51单片机的函数发生器设计.docx
- 文档编号:30608885
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:62
- 大小:540.79KB
基于51单片机的函数发生器设计.docx
《基于51单片机的函数发生器设计.docx》由会员分享,可在线阅读,更多相关《基于51单片机的函数发生器设计.docx(62页珍藏版)》请在冰豆网上搜索。
基于51单片机的函数发生器设计
课程设计报告
课程名称51单片机
设计题目基于51单片机的函数发生器的设计与制作
系部名称机械电子工程学院
专业班级2013级电子信息工程
(2)班
姓名段绍敏、徐敏、李观生
学号134520、13452040、134520
成绩
指导教师胡子健
2016年9月
摘要
函数发生器主要作为实验用信号源,是现今各种电子电路实验设计应用中必不可少的仪器设备之一。
本次设计的主要目的就是为了学习基于单片机的函数发生器的工作原理,设计出一个低频的函数发生器。
从事本次设计不仅可以让我对函数发生器的原理有更深的了解,而且也对单片机的知识有更深的掌握。
单片机有很多种类,而且制作函数发生器的方案繁多,本次设计是以AT89C51单片机为核心,选用DAC0832为数模转换芯片,并辅以必要的模拟电路,设计出了一个基于AT89C51单片机的函数信号发生器。
其设计内容主要包括单片机最小系统的设计、DA转换模块的设计、键盘控制模块的设计及LCD显示模块的设计。
其中DA转换模块包括2块DAC0832芯片和OP07运放电路,第一块DA芯片的输出作为第二块DA芯片的参考电压,而第一块DA芯片的2.5V参考电压由MC1403芯片的输出来提供;键盘控制模块采用3个按键来选择波形类型及调节频率、幅值;显示模块则采用LCD1602来显示波形类型、频率及幅值;最终将设计好的函数发生器的输出接上示波器,在示波器上显示实际输出的波形。
本设计最终能达到预期的效果,能实现电压步进0.1V,方波能够任意调节占空比以及在LCD1602上显示波形类型、电压和频率,并且可以通过示波器来观察其输出的波形。
【关键词】AT89C51单片机DAC0832LCD1602按键
前言
本次设计的主要是学习基于单片机的函数发生器的工作原理,制作出一个低频的函数信号发生器。
在科学研究、工程教育及生产实践中,如工业过程控制、教学实验、机械振动试验、动态分析、材料试验、生物医学等领域,常常需要用到低频信号发生器。
函数发生器作为一种通用的电子仪器,在生产、科研、测控、通讯等领域都得到了广泛的应用。
但市面上能看到的此类仪器在频率精度、带宽、波形种类及程控方面都已不能满足许多方面实际应用的需求。
我们长期使用的信号发生器,大部分是由模拟电路构成的,这类仪器作为信号源,频率可达上百MHz,在高频范围内其频率稳定性高、可调性好。
但用于低频信号输出时,它所需要的RC值很大,参数准确度难以保证。
而且其体积大,损耗也大。
前人研制了采用8031单片机及程序存储器构成的最小系统组成的数字式低频信号发生器,它在低频范围内性能好,但是体积较大,价格较贵。
随着大规模集成电路技术的发展,集成度不断提高,使得微型机的速度和性能大为提高,可靠性增加,成本降低。
MCS-51就是将具有存储程序、处理数据以及与外设交换信息的功能电路集成在一块芯片中,并符合一定系统结构而构成的单片机。
单片机有很多种类,而且制作函数发生器的方案繁多,本次设计是以AT89C51单片机为核心,选用DAC0832为数模转换芯片,并辅以必要的模拟电路,设计出了一个基于AT89C51单片机的函数信号发生器。
其设计内容主要包括单片机最小系统的设计、DA转换模块的设计、键盘控制模块的设计及LCD显示模块的设计。
其中DA转换模块包括2块DAC0832芯片和OP07运放电路,第一块DA芯片的输出作为第二块DA芯片的参考电压,而第一块DA芯片的2.5V参考电压由MC1403芯片的输出来提供;键盘控制模块采用3个按键来选择波形类型及调节频率、幅值;显示模块则采用LCD1602来显示波形类型、频率及幅值;最终将设计好的函数发生器的输出接上示波器,在示波器上显示实际输出的波形。
本设计最终能达到预期的效果,能实现电压步进0.1V,方波能够任意调节占空比以及在LCD1602上显示波形类型、电压和频率,并且可以通过示波器来观察其输出的波形。
第一章单片机概述
单片机的全称是单片微型计算机(SingleChipMicrocomputer),国际上统称为微控制器(MicroControllerUnit,MCU)。
它把组成微型计算机的各功能部件(中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、可编程存储器(EPROM)、并行及串行输入/输出(I/O)接口电路、定时器/计数器、中断控制器等)集成在一块半导体芯片上,构成一个完整的微型计算机。
在进行一个具体的单片机应用系统开发之前,需要对单片机的硬件资源配置和体系结构有较深入的了解。
本章将对AT89C51单片机的基础内容作较详细的讲解。
第一节单片机的发展历史及趋势
单片机出现的历史并不长,但发展十分迅猛。
它的产生与发展和微处理器的产生和发展大体相同,自1971年Intel公司首先推出4位微处理器以来,它的发展到目前为止大致可分为4个阶段:
一、单片机发展的初级阶段(20世纪70年代初~70年代中期)。
1971年11月Intel公司首先设计出集成度为2000只晶体管/片的4位微处理器Intel4004,并配有RAM、ROM和移位寄存器,构成了第一台MCS-4微处理器。
随后又设计出了8位微处理器Intel8008,在此期间Fairchild公司也设计出了8位微处理器F8。
这些微处理器虽然还不是真正的单片机,但从此拉开了研制单片机的序幕。
二、低性能单片机阶段(20世纪70年代中期~80年代初期)。
以1976年Intel公司推出的MCS-48系列为代表,采用将8位CPU、8位并行I/O端口、8位定时器/计数器、RAM和ROM等集成在一块半导体芯片上的单片结构,虽然其寻址范围有限,也没有串行I/O端口,RAM、ROM容量小,中断系统也较简单,但功能可满足一般工业控制和智能化仪表等的需要。
这种采用将CPU与计算机外围电路集成到一块芯片上的技术,标志着单片机的诞生。
从而导致了计算机领域中开始出现两大分支:
通用计算机系统和嵌入式系统。
三、高性能单片机阶段(20世纪80年代初期~90年代初期)。
这一阶段推出的8位单片机普遍带有串行口,有多级中断处理系统,多个16位定时器/计数器。
片内RAM、ROM的容量加大,寻址范围可达64KB,个别片内还带有A/D转换接口。
这一阶段中最具典型性的产品为1980年Intel公司推出的MCS-51系列单片机,其他代表产品有Motorola公司的6801和Zilog公司的Z8等。
这类单片机的运算速度大幅度提高,增加了外围电路功能,强化了智能控制的特征,拓宽了单片机的应用范围,使之能用于智能终端、局域网络的接口等。
因而,它是目前国内外单片机产品的主流,各制造公司还在不断的改进和发展它。
四、8位单片机巩固发展阶段及16位、32位单片机不断推出阶段(20世纪90年代至今)。
此阶段单片机在集成度、功能、速度、可靠性、应用领域等方面向更高水平发展。
如:
CPU的位数有8位、16位、32位,而结构上采用双CPU结构或内部流水线结构,以提高处理能力和运算速度;时钟频率高达20MHz甚至更高,使指令执行速度相对加快;提高新型的串口总线结构,为系统的扩展和配置打下了良好的基础;增加新的特殊功能部件,如监视定时器WDT、DMA传输、PWM输出、可编程计数阵列PCA、调制解调器、通信控制器、浮点运算单元等;半导体制造工艺的不断进步,使芯片向高集成度、低功耗方向发展。
此阶段单片机内集成的功能越来越强大,并朝着片上系统方向发展,单片机在大量数据的实时处理、高级通信系统、数字信号处理、复杂工业过程控制、高级机器人以及局域网等各方面得到大量应用。
随着技术的进步,早期的8位中、低档单片机逐渐被淘汰,但8位单片机并没有消失,尤其是51系列单片机不仅没有消失,反而还呈现快速发展的趋势。
目前,单片机正朝着高性能和多品种方向发展,将进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方向发展。
第二节AT89C51单片机结构简介
一、AT89C51的基本特性
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51单片机有40个管脚,分成两排,每一排各有20个脚,其中左下角标有箭头的为第1脚,然后按逆时针方向依次为第2脚、第3脚……第40脚。
在40个管脚中,其中有32个脚可用于各种控制,比如控制小灯的亮与灭、控制电机的正转与反转、控制电梯的升与降等,这32个脚叫做单片机的“端口”,在单片机技术中,每个端口都有一个特定的名字,比如第一脚的那个端口叫做“P1.0”。
AT89C51单片机的主要特性:
·与MCS-51兼容
·4K字节可编程闪烁存储器
寿命:
1000写/擦循环
数据保留时间:
10年
·全静态工作:
0Hz-24Hz
·三级程序存储器锁定
·128*8位内部RAM
·32可编程I/O线
·两个16位定时器/计数器
·5个中断源
·可编程串行通道
·低功耗的闲置和掉电模式
·片内振荡器和时钟电路
二、AT89C51单片机的外部引脚介绍
AT89C51单片机的外部引脚的排列及名称如图1.1所示:
图1.1所示管脚描述如下:
·VCC:
提供掉电空闲正常工作电压。
·GND:
接地。
·P0口:
P0口是开漏双向口,可以写为1使其状态为悬浮用作高阻输入。
P0也可以在访问外部程序存储器时作地址的低字节,在访问外部数据存储器时作数据总线,此时通过内部强上拉输出1。
·P1口:
P1口是带内部上拉的双向I/O口,向P1口写入1时,P1口被内部上拉为高电平,可用作输入口。
当作为输入脚时,被外部拉低的P1口会因为内部上拉而输出电流。
其中P1.0用作定时/计数器2的外部计数输入/时钟输出;P1.1用作定时/计数器2重装载/捕捉/方向控制。
图1.1AT89C51单片机的外部引脚图
·P2口:
P2口是带内部上拉的双向I/O口,向P2口写入1时,P2口被内部上拉为高电平,可用作输入口。
当作为输入脚时,被外部拉低的P2口会因为内部上拉而输出电流。
在访问外部程序存储器和外部数据时,分别作为地址高位字节和16位地址(MOVX@DPTR),此时通过内部强上拉传送1。
当使用8位寻址方式(MOV@Ri)访问外部数据存储器时,P2口发送P2特殊功能寄存器的内容。
·P3口:
P3口是带内部上拉的双向I/O口。
向P3口写入1时,P3口被内部上拉为高电平,可用作输入口。
当作为输入脚时被外部拉低的P3口会因为内部上拉而输出电流,P3口还具有以下特殊功能:
RxD(P3.0):
串行输入口
TxD(P3.1):
串行输出口
INT0(P3.2):
外部中断0
INT1(P3.3):
外部中断
T0(P3.4):
定时器0外部输入
T1(P3.5):
定时器1外部输入
WR(P3.6):
外部数据存储器写信号
RD(P3.7):
外部数据存储器读信号
·RST:
当晶振在运行中只要复位管脚出现2个机器周期高电平即可复位。
内部有扩散电阻连接到Vss,仅需要外接一个电容到Vcc即可实现上电复位。
·ALE:
地址锁存使能,在访问外部存储器时,输出脉冲锁存地址的低字节,在正常情况下,ALE输出信号恒定为1/6振荡频率。
并可用作外部时钟或定时,注意每次访问外部数据时一个ALE脉冲将被忽略。
ALE可以通过置位SFR的auxlilary.0禁止,置位后ALE只能在执行MOVX指令时被激活。
·PSEN:
当执行外部程序存储器代码时,PSEN每个机器周期被激活两次.在访问外部数据存储器时PSEN无效,访问内部程序存储器时PSEN无效。
·EA/VPP:
在访问整个外部程序存储器时EA必须外部置低,如果EA为高时将执行内部程序,除非程序计数器包含大于片内FLASH的地址。
该引脚在对FLASH编程时提供5V/12V编程电压(Vpp),如果保密位1已编程EA在复位时由内部锁存。
·XTAL1:
反相振荡放大器输入和内部时钟发生电路输入。
·XTAL2:
来自反向振荡器的输出。
第三节本章小结
本章第一节主要介绍了单片机的发展历史及未来趋势,让我们对单片机有了一个初步的了解。
第二节比较详细地描述了AT89C51单片机的结构特性及引脚功能,为学习下一章打下了坚实的基础。
第二章方案选择
函数发生器一般是指能自动产生正弦波、方波、三角波的电压波形的电路或者仪器。
其波形产生方法有单片机控制DA技术、直接数字合成等;电路形式可以采用由运放及分离元件构成,也可以采用单片集成函数发生器。
本章将讨论采用何种方法设计函数发生器。
第一节波形生成方案
函数发生器在科学实验、电子测量、自动控制、设备检测、无线通讯等领域有着广泛的应用。
信号发生器的基本功能是可以提供符合一定技术指标要求的电信号,其波形、频率、幅值均可以调节。
实现信号发生器电路的方案很多,其特点也不同,主要有模拟电路实现方案、数字电路实现方案和模数混合实现的方案。
1、采用单片机控制技术实现的信号发生器
该方案的主要思路是采用编程的方法来产生希望得到的波形,用户将要输出的波形预先存储在半导体存储器中,在需要某种波形时将储存在存储器中的数据依次读出来,经过数模转换、滤波等处理后,输出该波形的信号。
该方案优点是输出信号的频率稳定,抗干扰能力强,实现任意波形的信号容易,可通过外置按键或键盘来设定所需要产生信号源的类型和频率,还可以通过显示器显示出波形的相关信息。
不足之处是由于单片机的处理数据的速度有限,当产生频率比较高的信号时,输出波形的质量将下降。
2、利用直接数字频率合成(DDS)集成芯片实现的信号发生器
随着大规模集成电路制作技术的发展,采用直接数字频率合成技术实现的信号产生集成芯片应用越来越广泛。
DDS集成芯片内部主要由相位累加器、波形存储器、高速D/A转换器等环节组成,在时钟脉冲的控制下,相位累加器对输入的频率控制字不断进行累加得到相应的相位码,同时相位码序列作为地址信号去寻址波形存储器进行相位码到幅度码的转换,并输出不同的幅度编码。
这一系列不同的幅度编码经过D/A转换器得到相应的阶梯电压信号,最后经过低通滤波器平滑,即可输出相应的信号。
一般集成DDS芯片内部时钟脉冲的频率固定,其相位累加器位数也不变,所以只需改变频率控制字即可实现输出信号频率的变化。
利用DDS集成电路设计的信号发生器具有输出频率高,频率稳定度高,输出频率分辨率高,易于实现全数字控制等优点,是目前设计高精度、高性能信号发生器的首选方案。
目前典型的DDS集成芯片有AD9850、AD9851、AD9852和AD9834等。
3、利用专用函数发生器集成电路实现的信号发生器
利用集成函数发生器专用芯片可以方便的实现多种波形的输出,而且外围电路简单,调试容易。
例如早期的函数发生器集成芯片有ICL8038、BA205、XR2206/2207/2209等,这些芯片的不足时输出信号的频率不高,最大仅有几百kHz,调节方式不灵活,频率和脉冲信号的占空比不能独立调节。
MAX038是美国MAXIM公司推出的新一代单片函数信号发生器,MAX038内部含有精密带隙电压参考、鉴相器和TTL同步输出,可以采用较少的外部元件构成一台高频函数发生器,也可单独用作电压控制振荡器、频率调制器、脉宽调制器、锁相环、频率合成器和FSK信号发生器,它的主要特点有:
0.1Hz~20MHz的输出频率调节范围,350:
1的扫频范围,10%~90%的占空比调节范围,可以输出正弦波、方波、矩形波、三角波、锯齿波等波形,且频率和占空比调节互不影响,是目前较为理想的函数发生器集成芯片。
4、采用分立器件组成的信号发生器
过去传统的信号发生一般采用这种方式,该方案一般采用集成运算放大器外加电阻、电容等元件,构成方波、三角波发生器,然后将三角波信号或方波信号转换成正弦波信号输出;也可以直接采用RC正弦波信号发生器产生正弦波信号。
该方案的缺点是输出信号频率较低,输出的波形质量差,输出频率调节范围小,电路复杂且体积大。
综合考虑成本、复杂程度、技术要求等各种因素,选择了单片机控制双DA技术完成频率的改变这种方案。
第二节频率改变方案
方案一:
单片机控制DA产生波形均是由查表产生,查表频率的改变可导致送至DA的数据端得点与点之间的距离变化,点与点距离的变化后,波形的周期将发生变化,也就是波形的频率改变了。
因此控制单片机的查表频率即可实现频率的步进。
其优点是能够很方便的改变频率;其缺点是对单片机查表频率的精度要求较高,且随着频率增高而提高。
方案二:
单片机控制计数器的初值。
其优点是解除了单片机对查表频率精度的要求;其缺点是当DA的输出频率高于100Hz时,每改变一个计数频率引起输出频率的增加或者减少的频率都大于100Hz。
对计数器的位数要求较高(至少需要10位),且由于受到VCO的振荡频率的影响输出频率失真度增加。
综合方案一和方案二的优缺点,本文采用了在低频时控制单片机的查表频率从而改变输出频率,在高频时改变计数器的计数初值来改变频率的方法从而较完美地实现要求。
第三节本章小结
本章主要介绍了本设计的具体方案,本设计采用双DA技术来生成波形,在频率控制方面,本设计采用控制单片机查表的频率和改变计数器的计数初值相结合的方法。
第三章系统硬件设计
硬件设计是系统设计非常重要的一部分,这关系到系统能否正常运行,每一个模块的设计都关系到整体。
本章将详细地介绍系统各个模块的设计,包括单片机最小系统、DA转换模块、液晶显示模块和按键控制模块等。
第一节各模块硬件设计
一、系统总体设计
本设计总体框图如图3.1所示:
图3.1系统总体框图
系统总体款图主要包括以下几个部分:
单片机部分:
本设计选用AT89C51单片机作为控制核心。
DA转换部分:
本设计采用2块DAC0832芯片,其中一块的输出用于另一块DA的基准
基准电压部分:
第一块DA的2.5V基准电压通过MC1403芯片来实现。
显示部分:
本设计采用LCD1602来显示波形的类型、幅值的大小、频率的大小。
键盘部分:
本设计采用3个独立按键来控制波形类型的选择、幅值大小的改变及频率大小的改变。
二、单片机最小系统设计
本设计以AT89C51单片机为核心,要使AT89C51单片机正常工作,必须满足它的基本条件,这就是最小工作系统,如图3.2所示:
图3.2AT89C51单片机最小系统
最小工作系统包括如下几部分:
电源:
单片机使用的是5V电源,其中正极接40引脚(Vcc),负极接20引脚(GND)。
晶振电路:
晶振是晶体振荡器的简称,单片机是一种时序电路,必须提供脉冲信号才能正常工作。
AT89C51单片机内部有一个用于构成振荡器的高增益反相放大器。
引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。
这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。
外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。
对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。
因此,此系统电路的晶体振荡器的值为11.0592MHz,电容值约为30μF。
在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。
单片机内部已经集成了振荡器;使用晶体振荡器,接18(XTAL2)、19(XTAL1)脚。
只要买来晶振、电容,按图接上即可。
复位电路:
单片机复位电路是指单片机的初始化操作。
单片机启运运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。
因而,复位是一个很重要的操作方式。
单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC=0000H,这表明程序从0000H地址单元开始执行。
单片机冷启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM区中的内容,21个特殊功能寄存器复位后的状态为确定值,见表3.1。
表3.1寄存器复位后状态表
特殊功能寄存器
初始状态
特殊功能寄存器
初始状态
A
B
PSW
SP
DPL
DPH
P0—P3
IP
IE
00H
00H
00H
07H
00H
00H
FFH
***00000B
0**00000B
TMOD
TCON
TH0
TL0
TH1
TL1
SBUF
SCON
PCON
00H
00H
00H
00H
00H
00H
不定
00H
0********B
按图中画法连好9脚(RST),单片机即可上电初始化。
复位电路的工作原理是:
通电时,电容两端相当于是短路,于是RST引脚上为高电平,然后电源通过电阻对电容充电,RST端电压慢慢下降,降到一定程度,即为低电平,时间不少于5ms。
复位后单片机才开始正常工作。
EA引脚:
31引脚一般接到正电源端。
三、8位DA转换器DAC0832
DAC0832芯片引脚介绍
DAC0832是双列直插式8位D/A转换器。
能完成数字量输入到模拟量(电流)输出的转换。
图3.3和图3.4分别为DAC0832的引脚图和内部结构图。
其主要参数如下:
分辨率为8位,转换时间为1μs,满量程误差为±1LSB,参考电压为(+10~-10)V,供电电源为(+5~+15)V,逻辑电平输入与TTL兼容。
从图4中可见,在DAC0832中有两级锁存器,第一级锁存器称为输入寄存器,它的允许锁存信号为ILE,第二级锁存器称为DAC寄存器,它的锁存信号也称为通道控制信号/XFER。
图3.3中,当ILE为高电平,片选信号/CS和写信号/WR1为低电平时,输入寄存器控制信号为1,这种情况下,输入寄存器的输出随输入而变化。
此后,当/WR1由低电平变高时,控制信号成为低电平,此时,数据被锁存到输入寄存器中,这样输入寄存器的输出端不再随外部数据DB的变化而变化。
对第二级锁存来说,传送控制信号/XFER和写信号/WR2同时为低电平时,二级锁存控制信号为高电平,8位的DAC寄存器的输出随输入而变化,此后,当/WR2由低电平变高时,控制信号变为低电平,于是将输入寄存器的信息锁存到DAC寄存器中。
图3.3DAC0832引脚图
图3.3中其余各引脚的功能定义如下:
(1)、DI7~DI0:
8位的数据输入端,DI7为最高位。
(2)、IOUT1:
模拟电流输出端1,当DAC寄存器中数据全为1时,输出电流最大,当DAC寄存器中数据全为0时,输出电流为0。
(3)、IOUT2:
模拟电流输出端2,IOUT2与IOUT1的和为一个常数,即IOUT1+IOUT2=常数。
(4)、RFB:
反馈电阻引出端,DAC0832内部已经有反馈电阻,所以RFB端可以直接接到外部运算放大器的输出端,这样相当于将一个反馈电阻接在运算放大器的输出端和输入端之间。
(5)、VREF:
参考电压输入端,此端可接一个正电压,也可接一个负电压,它决定0至255的数字量转化出来的模拟量电压值的幅度,VREF范围为(+10~-10)V。
VREF端与D/A内部T形电阻网络相连。
(6)、VCC:
芯片供电电压,范围为(+5~
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 函数 发生器 设计