课程设计上传_第1页
课程设计上传_第2页
课程设计上传_第3页
课程设计上传_第4页
课程设计上传_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机原理及系统课程设计报告单片机原理及系统课程设计报告评语:考勤10分守纪10分过程30分设计报告30分答辩20分总成绩(100)专 业:班 级: 姓 名: 学 号: 指导教师: 2015 年12月30日单片机原理及系统课程设计报告基于单片机的信号发生器1引言信号发生器应用广泛,种类繁多,性能各异,分类也不尽相同。根据频率大小不同可以分为:超低频信号发生器、低频信号发生器、视频信号发生器、高频信号发生器、甚高频波形发生器和超高频信号发生器。按照输出波形分类可以分为:正弦信号发生器和非正弦信号发生器。非正弦信号发生器又包括:脉冲信号发生器、函数信号发生器、扫频信号发生器、数字序列波形发生器、图

2、形信号发生器、噪声信号发生器等。按照信号发生器性能指标可以分为一般信号发生器和标准信号发生器。前者指对输出信号的频率、幅度的准确度和稳定度以及波形失真等要求不高的一类信号发生器。后者是指其输出信号的频率、幅度、调制系数等在一定范围内连续可调,并且读数准确、稳定、屏蔽良好的中、高档信号发生器。这次课设的主要目的是实现简易信号发生器的设计,在设计中考虑到波形可以在一定范围内实现频率和幅值的调整以及不同波形之间的变换,最终准确地将波形在示波器中显示出来。此次的简易信号发生器的设计,采用单片机编程方式,通过数模转换来实现正弦波、三角波、锯齿波、方波的输出。在程序运行中,当接收到来自外界的命令,可按实际

3、的需要调整信号的频率、幅值及波形,需要输出某种波形时再调用相应的中断服务子程序和波形产生程序,经电路中的数模转换器和运算放大器处理之后,在示波器上显示出来。2设计方案及原理2.1基本设计要求(1)通过按键产生正弦波、方波、锯齿波和三角波四种波形。通过按键来实现波形调频和调幅(正弦波不调幅)。正弦波、方波、锯齿波或三角波的产生可以用单片机汇编语言程序编写并通过数模转换芯片DAC0832显示出来。(2)显示出仿真波形,通过数模转换显示。(3)通过按键选择输出波形的种类,按键按下产生外部中断来切换波形。(4)在此基础上使输出波形的幅值可控,可通过按键来实现。2.2设计方案方案一:用四个按键来代表四种

4、波形,然后分别用四个按键来代表每种波形的调频功能,再用四个按键来代表各自波形的调幅功能。方案二:用四个按键来代表四种波形,然后用一个按键来控制四个波形的调频,再用一个按键来实现除正弦波外其他波形的调幅。由于正弦波本身的特殊性,此次设计中我们对正弦波不进行调幅。通过比较两个方案,方案一器件较多,连线繁琐,方案二较方案一简单,也降低了写代码的难度。本系统由主控模块、按键模块、放大电路以及显示模块组成。将波形按键、调频按键、调幅按键、作为输入信号输入到单片机内来调用相应的子程序产生不同种类的波形,并实现波形的调幅与调频。将单片机产生的数字信号通过数模转换芯片DAC0832转换成模拟量输出,由于输出的

5、为模拟电流,需通过放大电路将电流量转换为电压并在示波器上显示出相应波形。2.3设计原理设计原理如图1所示。图1 设计原理图3硬件设计硬件连接如图2所示。图2 硬件连接图3.1主控电路将四个波形按键通过四端输入“与”门74LS21接入单片机的P3.2口即外部中断0请求输入端(低电平有效)。当按键按下,该信号线上为低电平,经74LS21“与”门输出后,使得P3.2口为低电平,产生外部中断,执行相应的波形产生子程序,输出相应的波形。主控电路图如图3所示。图3 主控电路图3.2按键电路 正弦波按键、方波按键、三角波按键、锯齿波按键分别接入单片机的P1.2、P1.3、P1.4、P1.5,当按下去时对应的

6、接口为低电平,即当检测到某个接口为低电平时,产生外部中断,就调用对应的波形产生子程序。调幅按键、调频按键分别接入单片机的P1.0、P1.1,当按下去时对应的接口为低电平,即当检测到某个接口为低电平时,就调用对应的调幅调频程序。按键电路如下图4所示。 图4 按键电路图3.3数模转换电路将单片机的P0.0P0.7接入DAC0832的DI0DI7并接上拉电阻RESPACK-8来提高单片机P0口的带负载能力,单片机的P2.0接入DAC0832的1、2、17、18号引脚,当P0、P1、P2端口用作输入时,为避免误读,必须先向对应的输出锁存器写入“1”,然后再读端口引脚。如程序中的MOV P0,#0FFH

