单片机函数发生器课程设计报告参考(共16页).doc

上传人:飞****2 文档编号:15048669 上传时间:2022-05-10 格式:DOC 页数:16 大小:704.50KB
返回 下载 相关 举报
单片机函数发生器课程设计报告参考(共16页).doc_第1页
第1页 / 共16页
单片机函数发生器课程设计报告参考(共16页).doc_第2页
第2页 / 共16页
点击查看更多>>
资源描述

《单片机函数发生器课程设计报告参考(共16页).doc》由会员分享,可在线阅读,更多相关《单片机函数发生器课程设计报告参考(共16页).doc(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上专心-专注-专业广东第二师范学院单片机课程设计报告 物理 系 09 级 BTEC 专业题目 单片机函数发生器设计 姓名 吴剑锋 学号 6 指导教师 谢丽英 2011年4月10日目 录 单片机函数发生器设计摘要:本设计中主要是运用单片机与DAC0832的组合从而产生信号。本次运用了汇编语言来完成设计,所以具有一定的局限性。关键字:AT89C51;DAC0832;独立式键盘1 引言函数发生器是一种多波形的信号源。它可以产生正弦波、方波、三角波、锯齿波,甚至任意波形。它的用途很广泛。可以用于生产测试、仪器维修和实验室,还广泛使用在其它科技领域,如医学、教育、化学、通讯、地球

2、物理学、工业控制、军事和宇航等。2 设计任务和要求设计任务:以单片机为基础,设计并开发能输出多种波形(正弦波、三角波、锯齿波、梯形波等),且频率、幅度可变的函数发生器。设计要求:1设计借口电路,将这些外设构成一个简单的单片机应用系统,画出接口的连接图和仿真图。2编写下列控制程序,程序要求有注释:(1)能输出正弦波、三角波、锯齿波、梯形波(2)能根据键盘命令进行波形切换2.1 方案设计与论证 本方案是基于AT89C51与DAC0832的单缓冲方式接口电路来设计。单缓冲式接口电路具有过程简单,容易实现。由于本设计运用汇编的编程语言,导致用独立式键盘来实现简单控制。本方案所产生的信号频率稳定性高,精

3、确度高。而且在硬件方面它所选的元器件比较常见。所以总的来说本方案的性价比高。2.2 单元电路设计与参数计算(1)主控电路 AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在

4、单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。1 AT89C51单处机内部设置两个16位可编程的定时器/计数器T0和T1,它们具有计数器方式和定时器方式两种工作方式及4种工作模式。在波形发生器中,将其作定时器使用,用它来精确地确定波形的两个采样点输出之间的延迟时间。模式1采用的是16位计数器,当T0或T1被允许计数后,从初值开始加计数,最高位产生溢出时向CPU请求中断。中断系统是使处理器具有对外界异步事件的处理能力而设置的。当中央处理器CPU正在处理某件事的时候外界发生了紧急事

5、件,要求CPU暂停当前的工作,转而去处理这个紧急事件。在波形发生器中,只用到片内定时器计数器溢出时产生的中断请求,即是在AT89C51输出一个波形采样点信号后,接着启动定时器,在定时器未产生中断之前,AT89C51等待,直到定时器计时结束,产生中断请求,AT89C51响应中断,接着输出下一个采样点信号,如此循环产生所需要的信号波形。如图所示2.1,AT89C51所在电路中的工作情况。 图 2.1 AT89C51工作情况P1口接独立式按键电路,P2口部分接译码器,P0口接锁存器。(2)独立式键盘电路 独立式键盘中,各按键相互独立,每个按键各接一根输入线,每根输入线上的按键工作状态不会影响其它输入

6、线上的工作状态。因此,通过检测输入线的电平状态就可以很容易的判断按键是否被按下了。独立式键盘电路配置灵活,软件结构简单。但每个按键需占用一根输入线,在按键数量较多时,输入口浪费大,电路结构显得很繁杂,故此种键盘适用于按键较少或操作速度较高的场合。如图2.2所示,独立式按键电路。2 图2.2 独立式按键电路 按键与AT89C51的P1口连接。 KEY1是监测是否输出锯齿波按键;KEY2是监测是否输出三角波按键;KEY3监测是否输出梯形波按键;KEY4监测是否输出正弦波按键;KEY5是调频按键。(3)数/模转换电路 DAC0832是8分辨率的D/A转换集成芯片。与微处理器完全兼容。这个DA芯片以其

7、价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。 由于AT89C51所产生的是数字信号,所以通过DAC0832把数字信号转换成模拟信号。DAC0832输出的模拟量是电流,为了转换成电压,所以在它后面接入一个运放器。如图2.3,DAC0832工作电路。 图2.3,DAC0832工作电路(4)驱动电路 74HC138作用原理于高性能的存贮译码或要求传输延迟时间短的数据传输系统,在 高性能存贮器系统中,用这种译码器可以提高译码系统的效率。 74HC573数据锁存器。主要用于数码管、按键等等

8、的控制。如图2.4所示,74HC138加74HC573的工作电路。3 如图2.4所示,74HC138加74HC573的工作电路3 总原理图及及主要模块的流程图总电路图如3.0所示: 图3.0 总电路图各功能模块的功能及作用如表1所示: 表1 各功能模块的功能及作用 模块名称图示功能及作用主控制模块 产生数字信号键盘模块命令产生何种信号数/模转换模块数字信号转换为模拟信号3.1 总原理图及元器件清单总原理方框图如图3.1所示波形输出放大电路驱动电路数/模转换电路单片机键盘电路 图3.1 总原理方框图元器件清单如表2所示表2 元器件清单 元器件名称个数AT89C51芯片X174HC573芯片X17

9、4HC138芯片X1BUTTONX5OP1PX2VCCX2GROUNDX3DC0832X1RESX73.2 主要流程图主程序的流程图如图3.2所示,开始时判断是否调频,然后判断是否调用锯齿波程序,然后判断是否调用三角波程序,然后判断是否调用梯形波程序,然后判断是否调用正弦波程序,最后在循环回到判断是否调频。开始 否是调频 P1.5是否为1 P1.0是否为1 否是调用锯齿波程序P1.1是否为1 调用三角波程序否是P1.2是否为1 否是P1.2是否为1 否是调用梯形波程序调用正弦波程序 图3.2 主流程图4 性能测试与分析(1)调用锯齿波程序如图4.1, 图4.1 锯齿波(2)调频后的锯齿波如图4

10、.2所示图4.2 调频后的锯齿波(3)调用三角波程序如图4.3所示图4.3 三角波(4)调用梯形波程序如图4.4所示图4.4 梯形波(5)调用正弦波程序如图4.5所示图4.5 正弦波通过调试分析,这个程序锯齿波,三角波,梯形波,正弦波,都可以用键盘自由切换。这个程序频率调试成功,但幅度与理想中的还是有一定的差距。5 结论与心得 回顾起此次单片机课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在好几个星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很

11、重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好通过这次课程设计之后,一定把以前所学过的知识重新温故。 参考文献1 梁炳东.单片机原理与应用.北京:人民邮电出版社,20092 周杰,张樱枝.单片机C语言及汇编语言实用程序设计.北京: 电子工业出版社,200

12、93 李学礼. 基于Proteus的8051单片机实例教程.北京:电子工业出版社,2008附录 源代码及注析ORG 0000H;程序开始 MOV SP,#60H;设置堆栈MOV DPTR,#7FFH ;0832的地址LOP: MOV P1,#0FFH MOV A,P1 JNB P1.5,FM ;是否需要调频 MOV R6,#01H ;设置步长 MOV R5,#01H START:JNB P1.0,ST ;输出锯齿波程序 JNB P1.1,TRIANGLE ;输出三角波程序 JNB P1.2,TXING ;输出梯形波程序 JNB P1.3,SINE ;输出正弦波程序 SJMP LOP ;循环检测

13、;-ST : MOV A,#00H ;设置初值 LOOP:MOVX DPTR,A; 把数据送到端口转换 ADD A,R6;通过步长改变数据,上升波形 CJNE A,#00H,LOOP; A值是否到最高点 DJNZ R5,LOOP SJMP LOP ;-TRIANGLE:MOV A,#00H;设置初值 LOOP3:MOVX DPTR,A;把数据送到端口转换 ADD A,R6 ;通过步长改变数据上升波形 CJNE A,#00H,LOOP3 ; A值是否到最高点 DEC A ;减少步长改变数据下降波形 LOOP2:MOVX DPTR,A ;把数据送到端口转换 DEC A ;减少步长改变数据下降波形

14、CJNE A,#00H,LOOP2 ;A值是否到最低点 DJNZ R5,LOOP3 ;波形周期 SJMP LOP ;返回检测开关;-TXING:MOV A,#00H ;设置初值 LOOP4:MOVX DPTR,A ;把数据送到端口转换 ADD A,R6 ;增加步长改变数据上升波形 CJNE A,#00H,LOOP4 ;A值是否到最高点 ;SUBB A,R6;下降波形做准备 DEC A MOV R7,0EEH ;循环次数 LOP2:MOVX DPTR,A ;进行延时 DJNZ R7,LOP2 LOOP1:MOVX DPTR,A ;把数据送到端口转换 ;SUBB A,R6 DEC A CJNE A

15、,#00H,LOOP1 ;是否到最低点 MOV R7,0EEH ;循环次数 LOP1:MOVX DPTR,A ;把数据送到端口转换 DJNZ R7,LOP1 ;进行延时 SJMP LOP ;返回检测开关;-SINE: MOV A,#00H ;设置初值LOOP7: MOV R7,A ;保存当前的数据 MOV DPTR,#SIN;读取表的地址 MOVC A,A+DPTR;读取表中的数据 MOV DPTR,#7FFH ;D/A0832的端口地址 MOVX DPTR,A;进行数据转换 MOV A,R7 ;恢复当前数据 INC A ;为读取表的下一个值做准备 CJNE A,#00H,LOOP7 ;是否读

16、完表的数据 SJMP START ;返回检测开关FM: MOV R6,#04H ;改变调频/调幅 MOV R5,#02H SJMP START ;返回检测开关;-以下是通过正弦的值所建立的一个表SIN: 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,0E

17、7H,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,

18、 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,

19、 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 DB 00H, 00H, 00H, 00H, 00H, 00H, 01H, 02H DB 02H, 03H, 04H, 05H, 06H, 07H,

20、08H, 09H DB 0AH, 0BH, 0DH, 0EH, 10H, 11H, 13H, 15H DB 16H, 18H, 1AH, 1CH, 1EH, 20H, 22H, 25H DB 27H, 29H, 2BH, 2EH, 30H, 33H, 35H, 38H DB 3AH, 3DH, 40H, 43H, 45H, 48H, 4CH, 4EH DB 51H, 55H, 57H, 5AH, 5DH, 60H, 63H, 66H DB 69H, 6CH, 6FH, 72H, 76H, 79H, 7CH, 80H END致谢这次的课程设计通过和李流凯同学的互助,与网上的网友交流。使我解决了一个又一个的问题。攻克了一个又一个的难题。这次能顺利完成课业还得助于谢丽英老师的细心教导。在这里我忠心感谢帮助过我的同学和老师。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