版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机课程设计一一音乐提示定时器设计单片机课程设计一一音乐提示定时器设计 设计者:赵莎莎第4章使用说明1、 通电以后,显示窗显示默认设定时间“0500”计时5分钟。2、 按时间设定键A、B、C、D,可设定不同时间的定时。A键:可设定时间在1-60分钟内以5分钟为最小时间段进行调整,每按键一次,时间加5分钟。B键:设置倒数计时时间为5分钟,与默认时间相同。C键:设置倒数计时时间为10分钟,显示为“1000”D键:设置倒数计时时间为20分钟,显示为“2000”。3、 设定时间后,定时器开始工作。4、 定时时间到,会播放一段音乐,按任意键停止。5、 在任何情况下,按下复位键(R键),定时器重新回到初始状态,显示默认时间“0500”。第5章设计总结课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。回顾起此次单片机课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说数码管的共阴极和共阳极的字型码的区别,有对单片机芯片的选择的犹豫不定,还有对单片机汇编语言掌握得不好。不过总的来说还是受益非浅,两周昼夜的付出也是有回报的,经过自己的亲身的体验,进一步巩固了先前不熟悉的知识,锻炼了自己的思维能力,动手能力,也感受到了理论和实际结合的重要性,要使两者很好的结合还是有挑战性的,两周的课程设计可谓之尝尽人间酸甜苦辣,在苦中弥补自己的不足,之后才会感受到收获的快乐。致谢这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,后在周向红老师的辛勤指导下,终于游逆而解。同时,在周老师的身上我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!参考文献1、《51系列单片机设计实例》楼然苗李光飞 北航出版社2、《单片机应用系统设计》何立民北航出版社3、《单片机原理及应用》王迎旭机械工业出版社4、《单片机实用系统设计技术》房小翠国防工业出版社附录:A系统电路原理图<9nono08-762030203.4C5Ou_/7<9DXI
DXRDXI
DXRPPPPPPPPHI'RWDRHEJR2X1XQ—II9Nd-N9d3PPPPPPPP0・•2—923c310^X3B系统程序清单――伪定义一一L0〜L0〜L3:显示数据存储器功能键K1、K2、K3、K4SLEQU30HSHEQU31HMLEQU32HMHEQU33H ;L0EQU34H ;L1EQU35HL2EQU36HL3EQU37HDSPLYPEQU38H;PLYTSEQU39H;LPLMODBIT37H;HPLMODBIT38H;BRIGHTBIT39H;TCOUNTEQU3AH;ADDRESSEQU3B;TOC\o"1-5"\h\zMAXEQU3CH ;IFDECBIT20H ;R_MODEQU3DH;BELLBLDP3.7 ;AKEYBITP1.0 ;BKEYBITP1.1CKEYBITP1.2DKEYBITP1.3秒的个位数秒的十位数分的个位数分的十位数显示数据指针显示次数计数器低两位显示方式高两位显示方式DISPLAY子程序参数时间计数器加1子程序参数加1子程序参数BCD减法子程序参数响铃方式参数蜂鸣器主程序MAIN:MOVIE,#00HMAIN:MOVIE,#00HMOVSP#57HMOVPS,MOVSP#57HMOVPS,#00H;设置堆栈指针;选用寄存器组0MOVTMOD#11HMOVTLD#0B0H;设定中断工作方式为MOVTMOD#11HMOVTLD#0B0H;设定中断工作方式为T0和T1;赋中断T0初值MOVTH0#3CHMOVSL#00HMOVSH#00H;默认状态定时MOVSL#00HMOVSH#00H;默认状态定时5分钟;秒MOVML#05HMOVM,#00HMOVPLYT,#64H;赋显示次数初值为100次MOVDSPLY,#L0;现实指针指向显存单元MOVL0#00;送显示数据“0500”MOVL0#00MOVL1#00MOVL1#00MOVL2#05MOVL2#05MOVL3#00MOVL3#00SETBLPLMOD;SETBLPLMOD;设定显示方式为闪烁SETBHPLMODSETBRIGHTSETBEA;SETBRIGHTSETBEA;允许显示;开中断MAIN1ACALLDISPLYJBAKEYK1;调用显示MAIN1ACALLDISPLYJBAKEYK1;调用显示;A、BCD键扫描ACALLKEYDLYJBAKEYK1JBBKEYBEGIN ;有键按下则转为相应计时状态ACALLKEYDLYJBBKEYBEGINJBCKEYK3ACALLKEYDLYJBCKEYK3JBDKEYK4ACALLKEYDLYJBDKEYK4BEGINSETET0;无键按下,以默认值0500开始计时SETTR0K1:CLRET0CLRTR0MOVSL#00MOVSH#00MOVMJL#00MOVM,#00SETCLRLPLMODSETBHPLMODMOVMAX,#60HMOVR2,#5;使每按键一次,调用加SET1:MOVADDRES徘MH;有键按下,中断,停止计时;清除原计时数据;设置分位;高两位数码管闪烁;最大数为601程序5次;移入分位的地址ACALLADDONE ;调用力卩1程序DJNZR2,SET1;循环,使A键按键一次,分位加5JBAKEY,SETACALLKEYDLYJBAKEY,SETLJMBBEGINK3:CLRET0;CLRTRO;MOVL0,#00MOVL1,#00MOVL2,#00MOVL3,#01LJMPBEGINK4:CLRET0CLRTR0;MOVL0,#00MOVL1,#00MOVL2,#00MOVL3,#02DJMPBEGINJUDGEMOVA,SLJNZMAIN1;有键按下,再加5分钟;无键按下,开始计时;有键按下,停止计时;设定1000;送显示数据;有键按下,停止计时;设定2000;送显示数据2000;判断秒是否为0MOVA,SHJNZMAIN1MOVA,MLJNZMAIN1MOVA,MHJNZMAIN1CLRETOCLRTROACALLMUSICOAJMPMAIN——倒计时程序——PGTOCLREAPUSHACCPUSHPSWPUSHDPLPUSHDPHMOVPSW#08HCLRTROMOVA#O87HADDATLOMOVTLOAMOVA#3CHADDATHOMOVTHOASETBTRO;判断分是否为O;分、秒全为O,停止计时;调用定时到音乐播放程序;返回;关中断;保护现场;选用寄存器组1;暂停计时;中断同步修正恢复计时MOVTCOUNT14HDECTCOUNT;定时器每50.000ms溢出一次MOVA,TCOUNT;溢出20次为1sJNZOUTT0;判断是否到1sMOVR0#SH;移入秒位的地址SETBIFDEC;BCD子程序参数,使其做减法ACALLADDBCD;调用BCD子程序,秒减1CJNER3#99H,OUTT0;判断秒是否要借位MOVSH#05H;要借位则送数据59MOVSL#09HMOVR0#MH;移入分位的地址ACALLADDBCD;分减1OUTT0POPDFHPOPDPLPOPPSWPOPACCSETBEA;开中断RETI;中断返回——BCD?程序——ADDBCDMOVA@RO;移入被操作数的高位DECRO;指针减1SWAPAORLA@R0;移入被操作数的低位MOVB#01H;B寄存器送立即数#01H
MOVCIFDEC;减法标志位为MOVB.3CMOVB.4,C ;寄存器B被改位#99HMOVB.7,1ADDAB;对一个压缩的BCD码加#90H等于减1DAAMOVR3AANLA,#0FHMOVDAAMOVR3AANLA,#0FHMOV@RO,AMOVAR3INCROSWAPAANLA,0FHMOV@R0,ARET;暂存结果;取低位码;存数;取结果;指针加1;交换;取结果数的高位;存数加1程序ADDONEMOVR0,ADDRESS;移入被加数单元的地址CLRIFDEC;设定BCD子程序做加法ACALLADDBC;调用BC子程序CLRC;判断被加数是否大于最大值“MAXMOVAR3CJNEAMAXJGOVERJGOVE:JCENDADD
CARAM0@RO,ADECROMOV@RO,A;若大于“MA”;若大于“MA”则清0;返回 音乐播放程序 MUSICO:NOPMOVDPTR,#DATMOV20H,#00HMOVB,#00HMUSIC1:NOP;表头地址送DPTR;中断计数器清0;表序号清0CLRAMOVCA,@A+DPTR;查表取代码JZEND0 ;是00H,则结束CJNEA,#0FFH,MUSIC5LJMPMUSIC3MUSIC5:NOPMOVR6,AINCDPTRMOVA,BMOVCA,@A+DPTR;取节拍代码ADDA,#5;调整节奏MOVR7,AMOVP1,A;送P1口显示节拍SETBTR0;启动计数
MUSIC2:NOPCPLP3.7MOVA,R6MOVR3,ALCALLDELMOVA,R7CJNEA,20H,MUSIC2;不等,则继续循环MOV20H,#00HINCDPTRLJMPMUSIC1MUSIC3:NOPCLRTR0MOVR2,#0DHMUSIC4:NOPMOVR3,#0FFHLCALLDELDJNZR2,MUSIC4INCDPTRLJMPMUSIC1END0:NOPMOVR2,#64HMUSIC6:MOVR3,#00HLCALLDEL;中断计数器(;中断计数器(20H)=R7否?;等于,则取下一代码;休止100毫秒;歌曲结束,延时1秒后继续LJMPMUSIC0
DEL:NOPDEL3:MOVR4,#02HDEL4:NOPDJNZR4,DEL4NOPDJNZR3,DEL3RETNOPDAT:DB18H,30H,1CH,10HDB20H,40H,1CH,10HDB18H,10H,20H,10HDB1CH,10H,18H,40HDB1CH,20H,20H,20HDB1CH,20H,18H,20HDB20H,80H,0FFH,20HDB30H,1CH,10H,18HDB20H,15H,20H,1CHDB20H,20H,20H,26HDB40H,20H,20H,2BHDB20H,26H,20H,20HDB20H,30H,80H,0FFHDB20H,20H,1CH,10HDB18H,10H,20H,20HDB26H,20H,2BH,20HDB30H,20H,2BH,40HDB20H,20H,1CH,10HDB18H,10H,20H,20HDB26H,20H,2BH,20HDB30H,20H,2BH,40HDB20H,30H,1CH,10HDB18H,20H,15H,20HDB1CH,20H,20H,20HDB26H,40H,20H,20HDB2BH,20H,26H,20HDB20H,20H,30H,80HDB20H,30H,1CH,10HDB20H,10H,1CH,10HDB20H,20H,26H,20HDB2BH,20H,30H,20HDB2BH,40H,20H,15HDB1FH,05H,20H,10HDB1CH,10H,20H,20HDB26H,20H,2BH,20HDB30H,20H,2BH,40HDB20H,30H,1CH,10HDB18H,20H,15H,20HDB1CH,20H,20H,20HDB26H,40H,20H,20HDB2BH,20H,26H,20HDB20H,20H,30H,30HDB20H,30H,1CH,10HDB18H,40H,1CH,20H
DB20H,20H,26H,40HDB13H,60H,18H,20HDB15H,40H,13H,40HDB18H,80H,00H显示程序DISPLYPUSHACCPUSHPSWMOVPSW,显示程序DISPLYPUSHACCPUSHPSWMOVPSW,#10HMOVR0 ,DSPLYPMOVR2 ,#0FDHMOVAPLYTSJNZPLAYMOVPLYTS#64HPLAYDECPLYTSJNBLPLMODAJMPPLAY1;用来显示低位PLAYLORLP0,#7FHORLP3,#3CHMOVA,R2RLAANLP3 ,AMOVR2 ,AMOVA R0;数据压栈保护;选用寄存器组2;移入显示指针;R2寄存的是数码管选通数;移入显示循环控制量;不为0则转PLAY;否则重新赋值;显示循环控制量减1,PLAYL低两位数码管不闪,则“PLAYL;转显示高位数码管;清原显示数据;清原选通数据;移入数码管位选数;换一位;选通低位的个位数码管;暂存位选数;移入显示数值MOVDPTR,#TABLE1;移入表首地址MOVCA A+DPTR;查表ANLP0,AACALLDL1MSINCR0JBP3.3 ,PLAYL;送显示数据;延时;指向低位的十位数;显示低位的十位数;高两位不闪,贝;高两位不闪,贝PLAYH;转结束;清原来显示数据;清原来选通数据;选通高位的个位数码管;移入显示的数据;移入表首地址;查表;送显示数据;延时;指向高位的十位数;清原来显示数据;清原来选通数据;选通高位的十位数码管;移入显示数值;移入表首地址;查表PLAY1JNBHPLMODPLAYHAJMPOUTPLY;用来显示高位PLAYHORLP0,#7FHORLP3,#3CHANL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论