7、。要使得芯片DAC0832工作,即被选中,片选信号必须低电平有效,即P2.0口为0。本次设计中,AT89C51和DAC0832接口时,采用双缓冲连接方式,由于DAC0832的CS和XFER引脚都与单片机的P2.0口相连,所以DAC0832的输入寄存器和DAC寄存器地址都为FEFFH。而WR1和WR2同时与AT89C51的WR引脚相连,因此,AT89C51单片机执行如下两条指令就可在CS和XFER上同时产生低电平信号,并在WR1和WR2端同时得到来自WR的负脉冲信号,进而使DAC0832接收AT89C51送来的数字量。 MOV DPTR,#0FEFFH ;DAC0832端口地址为FEFFHMOV

8、X DPTR,A ;启动D/A转换 数模电路如下图5所示。图5 数模转换电路图3.4 放大电路及显示电路DAC0832中,8位D/A转换电路由8位T型电阻网络和电子开关组成,电子开关受“8位DAC寄存器”输出控制,T型电阻网络能输出和数字量成正比的模拟电流。因此,DAC0832通常外接运算放大器才能得到模拟输出电压。Rfb为运算放大器反馈线,常接到运算放大器输出端。Iout1和Iout2为两条模拟电流输出线,通常接运算放大器输入端。放大电路及显示电路如图6所示。图6 放大电路及显示电路图4软件设计4.1软件设计思路正弦波:采用查表法产生正弦波。事先将正弦波的数据计算出来,列表放在程序中,运行时

9、直接调取数据,可通过查表方式获取,通过D/A转换便可得到正弦波,通过调用50us的延时子程序可实现调频功能。方波:分别设两个大小不等的数值,55H和5H,分别作为方波的高电平幅值和低电平幅值,并分别调用200us延时子程序,便可形成方波。三角波:给累加器A赋初值,从00H开始,逐次加1,进行D/A转换,当累加器中的内容为给定幅值时,逐次减1进行D/A转换,直至减为0。如此循环,便可形成三角波。锯齿波:输入数字量从0开始,逐次加1进行D/A转换。当累加器A中的内容等于给定幅值时,将累加器清零,如此循环,便可得到成锯齿波。50us和200us的延时:通过执行指令实现,例如执行MOV R1,#01H

10、,需要一个机器周期,而执行双字节指令DJNZ R2,$,每循环一次,需要两个机器周期,因此,通过对寄存器赋不同的数值实现50us和200us的延时。4.2程序流程图主程序流程图如图7所示。图7 主程序流程图正弦波:采用查表法产生正弦波。事先将正弦波的数据计算出来,列表放在程序中,运行时直接调取数据。通过调用50us延时程序实现调频。流程图如图8所示。图8 正弦波流程图锯齿波:输入数字量从0开始,逐次加1进行D/A转换。当上升到给定值55H时,将A清零,重复上述过程,如此循环,便成锯齿波。改变幅值大小为FFH时,实现调幅,通过在两数据之间执行延时程序实现调频。流程图如图9所示。图9 锯齿波流程图

11、方波:分别设大数值55H和FFH和小数值5H作为方波的上限电平数值和下限电平数值,并分别延时一段时间,就形成方波。通过调用200us延时程序实现调频。流程图如图10所示。图10 方波流程图三角波:三角波的产生较为简单。上升沿遵循数据加1的规律,下降沿则按照数据减1的规律产生。所以在波形上升沿只要判断上一次数据是否为给定的高电平幅值55H,如果不是最大值,将原数据加1输出;而在波形的下降沿只要判断上一次数据是否为0,如果不是0,将原数据减1输出即可。如此循环,便成三角波。通过改变幅值为FFH实现调幅,执行50us延时程序实现调频。流程图如图11所示。图11 三角波流程图4.3 系统程序系统程序见

12、附录。5 软件仿真5.1仿真原理图图12 仿真原理图正弦波正常波形如图13所示。 图13 正弦波正常波形调频后的正弦波波形如图14所示。图14 调频后的正弦波波形方波正常波形如图15所示。 图15 方波正常波形调频后的方波波形如图16所示。图16 调频后的方波波形调幅后的方波波形如图17所示。 图17 调幅后的方波波形三角波正常波形如图18所示。 图18 三角波正常波形调频后的三角波波波形如图19所示。图19 调频后的三角波波形调幅后的三角波波形如图20所示。 图20 调幅后的三角波波形锯齿波正常波形如图21所示。 图21 锯齿波波正常波形调频后的锯齿波波形如图22所示。图22 调频后的锯齿波

