ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:2.92MB ,
资源ID:5493919      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5493919.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机课程设计 之波形发生器.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机课程设计 之波形发生器.docx

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.参考

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

3、AC芯片都具有数字量输入端,模拟量输入端和基准电压端。数字量输入端有以下几种类型: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锯齿波

5、模块:8051单片机的累加器A从0开始循环增量,每增量一次向DAC0832写入一个数据,得到一个输出电压,这样可以获得一个正向的阶梯波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,则每个阶梯的

6、时间为t=5*1us,一个正向阶梯波的总周期的总时间为T=255*t=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 ;连续输出波形DE

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

8、#7FFFH ;DAC0832地址TRI: MOV A,#00H ;三角波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 DP

9、TR,#7FFFH ;DAC0832地址SQ: MOV A,#LOW ;取低电平数字量 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所示

10、,对于一个正弦波取N等分离散点,按定义计算出对应于1,2,3.N各离散点的数据值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 ;正弦波

11、MOV R0,#6DHLOOP: CLR A MOVC A,A+DPTR MOV R0,A INC DPTR INC R0 CJNE R0,#80H,LOOP MOV DPTR,#7FFFH ;DAC0832端口地址 MOV R0,#6DHLOOP1: MOV A,R0 ;取得第一个1/4周期的数据 MOVX DPTR,A ;送往DAC0832 INC R0 CJNE R0,#7FH,LOOP1LOOP2: MOV A,R0 ;取得第二个1/4周期的数据 MOVX DPTR,A ;送往DAC0832 DEC R0 CJNE R0,#6DH,LOOP2LOOP3: MOV A,R0 ;取得第三个

12、1/4周期的数据 CPL A ;数据取反 MOVX DPTR,A ;送往DAC0832 INC R0 CJNE R0,#7FH,LOOP3LOOP4: MOV A,R0 ;取得第四个1/4周期的数据 CPL A ;数据取反 MOVX DPTR,A ;送往DAC0832 DEC R0 CJNE R0,#6DH,LOOP4 JB 20H.3, LOOP1 ;输出连续波形 LJMP HERESINTAB: DB 7FH,89H,94H,9FH,0AAH,0B4H,0BEH,0C8H,0D1H,0D9H DB 0E0H,0E7H,0EDH,0F2H,0F7H,0FAH,0FCH,0FEH,0FFH正弦

13、波图3.2.5顶层模块:根据按键按下的不同,中断0对应于不同的波形处理ORG 0000HSTART: LJMP MAIN ORG 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

14、.0, LL1 ;中断服务程序,查询按键 SJMP L1LL1: MOV 20H,#00H SETB 20H.0 ;设置阶梯波标志 SJMP RTL1: JNB P1.2, LL2 SJMP L2LL2: MOV 20H,#00H SETB 20H.1 ;设三角梯波标志 SJMP RTL2: JNB P1.4, LL3 SJMP L3LL3: MOV 20H,#00H SETB 20H.2 ;设置方波标志 SJMP RTL3: JNB P1.6, LL4 SJMP RTLL4: MOV 20H,#00H SETB 20H.3 ;设置正弦波标志 RT: RETI ;中断返回. ;波形程序略 EN

15、D运用Proteus设计的波形发生器仿真原理图如上图是运用Proteus仿真的图形,可是出现的图形很不理想,所以进行了改进下图为改进后的同相比例运算电路改进后的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 000

16、0HSTART: LJMP MAIN ORG 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,#

17、00H SETB 20H.0 ;设置阶梯波标志 SJMP RTL1: JNB P1.2, LL2 SJMP L2LL2: MOV 20H,#00H SETB 20H.1 ;设三角梯波标志 SJMP RTL2: JNB P1.4, LL3 SJMP L3LL3: MOV 20H,#00H SETB 20H.2 ;设置方波标志 SJMP RTL3: JNB P1.6, LL4 SJMP RTLL4: MOV 20H,#00H SETB 20H.3 ;设置正弦波标志 RT: RETI ;中断返回ST: MOV A,#00H ;阶梯波LOOPP: MOVX DPTR,A ;启动D/A转换 INC A

