波形产生器51单片机课设_第1页
波形产生器51单片机课设_第2页
波形产生器51单片机课设_第3页
波形产生器51单片机课设_第4页
波形产生器51单片机课设_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、成绩优 良 中 及格 不及格课 程 设 计课程名称单片机原理及应用课题名称波形发生器设计专 业电气工程及其自动化班 级1281班学 号姓 名朱 英指导老师周 炼2015年6月19日电气信息学院课程设计任务书课题名称波形发生器设计姓 名朱 英专业电气工程及其自动化化班级1281班学号指导老师周炼课程设计时间2015年6月8日-2015年6月19日一、任务及要求设计任务: 本课题要求以MCS-51系列单片机为核心,用集成电路组成锯齿波、方波和三角波发生器。 (1)输出波形至少包括方波、三角波、锯齿波;(2)频率范围在一定范围内可调:(3)输出电压均无明显失真;设计要求:(1)确定系统设计方案;(2

2、)进行系统的硬件设计;(3)完成应用程序设计; (4) 应用系统的硬件和软件的调试。二、进度安排第一周:周一:集中布置课程设计任务和相关事宜,查资料确定系统总体方案。周二周三:完成硬件设计和电路连接周四周日:完成软件设计第二周:周一周三:程序调试周四周五:设计报告撰写。周五进行答辩和设计结果检查。三、参考资料1、王迎旭等.单片机原理及及应用. 2版.机械工业出版社,20122、胡汉才.单片机原理及其接口技术.3版.清华大学出版社,2010.3、戴灿金.51单片机及其C语言程序设计开发实例.清华大学出版社,2010目 录第1章 总体方案设计11.1 系统总体框图设计11.2系统的主要性能指标22

3、.3 总体设计思路21.4元器件的选择2第2章 硬件电路设计32.1 单片机晶振及复位电路32.2 单片机与D/A连接图42.3 按键电路图5第3章 软件设计53.1 主程序模块63.2 锯齿波程序模块63.3 三角波程序模块83.4 方波程序模块93.5 正弦波程序模块10第4章 调试114.1调试步骤114.2仿真结果12第5章 总结14附 录15附录A:波形发生器原理图15附录B:程序清单16第1章 总体方案设计1.1 系统总体框图设计通过查阅相关的资料,本设计采用单片机(AT89S52)和数模转换芯片(DAC0832)实现波形的产生,波形的产生由程序控制,向D/A的输入端按一定的规律发

4、送数据,经过D/A和74LS21输出,通过两个中断控制不同波形的产生。总体框图如图1-1所示,此方案通过编程简化了外部电路,原理简单,容易实现。使用4个按键共同实现锯齿波,三角波,方波,正弦波这四种常见波形的产生及幅值调节的功能。 按钮开关单片机控制单元D/A示波器 图1-1系统原理框图1.2系统的主要性能指标主要功能是实现利用单片机AT89S52和8位D/A转换芯片DAC0832共同实现锯齿波、三角波,方波,正弦波这四种常见波形的发生,并且通过按键利用DAC接口实现波形发生器可以产生锯齿波、三角波、方波和正弦波等常用标准波形。将P1.0,P1.2,P1.4和P1.6分别作为这四种波的控制位,

5、当相应的控制键按下后,出现相应的波形。1.3 总体设计思路 本次设计结合D/A和A/D转换,用键盘输入来选择DAC0832的输出波形,再通过ADC0832采集后在PC机上以图形方式显示。设计要求该波形发生器能产生锯齿波、三角波、方波等形状的波形,频率和幅度可调。不同的波形主要是由输入DAC0832的不同规律的数据,波形的频率控制是通过对输出数据的时间间隔控制。幅度是通过改变输出数据的大小来控制的。1.4元器件的选择用单片80C51作为系统的主控核心。单片机具有体积小,使用灵活的,易于人机对话和良好的数据处理,有较强的指令寻址和运算功能等优点。且单片机功耗低,价格低廉的优点。在8051单片机的控

