收藏 分享(赏)

基于8255的51单片机电子琴设计.doc

上传人:dreamzhangning 文档编号:2609988 上传时间:2018-09-23 格式:DOC 页数:8 大小:49KB
下载 相关 举报
基于8255的51单片机电子琴设计.doc_第1页
第1页 / 共8页
基于8255的51单片机电子琴设计.doc_第2页
第2页 / 共8页
基于8255的51单片机电子琴设计.doc_第3页
第3页 / 共8页
基于8255的51单片机电子琴设计.doc_第4页
第4页 / 共8页
基于8255的51单片机电子琴设计.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、BUZZ EQU P1.0ORG 0000HLJMP STARTORG 000BHLJMP INT_T0ORG 0100HSTART:CLR EAMOV TMOD,#01H ;设置定时器 0 为工作模式 1SETB ET0 ;开定时器 0 中断SETB EA ;开总中断CLR TR0 ;关闭定时器 0MOV R1,#0FFHKE: LCALL KEYCJNE R1,#0FFH,KE2 ; 无键按下,返回 startCLR TR0SJMP STARTKE2: CJNE R1,#1FH,KE1 ;MON 键按下,音乐LJMP START0KE1: LCALL KEYCJNE R1,#09H,KEY

2、2 ;K0 键按下MOV 30H,#0FEH ;设置音阶 7MOV 31H,#06HLJMP SET_TIMERKEY2: CJNE R1,#08H,KEY3 ;K1 键按下MOV 30H,#0FEH ;设置音阶 1MOV 31H,#022HLJMP SET_TIMERKEY3: CJNE R1,#0AH,KEY4 ;K2 键按下MOV 30H,#0FEH ;设置音阶#1MOV 31H,#03DHLJMP SET_TIMERKEY4: CJNE R1,#0CH,KEY5 ;K3 键按下MOV 30H,#0FEH ;设置音阶 2MOV 31H,#056HLJMP SET_TIMERKEY5: C

3、JNE R1,#01H,KEY6 ;K4 键按下MOV 30H,#0FEH ;设置音阶#2MOV 31H,#06EHLJMP SET_TIMERKEY6: CJNE R1,#03H,KEY7 ;K5 键按下MOV 30H,#0FEH ;设置音阶 3MOV 31H,#085HLJMP SET_TIMERKEY7: CJNE R1,#05H,KEY8 ;K6 键按下MOV 30H,#0FEH ;设置音阶 4MOV 31H,#09AHLJMP SET_TIMERKEY8: CJNE R1,#00H,KEY9 ;K7 键按下MOV 30H,#0FEH ;设置音阶#4MOV 31H,#0AEHLJMP

4、SET_TIMERKEY9: CJNE R1,#02H,KEY10 ;K8 键按下MOV 30H,#0FEH ;设置音阶 5MOV 31H,#0C1HLJMP SET_TIMERKEY10:CJNE R1,#04H,KEY11 ;K9 键按下MOV 30H,#0FEH ;设置音阶#5MOV 31H,#0D3HLJMP SET_TIMERKEY11:CJNE R1,#06H,KEY12 ;KA 键按下MOV 30H,#0FEH ;设置音阶 6MOV 31H,#0E4HLJMP SET_TIMERKEY12:CJNE R1,#07H,KEY13 ;KB 键按下MOV 30H,#0FEH ;设置音阶

5、#6MOV 31H,#0F4HLJMP SET_TIMERKEY13:CJNE R1,#0EH,KEY14 ;KC 键按下MOV 30H,#0FFH ;设置音阶 7MOV 31H,#03HLJMP SET_TIMERKEY14:CJNE R1,#0FH,KEY15 ;KD 键按下MOV 30H,#0FFH ;设置音阶 1MOV 31H,#011HLJMP SET_TIMERKEY15:CJNE R1,#0DH,KEY16 ;KE 键按下MOV 30H,#0FFH ;设置音阶#1MOV 31H,#1FHLJMP SET_TIMERKEY16:CJNE R1,#0BH,KEY17 ;KF 按下MO

6、V 30H,#0FFH ;设置音阶 2MOV 31H,#2BHLJMP SET_TIMERKEY17:CJNE R1,#10H,KEY18 ;TV/ME 按下,停止LJMP STARTKEY18:CJNE R1,#12H,KEY19 ;EG/DL 按下MOV 30H,#0FCH ;设置音阶低#1MOV 31H,#79HLJMP SET_TIMERKEY19:CJNE R1,#14H,KEY20 ;CLB 键按下MOV 30H,#0FCH ;设置音阶低 2MOV 31H,#0ADHLJMP SET_TIMERKEY20:CJNE R1,#16H,KEY21 ;EXEC 键按下MOV 30H,#0

