首页 单片机 电子琴设计 八个声调 三首歌 歌词显示[新版]

单片机 电子琴设计 八个声调 三首歌 歌词显示[新版]

举报
开通vip

单片机 电子琴设计 八个声调 三首歌 歌词显示[新版]单片机 电子琴设计 八个声调 三首歌 歌词显示[新版] 系统功能说明: 1、通过八个按键是否按下发出相应的1234567i这8个音调 2、实验中可以播放三首歌曲,通过开关控制 3、播放歌曲时,液晶屏显示播放歌曲号及歌词 附录1:晶振为12M的音乐频率表 音符 频率(Hz) 简谱码(T值) 低1DO 262 63628 TH0=F7H TL0=24H ,1DO# 277 63731 TH0=F8H TL0=F3H 低2RE 294 63835 TH0=F9H TL0=5BH 311 63928 TH0=...

单片机 电子琴设计 八个声调 三首歌 歌词显示[新版]
单片机 电子琴设计 八个声调 三首歌 歌词显示[新版] 系统功能说明: 1、通过八个按键是否按下发出相应的1234567i这8个音调 2、实验中可以播放三首歌曲,通过开关控制 3、播放歌曲时,液晶屏显示播放歌曲号及歌词 附录1:晶振为12M的音乐频率表 音符 频率(Hz) 简谱码(T值) 低1DO 262 63628 TH0=F7H TL0=24H ,1DO# 277 63731 TH0=F8H TL0=F3H 低2RE 294 63835 TH0=F9H TL0=5BH 311 63928 TH0=F9H TL0=B8H ,2RE, 低3M 330 64021 TH0=FAH TL0=15H 低4FA 349 64103 TH0=FAH TL0=67H ,4FA, 370 64185 TH0=FAH TL0=B9H 低5SO 392 64260 TH0=FBH TL0=04H ,5SO, 415 64331 TH0=FBH TL0=4BH 低6LA 440 64400 TH0=FBH TL0=90H ,6 466 64463 TH0=FBH TL0=CFH 低7SI 494 64524 TH0=FCH TL0=0CH 中1DO 523 64580 TH0=FCH TL0=44H ,1DO# 554 64633 TH0=FCH TL0=79H 中2RE 587 64684 TH0=FCH TL0=ACH ,2RE, 622 64732 TH0=FCH TL0=DCH 中3M 659 64777 TH0=FDH TL0=09H 中4FA 698 64820 TH0=FDH TL0=34H ,4FA, 740 64860 TH0=FDH TL0=5CH 中5SO 784 64898 TH0=FDH TL0=82H ,5SO, 831 64934 TH0=FDH TL0=A6H 中6LA 880 64968 TH0=FDH TL0=C8H ,6 932 64994 TH0=FDH TL0=E2H 中7SI 988 65030 TH0=FEH TL0=06H 高1DO 1046 65058 TH0=FEH TL0=22H ,1DO, 1109 65085 TH0=FEH TL0=3DH 高2RE 1175 65110 TH0=FEH TL0=56H ,2RE, 1245 65134 TH0=FEH TL0=6EH 高3M 1318 65157 TH0=FEH TL0=85H 高4FA 1397 65178 TH0=FEH TL0=9AH ,4FA# 1480 65198 TH0=FEH TL0=AEH 高5SO 1568 65217 TH0=FEH TL0=C1H ,5SO, 1661 65235 TH0=FEH TL0=D3H 高6LA 1760 65252 TH0=FEH TL0=E4H ,6 1865 65268 TH0=FEH TL0=F4H 高7SI 1967 65283 TH0=FFH TL0=03H 休止符用TH0=FFH ,TL0=FFH表示 附录2:LCD相关资料 两行液晶显示的地址:(均为十六位计数) 0 1 2 3 4 5 6 7 8 9 A B C D E F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 命令格式要求,设置地址指针的时候第8位为1,后边为地址,即AC0~AC6,就是对应上表 的地址。 附录3:实验程序: RS BIT P2.0 ;定义液晶显示端口标号 RW BIT P2.1 E BIT P2.2 ;******************************************** T0TH EQU 24H ;T0两个暂存变量 T0TL EQU 23H ORG 0000H LJMP INITION ORG 000BH LJMP T0INT ORG 0100H ;******************************************** ;*************************液晶初始化****************** INITION: MOV SP,#70H MOV P0,#01H ;清屏 CALL ENABLE MOV P0,#38H ;8位,2行显示 CALL ENABLE MOV P0,#0CH ;屏显on,关光标 CALL ENABLE MOV P0,#06H ;计数地址加1,自动右移 CALL ENABLE ;****************************************** ;开机提示 ;****************************************** MOV P0,#80H CALL ENABLE MOV DPTR,#TABLE0 ;写数据的第一行 CALL WRITE1 MOV P0,#00010000B ;光标左移两位 CALL ENABLE MOV P0,#00010000B CALL ENABLE CALL DEL0 LJMP MAIN ;*********************************************写指令 ENABLE: CLR RS CLR RW SETB E CALL DEL0 CLR E RET ;**********************************************写数据 WRITE1: MOV R1,#00H ;查表程序,从表头到表尾 A1: MOV A,R1 MOVC A,@A+DPTR CALL WRITE2 INC R1 CJNE A,#00H,A1 ;未到字符串末尾继续 RET WRITE2: MOV P0,A ;直接将数据写入液晶屏 SETB RS CLR RW SETB E CALL DEL0 CLR E RET DEL0:MOV R4,#020H C0:MOV R5,#020H C1: DJNZ R5,C1 DJNZ R4,C0 RET ;****************************************** TABLE0:DB 'WELCOM HERE',00H ;*************************内存初始化****************** INITIAL: MOV R3,#08H MOV R0,#30H M1: MOV @R0,#00H INC R0 DJNZ R3,M1 RET ;*************************选择按键播放八个音调****************** MAIN: MOV SP,#80H ;初始化堆栈 MOV TMOD,#11H ;定时器0工作方式0,定时器1工作方式0 SETB EA SETB ET0 ;计数器0允许 SETB ET1 ;计数器1允许 START: SETB P3.7 ;关蜂鸣器 CLR TR0 ;定时器不允许 SCAN: ;键盘扫描 MOV A,P1 CJNE A,#0FFH,SU_KEY ;判断键盘按下,跳到SU_KEY,若未按,继续扫描 NOP LJMP SCAN SU_KEY: SU_KEY1: JB P1.0,SU_KEY2 ;如果不是第1个键按下,转 MOV DPH,#0FCH MOV DPL,#44H SJMP PLAY SU_KEY2: JB P1.1,SU_KEY3 ;如果不是第2个键按下,转 MOV DPH,#0FCH MOV DPL,#0ACH SJMP PLAY SU_KEY3: JB P1.2,SU_KEY4 ;如果不是第3个键按下,转 MOV DPH,#0FDH MOV DPL,#09H SJMP PLAY SU_KEY4: JB P1.3,SU_KEY5 ;如果不是第4个键按下,转 MOV DPH,#0FDH MOV DPL,#34H SJMP PLAY SU_KEY5: JB P1.4,SU_KEY6 ;如果不是第5个键按下,转 MOV DPH,#0FDH MOV DPL,#82H SJMP PLAY SU_KEY6: JB P1.5,SU_KEY7 ;如果不是第6个键按下,转 MOV DPH,#0FDH MOV DPL,#0C8H SJMP PLAY SU_KEY7: JB P1.6,SU_KEY8 ;如果不是第7个键按下,转 MOV DPH,#0FEH MOV DPL,#06H SJMP PLAY SU_KEY8: JB P1.7,KEY1 ;如果不是第8个键按下,转 MOV DPH,#0FEH MOV DPL,#22H SJMP PLAY PLAY: MOV T0TH,DPH ;存高位字符 MOV T0TL,DPL ;存低位字符 MOV TH0,T0TH MOV TL0,T0TL SETB TR0 ;启动定时器0 MOV R2,#01B ;1/4拍 DJNZ R2,PLAY LCALL DELAY SJMP JUDGE JUDGE: JB P2.4,START ;按键未按下,则继续扫描,否则,开始放音乐 ;*************************选择按键播放音乐****************** KEY1: JB P2.5,KEY2 ;第一个键(P2.5)按下,放音音乐1 MOV R2,#00H LCALL MODD ;歌曲号显示 MOV DPTR,#MU_TAB1 AJMP MUSIC KEY2: JB P2.6,KEY3 ;第二个键(P2.6)按下,放音乐2 MOV R2,#01H LCALL MODD ;歌曲号显示 MOV DPTR,#MU_TAB2 AJMP MUSIC KEY3: JB P2.7, NEXT_2 ;第三个键(P2.7)按下,放音乐3 MOV R2,#02H LCALL MODD ;歌曲号显示 MOV DPTR,#MU_TAB3 AJMP MUSIC NEXT_2: LJMP START ;返回 MUSIC: MOV TMOD,#01H MOV IE,#82H ;允许T0中断 MOV R7,#00H LOOP: CLR A MOVC A,@A+DPTR ;查表取代码 MOV R1,A ;定时器高八位存R1 INC DPTR PUSH DPH ;保护现场 PUSH DPL GECI1: JB P2.5,GECI2 ;第一个键(P2.5)按下,显示歌词1 MOV DPTR,#GE1 AJMP GECI GECI2: JB P2.6,GECI3 ;第二个键(P2.6)按下,显示歌词2 MOV DPTR,#GE2 AJMP GECI GECI3: JB P2.7, TIAOCHU ;第三个键(P2.7)按下,显示歌词3 MOV DPTR,#GE3 AJMP GECI TIAOCHU:LJMP START GECI: LCALL QINGCHU MOV P0,#0C0H ;显示的位置 CALL ENABLE XIANSHI1: MOV A,R7 ;查表取音乐汉语拼音显示 MOVC A,@A+DPTR CALL WRITE2 INC R7 CJNE A,#00H,XIANSHI1 MOV P0,#00010000B ;将光标左移一位 CALL ENABLE MOV P0,#00010000B ;将光标左移一位 CALL ENABLE POP DPL POP DPH CLR A MOVC A,@A+DPTR MOV R0,A ;定时器低八位存R0 ORL A,R1 JZ NEXT0 ;相或结果全0为休止符 MOV A,R0 ANL A,R1 CJNE A,#0FFH,NEXT ;相与结果为0FFH表示乐曲结束 MOV P0,#01H ;清屏 CALL ENABLE LJMP INITION ;从头开始演奏 NEXT: MOV T0TH,R1 ;装定时初值 MOV TH0,T0TH MOV T0TL,R0 MOV TL0,T0TL SETB TR0 ;启动定时器 SJMP NEXT1 NEXT0: CLR TR0 ;关闭定时器 NEXT1: CLR A INC DPTR MOVC A,@A+DPTR ;查延时常数 MOV R2,A LOOP1: ACALL D200 DJNZ R2,LOOP1 ;控制延时次数 INC DPTR AJMP LOOP D200: MOV R3,#81H ;延时程序 D200B: MOV A,#0FFH D200A: DEC A JNZ D200A DEC R3 CJNE R3,#00H,D200B RET QINGCHU:MOV A,#00100000B MOV P0,#0C0H ;将第二行的第一位置0 LCALL ENABLE LCALL WRITE2 MOV A,#00100000B ;将第二行的第二位置0 MOV P0,#0C1H LCALL ENABLE LCALL WRITE2 MOV A,#00100000B ;将第二行的第三位置0 MOV P0,#0C2H LCALL ENABLE LCALL WRITE2 MOV A,#00100000B ;将第二行的第四位置0 MOV P0,#0C3H LCALL ENABLE LCALL WRITE2 MOV A,#00100000B ;将第二行的第五位置0 MOV P0,#0C4H LCALL ENABLE LCALL WRITE2 MOV A,#00100000B ;将第二行的第六位置0 MOV P0,#0C5H LCALL ENABLE LCALL WRITE2 MOV A,#00100000B ;将第二行的第七位置0 MOV P0,#0C6H LCALL ENABLE LCALL WRITE2 ;将第二行的第三位置0 ;以上等价程序如下 ;GECI:MOV R3,#00H ;控制循环次数 ;QINGCHU: ;MOV A,#00100000B ;置空格 ;PUSH A ;MOV R4,#0C0H ;地址 ;MOV A,R4 ;MOV P0,A ;POP A ;INC R4 ;DEC R3 ;控制循环次数 ;CJNE R3,#00H,QINGCHU ;计满十次则执行转移 ;*************************************************** ;定时器0中断子程序,定时音乐 ;*************************************************** T0INT: ;中断服务子程序 MOV TH0,T0TH MOV TL0,T0TL CPL P3.7 ;反相输出,演示音乐 RETI ;****************************************** ;显示 ;****************************************** MODD: MOV P0,#8EH LCALL ENABLE MOV A,R2 MOV DPTR,#TABLE2 MOVC A,@A+DPTR LCALL WRITE2 RET TABLE2:DB 31H,32H,33H GE1: db 'xin',00h,'nian',00h,'hao',00h,'ya',00h,'xin',00h,'nian',00h,'hao',00h,'ya',00h db 'zhu',00h,'fu',00h,'da',00h,'jia',00h,'xin',00h,'nian',00h,'hao',00h GE2: DB 'liang',00H,'zhi',00H,'lao',00H,'hu',00H,'liang',00H,'zhi',00H,'lao',00H,'hu',00H,'pao',00H,'de',00H,' kuai',00H DB 'pao',00H,'de',00H,'kuai',00H,'yi',00H,'zhi',00H,'mei',00H,'you',00H,'yan',00H,'jing',00H,'yi',00H,'z hi',00H DB 'mei',00H,'you',00H,'er',00h,'duo',00h,'zhen',00h,'qi',00h,'guai',00h,'zhen',00h,'qi',00h,'guai',00h GE3: DB 'wo',00h,'ai',00h,'bei',00h,'jing',00h,'tian',00h,'an',00h,'men',00h,'tian',00h,'an',00h ;*************************延时子程序****************** DELAY:MOV 30H,#100 ;延长时间等待,键盘消抖 D1:MOV R5,#200 D2:DJNZ R5,D2 DJNZ 30H,D1 RET ;*******************新年好****************************** MU_TAB1: DB 0FEH,25H,04H,0FEH,25H,04H DB 0FEH,25H,06H,0FDH,80H,06H DB 0FEH,84H,04H,0FEH,84H,04H DB 0FEH,84H,06H,0FEH,25H,06H DB 0FEH,25H,04H,0FEH,84H,04H DB 0FEH,0C0H,04H,0FEH,84H,04H DB 0FEH,98H,04H,0FEH,84H,04H DB 0FEH,57H,06H DB 0FFH,0FFH ;*******************两只老虎**************************** MU_TAB2: DB 0FCH,44H,06H,0FCH,0ACH,06H,0FDH,09H,06H,0FCH,44H,06H DB 0FCH,44H,06H,0FCH,0ACH,06H,0FDH,09H,06H,0FCH,44H,06H DB 0FDH,09H,06H,0FDH,34H,06H,0FDH,0A6H,06H DB 0FDH,09H,06H,0FDH,34H,06H,0FDH,0A6H,06H DB 0FBH,04H,04H,0FDH,0C8H,04H,0FBH,04H,04H,0FDH,34H,04H DB 0FDH,09H,04H,0FCH,44H,04H,0FBH,04H,04H,0FDH,0C8H,04H DB 0FBH,04H,04H,0FDH,34H,04H,0FDH,09H,04H,0FCH,44H,04H DB 0FCH,44H,06H,0FDH,0A6H,06H,0FCH,44H,06H DB 0FCH,44H,06H,0FDH,0A6H,06H,0FCH,44H,06H DB 0FFH,0FFH ;*******************我爱北京天安门**************************** MU_TAB3: DB 0FDH,82H,06H,0FEH,22H,04H,0FDH,82H,04H,0FDH,34H,04H DB 0FDH,09H,04H,0FCH,0ACH,04H,0FCH,44H,06H DB 0FFH,0FFH,0FFH,0FFH
本文档为【单片机 电子琴设计 八个声调 三首歌 歌词显示[新版]】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_511210
暂无简介~
格式:doc
大小:59KB
软件:Word
页数:0
分类:生活休闲
上传时间:2017-12-27
浏览量:5