13、波形调幅后的锯齿波波形如图23所示。 图23 调幅后的锯齿波波形6总结这次单片机课设历时三周,我选的课题是基于单片机的信号发生器设计。虽然说在设计过程中遇到种种问题,但最终苦尽甘来,得到了想要的结果。这次课程设计让我们学到了很多东西,更加巩固了对单片机的理解,也对即将到来的单片机期末考试有一定的好处。特在设计中,我采用了汇编语言编写程序,不同于之前的C语言,让我对汇编语言有了新的认识,不再向上课时那么茫然。之前上课的时候对汇编语言一知半解,但通过此次课设之后,我对汇编语言的了解更深了,运用更加熟练了。通过本次课设,还锻炼了自己独立设计程序的能力。在本次课程设计中,我将课题设计划分为几个子模块设

14、计,并理清各个模块之间的联系,最后将各子模块联系起来,实现设计所体现的功能。不同的波形用不同的子程序去实现,但他们之间用按键电路联系在一起,通过控制按键来产生不同波形,即正弦波、方波、三角波、锯齿波。通过本次课设,使我们懂得了理论与实际的结合是很重要的。只有把理论知识和实践相结合,才能真正为社会服务,从而提高自己的实践动手能力和独立思考能力。参考文献1王思明,张鑫,杨乔礼etal. 单片机原理及应用系统设计M.北京:科学出版社,20122张毅刚. 单片机原理与应用设计M.电子工业出版社,20083冯博琴,吴宁. 微型计算机原理与接口技术.北京:清华大学出版社,2007附录ORG 0000H L

15、JMP MAIN ;主程序ORG 0003HLJMP ZDORG 0030HMAIN:MOV P0,#0FFH ;给P0口高电平 MOV SP,#60H ;设置堆栈指针 CLR IT0 ;外部中断0设置为低电平触发 SETB EX0 ;开启外部中断0 SETB EA ;开启总中断 START: ;确保每个波形能够循环输出 CJNE R7,#00H,LLL0 SJMP ZX SJMP STARTLLL0: CJNE R7,#01H,LLL1 SJMP FB SJMP STARTLLL1: CJNE R7,#02H,LLL2 SJMP SJ SJMP STARTLLL2: CJNE R7,#03H

16、,LLL3 LJMP JUCLLL3: SJMP START ZD: ;产生外部中断0,检测对应的按钮输出对应的波形 JB P1.2,LL0 ;P1.2=0,则R7=0,产生正弦波,否则转LL0 MOV R7,#00H SJMP LL3LL0: JB P1.3,LL1 MOV R7,#01H SJMP LL3LL1: JB P1.4,LL2 MOV R7,#02H SJMP LL3LL2: JB P1.5,LL3 MOV R7,#03H SJMP LL3LL3: RETI ZX: ;产生正弦波 MOV R3,#00H ;(R3)=00HLOOP0:MOV A,R3 ;将R3的内容给A,即(A)

17、=00H MOV DPTR,#TABLE ;查表,表格首地址赋值给DPTR。 MOVC A,A+DPTR ;将表的第一个数取出并A MOV DPTR,#0FEFFH ;定义DAC0832地址 MOVX DPTR,A ;读数据 INC R3 ;R3的内容加1 JB P1.1,LOOP1 ;如果P1.1=0,正弦波调频,调用50us延时子程序 ;实现调频,否则跳转到LOOP1 LCALL D50USLOOP1:CJNE R3,#255,LOOP0 ;当R3中的内容不等于255时,跳转至LOOP0, ;否则,顺序执行 MOV R3,#00H ;将00H赋给R3 CJNE R7,#00H,START

18、;当(R7)=00H时,即正弦波按键仍按下,继续产 ;生正弦波,否则,跳转至START AJMP ZXFB: ;产生方波 MOV DPTR,#0FEFFH ;定义DAC0832的地址 JB P1.0,LOOP2 ;如果P1.0=0,顺序执行,方波调幅,否则跳转到 ;LOOP2 MOV A,#0CCH ;方波调幅后的高电平幅值为0CCH SJMP LOOP3LOOP2:MOV A,#55H ;未调幅方波高电平幅值为55HLOOP3:MOVXDPTR,A ;读数据 LCALLD200US ;延时 JB P1.1,LOOP4 ;如果P1.1=0,方波调频,调用200us延时子程序 ;实现调频,否则跳

19、转到LOOP4 LCALL D200US LOOP4:MOV A,#5H ;方波低电平幅值为5H MOVXDPTR,A ;读数据 LCALLD200US ;延时 JB P1.1,LOOP5 ;如果P1.1=0,方波调频,调用200us延时子程序 ;实现调频,否则跳转到LOOP4 LCALL D200USLOOP5:CJNE R7,#01H,START ;当(R7)=01H时,即方波按键仍按下,继续产生 ;方波,否则,跳转至START AJMPFBSJ: ;产生三角波 MOV R3,#00H ;(R3)=00HLOOP6:MOV A,R3 ;将R3的内容给A,即(A)=00H MOV DPTR,

