基于单片机控制的数字音乐盒的设计(编辑修改稿)内容摘要:

微机控制技术 .清华大学出版社 .1994:8687 146147 [5] 《融会贯通 Protel99 电路设计》 弘道工作室 北京 人民交通出版设, 2020. [6] 《单片机原理及接口技术实验》 朱定华 北京 北方交通大学出版社 附 1:源 程序代码 RS BIT。 定义液晶显示端口标号 RW BIT E BIT。 ******************************************** L50MS EQU 60H L1MS EQU 61H L250MS EQU 62H SEC EQU 65H MIN EQU 64H HOU EQU 63H。 ******************************************* 0000h 16 ljmp main ORG 000BH LJMP TT0 ORG 001BH LJMP T1INT 1000h main:。 液晶初始化 MOV SP,70H MOV P0,01H。 清屏 CALL ENABLE MOV P0,38H。 8 位, 2 行显示 lCALL ENABLE MOV P0,0FH。 屏显 on,光标 on,闪烁 on lCALL ENABLE MOV P0,06H。 计数地址加 1,显示幕 on lCALL ENABLE。 内存初始化 lcall initil。 key1: lcall key lcall modd ljmp key1。 键盘扫描 key: nop nop lcall ks jnz k1。 有按键转到 K1 lcall kaiji lcall SOP xn: ljmp key k1: lcall modd lcall modd lcall ks jnz k2 ljmp key k2: mov R2,0feh。 读键盘 mov R4,00h k3: mov A,R2 mov P1,A mov A,P1 JB ,L1。 为 1跳转,第一行无按键 mov a,00h ljmp lk L1: jb ,L2 mov a,04h ljmp lk L2: jb ,L3 mov a,08h ljmp lk L3: jb ,next1 mov a,0ch。 lk: add a,R4 push acc k4: lcall delay1。 若同时有其他按键,则等待 lcall ks jnz k4 17。 mov r3,07h clr a mov r0,30h mov r1,31h mm1: mov a,@r1 mov @r0,a inc r0 inc r1 djnz r3,mm1 pop acc mov @r0,a RET。 next1: inc R4。 列扫描 mov a,R2 JNB ,n2 ljmp n1 n2: ljmp key n1: rl a mov R2,a ljmp k3。 ks: mov a,0f0h。 判断 P1口 mov P1,a nop nop mov a,P1 cpl a anl a,0f0h RET。 DELAY1: SETB RS0 dl: mov R5,0ah dl2: mov R6,63 dl3: nop nop djnz R6,dl3 djnz R5,dl2 CLR RS0 RET。 30H37H 初值为零。 initil: mov r3,08h mov r0,30h m1: mov @r0,00h inc r0 djnz r3,m1 RET。 显示。 modd: MOV P0,8EH CALL ENABLE 18 mov A,37H mov DPTR,TABLE3 MOVC A,@A+DPTR CALL WRITE2 RET。 开机提示字。 kaiji: mov a,37h cjne a,0fh,DFF MOV P0,80H。 设光标地址 CALL ENABLE MOV DPTR,TABLE1。 写数据 CALL WRITE1 DFF: RET。 按键值播放歌曲。 SOP: mov a,37h cjne a,01h,A11 LCALL MODD MOV 52H,HIGH TABLE10 MOV 53H,LOW TABLE10 LCALL INITILE2 lcall MAIN0 A11: CJNE A,02H,A22 LCALL MODD MOV 52H,HIGH TABLE20 MOV 53H,LOW TABLE20 LCALL INITILE2 lcall MAIN0 A22: CJNE A,03H,A33 LCALL MODD MOV 52H,HIGH TABLE30 MOV 53H,LOW TABLE30 LCALL INITILE2 lcall MAIN0 A33: CJNE A,04H,A44 LCALL MODD MOV 52H,HIGH TABLE40 MOV 53H,LOW TABLE40 LCALL INITILE2 lcall MAIN0 A44: CJNE A,05H,A55 LCALL MODD MOV 52H,HIGH TABLE50 MOV 53H,LOW TABLE50 LCALL INITILE2 lcall MAIN0 A55: CJNE A,06H,A66 LCALL MODD MOV 52H,HIGH TABLE60 MOV 53H,LOW TABLE60 LCALL INITILE2 lcall MAIN0 A66: CJNE A,07H,A77 LCALL MODD MOV 52H,HIGH TABLE70 19 MOV 53H,LOW TABLE70 LCALL INITILE2 lcall MAIN0 A77: CJNE A,08H,A88 LCALL MODD MOV 52H,HIGH TABLE80 MOV 53H,LOW TABLE80 LCALL INITILE2 lcall MAIN0 A88: CJNE A,09H,A99 LCALL MODD MOV 52H,HIGH TABLE90 MOV 53H,LOW TABLE90 LCALL INITILE2 lcall MAIN0 A99: CJNE A,0AH,AAA LCALL MODD MOV 52H,HIGH TABLE100 MOV 53H,LOW TABLE100 LCALL INITILE2 lcall MAIN0 AAA: RET。 ****************************************** INITILE2: MOV L50MS,20 MOV L1MS,00H MOV L250MS,00H MOV SEC,00H MOV MIN,00H MOV HOU,00H MOV A,HOU MOV B,10 DIV AB ADD A,30H。 将 BCD 吗转化为 ASIIC 码 MOV P0,0C8H。 显示小时十位 CALL ENABLE CALL WRITE2 MOV A,B ADD A,30H MOV P。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。