6、制下,产生三角波,锯齿波,方波以及正弦波,各种波形所采用的硬件接口都是一样的,由于控制程序不同而产生不同的波形。 图1-2 单片机80C51DAC0832是双列直插式8位D/A转换器。能完成数字量输入到模拟量(电流)输出的转换。 图1-3 单片机DAC0832第2章 硬件电路设计2.1 单片机晶振及复位电路单片机晶振电路:对于80C51一般的晶振频率可以在1.2MHz12MHz之间选择,这,里电容C2、C3可以对应的选择10pF30pF。当使用89C55时晶振频率可以提高到24MHZ。对于本设计的电容C2、C3用22pF,陶瓷电容C1位10uF,晶振选用12MHz。晶振电路如下图2-1所示,一

7、条引脚接在XTAL1,另一条接在XTAL2。单片机的复位电路:为了防止程序执行过程中失步或运行紊乱,此处采用了上电复位电路,电路图如下图所示: 图2-1 单片机晶振及复位电路2.2 单片机与D/A连接图 图2-2 单片机与D/A连接图2.3 按键电路图 图2-3 案件电路图第3章 软件设计此次课程设计使用的软件为Keil uVision4和protues。3.1 主程序模块 根据功能,系统软件设计分成几个模块编程:主程序模块,锯齿波程序模块,三角波程序模块,正弦波程序模块,方波程序模块,延时程序模块。 图3-1 主程序流程图 下面要实现的各种波形通过开关的切换过程的流程图,按下一个开关通过P1

8、.0为0则输出锯齿波,,P1.2为0输出三角波,P1.4为0输出方波,P1.6为0输出正弦波。 图3-2 波形选择流程图3.2 锯齿波程序模块8051单片机的累加器A从0开始循环增量,每增量一次向DAC0832写入一个数据,得到一个输出电压,这样可以获得一个锯齿波。图3-3 锯齿波程序流程图程序如下: MOV DPTR,#7FFFH ;DAC0832地址 ST:MOV A,#00H LOOP:MOVX DPTR,A ;启动D/A转换 INC A ;累加器内容加一 AJMP LOOP ; 连续输出波形 程序从标号LOOP处执行到指令到执行AJMP LOOP共需5个机器周期,采用12MHZ的晶振,

9、一个机器周期为1us,则每个阶梯的时间为t=5*1us,一个正向阶梯波的总周期的总时间为T=255*t=1275us,即此阶梯波的重复频率为F=1/T=78HZ.由此可见,由软件来产生波形,其频率是较低的。要想提高频率,可通过改进程序,改变这种波形的周期,可采用延时的方法,程序若如下: MOV DPTR,#7FFFH ;DAC0832地址 ST:MOV A,#00HLOOP:MOVX DPTR,A ;启动D/A变换ACALL DELAY ;延时INC A AJMP LOOP ;连续输出波形DELAY:MOV R4,#0FFH ;延时子程序LOOP1:MOV R5,#10HLOOP2:NOP D

10、JNZ R5,LOOP2 DJNZ R4,LOOP1 RET 在延时子程序中改变延时时间的长短,即可改变输出波形的周期。3.3 三角波程序模块 在以上这个正向的锯齿波的前提下,若要获得负向的锯齿波只需将以上程序中的指令INCA换成指令DECA即可,如果想获得任意起始电压和终止电压的波形,则需先确定起始电压和终止电压所对应的数字。 程序中首先从起始电压对应的数字量开始输出,当达到终止电压对应的数字量时返回,如此反复。将正向锯齿波与负向锯齿波组合起来就可以获得三角波。图3-4 三角波程序流程图三角波程序如下: MOV DPTR,#7FFFH ;DAC0832地址TRI: MOV A,#00H ;三

