收藏 分销(赏)

单片机系统课程设计报告--大学毕业设计论文.doc

上传人:天**** 文档编号:2171449 上传时间:2024-05-21 格式:DOC 页数:31 大小:254KB 下载积分:12 金币
下载 相关 举报
单片机系统课程设计报告--大学毕业设计论文.doc_第1页
第1页 / 共31页
单片机系统课程设计报告--大学毕业设计论文.doc_第2页
第2页 / 共31页


点击查看更多>>
资源描述
单片机系统课程设计报告 专 业: 光电信息科学与工程 学 生 姓 名: 学 号: 指 导 教 师: 完成日期:2016 年 5 月 20 日 目录 1 设计任务和要求 3 1.1 设计任务 1.2 设计要求 1.3 方案论证 1.4 模拟仿真结果 2 实际制作与调试 1 2.1 测试方法和测试仪器 2.2 软件调试 2.3 硬件调试 2.4 调试中的问题记录 3 发挥部分设计与调试 5 4 测试结果分析 8 5 课程设计总结 8 附录 程序清单............................................................................................................17 1.设计任务和要求 1.1 设计任务 简易音乐播放器 1.2 设计要求 基本要求:设计一个简易音乐播放器,要求能播放至少三首内置音乐曲目;用按键控制曲目的选择,音乐的播放和暂停,关闭音乐和系统复位;用数码管显示当前播放曲目编号. 扩展要求:用LCD代替数码管显示当前播放曲目的编号和名称,以及下一首即将播放的曲目的编号和名称;用按键控制三种不同播放状态之间的切换:顺序播放,随机播放,单曲循环。 1.3 方案论证 以AT89C52单片机为核心,通过对其定时器的设定来实现音乐的播放 ,通过对键盘的设置可以实现人机对话,借助键盘可以向计算机系统输入程序,置数,送操作命令,控制程序的执行走向等,并最终通过LCD显示器显示出播放的乐曲. 系统方案: 1. 音乐播放器的组成 根据系统音乐播放器的功能要求,一个完整的音乐播放器电路相当于一个简单的单片机系统,改系统由按键开关,单片机,LCD显示电路,蜂鸣器控制电路4个方面构成 ●52单片机。52单片机为整个系统的核心部分,是带动整个系统工作的重要部件. ●键盘输入。键盘输入用来控制输入指令,发出指令至单片机,使单片机按照指令工作。 ●扬声器。扬声器作为输出部分按照键盘给单片机的指令发出乐曲。 ●LCD显示电路。LCD显示器作为输出部分,按照键盘给单片机的指令,显示正在演奏的乐曲。 音乐播放的系统组成框图见下 系统总设计框图 理论计算 1. 音阶对应频率计算初值的计算 元器件确定 AT89C52 1 1K电阻 11 100u电容 1 8位开关 1 4位开关 1 74ls02  2 导线 若干 共阴极LCD 1 1.4 模拟仿真结果 2.实际制作与调试 2.1 测试方法和测试仪器 测试仪器:protuse.万用表 测试条件:仿真图 测试方法:通过仿真图进行测试.看是否能正常运行.连线中用万用表检测连线是否正确 2.2 软件调试 ORG 0000H AJMP START;FOSC=12MHZ ORG 000BH ;T0中断入口地址 AJMP INT_T0 ORG 001BH ;T1中断入口地址 AJMP INT_T1 START: MOV SP,#60H MOV TMOD,#11H MOV IE,#8AH MOV IP,#08H ; T1中断优先于T0 MOV TH1,#3CH MOV TL1,#0BH ;初始化.T 60MS W1:MOV P2,#10001110B ;等待提示'F' LCALL GETKEY CJNE A,#0FFH,W1 MOV A,B CJNE A,#0AH,W2 LCALL KEY_A ;输入键是A。转KEY_A SJMP W1 W2:CJNE A,#OBH,W3 LCALL KEY_B ;输入键是B。转KEY_B W3:CJNE A,#0CH,W4 LCALL KEY_C ;输入键是C。转KEY_C W4:CJNE A,#0DH,W5 LCALL KEY_D ;输入键是D。转KEY_D SJMP W1 W5:SJMP W1 2.3硬件调试 并无任何波形 2.4 调试中的问题记录 在仿真与调试中的问题: 最初没有弄懂低音高音的选择.歌曲选择了低32H进行测试.导致歌曲一变成杂音使测试失败. 在选择数码管时因为极性问题.数码管无法显示 调试时因为开关需要按下弹起才算一个完整输出.导致在控制开关闭合上耗费大量的时间去揣摩 在实际接线与实际调试中的问题: 开关最开始选择错误导致无法进行切歌.后来换成8位开关解决了这个问题. 因为实验室没有共阳极的数码管.所以不得不临时改变仿真.加了一个非门使共阴极数码管工作 因为连线过程较为繁杂.所以出现了线接反的情况.导致数码管显示异常. 3.发挥部分设计与调试 单曲循环 KEY_C: ; 选择一首歌循环播放 T3:LCALL GETWORD CJNE A,#0FFH,T3 MOV A,B CJNE A,#00H,D1 SJMP E0 D1:CJNE A,#01H,D2 SJMP E1 D2:CJNE A,#02H,E3 SJMP E2 E0:LCALL MUSIC1 SJMP E0 E1:LCALL MUSIC2 SJMP E1 E2:LCALL MUSIC3 SJMP E2 E3:LCALL MUSIC4 SJMP E3 RET 顺序播放 KEY_A: ; 1-4顺序播放 LCALL MUSIC1 ;《精忠报国》 LCALL MUSIC2 ;《月亮代表我的心》 LCALL MUSIC3 ;《看我七十二变》 LCALL MUSIC4 ;《同一首歌》 RET 4.测试结果分析 测试的结果与我们理想设计的情况相同 与设计指标要求进行比较: 符合基本设计.并完成了扩展要求中的顺序播放及单曲循环.缺陷在于.没有实现扩展要求中的当前播放曲目名称,以及下一首即将播放的曲目的编号的名称.随机播放 5.课程设计总结 此次设计比较成功.团队之间合作密切.使得设计开展以及完成情况都非常不同.问题在于.很多时候一些细微的差错就让我们组耗费大量的时间.例如:数码管选择,开关选择.不然完成时间将会提前.并且很有可能有时间去完成剩下的扩展内容.但很可惜因为时间原因没能完成.为此次实验的遗憾.但收获颇多.对52单片机的了解与.程序的读写有了更深层次的印象 附录:程序清单 ORG 0000H AJMP START;FOSC=12MHZ ORG 000BH ;T0中断入口地址 AJMP INT_T0 ORG 001BH ;T1中断入口地址 AJMP INT_T1 START: MOV SP,#60H MOV TMOD,#11H MOV IE,#8AH MOV IP,#08H ; T1中断优先于T0 MOV TH1,#3CH MOV TL1,#0BH ;初始化.T 60MS W1:MOV P2,#10001110B ;等待提示'F' LCALL GETKEY CJNE A,#0FFH,W1 MOV A,B CJNE A,#0AH,W2 LCALL KEY_A ;输入键是A。转KEY_A SJMP W1 W2:CJNE A,#OBH,W3 LCALL KEY_B ;输入键是B。转KEY_B W3:CJNE A,#0CH,W4 LCALL KEY_C ;输入键是C。转KEY_C W4:CJNE A,#0DH,W5 LCALL KEY_D ;输入键是D。转KEY_D SJMP W1 W5:SJMP W1 KEY_A: ; 1-4顺序播放 LCALL MUSIC1 ;《精忠报国》 LCALL MUSIC2 ;《月亮代表我的心》 LCALL MUSIC3 ;《看我七十二变》 LCALL MUSIC4 ;《同一首歌》 RET KEY_B: ; 1-4循环播放 T11:LCALL KEY_A SJMP T11 RET KEY_C: ; 选择一首歌循环播放 T3:LCALL GETWORD CJNE A,#0FFH,T3 MOV A,B CJNE A,#00H,D1 SJMP E0 D1:CJNE A,#01H,D2 SJMP E1 D2:CJNE A,#02H,E3 SJMP E2 E0:LCALL MUSIC1 SJMP E0 E1:LCALL MUSIC2 SJMP E1 E2:LCALL MUSIC3 SJMP E2 E3:LCALL MUSIC4 SJMP E3 RET KEY_D: ; 选择一首歌播到最后一首 T2:LCALL GETWORD CJNE A,#0FFH,T2 MOV A,B CJNE A,#00H,B1 SJMP C0 B1:CJNE A,#01H,B2 SJMP C1 B2:CJNE A,#02H,C3 SJMP C2 C0:LCALL MUSIC1 ;乐曲《精忠报国》 C1:LCALL MUSIC2 ;乐曲《月亮代表我的心》 C2:LCALL MUSIC3 ;乐曲《看我七十二变》 C3:LCALL MUSIC4 ;乐曲《同一首歌》 RET MUSIC1: MOV P2,#11111001B ; 显示1 MOV R5,#11111001B MOV 52H,#HIGH TABLE10 MOV 32H,#LOW TABLE10 LCALL music RET MUSIC2: MOV P2,#10100100B ; 显示2 MOV R5,#10100100B MOV 52H,#HIGH TABLE20 MOV 53H,#LOW TABLE20 LCALL:music RET MUSIC3: MOV P2,#10110000B ; 显示3 MOV R5,#10110000B MOV 52H,#HIGH TABLE30 MOV 53H,#LOW TABLE30 LCALL music RET MUSIC4: MOV P2,#10011001B ; 显示4 MOV R5,#10011001B MOV 52H,#HIGH TABLE40 MOV 53H,#LOW TABLE40 LCALL music RET music:MOV R3,#00H ;音乐解码器 NEXT20: MOV A,R3 MOV DPH,52H MOV DPL,53H MOVC A,@A+DPTR MOV R2,A JZ STOP ANL A,#0FH MOV R1,A MOV A,R2 SWAP A ANL A,#OFH JNZ SING CLR TR0 JMP W11 SING: DEC A MOV 22H,A RL A MOV DPTR,#TABLE00 MOVC A,@A+DPTR MOV TH0,A MOV 21H,A MOV A,22H RL A INC A MOVC A,@A+DPTR MOV TL0,A MOV 20H,A SETB TR0 SETB TR1 W11: LCALL DELAY3 INC R3 LJMP NEXT20 STOP: CLR TR0 CLR TR1 RET ************** 定时器0中断子程序 ************** INT_T0: CLR TR0 MOV TL0,20H MOV TH0,21H CPL P3.0 SETB TR0 RET1 ************** 定时器1中断子程序 ************** INT_T1: CLR TR1 CLR TR0 LCALL KEY_E MOV TH1,#3CH MOV TL1,#0BH DJNZ 60H,OUT MOV 60H,#20 OUT: SETB TR1 RTEI KEY_E: JB P3.1,L2 ;中断键盘检测 LCALL DELAY2 ;消除抖动 JB P3.1,L2 ;如果是高电平就跳到L2 JNB P3.1,$ ;如果仍是低电平执行中断程序 MOV P2,#10000110B ;LED显示E L3:JB P3.1,$ ;检测到低电平,直到低电平跳出该指令 LCALL DELAY2 JB P3.1,L3 JNB P3.1,$ ;如果再来一个高电平跳出指令 MOV P2,P5 L2:SETB TR0 RET GETKEY: ; 读A,B,C,B键盘子程序 SA:JB P1.0,SB ;读A LCALL DELAY2 JB P1.0,SA JNB P1.0,$ MOV P2,#10001000B ;显示A MOV R5,#10001000B MOV A,#0FFH MOV B,#0AH RET SB:JB P1.1,C11 ;读B LCALL DELAY2 JB P1.1,SB JNB P1.1,$ MOV P2,#10000011B ;显示B MOV R5,#10000011B MOV A,#0FFH MOV B,#0BH RET C11:JB P1.2,ED1 ;读C LCALL DELAY2 JB P1.2,C11 JNB P1.2,$ MOV P2,#11000110B ;显示C MOV R5,#11000110B MOV A,#0FFH MOV B,#0CH RET ED1: JB P1.3,L0 ;读D LCALL DELAY2 JB P1.3,ED1 JNB P1.3,$ MOV P2,#10100001B ;显示D MOV R5,#10100001B MOV A,#0FFH MOV B,#0DH L0:RET GETWORD: ; 读音乐序号子程序 S1:JB P1.4,S2 ;读1键 LCALL DELAY2 JB P1.4,S1 JNB P1.4,$ MOV P2,#11111001B ;显示1 MOV R5,#11111001B MOV A,#0FFH MOV B,#00H RET S2:JB P1.5,S3 ;读2键 LCALL DELAY2 JB P1.5,S2 JNB P1.5,$ MOV P2,#10100100B ;显示2 MOV R5,#10100100B MOV A,#0FFH MOV B,#01H RET S3:JB P1.6,S4 ;读3键 LCALL DELAY2 JB P1.6,S3 JNB P1.6,$ MOV P2,#10110000B ;显示3 MOV R5,#10110000B MOV A,#0FFH MOV B,#0AH RET S4:JB P1.7,l1 ;读4键 LCALL DELAY2 JB P1.7,S1 JNB P1.7,$ MOV P2,#10011001B ;显示4 MOV R5,#10011001B MOV A,#0FFH MOV B,#03H RET L1:RET DELAY: ;延时子程序 PUSH 0 ;保存现场 PUSH 1 MOV 0,#0H DELAY1:MOV 1,#0H DJNE 1,$ DJNE 0,DELAY1 POP 1 ;恢复现场 POP 0 RET DELAY2: ;延时子程序2 MOV 41H,#100 F1:MOV 42H,#250 DJNE 42H,$ DJNE 41H,F1 RET DELAY3: ;延时子程序3 MOV R7,#2 W22:MOV R4,#125 W33:MOV R0,248 DJNZ R0,$ DJNZ R4,W33 DJNZ R7,W22 DJNE R1,DELAY3 RET TABLE00: DW 64260,64400,64524,64580 ;简码值 低音5,低音6,低音7.1 DW 64684,64777,64820,64898 ;简码值2,3,4,5 DW 64968,65030,65058,65110 ;简码值6,7,高音1,高音 DW 65157,65178,65217 ;简码值 高音3,高音4,高音5 ;第一首《》 TABLE10:DB 66H,52H,36H,22H,12H,12H,22H,32H,98H,84H,82H,92H,14H,12H,22H DB 32H,52H,22H,42H,38H,66H,52H,36H,22H,12H,22H,22H,32H,98H DB 24H,22H,32H,54H,52H,32H,92H,12H,92H,82H,98H,66H,52H,36H,22H DB 12H,12H,22H,32H,98H,84H,82H,92H,14H,12H,22H,32H,52H,22H,42H,38H DB 66H,52H,36H,22H,12H,22H,22H,32H,98H,24H,22H,32H,54H,52H,32H DB 22H,12H,92H,82H,98H,14H,24H,34H,44H,64H,0B4H,64H,32H,52H DB 62H,0B2H,62H,52H,38H,24H,22H,32H,54H,52H,62H,52H,32H,32H,22H,38H DB 64H,0B4H,64H,32H,52H,62H,0B2H,62H,52H,38H,22H,22H,22H,32H,52H,52H DB 52H,62H,7FH,74H,04H,58H,6FH DB 00 ;第二首《》 TABLE20:DB 02H,82H DB 16H,32H,54H,02H,52H DB 0A6H,32H,54H,02H,52H DB 64H,74H,0B6H,64H DB 52H,5CH,32H,22H DB 16H,12H,14H,32H,22H DB 16H,12H,14H,22H,32H DB 26H,12H,94H,22H,32H DB 2CH DB 32H,52H DB 36H,22H,14H,54H DB 0ACH,92H,0A2H DB 96H,0A2H,96H,82H DB 3CH,54H DB 36H,22H,14H,54H DB 0ACH,92H,0A2H DB 16H,12H,14H,22H,32H DB 2CH,02H,82H DB 16H,32H,56H,12H DB 0A6H,32H,56H,52H DB 66H,72H,0B6H,62H DB 62H,52H,58H,32H,22H DB 16H,12H,14H,32H,22H DB 16H,12H,14H,22H,32H DB 26H,92H,0A4H,12H,22H DB 1CH DB 00 ;第三首《》 TABLE30:DB 0d4H,84H,94H,82H,92H DB 12H,22H,82H,92H,02H,92H,82H,0d2H DB 82H,92H,14H,84H,02H,0d1H,0d1H DB 0c2H,0d2H,84H,0d2H,0d2H,82H,82H DB 84H,82H,82H,94H,82H,0d2H DB 82H,82H,82H,92H,02H,82H,82H,0d2H DB 0c4H,84H,0d4H,92H,0d2H DB 82H,0d2H,82H,92H,98H DB 04H,94H,88H DB 04H,94H,88H DB 04H,94H,88H DB 04H,94H,88H,04H DB 32H,32H,22H,12H,02H,92H,12H,92H DB 32H,32H,22H,12H,02H,92H,12H,92H DB 32H,32H,22H,12H,02H,92H,12H,22H DB 54H,44H,34H,12H,22H DB 34H,22H,12H,02H,92H,12H,92H DB 32H,32H,22H,12H,02H,92H,12H,92H DB 32H,32H,22H,12H,02H,92H,12H,22H DB 54H,44H,32H,22H,12H,92H DB 00 ;第四首《》 TABLE40:DB 88h,14h,24h,36H,42H,34H,14H,28H,14H,94H DB 1fH,88H,14H,24H,34H,32H,42H,54H,14H DB 46H,32H,54H,22H,32H,32H,22H,2CH,38H,54H,74H DB 76H,62H,68H,54H,52H,62H,74H,62H,52H,3fH DB 46H,42H,54H,64H,54H,42H,32H,28H,0a4H,0a2H DB 92H,84H,94H,1fH,0b8H,68H,46H,52H,68H DB 74H,72H,72H,74H,62H,52H,3fH,0b8H,68H DB 46H,52H,68H,64H,62H,62H,64H,42H,32H,2fH DB 58H,14H,24H,36H,42H,34H,12H,12H,26H,22H,24H,22H,12H DB 94H,9cH,0a8H,0a6H,92H,84H,64H,54H,22H,22H,46H,42H,44H,32H,22H,5fH DB 00
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服