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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、单片机课程设计函数波形发生器目录一,功能描述 1二,硬件设计 1三,软件设计 2四,运行效果 6五,程序代码 10六,心得体会 15一,功能描述1,系统可以输出锯齿波、三角波、方波和正弦波;2,输出波形的选择通过4只按键加以选择,其对应关系为:按键1234输出波形锯齿波(0)三角波(1)方波(2)正弦波(3)3,每种波形的周期可以通过可调电压控制;4,输出波形可以在示波器上正确显现;5,输出波形编号,在LED数码管有显示;二,硬件设计硬件连接图如下:三,软件设计系统主要由以下几个部分组成:1,主函数;2,锯齿波子函数;3,三角波子函数;4,正弦波子函数;5,显示子函数。各程序流程图分别如下所示

2、。图3-1主程序流程图 图3-2锯齿波流程图图3-3 三角波流程图图3-4 方波流程图 图3-5 正弦波流程图 图3-6 显示子函数四,运行效果图4-1 程序运行界面图4-2 锯齿波运行结果1 图4-3锯齿波运行结果2图4-4 锯齿波运行结果3 图4-5 三角波运行结果1图4-6 三角波运行结果2 图4-7三角波运行结果3图4-8 方波运行结果1 图4-9方波运行结果2图4-10 方波运行结果3 图4-11正弦波运行结果1图4-12 正弦波运行结果2 图4-13正弦波运行结果3图4-14 程序初始化之后的显示为数字“8”图4-15 “0”号波形即锯齿波图4-16 “1”号波形即三角波图4-17

3、 “2”号波形即方波图4-18 “3”号波形即正弦波五,程序代码 ORG 0000H AJMP START ORG 0010H START: MOV DPTR,#0CFFFH;8255控制口地址 MOV A,#80H ;8255输入输出方式控制字,设置pa、pb都为输出口 MOVX DPTR,A MOV SP,#70H ;指针重新定义初值 MOV R3,#08H ;数码管的初值为8 MOV R7,#10 ;改变周期的变量初值 LCALL DISPLAY ;上电数码管显示 LOOP0: JNB P1.0,JUCHI JNB P1.1,SANJIAO JNB P1.2,NEXT0 ;由于rel的跳

4、转范围有限,故借助于LJMP指令 JNB P1.3,NEXT ;理由同上 LCALL DISPLAY SJMP LOOP0 ;等待选择相应的波形NEXT0: LJMP FANGBONEXT: LJMP SINE;* ;锯齿波,波形号码“0”;*JUCHI: MOV R3,#00H ;输出显示波形号码 LCALL DISPLAY MOV A,#00HLP0: MOV DPTR,#0EFFFH ;0832地址 MOVX DPTR,A ;输出波形上一个点 MOV DPTR,#0FFFFH ;开启转换 MOVX DPTR,A JB P3.2,$ ;查询AD转换完成 PUSH ACC ;保存波形上的点

5、MOVX A,DPTRJU0: MOV R5,A ;转换完成传进单片机的值JU1: MOV R4,#100 ;延时JU2: DJNZ R4,JU2 DJNZ R5,JU1 POP ACC INC A JNB P1.1, EXIT0 ;检测新的波形输出命令 JNB P1.2, EXIT0 JNB P1.3, EXIT0 LJMP LP0EXIT0: MOV R3,#08H LJMP LOOP0;* ;三角波,波形号码“1”;* SANJIAO:MOV R3,#01H ;输出显示波形号码 MOV A,R3 LCALL DISPLAY MOV A,#00HLP1: MOV DPTR,#0EFFFH

6、;三角波,DAC0832地址 MOVX DPTR,A ;三角波的上升边 MOV DPTR,#0FFFFH MOVX DPTR,A JB P3.2,$ PUSH ACC MOVX A,DPTRSAN0: MOV R5,A ;转换完成传进单片机的值SAN1: MOV R4,#100 ;延时SAN2: DJNZ R4,SAN2 DJNZ R5,SAN1 POP ACC INC A JNB P1.0,EXIT1 ;检测新的波形输出命令 JNB P1.2,EXIT1 JNB P1.3,EXIT1 JNZ LP1DOWN: DEC A ;三角波的下降边 JNB P1.0,EXIT1 ;检测新的波形输出命令

