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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于AT89C52单片机信号发生器方案设计书.docx

1、基于AT89C52单片机信号发生器方案设计书引言信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。这次的设计分为五个模块:单片机控制及显示模块、数模转换模块、波形产生模块、输出显示模块、电源模块。使用AT98C52作为主控台结合芯片DAC0832产生1HZ-10HZ频率可调的五种信号波(锯齿波、三角波、方波、梯形波、正弦波)。这几种波形有几个开关控制,可以随意进行切换,十分方便。另外,波形的频率和振幅也可以通过开关进行更改。可以说这次的设计操作简单,内容丰富,而且电路快捷明了。1设计任务1.1设计内容以单片机为基础,设计并开发能输出多种波形(正弦波、三角波、锯齿波、梯形波等)

2、,且频率、幅度可变的函数发生器。1.2设计要求设计借口电路,将这些外设构成一个简单的单片机应用系统,画出接口的连接图和仿真图,并编写出控制波形的程序。2芯片功能介绍 2.1、DAC0832芯片介绍: DAC0832为一个8位D/A转换器,单电源供电,在+5+15V范围内均可正常工作。基准电压的范围为10V,电流建立时间为1s,CMOS工艺,低功耗20mW。DAC0832的内部结构框图如下图所示。图2.1 DAC0832的内部结构框图2.2 DAC0832的外部引脚及功能介绍图如下: 图2.2 DAC0832介绍 2.3 DAC0832的应用:DAC0832一是用作单极性电压输出,二是用作双极性

3、电压输出,最后是用作程控放大器。 2.4 DAC0832与8031的连接方式: DAC0832的与单片机的连接方式有三种方式:(1)单缓冲;(2)双缓冲、(3)直通方式。本程序采用的是方式一即单缓冲方式,ILE为高电平,CS、WR1、WR2、XFER为低电平。 图2.4 DAC0832引脚图3 总体功能图和总原理图 图3.1 总体功能图 图3.2 总原理图4 程序流程图4.1 锯齿波程序流程图锯齿波的实现过程是首先定义一个初值然后进行加法操作,加的步数的多少则根据要求的频率来进行。然后加到某个数之后就再重新设置为初值,再重复执行刚刚的操作,如此循环下去。流程图如下所示: 4.2 三角波程序流程

4、图三角波的实现是设置一个初值,然后进行加数,同样是加到某个数之后再进行减数,减到初值之后就再返回到先前的操作,这个操作跟锯齿波的实现是相似的。此程序输入的VREF的电压是5V,因此该波形输出的最大频率是初值为00H和最终值为0FFH,且步数为1,这样输出的波形是最大的。程序流程图如下图所示:4.3 梯形波程序流程图梯形波输出跟锯齿波和三角波相似,只不过当加到顶峰后的一段时间内不改变A的值,过了一段时间后再将减少A的值,不过先后的步数可以一样也可以不一样。然后减到初始的值后也要持续一段时间,然后再进行加数,如此循环下去。程序流程图如下图所示:4.4 方波程序流程图此波形的实现更加简单,只需开始的

5、时候设置一个初值然后直接输出这个值就行了,输出一段时间后,然后再重新置一个数据,然后再输出这个数据一段时间,但是此时的时间一定要等于前面那段时间。这样才是一个方波,如果两个时间不相同,那就相当于一个脉冲波了。流程图如下图所示:4.5 正弦波程序流程图正弦波的实现则相对比较复杂,因为正弦波的实现是输出各个点的值就行了,可是各个点值则要通过正弦函数来求出,不过这些值直接去网上下载下来使用就可以了。输出的数据刚好是256个数据,这样则可以直接相加就行了。流程图如下图所示:4.6 整体程序流程图如下图所示:5 程序设计ORG 0000H ;程序开始MOV SP,#60H ;设置堆栈MOV DPTR,#

6、7FFFH ;0832的地址SJMP LOPTPL: MOV R6,#04H ;切换频率和幅度(手动调节) MOV R5,#04H SJMP START LOP: JNB P1.5,TPL ;选择调频 MOV R6,#01H ;设置步长 MOV R5,#01H START: JNB P1.0,BX1 ;输出锯齿波 JNB P1.1,BX2 ;输出三角波 JNB P1.2,BX3 ;输出梯形 JNB P1.3,BX4 ;输出方波 JNB P1.4,BX5 ;输出正弦波 SJMP LOP BX1: MOV A,#00H ;设置初值LOOP:MOVX DPTR,A ;把数据送到端口 ADD A,R6

