简易电子琴的设计

[10-10 20:38:44]   来源:http://www.88dzw.com  电子制作   阅读:8416

文章摘要:END方案二:产生按键音符ORG0000HSJMPSTARTORG000BHAJMPINT_0ORG0030HSTART:MOVP1,#00HSETBEASETBET0;计数器0MOVTMOD,#02HMOVTH1,#09CHMOVTL1,#09CH;定时器初植CLRTR0;定时器不允许SCAN:;键盘扫描MOVA,P2;判断键盘按下,跳到SCAN_1,若未按,继续扫描CJNEA,#0FFH,SCAN_1NOPSJMPSCANSCAN_1:ACALLDELAY;是不是真的要按下?如果是,则跳转SU_KEY查询是哪个按下?MOVA,P2CJNEA,#0FFH,SU_KEYNOPSJMPSCANS

简易电子琴的设计,标签:电子小制作,http://www.88dzw.com
END
方案二:产生按键音符
ORG0000H
SJMPSTART
ORG000BH
AJMPINT_0
ORG0030H
START:MOVP1,#00H
SETBEA
SETBET0;计数器0
MOVTMOD,#02H
MOVTH1,#09CH
MOVTL1,#09CH;定时器初植
CLRTR0;定时器不允许
SCAN:;键盘扫描
MOVA,P2;判断键盘按下,跳到SCAN_1,若未按,继续扫描
CJNEA,#0FFH,SCAN_1
NOP
SJMPSCAN
SCAN_1:ACALLDELAY;是不是真的要按下?如果是,则跳转SU_KEY查询是哪个按下?
MOVA,P2
CJNEA,#0FFH,SU_KEY
NOP
SJMPSCAN
SU_KEY:JNBP2.1,MU_1;判断是哪个键按下?
JNBP2.2,MU_2
JNBP2.3,MU_3
JNBP2.4,MU_4
JNBP2.5,MU_5
JNBP2.6,MU_6
JNBP2.7,MU_7
SJMPSCAN
;R1信号周期
MU_1:MOVR1,#19;如果第一个按键按下,则R1=19,同时程序转NEXT
SJMPNEXT
MU_2:MOVR1,#17
SJMPNEXT
MU_3:MOVR1,#15
SJMPNEXT
MU_4:MOVR1,#14
SJMPNEXT
MU_5:MOVR1,#13
SJMPNEXT
MU_6:MOVR1,#11
SJMPNEXT
MU_7:MOVR1,#10
SJMPNEXT
NEXT:MOVA,R1
MOVR0,A
SETBTR0;启动定时器0
NEXT_1:MOVA,P2;没键按下继续执行,有键按下,返回读引脚
CJNEA,#0FFH,NEXT_1
ACALLDELAY
MOVA,P2;真的没键按下?
CJNEA,#0FFH,NEXT_1
CLRTR0;不响
AJMPSCAN;扫描键盘去
INT_0:;中断程序
DJNZR0,RE;R0不等于0时,返回
CPLP1.0
MOVA,R1
MOVR0,A
RE:RETI
DELAY:MOVR7,#100;延长时间等待,键盘消抖
D1:MOVR6,#10
D2:DJNZR6,D2
DJNZR7,D1
RET
END
生日快乐歌:(扩展功能部分程序)
ORG0000H
JMPMAIN
ORG000BH
JMPTT0
MAIN:MOVTMOD,#01H;设置定时器0工作方式
MOVIE,#82H;设置中断
MAIN0:MOV30H,#00H
NEXT:MOVA,30H
MOVDPTR,#TABLE;查表
MOVCA,@A+DPTR
MOVR2,A
JZSTOP
ANLA,0FH
MOVR5,A
MOVA,R2
SWAPA
ANLA,#0FH
JNZSING
CLRTR0
JMPW1
SING:DECA
MOV22H,A
RLA
MOVDPTR,#TABLE1;查表
MOVCA,@A+DPTR
MOVTH0,A
MOV21H,A
MOVA,22H
RLA
INCA
MOVCA,@A+DPTR
MOVTL0,A
MOV20H,A
SETBTR0
W1:CALLDELAY
INC30H
JMPNEXT
STOP:CLRTR0
JMPMAIN0
TT0:PUSHACC;中断服务程序
PUSHPSW
MOVTL0,20H
MOVTH0,21H
CPLP1.0
POPPSW
POPACC
RETI
DELAY:MOVR7,#2;延时187ms
W2:MOVR4,#187
W3:MOVR3,#248
DJNZR3,$
DJNZR4,W3
DJNZR7,W2
DJNZR5,DELAY
RET
TABLE1:DW64260,64400,64524,64580;音符计数植
DW64684,64777,64820,64898
DW64968,65030,65058,65110
DW65157,65178,65217
TABLE:DB82H,01H,81H,94H,84H;节拍表
DB0B4H,0A4H,04H
DB82H,01H,81H,94H,84H
DB0C4H,0B4H,04H
DB82H,01H,81H,0F4H,0D4H
DB0B4H,0A4H,94H
DB0E2H,01H,0E1H,0D4H,0B4H
DB0C4H,0B4H,04H
DB82H,01H,81H,94H,84H
DB0B4H,0A4H,04H
DB82H,01H,81H,94H,84H
DB0C4H,0B4H,04H
DB82H,01H,81H,0F4H,0D4H
DB0B4H,0A4H,94H
DB0E2H,01H,0E1H,0D4H,0B4H
DB0C4H,0B4H,04H
DB00H
END

上一页  [1] [2] 


Tag:电子制作电子小制作维修教程知识 - 电子制作

《简易电子琴的设计》相关文章