资源描述
毕业设计(论文)
设计(说明书)题目
信号发生器的设计与制作
学 院: 电子与信息工程学院
学生姓名: 林烨淦
专业班级: 09应用电子(2)班
学 号: 2009108206
指导教师: 葛建新
2011 年 5 月 10日
目录
摘要 3
第1章 方案与设计 4
1.1设计和创作 5
1.2多功能波形发生器的技术指标 5
1.3操作设计 5
第2章 硬件组成部分 6
2.1单片机模块 6
2.2键盘显示器接口电路 7
2.3 D/A电路 7
2.4 电源电路 8
第3章. 软件结构 9
3.1人机交互模块 10
3.1.1 LED显示子模块 10
3.1.2 键盘输入处理子模块 11
3.2波形产生模块 17
第4章 总结 19
致谢 20
参考文献 21
附录一 总电路图 22
附录二 PROTEUS仿真波形截图 23
附录三 实物图 25
摘要
波形发生器即简易函数信号发生器,是一种能够产生多种波形,如三角波、方波、正弦波等波形的电路。函数信号发生器在电路实验和设备检测中具有十分广泛的用途。通过对函数波形发生器的原理以及构成分析,可设计一个恩能够变换出三角波、正弦波、方波的函数波形发生器。在工业生产和科研中利用函数信号发生器输出的信号,可以对元器件的性能及参数进行测量,还可以对电工和电子产品进行指数验证、参数调整及性能鉴定。
波形发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。本多功能波形发生器设计使用的AT89S51单片机和键盘电路作为核心控制,8255作为显示芯片,双DAC0832控制输出波形参考幅值构成的发生器可产生锯齿波、三角波、正弦波等多种波形。波形的频率、幅值根据内部程序设定的参考值,利用键盘控制输出相应的波形,具有线路简单、结构紧凑等优点。
关键词:AT89C51 DACO832 8255
第1章 方案与设计
方案一:采用函数信号发生器ICL8038集成模拟芯片,它是一种可以同时产生方波、三角波、正弦波的专用集成电路。但是这种模块产生的波形都不是纯净的波形,会寄生一些高次谐波分量,采用其他的措施虽可滤除一些,但不能完全滤除掉。
方案二:采用AT89C51单片机和DAC0832数模转换器生成波形,由于是软件滤波,所以不会有寄生的高次谐波分量,生成的波形比较纯净。它的特点是价格低、性能高,在低频范围内稳定性好、操作方便、体积小、耗电少。
经比较,方案二既可满足课程设计的基本要求又能充分发挥其优势,电路简单,易控制,性价比高,所以采用该方案。
1.1设计和创作
1.以单片机(STC12C5A60S2)为控制核心;
2.采用DAC0832作为数模转换电路元件;
3.经过运放把完整的波形输出。
1.2多功能波形发生器的技术指标
1.波形类型:方型、正弦波、三角波、锯齿波;
2.幅值电压:1V、2V、3V、4V、5V;
3.频率值:10HZ、20HZ、50HZ、100HZ、200HZ、500HZ、1KHZ;
4.输出极性:双极性
1.3操作设计
1.机器通电后,系统进行初始化,LED在面板上显示6个0,表示系统处于初始状态,等待用户输入设置命令,此时,无任何波形信号输出。
2.用户按下“F”、“V”、“W”,可以分别进入频率,幅值波形设置,使系统进入设置状态,相应的数码管显示“一”,此时,按其它键,无效;
3.在进入某一设置状态后,输入0~9等数字键,(数字键仅在设置状态时,有效)为欲输出的波形设置相应参数,LED将参数显示在面板上;
4.如果在设置中,要改变已设定的参数,可按下“CL”键,清除所有已设定参数,系统恢复初始状态,LED显示6个0,等待重新输入命令;
第2章 硬件组成部分
通过综合比较,决定选用获得广泛应用,性能价格高的常用芯片来构成硬件电路。单片机采用MCS-51系列的89C51(一块),74LS244和74LS373(各一块),反相驱动器 ULN2803A(一块),运算放大器 LM324(一块)。波形发生器的硬件电路由单片机、键盘显示器接口电路、波形转换(D/ A)电路和电源线路等四部分构成。
键盘输入控制
AT89C51
LED显示 键盘
D/A
运放
图2-1
2.1单片机模块
1.功能:
(1)形成扫描码,键值识别,键功能处理,完成参数设置;
(2)形成显示段码,向LED显示接口电路输出;
(3)产生定时中断;
(4)形成波形的数字编码,并输出到D/A接口电路;
2.如图2-1所示: 89C51的P0口和P2口作为扩展I/O口,与8255、0832、74LS373相连接,可寻址片外的寄存器。单片机寻址外设,采用存储器映像方式,外部接口芯片与内部存储器统一编址,89C51提供16根地址线P0(分时复用)和P2,P2口提供高8位地址线,P0口提供低8位地址线。P0口同时还要负责与8255,0832的数据传递。P2.7是8255的片选信号,P2.6是0832(1)的片选,P2.5是0832(2)的片选,低电平有效,P0.0、P0.1经过74LS373锁存后,送到8255的A1、A2作,片内A口,B口,C口,控制口等寄存器的字选。89C51的P1口的低4位连接4只发光三极管,作为波形类型指示灯,表示正在输出的波形是什么类型。
3.单片机89C51内部有两个定时器/计数器,在波形发生器中使用T0作为中断源。不同的频率值对应不同的定时初值,定时器的溢出信号作为中断请求。
控制定时器中断的特殊功能寄存器设置如下:
定时控制寄存器TCON=(00010000)
工作方式选择寄存器(TMOD)=(00000000)
中断允许控制寄存器(IE)=(10000010)
2.2键盘显示器接口电路
1.功能:
(1)驱动6位数码管动态显示;
(2)提供响应界面;
(3) 扫面键盘;
(4)提供输入按键。
2.由并口芯片8255,锁存器74LS273,74LS244,反向驱动器ULN2803A,6位共阴极数码管(LED)和4×4行列式键盘组成。8255的C口作为键盘的I/O接口,C口的低4位输出到扫描码,高4位作为输入行状态,按键的分布如图所示。8255的A口作为LED段码输出口,与74LS244相连接,B口作为LED的位选信号输出口,与ULN2803A相连接。8255内部的4个寄存器地址分配如下:控制口:7FFFH , A口:7FFFCH , B口:7FFDH , C口:7FFEH
2.3 D/A电路
1.功能:将波形样值的数字编码转换成模拟值和完成单极性向双极性的波形输出;
2.构成由两片0832和一块LM324运放组成。0832(1)是参考电压提供者,单片机向0832(1)内的锁存器送数字编码,不同的编码会产生不同的输出值,在本发生器中,可输出1V、2V、3V、4V、5V等五个模拟值,这些值作为0832(2)的参考电压,使0832(2)输出波形信号时,其幅度是可调的。0832(2)用于产生各种波形信号,单片机在波形产生程序的控制下,生成波形样值编码,并送到0832(2)中的锁存器,经过D/A转换,得到波形的模拟样值点,假如N个点就构成波形的一个周期,那么0832(2)输出N个样值点后,样值点形成运动轨迹,就是波形信号的一个周期。重复输出N个点后,由此成第二个周期,第三个周期……。这样0832(2)就能连续的输出周期变化的波形信号。运放A1是直流放大器,运放A2是单极性电压放大器,运放A3是双极性驱动放大器,使波形信号能带得起负载。地址分配:0832(1):DFFFH ,0832(2):BFFFH
2.4 电源电路
1.功能:为波形发生器提供直流能量;
2.构成由变压器、整流硅堆,稳压块7805组成。220V的交流电,经过开关,保险管(1.5A/250V),到变压器降压,由220V降为10V,通过硅堆将交流电变成直流电,对于谐波,用4700μF的电解电容给予滤除。为保证直流电压稳定,使用7805进行稳压。最后,+5V电源配送到各用电负载。
第3章 软件结构
在波形产生器系统中,程序由人机交互模块和波形产生模块组成,人机交互模块又可分成键盘子模块和LED子模块。人机交互模块作为主程序,管理单片机系统,波形发生模块作为中断服务程序,实现系统的波形输出。
主流程
初始化
LED显示
键盘输入处理
判断波形
方
波
正
弦
波
三
角
波
锯
齿
波
中断返回
定时中断开始
图3-1
如图3-1所示:(A) 是波形发生器的主流图,由系统初始化和人机交互模块组成,其中LED显示子模块和键盘输入处理子模块占用单片机主要处理时间,单片机反复运行该模块程序人机交互模块相当于系统的监控程序;(B)是定时中断服务流程图,波形发生模块放置在定时中断服务程序中,系统每隔一定时间,产生一个定时中断,暂停主流程运行,转到定时中断服务程序起始处,执行波形发生模块,该模块输出一个样值后,结束此次中断服务,返回主流程断点处继续运行。反复多次定时中断服务,从而完成波形生成。片内RAM有128B的容量, 30H~3FH定义为堆栈区,40H~45H定义为LED显示缓冲储存区,40H存放波形编号,41H~44H存放频率值,45H存放参考电压值,46H定义为设置标志区。
3.1人机交互模块
3.1.1 LED显示子模块
LED显示初始化
向8255的B口送位选信号
形成下一次位选信号
通过查表,将数字转换成显示段码
送8255的A口
延时
形成下一位显示数字的地址
显示6次吗?
结束
开始
在单片机内部RAM中的40H~45H是LED显示器的显示缓冲区,40H的内容送到左边的第一只数码管显示,41H的内容送左边的第二只数码管……,45H的内容送左边的第六只数码管(最后一位)。显示缓冲区的内容如何形成可以显示的段码呢?在设计中,我们采用查表的方式来形成。编写程序前,根据共阴极LED显示器的工作原理,确定显示数字(1、2、3……8、9)的段码,将它们按大小顺序编制成显示码表,存于ROM中。在编程时,可以由显示缓冲区内的数字,通过查表的方法得到相应的段码。显示子模块的程序流程图如图3-2所示。
图3-2 子流程图
3.1.2 键盘输入处理子模块
在具体实现时,键值识别部分作为主程序,键功能处理部分作为子程序,它们之间的关系是主程序调用子程序。键盘的工作过程:
(1)扫描键盘,获得列扫描码和行状态码,从而确定被按下的按键的键值;
(2)根据键值,通过散转表,跳转到相应的键功能处理部分;
(3)进入键处理部分,完成键功能;
(4)完成一次键输入工作。
通过键盘对单片机系统进行设置,每按一次键,键盘都会有上述的处理过程,每次仅能完成一个键功能。在实际设置波形参数时,一个参数需要多个键功能来实现,那么相应的键盘也要多次完成键值识别,跳转键处理的工作过程。工作过程如图3-3和图3-4所示。
散转表
“0”
键
处
理
“1”
键
处
理
“9”
键
处
理
“En”
键
处
理
“CL”
键
处
理
“F”
键
处
理
“V”
键
处
理
“W”
键
处
理
返回键盘输入主程序
“.”
键
处
理
开始
图3-3
键闭合查询
闭合
去抖动
列扫描键盘
行状态有零吗?
获取列码和行码
与键特征值比对
找到键值吗?
等待释放
调用键功能处理
退出
形成下次列扫描码
扫描4次吗?
形成下个键值、形成下个特征
比对16次吗?
开始
图3-4
各功能键处理,设计如下:“F”键的处理,进入“KEY-F-PRO”子程序段,将设置标志区(ROM46H)设为01H,表示是频率参数设定;送42H到R5中,41H是频率值显示缓冲区首址;将ROM中41H、42H、43H等存储单元送#0AH,使LED显示“---0”,最后退回到键盘主程序,处理流程图3-5
将设置标志ROM46H设定为频率(01)
RS设定为41H
返回扫描程序
开始
图3-5 流程图
“V”键处理:将设置标志区(ROM46H存储单元),设为02H,表示是参考电压设定;将ROM中46H存储单元置为#0AH,使相应位的LED显示“-”。处理流程图3-6。
46H=02
返回扫描程序
开始
图3-6 流程图
“W”键处理,将设置标志区设为03H,表示是波形编号设定;将40H存储单元的内容置#0AH,使相应位的LED显示“-”。处理流程图3-7。
46H=03
返回扫描程序
开始
图3-7 流程图
“0~9”键处理:首先查看设置标志区46H的内容,判断有无设置,若有设置,则判断是频率设置,还是参考电压设置,或者是波形编号设置,确定是某种设置,则进入设定操作,即将数字(0~9)送到显存相应的地址单元。如果无设置,则直接退回到主程序。处理流程图3-8。
设置类型
数字送显存ROM41H-43H
数字送显存ROM45H
数字送显存ROM40H
返回键盘扫描程序
开始
图3-8 流程图
“CL”键处理:将显示缓冲区ROM40H~45H的内容全部清零,使LED显示“000000”;将设置标志区ROM46H的内空清零,使其处于“无设置”状态;将定时器TO的初值清零,并停止TO的定时运行,使定时器TO不工作;之后,退回主程序,处理流程图3-9
显存内容清零
设置标志清零
定时初值清零
停止定时运行
返回扫描程序
开始
图 3-9 流程图
“EN”键处理:首先检查W、V、F等参数值是否已全部设置,如果已经全部设置;(1)从ROM45H取出参考电压值,通过查表,获得电压的数字编码,送到0832(1),产生输出,作为0832(2)参考电压;(2)从ROM41H~43H中取频率值,判定该值,判定该值,根据判断结果,进入相应的程序段,实现“频率与定时初值的转换”,完成TMOD的设定和初值设定;(3)开启定时中断,向R6赋于样值
初始编号;最后,退回到主程序,处理流程图3-10
W、V、F都设置好了吗?
向0832(1)送电压编码,0832(1)输出参考电压
频率值判断
TMOD设定
定时初值设定
开启定时中断
赋以样值初始编号
返回扫描程序
开始
图3-10 流程图
3.2波形产生模块
设计思想:
(1)将一个周期T的信号分离成32个点(按X轴等分),每面点之间的时间间隔为ΔT用单片机的定时器产生。
(2)一个周期被分离成32个点,对应的三种波形的32个数据存放在以TAB1~TAB3为起始地址的存储器中。
中断服务流程如图(12)所示。
保护现场
波形类型值送R7
调用波形产生子程序
恢复现场
返回主程序
开始
图3-11 中断服务流程图
查表获得样值编码
将样值编码送0852(2)
形成下一个样值编号
样值编号等于32吗?
样值编号清零(R6)=0
返回中断服务程序
开始
图3-11 波形产生流程图
第4章 总结
基于单片机的信号发生器设计,这个信号发生器的设计中涉及到一个典型的控制过程。通过单片机控制一个模数转换器DAC0832产生所需要的电流,然后使用运算放大器LM324可以将其电流输出线性地转换成电压输出,再将电压经过运算放大器的放大,可以得到足够幅度的信号。通过程序的控制,可以产生一系列有规律的波形。这样一个信号发生装置在控制领域有相当广泛的应用范围。
本论文设计是基于单片机的信号发生器,主要是以软件为主,硬件为辅。能实现输出正弦波 方波 三角波等波形。
这次的意义在于亲手把自己所学单片机方面的知识用于实践,提高我们的动手能力,也使我们能够初步掌握一些分析问题、解决问题的方法。也是我们感受到理论问题转化到实际问题所要经过的过程和两者之间的差距。
此题是老师出的题目,意义在于能用低的成本做出高效的产品,另外本人可通过此项目提高自己的电子方面的知识及编程等等的能力。
致谢
毕业设计是我大学专科学习的过程向学校、社会交出的一张总结答卷。它不仅是我对大学三年所学知识的总结,也是把所学知识融会贯通运用到实践中的一次尝试,是衡量我三年学习成果的一个必要标准。
通过此次的毕业设计,不仅使我深刻的巩固以往的所学习本专业的知识,也实际熟练了本专业的技能操作。在毕业设计过程中,通过翻阅有单片机、红外遥控等方面的书集,拓宽了我的知识面,并对单片机的知识有了总体的理解,经过了反复思考的过程。这让我能够深刻的体会到基础的理论知识与实际实现还是存在的差异,实际应用中还要考虑各个方面的因素,这给我以后的学习和工作奠定了坚实的基础。
在毕业设计即将结束之际,我要感谢我的指导教师葛建新老师。从毕业设计的准备到结束,他在毕业设计过程中给予了我多方面的支持和帮助。因为有老师的大力帮助,使得我们可以很快的解决制作过程中所遇到的问题和困难,也使得我们从中学习到许多知识及做人的道理,增强了我们自主学习和动手的能力,为我们今后步入工作岗位打下了良好的基础。
在此我还要感谢和我一起完成毕业设计的同学,在这次设计中我们紧密合作、互相协商,不仅锻炼了我们的沟通能力,而且培养了我们的团队精神。
最后还要感谢我生活以及学习了三年的学院,在这次毕业设计中提供给我们良好的环境以及便利的条件,让我们全心投入到这次毕业设计中。
再次感谢所有帮助过我的人们!并祝愿我们学院越来越美好!
参考文献
[1] 李广弟,朱月秀等.单片机基础.北京:北京航天航空大学出版社,2001.
[2] 沙占友,孟志勇.单片机外围电路设计.北京:电子工业出版社,2006.
[3] 何立民.单片机应用技术选编.北京:北京航天航空大学出版社,2006.
[4] 何立民.单片机高级教程-应用与设计.北京:北京航空航天大学出版社,2000.
[5] 李光飞,楼然苗等.单片机C程序设计实例指导.北京:北京航空航天大学出版社,2005.
[6] 李真,付植桐.流行单片机实用子程序及应用实例.北京:清华大学出版社,2002.
[7] 楼然苗,李光飞.51系统单片机设计实例.北京:北京航空航天大学出版社,2003.
[8] 求是科技.单片机典型模块设计实例导航.北京:人民邮电出版社,2004.
[9] 龙勐.智能型红外遥控器.电子技术,1998,9:23-24.
附录一 总电路图
附录二 Proteus仿真波形截图
以下截图是用Proteus软件仿真实现的,通过不同的按键控制输出不同的波形,
从上到下依次为:方波、三角波、正弦波。
方波
三角波
正弦波
附录三 实物图
25
展开阅读全文