7、,由于三角波有上升下降两段,为了保证对新的波形命令的相应速度 JNB P1.2,EXIT1 JNB P1.3,EXIT1 MOV DPTR,#0FFFFH MOVX DPTR,A JB P3.2,$ PUSH ACC MOVX A,DPTRSAN3: MOV R5,A ;转换完成传进单片机的值SAN4: MOV R4,#100 ;延时SAN5: DJNZ R4,SAN5 DJNZ R5,SAN4 POP ACC MOV DPTR,#0EFFFH MOVX DPTR,A JNZ DOWN SJMP LP1EXIT1: MOV R3,#08H LJMP LOOP0 ;* ;方波,波形号码“2”;*

8、 FANGBO: MOV R3,#02H ;输出显示波形号码 LCALL DISPLAYLP2: MOV DPTR,#0EFFFH ;DAC0832地址 MOV A,#0FFH ;方波上限 MOVX DPTR,A MOV DPTR,#0FFFFH ;开启转换 MOVX DPTR,A JB P3.2,$ MOVX A,DPTRFANG0: MOV R5,AFANG1: MOV R4,#100FANG2: DJNZ R4,FANG2 DJNZ R5,FANG1 JNB P1.0, EXIT2 ;检测新的波形输出命令 JNB P1.1, EXIT2 JNB P1.3, EXIT2 MOV DPTR,

9、#0EFFFH MOV A,#00H ;方波下限 MOVX DPTR,A MOV DPTR,#0FFFFH ;开启转换 MOVX DPTR,A JB P3.2,$ MOVX A,DPTRDL3: MOV R5,A ;延时DL4: MOV R4,#100DL5: DJNZ R4,DL5 DJNZ R5,DL4 JNB P1.0, EXIT2 ;检测新的波形输出命令 JNB P1.1, EXIT2 JNB P1.3, EXIT2 SJMP LP2EXIT2: MOV R3,#08H RET ;* ;正弦波,波形号码“3”;* SINE: MOV R3,#03H ;输出显示波形号码 LCALL DI

10、SPLAY MOV DPTR,#0EFFFH ;DAC0832地址 MOV DPTR,#sinTab MOV 00H,#00H ;开辟00H单元,不停加一,直至溢出,循环加一,因为正弦表是256个点SINE_1: MOV A,00H MOV DPTR,#sinTab MOVC A,A+DPTR ;查正弦表 MOV DPTR,#0EFFFH MOVX DPTR,A MOV DPTR,#0FFFFH MOVX DPTR,A JB P3.2,$ PUSH ACC MOVX A,DPTRSINE0: MOV R5,ASINE1: MOV R4,#100SINE2: DJNZ R4,SINE2 DJNZ

11、 R5,SINE1 POP ACC INC 00H JNB P1.0, EXIT3 ;检测新的波形输出命令 JNB P1.1, EXIT3 JNB P1.2, EXIT3 AJMP SINE_1EXIT3: MOV R3,#08H RET ;* ;显示子程序;* DISPLAY:MOV A,#07FH ;选择最后一个数码管 MOV DPTR,#0CFFDH ;8255pb口作为位选 MOVX DPTR,A MOV A,R3 MOV DPTR,#TAB MOVC A,A+DPTR MOV DPTR,#0CFFCH ;8255pa口作为段选 MOVX DPTR,A RET TAB: DB 3FH,

12、06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00HsinTab: 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

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

14、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, 27

15、H 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, 11H, 13H, 15H DB 1

16、6H, 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 六,心得体会这次课程设计是我大学以来做的最满意的一次课程设计,通过对所学知识的运用,适当结合一点新的知识,做出一点东西出来。但这一个星期过的极为痛苦,吃了几天的面包,待在实验室调试

17、程序。调试程序是个艰难的过程,因为任何一个小的错误都有可能导致运行结果不当,这次课程设计其中一个最大的收获就是学会了如何查错,如何排除错误,找到问题所在,本次试验程序的编写最终正是按照这样的思路来的,将整个大程序分成若干小程序,逐个检验正确性。首先通过编写显示小程序排查出片选3是有问题的,换了片选之后,显示正确;然后因为一旦加入改变周期的程序,就运行不出结果,我就单独编写0809的程序,检验0809是否有输出。这两个程序在程序文件夹内。当然,还有一些不足,比如没有选用赋值伪指令来代替8055、0832、0809的地址,所以调试过程中改地址非常麻烦;另外当我用中断来编写改变周期的程序时就是运行不正确,换成查询方式就可以,这一点还没弄得清楚。总之,有付出、有收获,很充实、很欣慰。

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

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