《单片机技术及应用》课程设计报告波形发生器 .doc

上传人:laozhun 文档编号:4146977 上传时间:2023-04-07 格式:DOC 页数:23 大小:532.50KB
返回 下载 相关 举报
《单片机技术及应用》课程设计报告波形发生器 .doc_第1页
第1页 / 共23页
《单片机技术及应用》课程设计报告波形发生器 .doc_第2页
第2页 / 共23页
《单片机技术及应用》课程设计报告波形发生器 .doc_第3页
第3页 / 共23页
《单片机技术及应用》课程设计报告波形发生器 .doc_第4页
第4页 / 共23页
《单片机技术及应用》课程设计报告波形发生器 .doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《《单片机技术及应用》课程设计报告波形发生器 .doc》由会员分享,可在线阅读,更多相关《《单片机技术及应用》课程设计报告波形发生器 .doc(23页珍藏版)》请在三一办公上搜索。

1、单片机技术及应用课程设计报告专 业: 电子信息工程 班 级: 07302 (本) 姓 名: 指导教师: 二零一零 年 六 月 二十 目录一 课程设计目的3二 课程设计题目描述和要求3三 课程设计报告内容43.1波形图思路43.2波形图设计过程(方案设计与论证,调试与仪器说明)43.1.1锯齿波模块:43.1.2三角波模块:63.1.3方波模块:73.1.4正弦波模块:93.1.5顶层模块:113,1,6采用DAC0832实现波形发生器的总程序模块14四 原始硬件图18五 改进后的硬件图.19六 总结.20七 老师评语.22.参考文献23 波形发生器 一 课程设计目的实现波形发生器可以产生锯齿波

2、、三角波、方波和正弦波等常用标准波形。二 课程设计题目描述和要求利用DAC接口实现波形发生器可以产生锯齿波、三角波、方波和正弦波等常用标准波形。将P1.0,P1.2,P1.4和P1.6分别作为这四种波的控制位,当相应的控制键按下后,出现相应的波形设计原理DAC接口技术DAC(Digital-Analog-Conventor)的功能是将数字量转化为与其成比例的模拟电压或电流信号,输出到仪表外部进行各种控制DAC芯片种类很多,有通用廉价的DAC芯片,也有高速高精度及高分辨率的DAC芯片在这里我们采用的的是DAC0832各种类型的DAC芯片都具有数字量输入端,模拟量输入端和基准电压端。数字量输入端有

3、以下几种类型:1无数据锁存,2带单数据锁存器,3带双数据锁存器,4可接收串行数字输入。第一种在与单片机接口时,要外加锁存器,第二种和第三种可直接与单片机接口,第四种与单片机接口十分简单,接收数据较慢,适用于远距离现场控制的场合模拟量输出有两种方式:电压输出及电流输出。电压输出的DAC芯片相当于一个电压源,其内阻很小,选用这种芯片时,与它匹配的电阻应较大,电流输出的芯片相当于电流源,其内阻较大,选用这种芯片时,负载电阻不可太大。在实际应用中,常选用电流输出的DAC芯片实现电压输出三 课程设计报告内容3.1波形图思路在8051单片机的控制下,产生三角波,锯齿波,方波以及正弦波,各种波形所采用的硬件

4、接口都是一样的,由于控制程序不同而产生不同的波形3.2波形图设计过程(方案设计与论证,调试与仪器说明) 将该任务分成六个模块进行设计,分别为:锯齿波模块,三角波模块,方波模块,正弦波模块,然后是顶层模块,最后是将所有模块拼合成总体模块 我们所涉及的电路:DAC0832工作于单缓冲器方式,它的ILE接+5V。/CS和/XFER相连后由8051的P2.7控制,/WR1和/WR2相连后由8051的/WR控制DAC0832的地址为7FFFH,工作于单缓冲器方式,执行一次对DAC0832的写入操作即可完成一次D/A转换。3.2.1锯齿波模块:8051单片机的累加器A从0开始循环增量,每增量一次向DAC0

5、832写入一个数据,得到一个输出电压,这样可以获得一个正向的阶梯波DAC0832的分辨率为8位,如其满足的电压为5V,则一个阶梯的幅度为 5V/(2*2*2*2*2*2*2*2)=19.5mV程序如下: MOV DPTR,#7FFFH ;DAC0832地址 ST:MOV A,#00H LOOP:MOVX DPTR,A ;启动D/A转换 INC A ;累加器内容加一 AJMP LOOP ; 连续输出波形程序从标号LOOP处执行到指令到执行AJMP LOOP共需5个机器周期,采用12MHZ的晶振,一个机器周期为1us,则每个阶梯的时间为t=5*1us,一个正向阶梯波的总周期的总时间为T=255*t

