单片机+电子琴设计+八个音调+三首歌+歌词显示

上传人:仙*** 文档编号:169533299 上传时间:2022-11-15 格式:DOC 页数:10 大小:84KB
收藏 版权申诉 举报 下载
单片机+电子琴设计+八个音调+三首歌+歌词显示_第1页
第1页 / 共10页
单片机+电子琴设计+八个音调+三首歌+歌词显示_第2页
第2页 / 共10页
单片机+电子琴设计+八个音调+三首歌+歌词显示_第3页
第3页 / 共10页
资源描述:

《单片机+电子琴设计+八个音调+三首歌+歌词显示》由会员分享,可在线阅读,更多相关《单片机+电子琴设计+八个音调+三首歌+歌词显示(10页珍藏版)》请在装配图网上搜索。

1、系统功能说明:1、通过八个按键是否按下发出相应的1234567i这8个音调2、实验中可以播放三首歌曲,通过开关控制3、播放歌曲时,液晶屏显示播放歌曲号及歌词附录1:晶振为12M的音乐频率表音符 频率(Hz) 简谱码(T值)低1DO 262 63628 TH0=F7H TL0=24H1DO# 277 63731 TH0=F8H TL0=F3H低2RE 294 63835 TH0=F9H TL0=5BH2RE 311 63928 TH0=F9H TL0=B8H低3M 330 64021 TH0=FAH TL0=15H低4FA 349 64103 TH0=FAH TL0=67H4FA 370 641

2、85 TH0=FAH TL0=B9H低5SO 392 64260 TH0=FBH TL0=04H5SO 415 64331 TH0=FBH TL0=4BH低6LA 440 64400 TH0=FBH TL0=90H6 466 64463 TH0=FBH TL0=CFH低7SI 494 64524 TH0=FCH TL0=0CH中1DO 523 64580 TH0=FCH TL0=44H1DO# 554 64633 TH0=FCH TL0=79H中2RE 587 64684 TH0=FCH TL0=ACH2RE 622 64732 TH0=FCH TL0=DCH中3M 659 64777 TH0

3、=FDH TL0=09H中4FA 698 64820 TH0=FDH TL0=34H4FA 740 64860 TH0=FDH TL0=5CH中5SO 784 64898 TH0=FDH TL0=82H5SO 831 64934 TH0=FDH TL0=A6H中6LA 880 64968 TH0=FDH TL0=C8H6 932 64994 TH0=FDH TL0=E2H中7SI 988 65030 TH0=FEH TL0=06H高1DO 1046 65058 TH0=FEH TL0=22H1DO 1109 65085 TH0=FEH TL0=3DH高2RE 1175 65110 TH0=FE

4、H TL0=56H2RE 1245 65134 TH0=FEH TL0=6EH高3M 1318 65157 TH0=FEH TL0=85H高4FA 1397 65178 TH0=FEH TL0=9AH4FA# 1480 65198 TH0=FEH TL0=AEH高5SO 1568 65217 TH0=FEH TL0=C1H5SO 1661 65235 TH0=FEH TL0=D3H高6LA 1760 65252 TH0=FEH TL0=E4H6 1865 65268 TH0=FEH TL0=F4H高7SI 1967 65283 TH0=FFH TL0=03H休止符用TH0=FFH ,TL0=F

5、FH表示附录2:LCD相关资料两行液晶显示的地址:(均为十六位计数)0 1 2 3 4 5 6 7 8 9 A B C D E F40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F命令格式要求,设置地址指针的时候第8位为1,后边为地址,即AC0AC6,就是对应上表的地址。附录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

6、 0100H ;*;*液晶初始化*INITION:MOV SP,#70H MOV P0,#01H ;清屏CALL ENABLEMOV P0,#38H ;8位,2行显示CALL ENABLEMOV P0,#0CH ;屏显on,关光标 CALL ENABLEMOV P0,#06H ;计数地址加1,自动右移CALL ENABLE;*;开机提示;*MOV P0,#80HCALL ENABLEMOV DPTR,#TABLE0 ;写数据的第一行CALL WRITE1 MOV P0,#00010000B ;光标左移两位CALL ENABLEMOV P0,#00010000BCALL ENABLE CALL

7、DEL0LJMP MAIN ;*写指令ENABLE: CLR RSCLR RWSETB ECALL DEL0CLR ERET;*写数据WRITE1:MOV R1,#00H ;查表程序,从表头到表尾A1:MOV A,R1MOVC A,A+DPTRCALL WRITE2INC R1CJNE A,#00H,A1 ;未到字符串末尾继续RETWRITE2:MOV P0,A ;直接将数据写入液晶屏SETB RSCLR RWSETB ECALL DEL0CLR ERETDEL0:MOV R4,#020HC0:MOV R5,#020HC1: DJNZ R5,C1 DJNZ R4,C0 RET ;*TABLE0

8、:DB WELCOM HERE,00H;*内存初始化*INITIAL: MOV R3,#08HMOV R0,#30HM1:MOV R0,#00HINC R0DJNZ 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_