7、 ;通过步长改变上升波形 CJNE A,#00H,LOOP SJMP START ;返回检测开关情况BX2: MOV A,#00H ;设置初值LOOP3:MOVX DPTR,A ;把数据送到端口转换 ADD A,R6 ;通过步长改变上升波形 CJNE A,#00H,LOOP3 DEC A ;减少步长改变数据下降波形LOOP2:MOVX DPTR,A ;把数据送到端口转换 DEC A ;减少步长改变数据下降波形 CJNE A,#00H,LOOP2 SJMP START ;返回检测BX3: MOV A,#00H ;设置初值LOOP4:MOVX DPTR,A ;把数据送到端口转换 ADD A,R6

8、;增加步长改变数据上升波形 CJNE A,#00H,LOOP4 DEC A MOV R7,0EEH ;循环次数LOP2:MOVX DPTR,A ;进行延时 DJNZ R7,LOP2LOOP1:MOVX DPTR,A ;把数据送到端口转换 DEC A CJNE A,#00H,LOOP1 ;是否到最低点 MOV R7,0EEH ;循环次数LOP1:MOVX DPTR,A ;把数据送到端口转换 DJNZ R7,LOP1 ;进行延时 SJMP START ;返回检测BX4: MOV A,#00H ;设置初值最低点 MOV R7,#0EEH ;循环次数LOOP5:MOVX DPTR,A ;进行数据转换

9、DJNZ R7,LOOP5 ;进行延时 MOV A,#0FFH ;设置最高点 MOV R7,#0EEH ;循环次数LOOP6:MOVX DPTR,A ;进行数据转换 DJNZ R7,LOOP6 ;进行延时 MOV A,#00H SJMP START ;返回检测开关变化BX5: MOV A,#00H ;设置初值LOOP7: MOV R7,A ;保存当前的数据 MOV DPTR,#SIN ;读取表的地址 MOVC A,A+DPTR ;读取表中的数据 MOV DPTR,#7FFFH ;D/A0832的端口地址 MOVX DPTR,A ;进行数据转换 MOV A,R7 ;恢复当前数据 INC A ;为

10、读取表的下一个值做准备 CJNE A,#00H,LOOP7 ;是否读完表的数据 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,0E7H,0E9H DB 0EAH,0ECH,0EEH,0EFH,0F1H, 0

11、F2H,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

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

13、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, 08H, 09H DB 0AH, 0BH, 0DH, 0EH, 10H, 1

14、1H, 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 END6 仿真测试现在使用软件Proteus进行仿真测试,下面就相应的仿真效果图: 图5 锯齿波仿真效果图 图6 三角波仿真效果图 图7 梯形波仿真效果图

15、 图8 方波仿真效果图 图9 正弦波仿真效果图从仿真的效果来看,这次的信号发生器的设计是很成功的。而且波形也产生的很漂亮和标准。7 总结与体会经过一系列的努力,终于顺利地完成了这个单片机课程的设计。这是一个磨练意志的过程。从课题的选择开始,计算器的设计、硬件和软件系统的设计、到最后的Proteus软件仿真完成,这其中经历了很多困难,但是更重要的是在这个过程中我得到了很大的锻炼。一方面通过C51单片机等一些器件的设计让我学习和掌握了单片机技术的基础知识和技术要点,也使以前学的很多知识都得到了运用;另一方面在用Proteus软件画电路图时,然后再转换成一维的WORD中进行编辑,这个过程中让我掌握了

16、计算机辅助的设计技术。当然,这是一个需要不断的尝试,不断的校核,不断的修改,最后完成一个合理的设计的过程。需要的是细心和耐心。在很大程度上培养了我拼搏的工作精神。使我受益匪浅,更加明确了自己专业的方向。在这一次的设计中,我不仅学到了关于单片机技术方面的许多专业知识,同时也让我感觉到团队合作的重要性。其实如何有效和快速的找到资料也是课设给我的启发,利用好图书馆和网络,是资源的到最好的利用。与他人交流思想是取得成功的关键,在交流中,不仅强化了自己原有的知识体系,也扩展了自己的思维。课设是一个通过思考、发问、自己解惑并动手、提高的过程。我会在以后的学习中不断学习,积累经验,不断完善自己,让自己变得更加出色。参考文献 1、主编:张毅刚,副主编:彭喜元,董继成 单片机原理及应用,高等教育出版社 2、主编:胡辉单片机应用系统设计与训练 中国水利水电出版社3、主编:周航慈单片机应用程序设计技术 北京航空航天大学出版社

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

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