6、=1275us,即此阶梯波的重复频率为F=1/T=78HZ.由此可见,由软件来产生波形,其频率是较低的。要想提高频率,可通过改进程序,减少执行时间,但这种方法是有限的,根本的办法还得靠改进路. 图8.13由图8.13可见,由于每一个阶梯波较小,总体看起来是一个锯齿波.如果要改变这种波形的周期,可采用延时的方法,程序若如下: MOV DPTR,#7FFFH ;DAC0832地址ST:MOV A,#00HLOOP:MOVX DPTR,A ;启动D/A变换ACALL DELAY ;延时INC AAJMP LOOP ;连续输出波形DELAY:MOV R4,#0FFH ;延时子程序LOOP1:MOV R

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

8、三角波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.2.3方波模块:方波信号也是波形发生器中常用的一种信号,下面的程序可以从DAC的输出端得到矩形波,当延时子程序DELAY1与DELAY2的延时时间大体相同时即为方波,改变延时时间可得到不同占空比的矩形波,上限电平及上限电平对应的数字量可用前面讲过的方法获得。程序如下:MOV DPTR,#7FFFH ;DAC0832地址SQ: MOV A,#LOW

9、 ;取低电平数字量 MOVX DPTR,A ;DAC输出低电平 ACALL DELAY1 ;延时1 MOV A,#HIGH MOVX DPTR,A ;DAC输出高电平 ACALL DELAY2 ;延时2 AJMP SQ ;连续输出波形以上程序中未列出延时子程序,可仿照前面锯齿波中的延时子程序编写,输出矩形波的占空比为T1/(T1+T2),输出波形如图8.15所示。改变延时值使T1=T2即可得到方波矩形波矩形波实验图3.2.4正弦波模块:图8.14利用DAC接口实现正弦波发生器时,先要对正弦波模拟电压进行离散化。如图8.14所示,对于一个正弦波取N等分离散点,按定义计算出对应于1,2,3.N各离

10、散点的数据值D1,D2,D3,D4.DN制成一个正弦表。因为正弦波在半周期内是以极值点为中心对称,而且正负波形为互补关系,故在制正弦表时只需进行1/4周期,取0Pi/2之间的数值,步骤如下:(1) 计算0Pi/2区间N/4个离散的正弦值(2) 根据对称关系,复制Pi/2 Pi区间的值(3) 将0Pi区间各点根据求补即得Pi2Pi区间各值将得到的这些数据根据所用DAC的位数进行量化,得到相应的数字值,依次存入RAM或固化于EPROM中,从而得到一个全周期的正弦编码表程序如下:SIN: MOV DPTR,#SINTAB ;正弦波 MOV R0,#6DHLOOP: CLR AMOVC A,A+DPT

11、RMOV 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/4周期的数据MOVX DPTR,A ;送往DAC0832DEC R0CJNE R0,#6DH,LOOP2LOOP3: MOV A,R0 ;取得第三个1/4周期的数据CPL A ;数据取反MOVX DPTR,A ;送往DAC0832INC R0

12、CJNE R0,#7FH,LOOP3LOOP4: MOV A,R0 ;取得第四个1/4周期的数据CPL A ;数据取反MOVX DPTR,A ;送往DAC0832DEC R0CJNE R0,#6DH,LOOP4JB 20H.3, LOOP1 ;输出连续波形LJMP HERESINTAB: DB 7FH,89H,94H,9FH,0AAH,0B4H,0BEH,0C8H,0D1H,0D9HDB 0E0H,0E7H,0EDH,0F2H,0F7H,0FAH,0FCH,0FEH,0FFH正弦波图3.2.5顶层模块:根据按键按下的不同,中断0对应于不同的波形处理ORG 0000HSTART:LJMP MAI

13、NORG 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, LL1 ;中断服务程序,查询按键SJMP L1LL1: MOV 20H,#00H SETB 20H.0 ;设置阶梯波标志SJMP

14、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 ;中断返回. ;波形程序略 END运用Proteus设计的波形发生器仿真原理图如上图是运用Proteus仿真的图形,可是出现的图形很不理想,所以进行了改进下图为改进后的同相比例运算电路改

15、进后的Proteus仿真的图形如下.元件列表STC89C51芯片 1块DAC0832芯片 1块UA741CN芯片 一块按键 4个电阻 10K 1个 电阻 0.22K 4个可提供在线的STC89C小系统板(其中包括了 晶振CRYSTAL 12Hz有源电容 10u 一个 陶瓷电容 22Pf 2个)导线若干还用到实验室里的直流电压源和示波器 74LS21引脚图 UA741CN引脚图3.2.6采用DAC0832实现波形发生器的总程序模块ORG 0000HSTART:LJMP MAINORG 0003H ;外部中断 入口LJMP INSER ;转到中断服务程序ORG 0030HMAIN:MOV DPTR

16、,#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, LL1 ;中断服务程序,查询按键SJMP L1LL1: MOV 20H,#00H SETB 20H.0 ;设置阶梯波标志SJMP RTL1: JNB P1.2, LL2SJMP L2LL2: MOV 20H,#00HSETB 20H.1 ;设三角梯波标