7、FCH ;设置音阶低#2MOV 31H,#0DCHLJMP SET_TIMERKEY21:CJNE R1,#11H,KEY22 ;RG/FS 键按下MOV 30H,#0FDH ;设置音阶低 3MOV 31H,#0AHLJMP SET_TIMERKEY22:CJNE R1,#13H,KEY23 ;RW/IS 键按下MOV 30H,#0FDH ;设置音阶低 4MOV 31H,#33HLJMP SET_TIMERKEY23:CJNE R1,#15H,KEY24 ;COMP 键按下MOV 30H,#0FDH ;设置音阶低#4MOV 31H,#5CHLJMP SET_TIMERKEY24:CJNE R1

8、,#17H,KEY25 ;SCAL 按下MOV 30H,#0FDH ;设置音阶低 5MOV 31H,#82HLJMP SET_TIMERKEY25:CJNE R1,#18H,KEY26 ;FI/LS 按下MOV 30H,#0FDH ;设置音阶低#5MOV 31H,#0A5HLJMP SET_TIMERKEY26:CJNE R1,#1AH,KEY27 ;EV/UN 按下MOV 30H,#0FDH ;设置音阶低 6MOV 31H,#0C7HLJMP SET_TIMERKEY27:CJNE R1,#1CH,KEY28 ;MOVE 键按下MOV 30H,#0FDH ;设置音阶低#6MOV 31H,#0

9、E7HLJMP SET_TIMERKEY28:CJNE R1,#1EH,KEY29 ;STEP 键按下MOV 30H,#0FFH ;设置音阶高 5MOV 31H,#60HLJMP SET_TIMERKEY29:CJNE R1,#19H,KEY30 ;F2/NX 键按下MOV 30H,#0FFH ;设置音阶高#2MOV 31H,#37HLJMP SET_TIMERKEY30:CJNE R1,#1BH,KEY31 ;EC/EP 键按下MOV 30H,#0FFH ;设置音阶高 3MOV 31H,#042HLJMP SET_TIMERKEY31:CJNE R1,#1DH,NOKEY ;SRB 键按下M

10、OV 30H,#0FFH ;设置音阶高 4MOV 31H,#4DHLJMP SET_TIMERSET_TIMER:SETB TR0 ;发声LJMP KENOKEY:CLR TR0 ;无键按下LJMP KESTART0:MOV 40H,#00HNEXT0: MOV A,40HMOV DPTR,#TABLEMOVC A,A+DPTR ;查表取音调和节拍MOV R2,AJZ END0 ;为零,返回 startANL A,#0FHMOV R5,A ;将节拍存入 R5MOV A,R2SWAP AANL A,#0FHJNZ SING ;根据音调决定是否演奏.CLR TR0JMP D1SING: DEC A

11、MOV 22H,A ;将音调存入 22H.RL AMOV DPTR,#TABLE1MOVC A,A+DPTR ;根据音调决定定时器初值.MOV TH0,A ;放入 TH0MOV 21H,AMOV A,22HRL AINC AMOVC A,A+DPTRMOV TL0,A ;放入 TL0MOV 20H,ASETB TR0 ;启动定时D1 :LCALL KEYCJNE R1,#0FFH,D9LJMP STARTD9: CALL DELAYCJNE R1,#10H,D8LJMP STARTD8: INC 40HJMP NEXT0END0: CLR TR0JMP STARTINT_T0: ;T0 中断服

12、务程序CJNE R1,#1FH,D6PUSH ACCPUSH PSWMOV TL0,20H ;重赋初值 .MOV TH0,21HCPL P1.0POP PSWPOP ACCSJMP D7D6:MOV TH0,30H ;定时器赋初值MOV TL0,31HCPL BUZZ ;输出方波D7:RETIKEY:MOV A,#81HMOV DPTR,#0FFFFHMOVX DPTR,AKEY1:ACALL KSJNZ LK1ACALL DELAJMP ALSLK1:ACALL DELACALL KSJNZ LK2AJMP ALSLK2:MOV R3,#0FEHMOV R4,#00HLK:MOV DPTR,

13、#0FFFDHMOV A,R3MOVX DPTR,AINC DPTRMOVX A,DPTRJB ACC.0,LONEMOV A,#00HAJMP LKPLONE:JB ACC.1,LTWOMOV A,#08HAJMP LKPLTWO:JB ACC.2,LTHEMOV A,#10HAJMP LKPLTHE:JB ACC.3,NEXTMOV A,#18HAJMP LKPLKP:ADD A,R4PUSH ACCLK4:ACALL DELACALL KSJNZ LK4POP ACCMOV R1,AKEND:RETNEXT:INC R4MOV A,R3JNB ACC.7,ALSRL AMOV R3,AAJMP LKALS: MOV A,#0FFHAJMP KENDDEL:MOV R7,#01HDEL1:MOV R6,#0FFHDJNZ R6,$DJNZ R7,DEL1RETKS:MOV DPTR ,#0FFFDHMOV A,#00HMOVX DPTR,AINC DPTRMOVX A,DPTRCPL AANL A,#0FHRETDELAY:MOV R7,#02H ;延时子程序D2: MOV R4,#50D3: MOV R3,#248DJNZ R3,$DJNZ R4,D3DJNZ R7,D2DJNZ R5,DELAYRET

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报