18、JB 20H.0,LOOPP ;连续输出波形 LJMP HERE TRI: MOV A,#00H ;三角波UP: MOVX DPTR,A ;启动D/A转换 INC A ;上升沿 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 DPTR,A ;DAC输出高电平 ACALL DELAY ;延时2 JB

19、 20H.2, SQ ;连续输出波形 LJMP HERESIN: MOV DPTR,#SINTAB ;正弦波 MOV R0,#6DHLOOP: CLR A MOVC A,A+DPTR MOV R0,A INC DPTR INC R0 CJNE R0,#80H,LOOP MOV DPTR,#7FFFH ;DAC0832端口地址 MOV R0,#6DHLOOP1: MOV A,R0 ;取得第一个1/4周期的数据 MOVX DPTR,A ;送往DAC0832 INC R0 CJNE R0,#7FH,LOOP1LOOP2: MOV A,R0 ;取得第二个1/4周期的数据 MOVX DPTR,A ;送往

20、DAC0832 DEC R0 CJNE R0,#6DH,LOOP2LOOP3: MOV A,R0 ;取得第三个1/4周期的数据 CPL A ;数据取反 MOVX DPTR,A ;送往DAC0832 INC R0 CJNE R0,#7FH,LOOP3LOOP4: MOV A,R0 ;取得第四个1/4周期的数据 CPL A ;数据取反 MOVX DPTR,A ;送往DAC0832 DEC R0 CJNE R0,#6DH,LOOP4 JB 20H.3, LOOP1 ;输出连续波形 LJMP HERESINTAB: DB 7FH,89H,94H,9FH,0AAH,0B4H,0BEH,0C8H,0D1H

21、,0D9H DB 0E0H,0E7H,0EDH,0F2H,0F7H,0FAH,0FCH,0FEH,0FFHDELAY: MOV R4,#0FH ;延时子程序LOOP11: MOV R5,#10HLOOP22: NOPNOPNOPDJNZ R5,LOOP22DJNZ R4,LOOP11RETEND原理是基于DAC的电压输出与其数字输入量成正比关系四 原始硬件图可供在线下载的STC89C51小系统板实验现象 按下阶梯波键时 按下三角波键时 按下方波键时 按下正弦波键时 五 经改进后的硬件图及改进后的现象图实验现象阶梯波形 三角波形 方波波形 按下正弦波波形键时出现的波形 (与正弦波有点出入)六 总

22、结 组长:陈丽华 全程参与组员:李小兵 负责硬件焊接及调试张欢 负责方波模块及PPT杜浩 负责正弦波模块,有参与到硬件调试张浩 负责阶梯波模块和元器件购买李冲 负责三角波模块和元器件购买 通过这次对波形发生器的设计和实践,让我们进一步了解了设计的程序,也让我们了解了关于波形发生器的基本原理与设计理念,要设计一个电路要先用仿真仿真成功后才能实际节线和焊接,但是最后的成品却不一定与仿真时完全一样,因为在实际接线中有着各种个样的条件制约着,例如做音乐发生器时在接蜂鸣器之前必需加一个驱动. 在程序设计时时有不懂的地方需时时翻书,说明了对单片机技术掌握的并不是很熟悉,有待进一步提高对其的深入了解,同时在

23、做这个课程设计的过程中我们了解到了更多有关于单片机的应用,像老师所说的那样,什么东西都可以用单片机做出来,只是看你钻没钻进去,还有就是意识到了学好模拟电路基础和数字电路基础是十分重要的,那是做单片机应用知识所必备的 在硬件电路的焊接时,一定要记住每个芯片都有正极和负极,它们必须接相应的地方不可遗漏,在去购买元器件之前,一定要把所有要买的东西列一个清单,不是仅仅拿着已经仿真好的电路图就可以,那样很可能会造成不必要的麻烦,为了以后的学习方便,我们直接买了个小系统版,却因为在接了直流电压源以后就只顾着看示波器,电流源突然跳变到10V而使得小系统板上的芯片STC89C51爆炸,主要的供在线下载功能的芯

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

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1