17、志 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 ;阶梯波LOOPP: 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 ;上升沿 CJNE A,

18、#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 DPTR,A ;DAC输出高电平 ACALL DELAY ;延时2 JB 20H.2, SQ ;连续输出波形 LJMP HERESIN: MOV DPTR,#SINTAB ;正弦波MOV R0,#6DHLOOP: CLR AMOVC A,A+DPTRMOV R0,

19、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/4周期的数据MOVX DPTR,A ;送往DAC0832DEC R0CJNE R0,#6DH,LOOP2LOOP3: MOV A,R0 ;取得第三个1/4周期的数据CPL A ;数据取反MOVX DPTR,A ;送往DAC0832INC R0CJNE R0,

20、#7FH,LOOP3LOOP4: MOV A,R0 ;取得第四个1/4周期的数据CPL A ;数据取反MOVX DPTR,A ;送往DAC0832DEC R0CJNE R0,#6DH,LOOP4JB 20H.3, LOOP1 ;输出连续波形LJMP HERESINTAB: DB 7FH,89H,94H,9FH,0AAH,0B4H,0BEH,0C8H,0D1H,0D9HDB 0E0H,0E7H,0EDH,0F2H,0F7H,0FAH,0FCH,0FEH,0FFHDELAY: MOV R4,#0FH ;延时子程序LOOP11: MOV R5,#10HLOOP22: NOPNOPNOPDJNZ R5

21、,LOOP22DJNZ R4,LOOP11RETEND原理是基于DAC的电压输出与其数字输入量成正比关系四 原始硬件图可供在线下载的STC89C51小系统板实验现象 按下阶梯波键时 按下三角波键时 按下方波键时 按下正弦波键时 五 经改进后的硬件图及改进后的现象图实验现象阶梯波形 三角波形 方波波形 按下正弦波波形键时出现的波形 (与正弦波有点出入)六 总结 组长:陈丽华 全程参与组员:李小兵 负责硬件焊接及调试张欢 负责方波模块及PPT杜浩 负责正弦波模块,有参与到硬件调试张浩 负责阶梯波模块和元器件购买李冲 负责三角波模块和元器件购买 通过这次对波形发生器的设计和实践,让我们进一步了解了设

22、计的程序,也让我们了解了关于波形发生器的基本原理与设计理念,要设计一个电路要先用仿真仿真成功后才能实际节线和焊接,但是最后的成品却不一定与仿真时完全一样,因为在实际接线中有着各种个样的条件制约着,例如做音乐发生器时在接蜂鸣器之前必需加一个驱动. 在程序设计时时有不懂的地方需时时翻书,说明了对单片机技术掌握的并不是很熟悉,有待进一步提高对其的深入了解,同时在做这个课程设计的过程中我们了解到了更多有关于单片机的应用,像老师所说的那样,什么东西都可以用单片机做出来,只是看你钻没钻进去,还有就是意识到了学好模拟电路基础和数字电路基础是十分重要的,那是做单片机应用知识所必备的 在硬件电路的焊接时,一定要

23、记住每个芯片都有正极和负极,它们必须接相应的地方不可遗漏,在去购买元器件之前,一定要把所有要买的东西列一个清单,不是仅仅拿着已经仿真好的电路图就可以,那样很可能会造成不必要的麻烦,为了以后的学习方便,我们直接买了个小系统版,却因为在接了直流电压源以后就只顾着看示波器,电流源突然跳变到10V而使得小系统板上的芯片STC89C51爆炸,主要的供在线下载功能的芯片也一起损坏,以至于此小系统板只能做外扩而不得下载了,于是又买了一个,由此耗资甚大,所以得结论:在未接电源之前一定要等电压源稳定才接,已连接焊好的板子要放平,动作要轻缓,不要因为大意而触动了连线带动电压源变化使得电流过大烧坏元件。 通过这次设

24、计,让我们进一步加深了对单片机的了解,让我们对它有了更加浓厚的兴趣,特别是在焊接完后调试找观察现象时,遇到了一些难题时,要冲破这些障碍的心让我们更加迫切的想要去了解更多关于单片机的东西,原来以为很简单的东西并非想像中简单,而难得也并非无法可破,这次课程的设计使我们懂得了理论与实际相结合是很重要的,只是有知识是不够的,只有把所学的理论知识与实践结合起来,从理论中得出结论,才能更好的学习和运用我们学的这门课程,在这次课程设计的过程中,我深深体会到团队合作的精神是极其重要的因为身在一个团队,有了困难大家一起解决,减少了压力,同时拓展了思维,交换了意见,一个人的思想当被接受和了解时,我们有了更多的思想关于一个问题,我想这些都是作为一个团队的好处 经过此次课程设计,我们经历了喜,怒,哀,乐。同时我们也对明年的毕业设计有了一定的想法和实现自己想法的决心.七 老师评价:参考文献(1) 单片机原理实用教程-基于Proteus虚拟仿真(2) 单片机原理,接口技术及应用

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号