9、KEY,若未按,继续扫描 NOP LJMP SCANSU_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 PLAYSU_KEY4: JB P1.3,SU_KEY5 ;如果不是第4个键按下,转

10、MOV DPH,#0FDH MOV DPL,#34H SJMP PLAYSU_KEY5: JB P1.4,SU_KEY6 ;如果不是第5个键按下,转 MOV DPH,#0FDH MOV DPL,#82H SJMP PLAYSU_KEY6: JB P1.5,SU_KEY7 ;如果不是第6个键按下,转 MOV DPH,#0FDH MOV DPL,#0C8H SJMP PLAYSU_KEY7: JB P1.6,SU_KEY8 ;如果不是第7个键按下,转 MOV DPH,#0FEH MOV DPL,#06H SJMP PLAYSU_KEY8: JB P1.7,KEY1 ;如果不是第8个键按下,转 MO

11、V 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 JUDGEJUDGE: JB P2.4,START ;按键未按下,则继续扫描,否则,开始放音乐;*选择按键播放音乐*KEY1:JB P2.5,KEY2 ;第一个键(P2.5)按下,放音音乐1 MOV R2,#00H LCALL MODD ;歌曲号显示 MO

12、V DPTR,#MU_TAB1 AJMP MUSICKEY2:JB P2.6,KEY3 ;第二个键(P2.6)按下,放音乐2 MOV R2,#01H LCALL MODD ;歌曲号显示 MOV DPTR,#MU_TAB2 AJMP MUSICKEY3:JB P2.7, NEXT_2 ;第三个键(P2.7)按下,放音乐3 MOV R2,#02H LCALL MODD ;歌曲号显示 MOV DPTR,#MU_TAB3 AJMP MUSICNEXT_2: LJMP START ;返回MUSIC: MOV TMOD,#01H MOV IE,#82H ;允许T0中断 MOV R7,#00HLOOP: C

13、LR A MOVC A,A+DPTR ;查表取代码 MOV R1,A ;定时器高八位存R1 INC DPTR PUSH DPH ;保护现场 PUSH DPLGECI1:JB P2.5,GECI2 ;第一个键(P2.5)按下,显示歌词1 MOV DPTR,#GE1 AJMP GECIGECI2:JB P2.6,GECI3 ;第二个键(P2.6)按下,显示歌词2 MOV DPTR,#GE2 AJMP GECIGECI3:JB P2.7, TIAOCHU ;第三个键(P2.7)按下,显示歌词3 MOV DPTR,#GE3 AJMP GECITIAOCHU:LJMP STARTGECI: LCALL

14、QINGCHU MOV P0,#0C0H ;显示的位置 CALL ENABLEXIANSHI1: 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 AN

15、L A,R1 CJNE A,#0FFH,NEXT ;相与结果为0FFH表示乐曲结束 MOV P0,#01H ;清屏 CALL ENABLE LJMP INITION ;从头开始演奏 NEXT: MOV T0TH,R1 ;装定时初值 MOV TH0,T0TH MOV T0TL,R0MOV TL0,T0TL SETB TR0 ;启动定时器 SJMP NEXT1NEXT0: CLR TR0 ;关闭定时器NEXT1: CLR A INC DPTR MOVC A,A+DPTR ;查延时常数 MOV R2,ALOOP1: ACALL D200 DJNZ R2,LOOP1 ;控制延时次数 INC DPTR

16、AJMP LOOPD200: MOV R3,#81H ;延时程序D200B: MOV A,#0FFHD200A: DEC A JNZ D200ADEC R3CJNE R3,#00H,D200BRETQINGCHU: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 LCAL

17、L 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 ;以上等价程序

18、如下 ;GECI:MOV R3,#00H;控制循环次数 ;QINGCHU: ;MOV A,#00100000B;置空格 ;PUSH A ;MOV R4,#0C0H ;地址 ;MOVA,R4 ;MOV P0,A ;POP A ;INC R4 ;DEC R3 ;控制循环次数 ;CJNE R3,#00H,QINGCHU ;计满十次则执行转移;*;定时器0中断子程序,定时音乐;*T0INT: ;中断服务子程序MOV TH0,T0THMOV TL0,T0TLCPL P3.7 ;反相输出,演示音乐RETI ;*;显示 ;*MODD: MOV P0,#8EHLCALL ENABLE MOV A,R2MOV

19、DPTR,#TABLE2MOVC A,A+DPTRLCALL WRITE2 RETTABLE2:DB 31H,32H,33HGE1: 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,00hGE2: 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,

20、de,00H,kuai,00H,yi,00H,zhi,00H,mei,00H,you,00H,yan,00H,jing,00H,yi,00H,zhi,00H DB mei,00H,you,00H,er,00h,duo,00h,zhen,00h,qi,00h,guai,00h,zhen,00h,qi,00h,guai,00hGE3: 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:DJ

21、NZ 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,0

22、6H,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,0FFHEND

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!