20、#0FEFFH ;定义DAC0832的地址 MOVX DPTR,A ;读数据 INC R3 ;波形上升 MOV A,R3 ;将R3的内容给A JB P1.1,LOOP7 ;如果P1.1=0,三角波调频,调用50us延时子程 ;序实现调频,否则跳转到LOOP7 LCALL D50USLOOP7:JB P1.0,LOOP8 ;如果P1.0=0,顺序执行,三角波调幅,否则跳转 ;到LOOP8 CJNE A,#0FFH,LOOP6 ;三角波调幅后的幅值为0FFH SJMP LOOP9LOOP8:CJNE A,#055H,LOOP6 ;三角波未调幅的幅值为055HLOOP9:DEC R3 ;波形下降 J

21、B P1.1,LOOP10 ;如果P1.1=0,三角波调频,调用50us延时子 ;程序实现调频,否则跳转到LOOP10 LCALLD50USLOOP10:MOV A,R3 ;将R3的内容给A MOV DPTR,#0FEFFH ;定义DAC0832的地址 MOVX DPTR,A ;读数据 CJNE R3,#00H,LOOP9 ;如果R3的内容等于零,顺序执行,否则,跳 ;转至LOOP9 CJNE R7,#02H,SJOUT ;当(R7)=02H时,即三角波按键仍按下,继续产 ;生三角波,否则,跳转至SJOUT AJMP SJSJOUT:LJMP STARTJUC: ;产生锯齿波 MOV R3,#

22、00H ;(R3)=00HLOOP11:MOV A,R3 ;将R3的内容给A,即(A)=00H MOV DPTR,#0FEFFH ;定义DAC0832的地址 MOVX DPTR,A ;读数据 INC R3 ;波形上升 MOV A,R3 ;将R3的内容给A JB P1.1,LOOP12 ;如果P1.1=0,锯齿波调频,调用50us延时子程 ;序实现调频,否则跳转到LOOP12 LCALL D50US LOOP12:JB P1.0,LOOP13 ;如果P1.0=0,顺序执行,锯齿波调幅,否则跳 ;转到LOOP13 CJNE A,#0FFH,LOOP11 ;如果A的内容等于0FFH,顺序执行,否则,

23、 ;跳转至LOOP11 SJMPLOOP14LOOP13:CJNEA,#055H,LOOP11 ;如果A的内容等于055H,顺序执行,否则, ;跳转至LOOP11LOOP14:CJNE R7,#03H,JUCOUT ;如果R7的内容等于03H,顺序执行,否则, ;跳转至JUCOUT AJMP JUCJUCOUT:LJMP STARTD200US: ;200s延时,(晶振频率为12MHZ) MOV R1,#1H ;执行该指令需用时1us MOV R2,#98H ;执行该指令需用时1usL5: DJNZ R2,$ ;执行该指令需用时2*98=196us DJNZ R1,L5 ;执行该指令需用时2u

24、s RET D50US: ;50s延时 MOV R1,#1H ;执行该指令需用时1us MOV R2,#23H ;执行该指令需用时1usL6: DJNZ R2,$ ;执行该指令需用时2*23=46us DJNZ R1,L6 ;执行该指令需用时2us RET TABLE: ;产生正弦波代码 DB 080h,083h,086h,089h,08ch,090h,093h,096h,099h,09ch,09fh,0a2h,0a5h,0a8h,0abh,0aehDB 0b1h,0b3h,0b6h,0b9h,0bch,0bfh,0c1h,0c4h,0c7h,0c9h,0cch,0ceh,0d1h,0d3h,

25、0d5h,0d8hDB 0dah,0dch,0deh,0e0h,0e2h,0e4h,0e6h,0e8h,0eah,0ebh,0edh,0efh,0f0h,0f1h,0f3h,0f4hDB 0f5h,0f6h,0f8h,0f9h,0fah,0fah,0fbh,0fch,0fdh,0fdh,0feh,0feh,0feh,0ffh,0ffh,0ffhDB 0ffh,0ffh,0ffh,0ffh,0feh,0feh,0feh,0fdh,0fdh,0fch,0fbh,0fah,0fah,0f9h,0f8h,0f6hDB 0f5h,0f4h,0f3h,0f1h,0f0h,0efh,0edh,0ebh,0eah,0e8h,0e6h,0e4h,0e2h,0e0h,

温馨提示

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

评论

0/150

提交评论