单片机波形发生器设计.doc_第1页
单片机波形发生器设计.doc_第2页
单片机波形发生器设计.doc_第3页
单片机波形发生器设计.doc_第4页
单片机波形发生器设计.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

石家庄铁道大学四方学院课程设计2009级单片机课程设计 单片机课程设计报告书课题名称单片机波形发生器姓 名倪博学 号 20097251院、系、部电气工程系专 业自动化指导教师马丽 单片机波形发生器设计一、设计目的 学习和掌握单片机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。2人一组,设计一个波形发生器,该波形发生器可发生:方波、三角波、锯齿波、梯形波、正弦波。实际应用中巩固微机原理、单片机、数字电子技术、电子电路设计等专业科目所学知识,为以后的毕业设计打下基础。二、设计要求1指定波形可通过DAC来实现,2用按键来控制输出波形3用一位数码管显示波形代码4 通过直流电动机的运转来观察波形(直流电动机的正反转以及运行速度)三、硬件电路设计1、电路图见附表2、硬件部分:主机芯片80C5174HC573 数码管锁存器,8位D/A转换器芯片DAC0832。四、使用说明该系统的软件比较典型:包括键盘的应用,显示的应用和DA转换器的应用。该波形发生器可发生:方波、三角波、锯齿波、梯形波、正弦波。当启动后:数码管显示“0”;波形为方波当按键一次:数码管显示“1”;波形为三角波当按键第二次:数码管显示“2”;波形为锯齿波当按键第三次:数码管显示“3”;波形为梯形波当按键第四次:数码管显示“4”;波形为正弦波再次按键,显示归零,波形为方波,依次循环进行。不同波形的产生实际上是对输出的二进制数字进行进行相应的改变来实现的。方波的输出最为简单,只要按照设定的周期值将输出的电压改变即可。(通过将输出信号按位取反即可)三角波的输出也比较简单,单片机的输出只要完成数字量递增和递减交替进行即可。(将输出的二进制信号依次加1,达到0xff时依次减1到0x00即可)锯齿波的输出也比较简单,单片机的输出只要完成数字量递增、归零,再次递增、归零如此循环进行即可。(将输出的二进制信号依次加1,达到0xff时置为0x00即可)梯形波的输出也比较简单,单片机的输出只要完成数字量递增、维持延时一定时间,再递减、延时一定时间;再依次类推,循环进行即可。(将输出的二进制信号依次加1,达到0xff时保持一段时间,再依次减1到0x00,保持一段时间即可)正弦波的输出最麻烦,如果在软件中计算出输出的各点电压值,将会浪费很多的CPU时间,以至于无法满足频率的要求。通常最简单的方法是通过手动的方法计算出输出各点的电压值,然后在编写程序时以数组的方式给出。当需要时,只要按照顺序进行输出即可。这种方法比运算法速度快且曲线的形状修改灵活。在本设计中将360度分为256个点,则每两个点之间的间隔为1.4度,然后计算出每个点电压对应的数字量即可。只要反复输出这组数据到DAC,就可以在系统输出端得到想要的正弦波。五、流程图设计开始初始化T0TL0=0启动T0TL0P1R0R0=5?R0=0R0=0?Acall S0R0=1?Acall S1R0=2?Acall S2R0=4?Acall S4LPNNYYYYYNNN1、方波产生流程图 开 始循环开始 给R0赋值00H延时取反延时输出波形,数码管显示判断仍否按下否是返回主函数2、三角波产生流程图否是返回主函数R0=1?输出波形,数码管显示到255减1到0加1到255给R0赋值00H开始3、梯形波发生流程图返回主函数开 始循环开始 给R0赋值00H加1到255延时减1到0输出波形,数码管显示R0=?2否是4、锯齿波产生流程图返回主函数开 始 给R0赋值00H延时加1到255延时减1到0输出波形,数码管显示R0=?3否是六、程序设计如下:源程序:ORG 0000HAJMP MAINORG 0030HMAIN:MOV TMOD,#05H LP6:MOV TL0,#0SETB TR0SETB IT0 LP:MOV P1,TL0MOV R0,P1CJNE R0,#5,LP7SJMP LP6LP7:CJNE R0,#00H,LP1ACALL S0SJMP LPLP1:CJNE R0,#01,LP2ACALL S1SJMP LPLP2:CJNE R0,#02,LP3ACALL S2SJMP LPLP3:CJNE R0,#03,LP4ACALL S3SJMP LPLP4:CJNE R0,#04,LPACALL S4SJMP LPTAB:DB 3FH,06H,5BH,4FH,66HS0:JBC F0,LOOP SETB F0MOV A,#0MOV DPTR,#TABMOVC A,A+DPTRMOV R0,AMOV A,#01HMOV DPTR,#8002HMOVX DPTR,AMOV DPTR,#8004HMOV A,R0MOVX DPTR,AMOV A,#01HMOV DPTR,#9000HLOOP:MOVX DPTR,AACALL DELAYCPL ARETS1:MOV A,#1MOV DPTR,#TABMOVC A,A+DPTRMOV R0,AMOV A,#01HMOV DPTR,#8002HMOVX DPTR,AMOV DPTR,#8004HMOV A,R0MOVX DPTR,AMOV DPTR,#9000HMOV R0,#0LOOP1:MOV A,R0MOVX DPTR,AACALL DELAY1INC R0CJNE R0,#255,LOOP1LOOP2:DEC R0MOV A,R0MOVX DPTR,AACALL DELAY1CJNE R0,#0,LOOP2RETS2:MOV A,#2MOV DPTR,#TABMOVC A,A+DPTRMOV R0,AMOV A,#01HMOV DPTR,#8002HMOVX DPTR,AMOV DPTR,#8004HMOV A,R0MOVX DPTR,AMOV DPTR,#9000HMOV R0,#0LOOP4:MOV A,R0MOVX DPTR,AACALL DELAY1INC R0CJNE R0,#255,LOOP4RETS3:MOV A,#3MOV DPTR,#TABMOVC A,A+DPTRMOV R0,AMOV A,#01HMOV DPTR,#8002HMOVX DPTR,AMOV DPTR,#8004HMOV A,R0MOVX DPTR,AMOV DPTR,#9000HMOV R0,#0LOOP5:MOV A,R0MOVX DPTR,AACALL DELAY1INC R0CJNE R0,#255,LOOP5ACALL DELAYLOOP6:DEC R0MOV A,R0MOVX DPTR,AACALL DELAY1CJNE R0,#0,LOOP6ACALL DELAYRET DELAY1:MOV R1,#255NEXT1:DJNZ R1,NEXT1RETDELAY:MOV R5,#10MOV R6,#200MOV R7,#200LOOP8:DJNZ R6,LOOP8 MOV R6,#200 DJNZ R7,LOOP8 MOV R7,#200 DJNZ R5,LOOP8 MOV R5,#10 RETS4: MOV A,#4MOV DPTR,#TABMOVC A,A+DPTRMOV R0,AMOV A,#01HMOV DPTR,#8002HMOVX DPTR,AMOV A,R0MOV DPTR,#8004HMOVX DPTR,AMOV R0,#0TT1:MOV A,R0MOV DPTR,#SETTABMOVC A,A+DPTRMOV DPTR,#9004HMOVX DPTR,AACALL DELAY2INC R0CJNE R0,#255,TT1RET DELAY2:MOV R1,#255NEXT2:DJNZ R1,NEXT2SETTAB: DB 80H,83H,86H,89H,8DH,90H,93H,96H DB 99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEH DB 0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H DB 0C7H,0CAH,0CCH,0CFH,0D1H, 0D4H,0D6H,0D8H DB 0DAH,0DDH,0DFH,0E1H,0E3H, 0E5H,0E7H,0E9H DB 0EAH,0ECH,0EEH,0EFH,0F1H, 0F2H,0F4H,0F5H DB 0F6H,0F7H,0F8H,0F9H,0FAH, 0FBH,0FCH,0FDH DB 0FDH,0FEH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH DB 0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FEH,0FDH DB 0FDH,0FCH,0FBH,0FAH,0F9H, 0F8H,0F7H,0F6H DB 0F5H,0F4H,0F2H,0F1H,0EFH, 0EEH,0ECH,0EAH DB 0E9H,0E7H,0E5H,0E3H,0E1H, 0DEH,0DDH,0DAH DB 0D8H,0D6H,0D4H,0D1H,0CFH, 0CCH,0CAH,0C7H DB 0C5H,0C2H,0BFH,0BCH,0BAH, 0B7H,0B4H,0B1H DB 0AEH,0ABH,0A8H,0A5H,0A2H, 9FH, 9CH, 99H DB 96H, 93H, 90H, 8DH, 89H, 86H, 83H, 80H DB 80H, 7CH, 79H, 78H, 72H, 6FH, 6CH, 69H DB 66H, 63H, 60H, 5DH, 5AH, 57H, 55H, 51H DB 4EH, 4CH, 48H, 45H, 43H, 40H, 3DH, 3AH DB 38H, 35H, 33H, 30H, 2EH, 2BH, 29H, 27H DB 25H, 22H, 20H, 1EH, 1CH, 1AH, 18H, 16H DB 15H, 13H, 11H, 10H, 0EH, 0DH, 0BH, 0AH DB 09H, 08H, 07H, 06H, 05H, 04H, 03H, 02H DB 02H, 01H, 00H, 00H, 00H, 00H, 00H, 00H程序说明:主程序中通过子程序调用来产生各种波形,调用子程序“S0”;波形为方波调用子程序“S1”;波形为三角波调用子程序“S2”;波形为锯齿波调用子程序“S3”;波形为梯形波调用子程序“S4”;波形为正弦波七、设计总结:经过一学期单片机的学习,我对这门课程有了基本的了解,尤其是对波形发生器有了进一步认识。这次课程的设计,让我得到了一次用所学的知识去分析问题和解决问题的机会,使我在单片机的基本原理,单片机的硬件构成,单片机应用系统开发以及对汇编语言的掌握方面都有进一步的提高,尤其是对单片机的波形发生器有了更进一步的认识。实验过程中,遇到很多问题,如如何通过软件使硬件更加简单,一些编程方法,扩展思维。软件延时的作用、计数器的广泛应用、查表、各种波形子程序的调用等各种应用都涉及到了,在应用过程中,因为循环语句运用不当,导致形成死循环,无法正常执行其它模块,还因循环无法避开初始化部分,导致初始化后边的程序不起作用等等一系

温馨提示

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

评论

0/150

提交评论