11、角波UP: MOVX DPTR,A ;启动D/A转换 INC A ;上升沿 CJNE A,#0FFH,UPDOWN: MOVX DPTR,A ;启动D/A转换 DEC A ;下降沿 CJNE A,#00H,DOWN AJMP UP ;连续输出波形3.4 方波程序模块方波信号也是波形发生器中常用的一种信号,下面的程序可以从DAC的输出端得到矩形波,当延时子程序DELAY1与DELAY2的延时时间大体相同时即为方波,改变延时时间可得到不同占空比的矩形波,上限电平及上限电平对应的数字量可用前面讲过的方法获得。 图3-5 方波程序流程图程序如下:MOV DPTR,#7FFFH ;DAC0832地址SQ

12、: MOV A,#LOW ;取低电平数字量 MOVX DPTR,A ;DAC输出低电平 ACALL DELAY1 ;延时1 MOV A,#HIGH MOVX DPTR,A ;DAC输出高电平 ACALL DELAY2 ;延时2 AJMP SQ ;连续输出波形 以上程序中未列出延时子程序,可仿照前面锯齿波中的延时子程序编写。3.5 正弦波程序模块计算0Pi/2区间N/4个离散的正弦值,根据对称关系,复制Pi/2 Pi区间的值,将0Pi区间各点根据求补即得Pi2Pi区间各值,将得到的这些数据根据所用DAC的位数进行量化,得到相应的数字值,正弦波波形通过查表指令得出。程序太长,见附录。 图3-6 正

13、弦波程序流程图第4章 调试4.1调试步骤1)输入源程序输入源程序时,应以西文方式输入字母和符号,且中文注释前要加分号。2)对源程序进行汇编和纠错 根据自动汇编提供的错误信息逐条纠正错误,直至汇编信息提示无误。 3)确定调试方案在调试程序前认真分析源程序,确定各功能程序运行的预期结果。然后结合源程序应达到的结果,通过某些关键参数和实验现象检验程序运行结果正确与否。并针对具体的分析和观察对象选择较合适的调试方法。如单步运行、跟踪运行、连续运行、快速运行至光标处、设置断点等调试方法。 4)调试程序 调试子程序。由于程序比较多,整体调试不容易发现和改正错误,故采取子程序调试的方法,但要明确子程序的具体

14、功能。例如:调试显示子程序时,只将显示子程序进行汇编,确认无误后单步执行,观察CPU窗口和DATA窗口以及CODE窗口相应单元的变化是否跟预期的一样。如果有问题找出问题所在。采取各个击破的方法调试好各个子程序。确定各子程序无误后,再调试完整的程序,要注意各子程序之间的衔接以及和主程序之间的调用和返回。运行后,观察有无显示,显示的变化过程是否正确。若运行结果不正确,首先应根据程序运行的实际现象分析判断哪些因素可引起相关故障,再通过调试方法逐一认证和排除。通过反复调试,发现并排除软件与硬件存在的各类问题,以满足系统设计的预期目的。 4.2仿真结果1) 锯齿波仿真图图4-1 锯齿波仿真2)三角波仿真

15、图图4-2 三角波仿真3) 方波仿真图图4-3 方波的仿真4)正弦波仿真图图4-4 正弦波的仿真第5章 总结 两周的课程设计很快就这样过去了,经过此课程设计已经了解了DAC0832的基本的功能的实现和开关的操作。在这次的软件设计中,程序设计采用的是汇编语言。汇编语言具有速度快,可以直接对硬件进行操作的优点,它可以极好的发挥硬件的功能。但是汇编语言也存在编写的代码非常难懂,不好维护,难于调试的缺点。因此,在大型程序的设计中,多采用C语言进行程序编译。C语言简洁高效,是最贴近硬件的高级编程语言,现在单片机产品推出时纷纷配套了C语言编译器,应用广泛。不过就本次课程设计来说,汇编语言还是适用的。在这次

