📄 xdlkz.lst
字号:
A51 MACRO ASSEMBLER XDLKZ 09/06/07 21:12:44 PAGE 1
DOS MACRO ASSEMBLER A51 X4.86
OBJECT MODULE PLACED IN XDLKZ.O
ASSEMBLER INVOKED BY: C:\OMF51\BIN\A51.EXE C:\XDLKZ\XDLKZ.AQD DB SB XR RB(0) PR(XDLKZ.LST) OJ(XDLKZ.O)
LOC OBJ LINE SOURCE
0000 1 ORG 00H
0000 02001E 2 JMP START ;开机跳至初始化程序
000B 3 ORG 0BH
000B 0200EC 4 LJMP TIMEO ;跳至定时器0中断服务子程序
001B 5 ORG 01BH
001B 0203FC 6 LJMP TIMEI ;跳至定时器中断服务子程序
001E 758911 7 START:MOV TMOD,#11H ;设定两定时器为定时模式,工作方式1
0021 D2AF 8 SETB EA ;开总中断
0023 D2AB 9 SETB ET1 ;开定时器1中断
0025 D2A9 10 SETB ET0 ;开定时器0中断
0027 D2B9 11 SETB PT0 ;设定定时器0为优先中断
0029 758C3C 12 MOV TH0,#3CH ;定时器装
002C 758AB0 13 MOV TL0,#0B0H ;入初值
002F 75440A 14 MOV 44H,#0AH
0032 75450A 15 MOV 45H,#0AH
0035 75460A 16 MOV 46H,#0AH
0038 75470A 17 MOV 47H,#0AH
003B 754800 18 MOV 48H,#0
003E 754900 19 MOV 49H,#0
0041 754A00 20 MOV 4AH,#0
0044 754B00 21 MOV 4BH,#0
0047 754C06 22 MOV 4CH,#6
004A 754D00 23 MOV 4DH,#0
004D 754E0E 24 MOV 4EH,#14
0050 754F00 25 MOV 4FH,#0
0053 755016 26 MOV 50H,#22
0056 755100 27 MOV 51H,#0
0059 755230 28 MOV 52H,#30H
005C 755301 29 MOV 53H,#1
005F 755401 30 MOV 54H,#1
0062 755501 31 MOV 55H,#1
0065 755600 32 MOV 56H,#0
0068 7590FB 33 MOV P1,#0FBH
006B 758171 34 MOV SP,#71H
006E 752314 35 MOV 23H,#20 ;设定20次中断
0071 D28C 36 SETB TR0 ;开定时器0
37 ; 按键识别程序
0073 20B209 38 KEY1:JB P3.2,KEY2 ;P3.2等于0?是则调用KEYQHCX,否则跳至KEY2
0076 120411 39 LCALL DELAY
0079 12012F 40 LCALL KEYQHCX
007C 30B2FD 41 JNB P3.2,$
007F 20B509 42 KEY2:JB P3.5,KEY3 ;P3.5=1?是则跳至KEY3,否则调用KEYHJY
0082 120411 43 LCALL DELAY ;调用延时子程序
0085 12018B 44 LCALL KEYHJY
0088 30B5FD 45 JNB P3.5,$
008B 20B609 46 KEY3:JB P3.6,KEY4
008E 120411 47 LCALL DELAY
0091 1201DE 48 LCALL KEYMJY
0094 30B6FD 49 JNB P3.6,$
0097 20B709 50 KEY4:JB P3.7,X6 ;P3.7=1?是则至X6,否则调用KEYGNXZ
009A 120411 51 LCALL DELAY
009D 120231 52 LCALL KEYGNXZ
00A0 30B7FD 53 JNB P3.7,$
00A3 12034E 54 X6:LCALL JY ;调用调压子程序
55 ;比较定时程序
00A6 E548 56 MOV A,48H
00A8 B55127 57 CJNE A,51H,DISPLAY
00AB E549 58 MOV A,49H
A51 MACRO ASSEMBLER XDLKZ 09/06/07 21:12:44 PAGE 2
00AD B54B08 59 CJNE A,4BH,DS2
00B0 E54A 60 MOV A,4AH
00B2 B54C03 61 CJNE A,4CH,DS2
00B5 1202AC 62 LCALL YLKZ
00B8 E549 63 DS2:MOV A,49H
00BA B54D08 64 CJNE A,4DH,DS3
00BD E54A 65 MOV A,4AH
00BF B54E03 66 CJNE A,4EH,DS3
00C2 1202E8 67 LCALL ELKZ
00C5 E549 68 DS3:MOV A,49H
00C7 B54F08 69 CJNE A,4FH,DISPLAY
00CA E54A 70 MOV A,4AH
00CC B55003 71 CJNE A,50H,DISPLAY
00CF 120324 72 LCALL SLKZ
73 ;显示程序
00D2 A852 74 DISPLAY:MOV R0,52H ;要显示的值首地址存52H
00D4 7A7F 75 MOV R2,#7FH ;从P2.7开始扫描
00D6 E6 76 PLAY:MOV A,@R0
00D7 90042D 77 MOV DPTR,#TABLE
00DA 93 78 MOVC A,@A+DPTR
00DB F580 79 MOV P0,A
00DD 08 80 INC R0
00DE EA 81 MOV A,R2
00DF F5A0 82 MOV P2,A
00E1 120411 83 LCALL DELAY
00E4 EA 84 MOV A,R2
00E5 30E48B 85 JNB ACC.4,KEY1 ;四位显示完了,是则重新开始显示,否则断续显示
00E8 03 86 RR A
00E9 FA 87 MOV R2,A
00EA 80EA 88 JMP PLAY
00EC C0E0 89 TIMEO:PUSH ACC
00EE C0F0 90 PUSH B
00F0 C0D0 91 PUSH PSW
00F2 C28C 92 CLR TR0 ;关定时器0
00F4 758C3C 93 MOV TH0,#3CH ;重新装入初值
00F7 758AA4 94 MOV TL0,#0A4H
00FA D28C 95 SETB TR0 ;开定时器0
00FC D52329 96 DJNZ 23H,BACK ;20次中断完了吗?是则P2.3求反,重新设定中断次数,秒加1,否则继续计时
00FF B2A3 97 CPL P2.3
0101 752314 98 MOV 23H,#20
0104 E548 99 MOV A,48H
0106 2401 100 ADD A,#1
0108 F548 101 MOV 48H,A
010A B43C1B 102 CJNE A,#60,BACK ;60秒到了吗?是则秒寄存器清零,分加1,否则返回
010D 754800 103 MOV 48H,#00H
0110 E549 104 MOV A,49H
0112 2401 105 ADD A,#1
0114 F549 106 MOV 49H,A
0116 B43C0F 107 CJNE A,#60,BACK ;60分到了吗?是则分寄存器清零,时加1,否则返回
0119 754900 108 MOV 49H,#00H
011C E54A 109 MOV A,4AH
011E 2401 110 ADD A,#1
0120 F54A 111 MOV 4AH,A
0122 B41803 112 CJNE A,#24,BACK ;24时到了?是则时寄存器清零,否则返回
0125 754A00 113 MOV 4AH,#00H
0128 D0D0 114 BACK:POP PSW
012A D0F0 115 POP B
012C D0E0 116 POP ACC
012E 32 117 RETI
118 ;显示切换程序
012F E553 119 KEYQHCX:MOV A,53H
0131 2401 120 ADD A,#1
0133 B40602 121 CJNE A,#6,Y1
0136 7400 122 MOV A,#0
0138 F553 123 Y1:MOV 53H,A
013A F554 124 MOV 54H,A
A51 MACRO ASSEMBLER XDLKZ 09/06/07 21:12:44 PAGE 3
013C F555 125 MOV 55H,A
013E B4000A 126 CJNE A,#0,Y2
0141 D290 127 SETB P1.0
0143 D291 128 SETB P1.1
0145 D292 129 SETB P1.2
0147 755244 130 MOV 52H,#44H
014A 22 131 RET
014B B4010A 132 Y2:CJNE A,#1,Y3
014E D290 133 SETB P1.0
0150 D291 134 SETB P1.1
0152 C292 135 CLR P1.2
0154 755230 136 MOV 52H,#30H
0157 22 137 RET
0158 B4020A 138 Y3:CJNE A,#2,Y4
015B D290 139 SETB P1.0
015D C291 140 CLR P1.1
015F D292 141 SETB P1.2
0161 755234 142 MOV 52H,#34H
0164 22 143 RET
0165 B40309 144 Y4:CJNE A,#3,Y5
0168 D290 145 SETB P1.0
016A C291 146 CLR P1.1
016C C292 147 CLR P1.2
016E 755238 148 MOV 52H,#38H
0171 B4040A 149 Y5:CJNE A,#4,Y6
0174 C290 150 CLR P1.0
0176 D291 151 SETB P1.1
0178 D292 152 SETB P1.2
017A 75523C 153 MOV 52H,#3CH
017D 22 154 RET
017E B40509 155 Y6:CJNE A,#5,Y7
0181 C290 156 CLR P1.0
0183 D291 157 SETB P1.1
0185 C292 158 CLR P1.2
0187 755240 159 MOV 52H,#40H
018A 22 160 Y7:RET
161 ;时加一程序
018B E554 162 KEYHJY:MOV A,54H
018D B40003 163 CJNE A,#0,N1
0190 B296 164 CPL P1.6
0192 22 165 RET
0193 B4010C 166 N1:CJNE A,#1,N2
0196 E54A 167 MOV A,4AH
0198 2401 168 ADD A,#1
019A B41802 169 CJNE A,#24,K1
019D 7400 170 MOV A,#0
019F F54A 171 K1:MOV 4AH,A
01A1 22 172 RET
01A2 B4020C 173 N2:CJNE A,#2,N3
01A5 E551 174 MOV A,51H
01A7 2401 175 ADD A,#1
01A9 B43C02 176 CJNE A,#60,K2
01AC 7400 177 MOV A,#0
01AE F551 178 K2:MOV 51H,A
01B0 22 179 RET
01B1 B4030C 180 N3:CJNE A,#3,N4
01B4 E54C 181 MOV A,4CH
01B6 2401 182 ADD A,#1
01B8 B41802 183 CJNE A,#24,K3
01BB 7400 184 MOV A,#0
01BD F54C 185 K3:MOV 4CH,A
01BF 22 186 RET
01C0 B4040C 187 N4:CJNE A,#4,N5
01C3 E54E 188 MOV A,4EH
01C5 2401 189 ADD A,#1
01C7 B41802 190 CJNE A,#24,K4
A51 MACRO ASSEMBLER XDLKZ 09/06/07 21:12:44 PAGE 4
01CA 7400 191 MOV A,#0
01CC F54E 192 K4:MOV 4EH,A
01CE 22 193 RET
01CF B4050B 194 N5:CJNE A,#5,N6
01D2 E550 195 MOV A,50H
01D4 2401 196 ADD A,#1
01D6 B41802 197 CJNE A,#24,K5
01D9 7400 198 MOV A,#0
01DB F550 199 K5:MOV 50H,A
01DD 22 200 N6:RET
201 ;分加一程序
01DE E555 202 KEYMJY:MOV A,55H
01E0 B40003 203 CJNE A,#0,M1
01E3 B297 204 CPL P1.7
01E5 22 205 RET
01E6 B4010C 206 M1:CJNE A,#1,M2
01E9 E549 207 MOV A,49H
01EB 2401 208 ADD A,#1
01ED B43C02 209 CJNE A,#60,E1
01F0 7400 210 MOV A,#0
01F2 F549 211 E1:MOV 49H,A
01F4 22 212 RET
01F5 B4020C 213 M2:CJNE A,#2,M3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -