毕业设计(论文)
论文题目 单片机信号发生器的设计与研究
教 学 点: 平凉教学点 专 业: 计算机信息管理 届 别: 2008 届 学 号: ************ * 名: * * 指导教师(职称): 黎 玉 琴 论文 开始时间: 2010 年5 月 1 日 论文 完成时间: 2010年10月30日
1
兰州理工大学继续教育学院
毕业设计(论文)教师指导意见
学生姓名:郭银 专业班级:计算机信息管理 校内、教学点:平凉教学点 第 一 次 1、论文选题稍偏离于专业培养目标,请慎重考虑。 2、查阅文献资料太少,需更多地参考有关单片机信号发生器软硬件方面的资料,全面分析问题,继续完善论文内容,调整层次结构。 3、有一定的数据,但加工整理较差。 2010年 8月 20日 第 二 次 2、文题相符,中心明确,内容较为完整,层次结构安排合理,但缺乏个人见解。 3、文章篇幅和格式均符合学校规定和相关的规范要求。 2010年 10 月 20 日 评阅结果及成绩 本论文能理论联系实际,对单片机信号发生器作了较全面的分析和研究,对实际应用有一定的参考作用。文章结构合理,条理分明,论据较充分,语句通顺。 成绩: 77 指导教师签字:黎玉琴 2010年12 月 10 日 1、能较好地运用所学理论与专业有关的知识,联系实际,分析问题较正确、全面。 论文题目: 单片机信号发生器的设计与研究 2
摘 要
信号发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。目前使用的信号发生器大部分是函数信号发生器,且特殊波形发生器的价格昂贵。所以本设计使用的是AT89c51单片机构成的发生器,可产生三角波、方波、正弦波等多种特殊波形和任意波形,波形的频率可用程序控制改变。在单片机上加外围器件矩阵式键盘,通过键盘控制波形频率的增减以及波形的选择,并用了LCD显示频率大小。在单片机的输出端口接DAC0832进行D/A转换,再通过运放进行波形调整,最后输出波形接在示波器上显示。本设计具有线路简单、结构紧凑、价格低廉、性能优越等优点。
关键词:信号发生器;单片机;波形调整
I
目 录
摘 要...................................................................................................................................................... I 第一章 绪论 ............................................................................................................................................ 1 1.1 课题背景 ...................................................................................................................................... 1 1.2 课题意义 ...................................................................................................................................... 1 第二章 信号发生器的方案研究 ............................................................................................................ 2 2.1总体方案论证与设计 ................................................................................................................... 2 2.2模块结构划分 ............................................................................................................................... 2 第三章 硬件电路整体设计 .................................................................................................................... 4 3.1基本原理 ........................................................................................................................................ 4 3.2 资源分配 ...................................................................................................................................... 4 第四章 硬件模块设计 ............................................................................................................................ 5 4.1复位电路 ....................................................................................................................................... 5 4.2时钟电路 ....................................................................................................................................... 5 4.3最小应用系统 ............................................................................................................................... 5 4.4按键电路 ....................................................................................................................................... 6 4.5显示模块 ....................................................................................................................................... 7 4.6 D/A转换电路设计 ....................................................................................................................... 7 第五章 软件设计 .................................................................................................................................. 10 5.1 软件总体设计 ............................................................................................................................ 10 5.3 键盘扫描及处理程序设计 ........................................................................................................ 11 5.4中断服务程序设计 ..................................................................................................................... 12 总 结...................................................................................................................................................... 14 参考文献 ................................................................................................................................................ 15 致 谢.................................................................................................................................................... 16
II
第一章 绪论
1.1 课题背景
随着电子测量及其他部门对各类信号发生器的广泛需求及电子技术的迅速发展,促使信号发生器种类增多,性能提高。尤其随着70年代微处理器的出现,更促使信号发生器向着自动化、智能化方向发展。现在,许多信号发生器带有微处理器,因而具备了自校、自检、自动故障诊断和自动波形形成和修正等功能,可以和控制计算机及其他测量仪器一起方便的构成自动测试系统。当前信号发生器总的趋势是向着宽频率覆盖、低功耗、高频率精度、多功能、自动化和智能化方向发展。
1.2 课题意义
该设计课题的研究和制作全面说明对低频信号发生系统要有一个全面的解、对低频信号的发生原理要理解掌握,以及低频信号发生器工作流程:波形的设定,D/A转换,单片机(51单片机,显示电路,键盘控制),显示和各模块的连接通信等各个部分要熟练联接调试,能够正确的了解常规芯片的使用方法、掌握简单信号发生器应用系统软硬件的设计方法,进一步锻炼了我们在信号处理方面的实际工作能力。
1
第二章 信号发生器的方案研究
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单片机连接,键盘控制和显示五个模块的设计。最后通过联调仿真,做出电路板成品。从而简化人机交互的问题,具体设计模块如图
2
模块介绍:
1.波形设定:对任意波形的手动设定
2.D/A转换:主要选用DAC0832来把数字信号转换为模拟信号,在送入单片机进行处理。
3.单片机部分:最小系统
4.键盘:用按键来控制输出波形的种类和数值的输入 5.显示部分:采用LCD显示波形的频率
系统要求是便携式低功耗的,所以在硬件电路建立前首先粗略计算一下整个系统所需的功耗。考虑单片机部分(有最小系统,D/A转换,键盘接口,扩展部分显示等部分)的功耗大小,机器体积小,价格便宜,耗电少,频率适中,便于携带。
3
第三章 硬件电路整体设计
3.1基本原理
复位电路
AT89C51
D/A转换芯片 按键 LCD显示 波形输出 电流电压转换电流
信号发生器系统主要由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。
4
第四章 硬件模块设计
4.1复位电路
复位电路和时钟电路是维持单片机最小系统运行的基本模块。复位电路通常分为两种:上电复位和手动复位。
上电复位 手动复位 有时系统在运行过程中出现程序跑飞的情况,在程序开发过程中,经常需要手动复位。所以本次设计选用手动复位。
4.2时钟电路
高频率的时钟有利于程序更快的运行,也有可以实现更高的信号采样率,从而实现更多的功能。但是告诉对系统要求较高,而且功耗大,运行环境苛刻。考虑到单片机本身用在控制,并非高速信号采样处理,所以选取合适的频率即可。
合适频率的晶振对于选频信号强度准确度都有好处,本次设计选取12.000M无源晶振接入XTAL1和XTAL2引脚。并联2个30pF陶瓷电容帮助起振。
4.3最小应用系统
单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路.下面给出一个51单片机的最小系统电路图
5
在智能化仪器仪表中,控制核心均为微处理器,而单片机以高性能、高速度、体积小、价格低廉、稳定可靠而得到广泛应用,是设计智能化仪器仪表的首选微控制器。单片机结合简单的晶体振荡电路和复位电路即可构成单片机最小系统,它是智能化仪器仪表的基础,也是测控、监控的重要组成部分。
4.4按键电路
1.查询工作方式
这种方式是直接在主程序中插入键盘检测子程序,主程序每执行一次,则键盘检测子程序就对键盘进行检测一次。如果没有键按下,则跳过键识别,直接执行其他程序;如果有键按下,则通过键盘扫描子程序识别按键,得到按键的编码值。然后根据编码值进行相应的处理,处理完后再回到主程序执行。键盘扫描子程序流程如图所示 。
键盘扫描流程图
6
2.中断工作方式
如图所示,就是中断工作方式,当有中断的时候,就去执行扫描程序,没有中断的时候,CPU可以去做其他的事情。这样可以提高CPU的效率。
键盘中断工作方式
4.5显示模块
通过液晶1602显示输出的波形、频率,其电路图如下:
如上图所示,1602的八位数据端接单片机的P1口,其三个使能端RS、RW、E分别接单片机的P1.5—P1.7。通过软件控制液晶屏可以显示波形的种类以及波形的频率。
4.6 D/A转换电路设计
DAC0832是CMOS工艺制造的8位D/A转换器,属于8位电流输出型D/A转换器,转换时间为1us,片内带输入数字锁存器。DAC0832与单片机接成数据直接写入方式,当单片机把一个数据写入DAC寄存器时,DAC0832的输出模拟电压信号随之对应变化。利用D/A转换器可以产生各种波形,如方波、三角波、正弦波、锯齿波等以及它们组合产生的复合波形和不规则波形。
7
1.DAC0832主要性能: ◆输入的数字量为8位;
◆采用CMOS工艺,所有引脚的逻辑电平与TTL兼容; ◆数据输入可以采用双缓冲、单缓冲和直通方式; ◆转换时间:1us; ◆精度:1LSB; ◆分辨率:8位;
◆单一电源:5—15V,功耗20mw; ◆参考电压:-10—+10V;
DAC0832内部结构资料:芯片内有两级输入寄存器,使DAC0832具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。D/A转换结果采用电流形式输出。要是需要相应的模拟信号,可通过一个高输入阻抗的线性运算放大器实现这个供功能。运放的反馈电阻可通过RFB端引用片内固有电阻,还可以外接。
该片逻辑输入满足TTL电压电平范围,可直接与TTL电路或微机电路相接,下面是芯片电路原理图。
DAC0832电路原理图
如图3-20所示,待转换的8位数字量由芯片的8位数据输入线D0~D7输入,经DAC0832转换后,通过2个电流输出端IOUT1和IOUT2输出,IOUT1是逻辑电平为\"1\"的各位输出电流之和,IOUT2是逻辑电平为\"0\"的各位输出电流之和。另外,ILE、、
、
和
是控制转换的控制信号。
DAC0832由8位输入寄存器、8位DAC寄存器和8位D/A转换电路组成。输入寄存
8
器和DAC寄存器作为双缓冲,因为在CPU数据线直接接到DAC0832的输入端时,数据在输入端保持的时间仅仅是在CPU执行输出指令的瞬间内,输入寄存器可用于保存此瞬间出现的数据。有时,微机控制系统要求同时输出多个模拟量参数,此时对应于每一种参数需要一片DAC0832,每片DAC0832的转换时间相同,就可采用DAC寄存器对CPU分时输入到输入寄存器的各参数在同一时刻开始锁存,进而同时产生各模拟信号。 控制信号ILE、平,
、
用来控制输入寄存器。当ILE为高电平,
为低电
为负脉冲时,在LE产生正脉冲;其中LE为高电平时,输入寄存器的状态
随数据输入线状态变化,LE的负跳变将输入数据线上的信息存入输入寄存器。 控制信号
和
用来控制8位A/D转换器。当
为低电平,
输入
负脉冲时,则在LE产生正脉冲;其中LE为高电平时,DAC寄存器的输入与输出的状态一致,LE负跳变,输入寄存器内容存入DAC寄存器。
DAC0832的数据输出方式在微机应用系统中,通常使用的是电压信号,而DAC0832输出的是电流信号,这就需要由运算放大器组成的电路实现转换。其中有输出电压各自极性固定的单位性输出和在随动系统中输出电压有正负极性的双极性输出两种输出方式。 2. DAC 0832同CPU的连接
微处理器与DAC0832之间可以不加锁存器,而是利用DAC0832内部锁存器,将CPU通过数据总线直接向DAC0832输出的停留时间很短的数据保存,直至转换结束。
DAC0832同CPU的接口如图所示.DAC0832作为微处理器的一个端口,用地址92H的选通作为
和
的控制信号,微处理器的写信号直接来控制
和
。
9
第五章 软件设计
5.1 软件总体设计
应用系统中的应用软件是根据系统功能要求而设计的,能可靠地实现系统的各种功能。一个优秀的应用系统的应具有下列特点:
(1)根据软件功能要求,将系统软件分成若干个独立的部分。设计出软件的总体结构,使其结构清晰、流程合理。
(2)要树立结构化程序设计风格,各功能程序模块化、子程序化。既便于调试、链接,又便于移植、修改。
(3)建立正确的数学模型。即根据功能要求,描述各个输入和输出变量之间的数学关系,它是关系到系统好坏的重要因素。
(4)为提高软件设计的总体效率,以简明、直观法对任务进行描述,在编写应用软件之前,应绘制出程序流程图。
(5)要合理分配系统资源,包括ROM、RAM、定时数器、中断资源等。 (6)注意在程序的有关位置处写上功能注释,提高程序的可读性。 (7)加强软件抗干扰设计,它是提高系统应用可靠性的有利措施。 本系统的软件包括以下几个程序模块: (1)初始化程序; (2)显示程序;
(3)键盘扫描程序与处理程序; (4)定时器0服务程序;
(5)正弦波发生程序及其服务程序; (6)三角波发生程序; (7)方波发生程序; (8)锯齿波发生程序。
5.2 系统初始化程序设计
复位程序完成如下工作:
1.显示2秒的PPP.HELLO初始界面; 2.初始频率设置为983HZ;
10
3.将频率值转换成定时器的初值;
4.置定时器0工作于方式1,即16位定时器方式,送入定时器0定时初值,启动定时器0工作;
5.显示初始频率和产生波形的类型; 6.转键盘扫描程序。 系统的初始化流程如图所示。
初始化流程图
5.3 键盘扫描及处理程序设计
这部分程序包括如下几部分: 1.键盘扫描程序judge; 2. 先对P1置数,行扫描; 3. 判断是否有键按下; 4. 延时10ms,软件去干扰;
5. 确认按键按下X = P1, 保存行扫描时有键按下时状态; 6. 列扫描;
7. 保存列扫描时有键按下时状态; 8. 取出键值;
9. 执行相应键值程序。 键盘扫描源程序如下:
void judge(void) {
unsigned char X,Y,Z; P1 = 0xff;
P1 = 0x0f; //先对P1置数行扫描 if(P1 != 0x0f) //判断是否有键按下
11
{
delay10ms(); //延时,软件去干扰 if(P1 != 0x0f) //确认按键按下X = P1; {
X = P1; //保存行扫描时有键按下时状态 P1 = 0xf0; //列扫描
Y = P1; //保存列扫描时有键按下时状态 Z = X | Y; //取出键值
switch ( Z ) //判断键值(那一个键按下) {
case 0x7d: key1(); break;
case 0xee: key2(); break; //对键值赋值 case 0xde: key3(); break; case 0xbe: key4(); break; case 0x7e: key5(); break;} } } }
5.4中断服务程序设计
采用定时器T0定时中断,根据不同的choice值,产生不同的波形。其中方波的占空比可以通过K变量来控制。定时器的初值可以这样计算:
f = 100000 * ww + 1000 * qw + 100 * bw + 10 * sw + gw; t = 1000000 / f;
th = -t / 256; //定时器高八位值 tl = -t % 256; //定时器低八位值
void time0_int(void) interrupt 1 //中断服务程序 {
TR0 = 0;
if(wave_choice == 1) {
P0 = to_sin[b]; //正弦波 b ++; }
else if( wave_choice == 2 ) //三角波 {
if(c <= 128) {
P0 = c; }
else {
P0 = 255 - c; }
c ++;
12
}
else if( wave_choice == 3 ) // 方波 {
k = zk * 256 / 100; d ++;
if(d <= k) {
P0 = 0x00; } else
P0 = 0xff; }
else if(wave_choice == 4) //锯齿波 {
if(e <= 255) {
P0 = 255 - e; } else {
P0=0; } e++; }
TH0 = th; TL0 = tl; TR0 = 1; }
13
总 结
六个月的毕业设计终于要结束了,在这对这回所做的设计和心得来总结一下,在这六个月里按照任务要求,利用单片机做出信号发生器.在做的过程中,复习了单片机原理这门课程,在老师和同学的帮助下,对单片机的认识有了进一步的认识和使用.在学习单片机的时候,首先要理解清楚其工作原理和工作时序,那样的话才能对所要求电路进行编程.还有就是在做设计的时候要认真一点,那点错了要换个思维方式在做,找到错误的知识点,在看书或者问老师来解决.在剩下就是谢谢老师和同学们这些天的教导和帮助.
在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!
14
参考文献
[1]何立民.MCS-51系列单片机应用系统设计.北京:北京航空航天大学出版社,2007 [2]穆兰.单片微型计算机原理及接口技术.北京:机械工业出版社,2008 [3]张毅刚.MCS-51单片机应用设计.哈尔滨:哈尔滨工业大学出版社,2006 [4]蒋智勇. 单片微型计算机原理及接口技术.沈阳:辽宁科学技术出版设,2009 [5]韩全立,王建明.单片机控制技术及应用.北京:电子工业出版社,2004 [6]徐仁贵. 微型计算机借口技术及应用.北京:机械工业出版社,2003 [7]房小翠,王金凤.单片机使用系统设计技术.北京:国防工业出版社,2001
[8]张毅坤,陈善久,裘雪红.单片微型计算机原理及应用.西安:西安电子科技大学出版社,2008 [9]任为民. 电子技术基础课程设计.北京:中央广播电视大学出版社,2007
[10]弘道工作室.融会贯通 Protel99电路设计.北京:人民交通出版设,2003
15
致 谢
持续紧张和忙碌两个多月的毕业设计终于完了,在此我特别感谢带我的指导老师黎老师,在这次毕业设计中对我的的耐心指导和帮助。还有各位领导在此期间对我的帮助和鼓励,使我在设计的时候信心十足。感谢学校给我门这次毕业设计的机会和其它的帮助。还有一同讨论、帮助我设计的同学表示感谢。
在这次毕业设计中,老师的教导和同学们的协作,使我受益匪浅。感谢几位舍友在我几次弄丢资料的情况下帮助我共同完成任务。没有老师和他们的帮助、查找资料。对于我一个对单片机知识甚浅的人来说要想在短短的几个月的时间里学习到网络知识并完成毕业论文是很困难的事情。所以,谢谢指导老师和几位舍友。
16
因篇幅问题不能全部显示,请点此查看更多更全内容