简易多功能信号发生器大学本科方案设计书Word格式.docx
《简易多功能信号发生器大学本科方案设计书Word格式.docx》由会员分享,可在线阅读,更多相关《简易多功能信号发生器大学本科方案设计书Word格式.docx(23页珍藏版)》请在冰点文库上搜索。
利用单片机的强大功能,设计合适的人机交互界面,使用户能够通过手动的设定,设置所需波形。
该设计课题的研究和制作全面说明对低频信号发生系统要有一个全面的解、对低频信号的发生原理要理解掌握,以及低频信号发生器工作流程:
波形的设定,D/A转换,单片机(51单片机,显示电路,键盘控制),显示和各模块的连接通信等各个部分要熟练联接调试,能够正确的了解常规芯片的使用方法、掌握简单信号发生器应用系统软硬件的设计方法,进一步锻炼了我们在信号处理方面的实际工作能力。
1.3本课题在国内外的研究现状
二十一世纪,随着集成电路技术的高速发展,出现了多种工作频率可过GHz的DDS芯片,同时也推动了函数波形发生器的发展,2003年,Agilent的产品33220A能够产生17种波形,最高频率可达到20M,2005年的产品N6030A能够产生高达500MHz的频率,采样的频率可达1.25GHz。
由上面的产品可以看出,函数波形发生器发展很快。
对目前而言,国外(美)研究和使用的信号发生器大多要求频率在10
HZ-50MHZ,产生正弦、三角、锯齿、方波、调幅、直流等波形,而国内则对频率在5*10
HZ-40MHZ,能产生正选-三角等基本波形已经调幅、调频、TTL等的信号发生器需求大。
第2章低频信号发生器的方案研究
2.1总体方案论证与设计
信号发生器的实现方法通常有以下几种:
方案一:
用分立元件组成的函数发生器:
通常是单函数发生器且频率不高,其工作不很稳定,不易调试。
方案二:
可以由晶体管、运放IC等通用器件制作,更多的则是用专门的函数信号发生器IC产生。
早期的函数信号发生器IC,如L8038、BA205、XR2207/2209等,它们的功能较少,精度不高,频率上限只有300kHz,无法产生更高频率的信号,调节方式也不够灵活,频率和占空比不能独立调节,二者互相影响。
方案三:
利用专用直接数字合成DDS芯片的函数发生器:
能产生任意波形并达到很高的频率。
但成本较高。
方案四:
采用AT89C51单片机和DAC0832芯片,直接连接键盘和显示。
该种方案主要对AT89C51单片机的各个I/O口充分利用.P1口是连接键盘以及接显示电路,P2口连接DAC0832输出波形.这样总体来说,能对单片机各个接口都利用上,而不在多用其它芯片,从而减小了系统的成本.也对按照系统便携式低频信号发生器的要求所完成.占用空间小,使用芯片少,低功耗。
综合考虑,方案四各项性能和指标都优于其他几种方案,能使输出频率有较好的稳定性,充分体现了模块化设计的要求,而且这些芯片及器件均为通用器件,在市场上较常见,价格也低廉,样品制作成功的可能性比较大,所以本设计采用方案四。
2.2模块结构划分
本次设计所研究的就是对所需要的某种波形输出对应的数字信号,在通过D/A转换器和单片机部分的转换输出一组连续变化的0~5V的电压脉冲值。
在通过显示部分显示其频率,和波形。
在设计时分块来做,按照波形设定,D/A转换,51单片机连接,键盘控制和显示五个模块的设计。
最后通过联调仿真,做出电路板成品。
从而简化人机交互的问题,具体设计模块如图
模块介绍:
1.波形设定:
对任意波形的手动设定
2.D/A转换:
主要选用DAC0832来把数字信号转换为模拟信号,在送入单片机进行处理。
3.单片机部分:
最小系统
4.键盘:
用按键来控制输出波形的种类和数值的输入
5.显示部分:
采用LCD显示波形的频率
系统要求是便携式低功耗的,所以在硬件电路建立前首先粗略计算一下整个系统所需的功耗。
考虑单片机部分(有最小系统,D/A转换,键盘接口,扩展部分显示等部分)的功耗大小,机器体积小,价格便宜,耗电少,频率适中,便于携带。
第3章硬件电路的设计
3.1基本原理
低频信号发生器系统主要由CPU、D/A转换电路、电流/电压转换电路、按键和显示电路、电源等电路组成。
其工作原理为当按下第一个按键就会分别出现方波、锯齿波、三角波、正弦波,并且LCD显示器波形数据和频率。
3.2资源分配
①主控芯片采用ATMEL公司的89C51;
②采用12MHz的晶振器为89C51提供时钟信号;
③提供12V、-12V和5V电压;
④对于89C51内存分配
P1口的P1.0-P1.4分别与五个按键连接,分别控制锯齿波、三角波、正弦波和方波以及他们频率的调节和占空比,P1.5-P1.7以及P0口与LCD连接,P2口与DAC0832的DI0-DI7数据输入端相连。
P2口的数据采用74LS373进行锁存后经过DAC0808进行D/A转换;
⑤采用LCD1602显示频率;
⑥8位D/A转换器采用DAC0808;
⑦运算放大器采用LM324。
3.3各模块具体设
3.3.1AT89C51单片机介绍
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
图3-1是常用的一种单片机,型号为AT89C51,它将计算机的功能都集成到这个芯片内部去了,就这么一个小小的芯片就能构成一台小型的电脑,因此叫做单片机。
图3-1AT89C51芯片
它有40个管脚,分成两排,每一排各有20个脚,其中左下角标有箭头的为第1脚,然后按逆时针方向依次为第2脚、第3脚……第40脚。
在40个管脚中,其中有32个脚可用于各种控制,比如控制小灯的亮与灭、控制电机的正转与反转、控制电梯的升与降等,这32个脚叫做单片机的“端口”,在单片机技术中,每个端口都有一个特定的名字,比如第一脚的那个端口叫做“P1.0”。
AT89C51单片机的功能:
1.主要特性:
·
与MCS-51兼容·
全静态工作:
0Hz-24Hz·
0Hz-24Hz
4K字节可编程闪烁存储器·
三级程序存储器锁定·
128*8位内部RAM
寿命:
1000写/擦循环·
32可编程I/O线·
两个16位定时器/计数器数据保留时间:
10年·
5个中断源·
可编程串行通道·
低功耗的闲置和掉电模式·
片内振荡器和时钟电路
2.管脚说明(图3-2):
图3-2AT89C51管脚分布
VCC:
供电电压,
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口。
P3口管脚备选功能:
P3.0RXD(串行输入口)·
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)·
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)·
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)·
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周
期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉
冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个
ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行
MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外
部执行状态ALE禁止,置位无效。
PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;
当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
3.振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
4.芯片擦除:
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
5.复位电路(图3-3):
MCS-51
单片机复位电路是指单片机的初始化操作。
单片机启运运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。
因而,复位是一个很重要的操作方式。
但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。
图3-3复位电路
(1)复位功能:
复位电路的基本功能是:
系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。
为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。
单片机的复位是由外部的复位电路来实现的。
片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。
复位电路通常采用上电自动复位(如图3-4(a))和按钮复位(如图3-4(b))两种方式。
图3-4RC复位电路
(2)单片机复位后的状态:
单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC=0000H,这表明程序从0000H地址单元开始执行。
单片机冷启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM区中的内容,21个特殊功能寄存器复位后的状态为确定值,见表1。
值得指出的是,记住一些特殊功能寄存器复位后的主要状态,对于了解单片机的初态,减少应用程序中的初始化部分是十分必要的。
说明:
表中符号*为随机状态;
表1寄存器复位后状态表
特殊功能寄存器
初始状态
A
B
PSW
SP
DPL
DPH
P0—P3
IP
IE
00H
07H
FFH
***00000B
0**00000B
TMOD
TCON
TH0
TL0
TH1
TL1
SBUF
SCON
PCON
不定
0********B
PSW=00H,表明选寄存器0组为工作寄存器组;
SP=07H,表明堆栈指针指向片内RAM07H字节单元,根据堆栈操作的先加后压法则,第一个被压入的内容写入到08H单元中;
Po-P3=FFH,表明已向各端口线写入1,此时,各端口既可用于输入又可用于输出。
IP=×
×
00000B,表明各个中断源处于低优先级;
IE=0×
00000B,表明各个中断均被关断;
系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。
51单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。
51单片机在系统复位时,将其内部的一些重要寄存器设置为特定的值,至于内部RAM内部的数据则不变。
3.3.3按键电路
一、人机交互接口的设计
所谓人机交互接口,是指人与计算机之间建立联系、交互信息的输入/输出设备的接口[8]。
这些输入/输出设备主要有键盘、显示器和打印机等。
他们是计算机应用系统中必不可少的输入、输出设备,是控制系统与操作人员之间的交互窗口。
一个安全可靠的控制系统必须具有方便的交互功能。
操作人员可以通过系统显示的内容,及时掌握生产情况,并可通过键盘输入数据,传递命令,对计算机应用系统进行人工干扰,使其随时能按照操作人员的意图工作。
二、键盘设计需要解决的几个问题
键盘是若干按键的集合,是向系统提供操作人员干预命令及数据的接口设备。
键盘可分为编码键盘和非编码键盘两种类型。
编码键盘能自动识别按下的键并产生相应代码,以并行或串行方式发给CPU。
它使用方便,接口简单,响应速度快,但需要专用的硬件电路。
非编码键盘则是通过软件来确定按键并计算键值。
这种方法虽然没有编码键盘速度快,但它不需要专用的硬件支持,因此得到了广泛的应用[9]。
键盘是计算机应用系统中的一个重要组成部分,设计时必须解决下述一些问题。
1.按键的确认
键盘实际上是一组按键开关的集合,其中每一个按键就是一个开关量输入装置。
键的闭合与否,取决于机械弹性开关的通、断状态。
反应在电压上就是呈现出高电平或低电平,若高电平表示断开,那么低电平键闭合。
所以,通过电平状态(高或低)的检测,便可确定相应按键是否已被按下。
2.重键与连击的处理
实际按键操作中,若无意中同时或先后按下两个以上的键,系统确定哪个键操作是有效的,完全取决设计者的意图。
如视按下时间最长者为有效键,或认为最先按下的键为当前的按键,也可以将最后释放的键看成是输入键。
不过单片机控制系统的资源有限,交互能力不强,通常总是采用单键按下有效,多键同时按下无效的原则。
有时,由于操作人员按键动作不够熟练,会使一次按键产生多次击键的效果,及重键的情形。
为消除重键的影响,编制程序时可以将键的释放作为按键的结束。
等键释放电平后再转去执行相应的功能程序,以防止一次击键多次执行的错误发生。
3.按键防抖动技术
键盘作为向系统提供操作人员的干预命令的接口,以其特定的按键代表着各种确定操作命令。
所以准确无误地辨认每个键的动作及其所处的状态,是系统能否正常工作的关键。
多数键盘的按键均采用机械弹性开关。
一个电信号通过机械触点的断开、闭合过程,完成高、低电平的切换。
由于机械触点的弹性作用,一个按键开关闭合及断开的瞬间必然伴随有一连串的抖动。
消除按键盘抖动通常有两种方法:
硬件消抖和软件消抖。
通过硬件电路消除按键过程中抖动的影响是一种广为采用的措施。
这种做法,工作可靠,且节省机时。
硬件消抖是通过在按键输出电路上加一定的硬件线路来消除抖动,一般采用R—S触发器或单稳态电路。
如图3-17所示。
软件消抖则是利用延时来跳过抖动过程。
图3-17单稳态硬件消抖电路
键盘的结构形式一般有两种:
独立式键盘与矩阵式键盘。
独立式键盘就是各按键相互独立,每个按键各接一根I/O口线,每根I/O口线上的按键都不会影响
其它的I/O口线,示例如图3-18所示[2]。
矩阵式键盘又叫行列式键盘。
用I/O口线组成行、列结构,键位设置在行列的交点上。
例如4×
4的行、列结构可组成16个键的键盘,比一个键位用一根I/O口线的独立式键盘少了一半的I/O口线。
对矩阵键盘的工作过程可分两步:
第一步是CPU首先检测键盘上是否有键按下;
第二步是再识别是哪一个键按下。
图3-18独立式键盘
三、矩阵键盘的工作方式
1.查询工作方式
这种方式是直接在主程序中插入键盘检测子程序,主程序每执行一次,则键盘检测子程序就对键盘进行检测一次。
如果没有键按下,则跳过键识别,直接执行其他程序;
如果有键按下,则通过键盘扫描子程序识别按键,得到按键的编码值。
然后根据编码值进行相应的处理,处理完后再回到主程序执行。
键盘扫描子程序流程如图3-19所示。
图3-19键盘扫描流程图
2.中断工作方式
如图3-20所示,就是中断工作方式,当有中断的时候,就去执行扫描程序,没有中断的时候,CPU可以去做其他的事情。
这样可以提高CPU的效率。
图3-20键盘中断工作方式
3.3.4显示模块的设计
通过液晶1602显示输出的波形、频率,其电路图如下:
如上图所示,1602的八位数据端接单片机的P1口,其三个使能端RS、RW、E分别接单片机的P1.5—P1.7。
通过软件控制液晶屏可以显示波形的种类以及波形的频率。
3.3.5D/A转换电路的设计
DAC0832是CMOS工艺制造的8位D/A转换器,属于8位电流输出型D/A转换器,转换时间为1us,片内带输入数字锁存器。
DAC0832与单片机接成数据直接写入方式,当单片机把一个数据写入DAC寄存器时,DAC0832的输出模拟电压信号随之对应变化。
利用D/A转换器可以产生各种波形,如方波、三角波、正弦波、锯齿波等以及它们组合产生的复合波形和不规则波形。
1.DAC0832主要性能:
◆输入的数字量为8位;
◆采用CMOS工艺,所有引脚的逻辑电平与TTL兼容;
◆数据输入可以采用双缓冲、单缓冲和直通方式;
◆转换时间:
1us;
◆精度:
1LSB;
◆分辨率:
8位;
◆单一电源:
5—15V,功耗20mw;
◆参考电压:
-10—+10V;
DAC0832内部结构资料:
芯片内有两级输入寄存器,使DAC0832具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。
D/A转换结果采用电流形式输出。
要是需要相应的模拟信号,可通过一个高输入阻抗的线性运算放大器实现这个供功能。
运放的反馈电阻可通过RFB端引用片内固有电阻,还可以外接。
该片逻辑输入满足TTL电压电平范围,可直接与TTL电路或微机电路相接,下面是芯片电路原理图3-20
图3-20DAC0832电路原理图
如图3-20所示,待转换的8位数字量由芯片的8位数据输入线D0~D7输入,经DAC0832转换后,通过2个电流输出端IOUT1和IOUT2输出,IOUT1是逻辑电平为"
1"
的各位输出电流之和,IOUT2是逻辑电平为"
0"
的各位输出电流之和。
另外,ILE、
、
和
是控制转换的控制信号。
DAC0832由8位输入寄存器、8位DAC寄存器和8位D/A转换电路组成。
输入寄存器和DAC寄存器作为双缓冲,因为在CPU数据线直接接到DAC0832的输入端时,数据在输入端保持的时间仅仅是在CPU执行输出指令的瞬间内,输入寄存器可用于保存此瞬间出现的数据。
有时,微机控制系统要求同时输出多个模拟量参数,此时对应于每一种参数需要一片DAC0832,每片DAC0832的转换时间相同,就可采用D