Appendix A: Micro-Controller Main Program
Appendix A: Micro-Controller Main Program
Source
0000 75 D0 00
0003 75 A0 00
0006 75 80 00
0009 75 90 00
000C 75 B0 00
000F D2 AC
0011 D2 BC
mov Psw,#00H
MOV P2,#00H
MOV P0,#00H
MOV P1,#00H
MOV P3,#00H
SETB ie.4
SETB iP.4
0013 75 89 20
0016 53 87 7F
0019 75 8D E8
001C 75 8B 00
001F 75 98 50
0022 D2 8E
0024 D2 99
0026
0026 75 80 FF
0029 02 00 41
mov TMOD,#20H
anl PCON,#7FH
mov TH1,#0e8H
MOV tl1,#00H
mov SCON,#50H
setb TR1
setb TI
fiRst:
mov P0,#0ffH
ljmp staRt
002C
002C 31 27
002E 11 31
0030 22
0031
0031 30 99 FD
0034 C2 99
0036 8A 99
0038
0038 30 99 FD
003B 8C 99
003D 75 80 FF
0040 22
uRoP:
acall getkey
acall seRial
Ret
seRial:
JNB TI,seRial
clR TI
mov SBUF,R2
tii:
jnb ti,tii
mov SBUF,R4
mov P0,#0ffH
Ret
0041
0041 75 A0 CC
0044 31 27
staRt:
mov P2,#0ccH
acall getkey
0046 BC 89 48
0049 EC
004A FA
004B 8C A0
CJNE R4,#89H,user2
mov a,R4
mov r2,a
mov P2,R4
A-I
Source
004D 75 80 00
0050 31 B6
0052 75 A0 AA
0055 75 80 FF
0058 31 27
005A BC 98 16
005D 8C A0
005F 31 B6
0061 75 A0 EE
0064 75 80 FF
0067 11 2C
0069 8C A0
006B 75 80 00
006E 31 B6
0070 02 00 26
0073
0073 75 80 FF
0076 31 27
0078 BC 98 AB
007B 8C A0
007D 31 B6
007F 75 A0 EE
0082 75 80 FF
0085 11 2C
0087 8C A0
0089 75 80 00
008C 31 B6
008E 02 00 26
mov P0,#00H
acall second
mov P2,#0aaH
mov P0,#0ffH
acall getkey
cjne R4,#98H,u1ch2
mov P2,R4
acall second
mov P2,#0eeH
mov P0,#0ffH
acall uRoP
mov P2,R4
mov P0,#00H
acall second
ljmP fiRst
u1ch2:
mov P0,#0ffH
acall getkey
cjne R4,#98H,fiRst
mov P2,R4
acall second
mov P2,#0eeH
mov P0,#0ffH
acall uRoP
mov P2,R4
mov P0,#00H
acall second
ljmP fiRst
0091
0091 BC 85 48
0094 EC
0095 FA
0096 8C A0
0098 75 80 00
009B 31 B6
009D 75 A0 AA
00A0 75 80 FF
00A3 31 27
00A5 BC 58 16
00A8 8C A0
00AA31 B6
user2:
CJNE R4,#85H,user3
mov a,R4
mov r2,a
mov P2,R4
mov P0,#00H
acall second
mov P2,#0aaH
mov P0,#0ffH
acall getkey
cjne R4,#58H,u2ch2
mov P2,R4
acall second
A-II
Source
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
00AC75 A0 EE
00AF 75 80 FF
00B2 11 2C
00B4 8C A0
00B6 75 80 00
00B9 31 B6
00BB 02 00 26
00BE
00BE 75 80 FF
00C1 31 27
00C3 BC 58 13
00C6 8C A0
00C8 31 B6
mov P2,#0eeH
mov P0,#0ffH
acall uRoP
mov P2,R4
mov P0,#00H
acall second
ljmP fiRst
u2ch2:
mov P0,#0ffH
acall getkey
cjne R4,#58H,u2lj
mov P2,R4
acall second
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
00CA75 A0 EE
00CD75 80 FF
00D0 11 2C
00D2 8C A0
00D4 75 80 00
00D7 31 B6
00D9
00D9 02 00 26
mov P2,#0eeH
mov P0,#0ffH
acall uRoP
mov P2,R4
mov P0,#00H
acall second
u2lj:
ljmP fiRst
00DC
00DCBC 52 45
00DF EC
00E0 FA
00E1 8C A0
00E3 75 80 00
00E6 31 B6
00E8 75 A0 AA
00EB 75 80 FF
00EE 31 27
00F0 BC 25 16
00F3 8C A0
00F5 31 B6
00F7 75 A0 EE
00FA 75 80 FF
00FD 11 2C
00FF 8C A0
0101 75 80 00
0104 31 B6
0106 02 00 26
0109
user3:
CJNE R4,#52H,u3lj
mov a,R4
mov r2,a
mov P2,R4
mov P0,#00H
acall second
mov P2,#0aaH
mov P0,#0ffH
acall getkey
cjne R4,#25H,u3ch2
mov P2,R4
acall second
mov P2,#0eeH
mov P0,#0ffH
acall uRoP
mov P2,R4
mov P0,#00H
acall second
ljmP fiRst
u3ch2:
A-III
Source
0109 75 80 FF
010C 31 27
010E BC 25 13
0111 8C A0
0113 31 B6
0115 75 A0 EE
0118 75 80 FF
011B 11 2C
011D 8C A0
011F 75 80 00
0122 31 B6
0124
0124 02 00 26
mov P0,#0ffH
acall getkey
cjne R4,#25H,u3lj
mov P2,R4
acall second
mov P2,#0eeH
mov P0,#0ffH
acall uRoP
mov P2,R4
mov P0,#00H
acall second
u3lj:
ljmP fiRst
0127
0127 75 90 FF
012A 75 B0 FC
012D
012D 31 55
012F 60 FC
0131 31 5E
0133 10 14 F7
0136 23
0137 23
0138 23
0139 23
013A FC
013B 31 C7
013D 75 90 FF
0140 75 B0 FC
0143 75 80 0F
0146
0146 31 55
0148 60 FC
014A 31 5E
014C 10 14 F7
014F 2C
0150 FC
0151 75 80 00
0154 22
0155
getkey:
mov P1,#0ffH
mov P3,#0fcH
scan:
acall keydown
jz scan
acall conveRt
jbc 20,scan
Rl a
Rl a
Rl a
Rl a
mov R4,a
acall softtime
mov P1,#0ffH
mov P3,#0fcH
mov P0,#0fH
scan1:
acall keydown
jz scan1
acall conveRt
jbc 20,scan1
add a,R4
mov R4,a
mov P0, #00H
Ret
keydown:
A-IV
0155 A8 90
0157 E5 B0
0159 44 CF
015B 58
015C F4
015D 22
015E C2 14
0160 E4
0161 A9 90
0163 AB B0
0165 43 03 CF
0168 B9 FE 02
016B 80 38
016D
016D 04
016E B9 FD 02
0171 80 32
0173
0173 04
0174 B9 FB 02
0177 80 2C
0179
0179 04
017A B9 F7 02
017D 80 26
017F 04
0180 B9 EF 02
0183 80 20
0185 04
0186 B9 DF 02
0189 80 1A
018B
018B 04
018C B9 BF 02
018F 80 14
0191
0191 04
0192 B9 7F 02
0195 80 0E
0197
0197 04
0198 BB EF 05
019B 30 B5 0F
019E 80 04
01A0
Source
MOV R0,P1
mov a,P3
oRl a,#0cfH
anl a,R0
cPl a
Ret
conveRt: clR 20
clR a
mov R1,P1
mov R3,P3
oRl 03,#0cfH
cjne R1,#0feH,one
sjmP cHeck3
one:
inc a
cjne R1,#0fdH,two
sjmP cHeck3
two:
inc a
cjne R1,#0fbH,tHRee
sjmP cHeck3
tHRee:
inc a
cjne R1,#0f7H,fouR
sjmP cHeck3
fouR: inc a
cjne R1,#0efH,five
sjmP cHeck3
five: inc a
cjne R1,#0dfH,six
sjmP cHeck3
six:
inc a
CJNE R1,#0bfH,seven
sjmP cHeck3
seven:
inc a
cjne R1,#7fH,eigHt
sjmP cHeck3
eigHt:
inc a
cjne R3,#0efH,nine
jnb P3.5,bad
sjmP good
nine:
A-V
01A0 04
01A1 BB DF 09
01A4
01A4 22
01A5
01A5 30 B4 05
01A8 30 B5 02
01AB80 F7
01AD
01ADD2 14
01AF 75 90 FF
01B2 75 B0 FF
01B5 22
01B6
01B6 31 C7
01B8 31 C7
01BA31 C7
01BC 31 C7
01BE 31 C7
01C0 31 C7
01C2 31 C7
01C4 31 C7
01C6 22
01C7 75 05 03
01CA75 07 F5
01CD75 06 FF
01D0 D5 06 FD
01D3 D5 07 F7
01D6 D5 05 F1
01D9 22
Source
inc a
cjne R3,#0dfH,bad
good:
Ret
cHeck3:
jnb P3.4,bad
jnb P3.5,bad
sjmP good
bad:
setb 20
mov P1,#0ffH
mov P3,#0ffH
Ret
second:
ACALL softtime
ACALL softtime
ACALL softtime
ACALL softtime
ACALL softtime
ACALL softtime
ACALL softtime
ACALL softtime
Ret
softtime: MOV 05,#03h
time:
MOV 07,#245
decrement: mov 06h,#0ffh
inter: djnz 06h,inter
djnz 07,decrement
DJNZ 05,time
RET
end
A-VI