16、的硬件设计中,我遇到了一些问题,当我把电路搭建好以后,用PROTEUS去仿真,可是在电脑上无法仿真,发现电脑的系统有问题,经过重装系统得以解决为。在调试程序前,一定要预先将源程序分析透彻,在此基础上训练如何通过实验现象分析和判断产生故障的原因及故障可能存在的大致范围;灵活运用开发系统所提供的各种调试方法,快速有效地排查和缩小故障范围。通过反复调试,不断地分析和排除故障,调试软件和硬件的能力及速度。调试程序时,要结合能反映故障存在与否的参数变化、运行路径变化、显示内容变化等,选择合适的观测点和观测对象,再运用适当的调试方法,快速地检验调试结果,由此分析和判断故障点。总体来说,这次单片机的课程设计

17、使我受益匪浅。在摸索该如何设计电路使之实现所需功能的过程中,特别有趣,培养了我的设计思维,增加了实际操作能力。在让我体会到了设计电路的艰辛的同时,更让我体会到成功的喜悦和快乐。最后,在实习之后,我们了解到,在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在实习过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。但是从中学到的知识会让我受益终身。发现、提出、分析、解决问题和实践能力提高

18、都会受益于我在以后的学习、工作和生活中。附 录附录A:波形发生器原理图附录B:程序清单ORG 0000HSTART:LJMP MAINORG 0003H ;外部中断 入口LJMP INSER ;转到中断服务程序ORG 0030HMAIN:MOV DPTR,#7FFFH ;DAC0832地址SETB EX0 ;允许 中断 SETB IT0 ;负边沿触发方式 SETB EA ;开中断HERE: JB 20H.0,ST ;阶梯波处理JB 20H.1,TRI ;三角波处理JB 20H.2,SQ ;方波处理JB 20H.3,SIN ;正弦波处理SJMP HERE ;等待中断INSER:JNB P1.0,

19、 LL1 ;中断服务程序,查询按键SJMP L1LL1: MOV 20H,#00H SETB 20H.0 ;设置阶梯波标志SJMP RTL1: JNB P1.2, LL2SJMP L2LL2: MOV 20H,#00HSETB 20H.1 ;设三角梯波标志 SJMP RTL2: JNB P1.4, LL3SJMP L3LL3: MOV 20H,#00HSETB 20H.2 ;设置方波标志 SJMP RTL3: JNB P1.6, LL4SJMP RTLL4: MOV 20H,#00HSETB 20H.3 ;设置正弦波标志 RT: RETI ;中断返回ST: MOV A,#00H ;阶梯波LOO

20、PP: MOVX DPTR,A ;启动D/A转换 INC A JB 20H.0,LOOPP ;连续输出波形 LJMP HERE TRI: MOV A,#00H ;三角波UP: MOVX DPTR,A ;启动D/A转换 INC A ;上升沿nopnop CJNE A,#0FFH,UPDOWN: MOVX DPTR,A ;启动D/A转换 DEC A ;下降沿 CJNE A,#00H,DOWN JB 20H.1, UP ;连续输出波形 LJMP HERESQ: MOV A,#00H ;方波 MOVX DPTR,A ;DAC输出低电平 ACALL DELAY ;延时1 MOV A,#0FFH MOVX

21、 DPTR,A ;DAC输出高电平 ACALL DELAY ;延时2 JB 20H.2, SQ ;连续输出波形 LJMP HERESIN: MOV DPTR,#SINTAB ;正弦波MOV R0,#6DHLOOP: CLR AMOVC A,A+DPTRMOV R0,AINC DPTRINC R0CJNE R0,#80H,LOOPMOV DPTR,#7FFFH ;DAC0832端口地址MOV R0,#6DHLOOP1: MOV A,R0 ;取得第一个1/4周期的数据MOVX DPTR,A ;送往DAC0832INC R0CJNE R0,#7FH,LOOP1LOOP2: MOV A,R0 ;取得第

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论