📄 islamfinaltes.src
字号:
; 12MHz Crystal
; p3.2 = strobe
; p3.4 = Data
; P3.3 = Clk
; P3.7 = IR
; P3.5 = Stop
; P3.0 = Vol+
; P3.1 = Vol-
; P1.0 = ColA
; P1.1 = ColB
; P1.2 = ColC
; P1.3 = Row1
; P1.4 = Row2
; P1.5 = Row3
; P1.6 = Row4
; P1.7 = Row5
AJMP 0010h ; 0>0110
CLR Strobe ; 10>C2B2
CLR Clk ; 12>C2B3
CLR Data ; 14>C2B4
ACALL ClrLeds ; 16>313E
ACALL Repeat ; 18>31AC
ACALL ScanControls ; 1A>3188
ACALL ScanKey ; 1C>11BA
AJMP 001Ah ; 1E>011A
StreamStart:MOV R0,#FFh ; 40>78FF
MOV R1,#12h ; 42>7912
CLR IR ; 44>C2B7
DJNZ R0,0046h ; 46>D8FE
DJNZ R1,0046h ; 48>D9FC
SETB IR ; 4A>D2B7
MOV R1,#09h ; 4C>7909
DJNZ R0,004Eh ; 4E>D8FE
DJNZ R1,004Eh ; 50>D9FC
ACALL StandBy ; 52>1158
RET ; 54>22
StandBy : MOV R0,#FFh ; 58>78FF
MOV R1,#33h ; 5A>7933
CLR IR ; 5C>C2B7
DJNZ R1,005Eh ; 5E>D9FE
DJNZ R0,0060h ; 60>D8FE
SETB IR ; 62>D2B7
RET ; 64>22
SendByte : MOV R2,#08h ; 68>7A08
JB ACC.0, 0073h ; 6A>20E006
MOV R0,#FFh ; 6D>78FF
DJNZ R0,006Fh ; 6F>D8FE
AJMP 007Bh ; 71>017B
MOV R0,#FFh ; 73>78FF
MOV R1,#03h ; 75>7903
DJNZ R0,0077h ; 77>D8FE
DJNZ R1,0077h ; 79>D9FC
ACALL StandBy ; 7B>1158
RR A ; 7D>03
DJNZ R2,006Ah ; 7E>DAEA
RET ; 80>22
KeySend : ACALL StreamStart ; 84>1140
MOV A,#14h ; 86>7414
ACALL SendByte ; 88>1168
MOV A,#EBh ; 8A>74EB
ACALL SendByte ; 8C>1168
MOV A,R6 ; 8E>EE
NOP ; 8F>00
ACALL SendByte ; 90>1168
MOV A,R6 ; 92>EE
CPL A ; 93>F4
ACALL SendByte ; 94>1168
RET ; 96>22
Delay : MOV R0,#20h ; A0>7820
DJNZ R0,00A2h ; A2>D8FE
RET ; A4>22
0-9KeyValues:Start@ AA
0 ;AA>4D
1 ;AB>45
2 ;AC<08
3 ;AD>09
4 ;AE>0B
5 ;AF>48
6 ;B0>49
7 ;B1>0D
8 ;B2>0E
9 ;B3>0F
ScanKey : MOV A,#00h ; BA>7400
MOV R4,#FFh ; BC>7CFF
MOV P1,R4 ; BE>8C90
ACALL Delay ; C0>11A0
ACALL CountKey ; C2>3103
JNB P1.3, 00E2h ; C4>30931B
ACALL CountKey ; C7>3103
JNB P1.4, 00E2h ; C9>309416
ACALL CountKey ; CC>3103
JNB P1.5, 00E2h ; CE>309511
ACALL CountKey ; D1>3103
JNB P1.6, 00E2h ; D3>30960C
ACALL CountKey ; D6>3103
JNB P1.7, 00E2h ; D8>309707
DEC R4 ; DB>1C
CJNE R4,#F7h,00BEh ; DC>BCF7DF
MOV R7,#00h ; DF>7F00
RET ; E1>22
CJNE R7,#00h,00E9h ; E2>BF0004
ACALL PlayTrack ; E5>3110
MOV R7,#0Fh ; E7>7F0F
RET ; E9>22
LightLed : ACALL ClrLeds ; EE>313E
ACALL SetPosition ; F0>3159
SETB Strobe ; F2>D2B2
NOP ; F4>00
CLR Strobe ; F5>C2B2
RET ; F7>22
CountKey : INC A ; 103>04
DA A ; 104>D4
RET ; 105>22
PlayTrack : MOV R4,A ; 110>FC
ANL A,#F0 ; 111>54F0
SWAP A ; 113>C4
JZ 011Fh ; 114>6009
MOV R5,A ; 116>FD
MOV R6,#10h ; 117>7E10
ACALL KeySend ; 119>1184
ACALL BigDelay ; 11B>314B
DJNZ R5,0119h ; 11D>DDFA
MOV A,R4 ; 11F>EC
ANL A,#0F ; 120>540F
MOV DPTR,#00AA ; 122>9000AA
MOVC A,@A+DPTR ; 125>93
MOV R6,A ; 126>FE
ACALL KeySend ; 127>1184
ACALL BigDelay ; 129>314B
ACALL LightLed ; 12B>11EE
NOP ; 12D>00
NOP ; 12E>00
NOP ; 12F>00
RET ; 130>22
KeySpace : MOV R0,#FFh ; 132>78FF
MOV R1,#24h ; 134>7924
DJNZ R0,0136h ; 136>D8FE
DJNZ R1,0136h ; 138>D9FC
RET ; 13A>22
ClrLeds : MOV R0,#28h ; 13E>7828
SETB Clk ; 140>D2B3
NOP ; 142>00
CLR Clk ; 143>C2B3
DJNZ R0,0140h ; 145>D8F9
RET ; 147>22
BigDelay : MOV R0,#FFh ; 14B>78FF
MOV R1,#FFh ; 14D>79FF
MOV R2,#08h ; 14F>7A08
DJNZ R0,0151h ; 151>D8FE
DJNZ R1,0151h ; 153>D9FC
DJNZ R2,0151h ; 155>DAFA
RET ; 157>22
SetPosition:MOV A,R4 ; 159>EC
ANL A,#F0 ; 15A>54F0
SWAP A ; 15C>C4
JZ 0173h ; 15D>6014
MOV R5,A ; 15F>FD
MOV R0,#0Ah ; 160>780A
SETB Data ; 162>D2B4
SETB Clk ; 164>D2B3
CLR Data ; 166>C2B4
CLR Clk ; 168>C2B3
DJNZ R0,0164h ; 16A>D8F8
DJNZ R5,0160h ; 16C>DDF2
MOV A,R4 ; 173>EC
ANL A,#0F ; 174>540F
JZ 0183h ; 176>600B
SETB Data ; 178>D2B4
SETB Clk ; 17A>D2B3
CLR Data ; 17C>C2B4
CLR Clk ; 17E>C2B3
DEC A ; 180>14
JNZ 017Ah ; 181>70F7
RET ; 183>22
ScanControls:JB Stop, 0193h ; 188>20B508
MOV R6,#17h ; 18B>7E17
ACALL KeySend ; 18D>1184
ACALL ClrLeds ; 18F>313E
RET ; 192>22
JB Vol+, 019Eh ; 193>20B008
MOV R6,#5Ch ; 196>7E5C
ACALL KeySend ; 198>1184
JNB Vol+, 019Ah ; 19A>30B0FD
RET ; 19D>22
JB Vol-, 01A8h ; 19E>20B107
MOV R6,#1Eh ; 1A1>7E1E
ACALL KeySend ; 1A3>1184
JNB Vol-, 01A5h ; 1A5>30B1FD
RET ; 1A8>22
Repeat : MOV R7,#0Fh ; 1AC>7F0F
ACALL BigDelay ; 1AE>314B
DJNZ R7,01AEh ; 1B0>DFFC
MOV R6,#15h ; 1B2>7E15
ACALL KeySend ; 1B4>1184
RET ; 1B6>22
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -