📄 demo_led.lst
字号:
A51 MACRO ASSEMBLER DEMO_LED 05/30/2006 10:17:11 PAGE 1
MACRO ASSEMBLER A51 V1.11
OBJECT MODULE PLACED IN DEMO_LED.OBJ
ASSEMBLER INVOKED BY: C:\MANLEY\PMEDWIN\A51.EXE DEMO_LED.ASM DB
LOC OBJ LINE SOURCE
1 ; 文档内容--电子时钟实验。
2 ;这是一个使用MCS51单片机实现电子时钟功能的程序,无需扩展.
3 ;六个数码管分别显示时,分,秒
4 ;程序编制人:蔡祥荣 2004/06/20
5
0021 6 BUFF_KEY EQU 21H ;键盘键
0022 7 BUFF_LED1 EQU 22H ;数码管显示缓存
0023 8 BUFF_LED2 EQU 23H
0024 9 BUFF_LED3 EQU 24H
0025 10 BUFF_LED4 EQU 25H
0026 11 BUFF_LED5 EQU 26H
0027 12 BUFF_LED6 EQU 27H
0028 13 BUFF_LED7 EQU 28H
0029 14 BUFF_LED8 EQU 29H
002A 15 BUFF_LED_LP EQU 2AH ;T0键盘显示扫描缓存
002B 16 BUFF_164 EQU 2BH
002C 17 BUFF_T0 EQU 2CH
0091 18 CLK164 BIT P1.1
0090 19 DAT164 BIT P1.0
0092 20 DIG_A BIT P1.2
0093 21 DIG_B BIT P1.3
0094 22 DIG_C BIT P1.4
0095 23 KEYL1 BIT P1.5
0096 24 KEYL2 BIT P1.6
0097 25 BEEP BIT P1.7
0030 26 HOR EQU 30H ;小时值缓存
0031 27 MIN EQU 31H ;分钟值缓存
0032 28 SEC EQU 32H ;秒值缓存
29
0000 30 org 000h
0000 020100 31 JMP main
000B 32 ORG 00BH
000B 0203A5 33 JMP T0_INT
0100 34 ORG 100H
0100 758140 35 MAIN: MOV SP ,#40H
0103 75D000 36 MOV PSW,#00H
0106 787F 37 MOV R0,#7FH ;初始化RAM区,
0108 7400 38 CLR_RAM:MOV A,#00H
010A F6 39 MOV @R0,A
010B D8FB 40 DJNZ R0,CLR_RAM
010D 7590FF 41 MOV P1,#0FFH ;INIT
0110 75A0FF 42 MOV P2,#0FFH
0113 7580FF 43 MOV P0,#0FFH
0116 75B0FF 44 MOV P3,#0FFH
0119 758921 45 MOV TMOD,#21h
011C 758CF4 46 MOV TH0,#HIGH(65536-3000) ;T0=3MS
011F 758A47 47 MOV TL0,#LOW(65535-3000)
0122 D28C 48 SETB TR0
0124 D2A9 49 SETB ET0
0126 D2AF 50 SETB EA
0128 75300A 51 mov hor,#10
012B 75310A 52 mov min,#10
012E 75320A 53 mov sec,#10
0131 752711 54 MOV BUFF_LED6,#17
0134 752411 55 MOV BUFF_LED3,#17
56
0137 20951C 57 WAIT_KEYL1:JB KEYL1,WAIT_KEYL2 ;等候按键!
013A 752C00 58 MOV BUFF_T0,#00H
A51 MACRO ASSEMBLER DEMO_LED 05/30/2006 10:17:11 PAGE 2
013D E590 59 MOV A,P1
013F 541C 60 ANL A,#00011100B
0141 03 61 RR A
0142 900146 62 MOV DPTR,#TAB_KL1
0145 73 63 JMP @A+DPTR
0146 2175 64 TAB_KL1: AJMP KS1
0148 218C 65 AJMP KS2
014A 21A3 66 AJMP KS3
014C 21BA 67 AJMP KS4
014E 21D1 68 AJMP KS5
0150 21E8 69 AJMP KS6
0152 21FF 70 AJMP KS7
0154 4116 71 AJMP KS8
0156 2096DE 72 WAIT_KEYL2:JB KEYL2,WAIT_KEYL1
0159 752C00 73 MOV BUFF_T0,#00H
015C E590 74 MOV A,P1
015E 541C 75 ANL A,#00011100B
0160 03 76 RR A
0161 900165 77 MOV DPTR,#TAB_KL2
0164 73 78 JMP @A+DPTR
0165 412D 79 TAB_KL2: AJMP KS9
0167 4144 80 AJMP KS10
0169 414F 81 AJMP KS11
016B 4166 82 AJMP KS12
016D 417D 83 AJMP KS13
016F 4194 84 AJMP KS14
0171 41AB 85 AJMP KS15
0173 41C2 86 AJMP KS16
0175 752800 87 KS1: MOV BUFF_LED7,#00 ;显示键值
0178 752901 88 MOV BUFF_LED8,#01
017B 752211 89 MOV BUFF_LED1,#17
017E 752311 90 MOV BUFF_LED2,#17
0181 752511 91 MOV BUFF_LED4,#17
0184 752611 92 MOV BUFF_LED5,#17
0187 3095FD 93 JNB KEYL1,$
018A 80AB 94 JMP WAIT_KEYL1
018C 752800 95 KS2: MOV BUFF_LED7,#00
018F 752902 96 MOV BUFF_LED8,#02
0192 752211 97 MOV BUFF_LED1,#17
0195 752311 98 MOV BUFF_LED2,#17
0198 752511 99 MOV BUFF_LED4,#17
019B 752611 100 MOV BUFF_LED5,#17
019E 3095FD 101 JNB KEYL1,$
01A1 8094 102 JMP WAIT_KEYL1
01A3 752800 103 KS3: MOV BUFF_LED7,#00
01A6 752903 104 MOV BUFF_LED8,#03
01A9 752211 105 MOV BUFF_LED1,#17
01AC 752311 106 MOV BUFF_LED2,#17
01AF 752511 107 MOV BUFF_LED4,#17
01B2 752611 108 MOV BUFF_LED5,#17
01B5 3095FD 109 JNB KEYL1,$
01B8 2137 110 JMP WAIT_KEYL1
01BA 752800 111 KS4: MOV BUFF_LED7,#00
01BD 752904 112 MOV BUFF_LED8,#04
01C0 752211 113 MOV BUFF_LED1,#17
01C3 752311 114 MOV BUFF_LED2,#17
01C6 752511 115 MOV BUFF_LED4,#17
01C9 752611 116 MOV BUFF_LED5,#17
01CC 3095FD 117 JNB KEYL1,$
01CF 2137 118 JMP WAIT_KEYL1
01D1 752800 119 KS5: MOV BUFF_LED7,#00
01D4 752905 120 MOV BUFF_LED8,#05
01D7 752211 121 MOV BUFF_LED1,#17
01DA 752311 122 MOV BUFF_LED2,#17
01DD 752511 123 MOV BUFF_LED4,#17
01E0 752611 124 MOV BUFF_LED5,#17
A51 MACRO ASSEMBLER DEMO_LED 05/30/2006 10:17:11 PAGE 3
01E3 3095FD 125 JNB KEYL1,$
01E6 2137 126 JMP WAIT_KEYL1
01E8 752800 127 KS6: MOV BUFF_LED7,#00
01EB 752906 128 MOV BUFF_LED8,#06
01EE 752211 129 MOV BUFF_LED1,#17
01F1 752311 130 MOV BUFF_LED2,#17
01F4 752511 131 MOV BUFF_LED4,#17
01F7 752611 132 MOV BUFF_LED5,#17
01FA 3095FD 133 JNB KEYL1,$
01FD 2137 134 JMP WAIT_KEYL1
01FF 752800 135 KS7: MOV BUFF_LED7,#00
0202 752907 136 MOV BUFF_LED8,#07
0205 752211 137 MOV BUFF_LED1,#17
0208 752311 138 MOV BUFF_LED2,#17
020B 752511 139 MOV BUFF_LED4,#17
020E 752611 140 MOV BUFF_LED5,#17
0211 3095FD 141 JNB KEYL1,$
0214 2137 142 JMP WAIT_KEYL1
0216 752800 143 KS8: MOV BUFF_LED7,#00
0219 752908 144 MOV BUFF_LED8,#08
021C 752211 145 MOV BUFF_LED1,#17
021F 752311 146 MOV BUFF_LED2,#17
0222 752511 147 MOV BUFF_LED4,#17
0225 752611 148 MOV BUFF_LED5,#17
0228 3095FD 149 JNB KEYL1,$
022B 2137 150 JMP WAIT_KEYL1
022D 752800 151 KS9: MOV BUFF_LED7,#00
0230 752909 152 MOV BUFF_LED8,#09
0233 752211 153 MOV BUFF_LED1,#17
0236 752311 154 MOV BUFF_LED2,#17
0239 752511 155 MOV BUFF_LED4,#17
023C 752611 156 MOV BUFF_LED5,#17
023F 3096FD 157 JNB KEYL2,$
0242 2137 158 JMP WAIT_KEYL1
0244 752801 159 KS10: MOV BUFF_LED7,#01
0247 752900 160 MOV BUFF_LED8,#00
024A 3096FD 161 JNB KEYL2,$
024D 2137 162 JMP WAIT_KEYL1
024F 752801 163 KS11: MOV BUFF_LED7,#01
0252 752901 164 MOV BUFF_LED8,#01
0255 752211 165 MOV BUFF_LED1,#17
0258 752311 166 MOV BUFF_LED2,#17
025B 752511 167 MOV BUFF_LED4,#17
025E 752611 168 MOV BUFF_LED5,#17
0261 3096FD 169 JNB KEYL2,$
0264 2137 170 JMP WAIT_KEYL1
0266 752801 171 KS12: MOV BUFF_LED7,#01
0269 752902 172 MOV BUFF_LED8,#02
026C 752211 173 MOV BUFF_LED1,#17
026F 752311 174 MOV BUFF_LED2,#17
0272 752511 175 MOV BUFF_LED4,#17
0275 752611 176 MOV BUFF_LED5,#17
0278 3096FD 177 JNB KEYL2,$
027B 2137 178 JMP WAIT_KEYL1
027D 752801 179 KS13: MOV BUFF_LED7,#01
0280 752903 180 MOV BUFF_LED8,#03
0283 752211 181 MOV BUFF_LED1,#17
0286 752311 182 MOV BUFF_LED2,#17
0289 752511 183 MOV BUFF_LED4,#17
028C 752611 184 MOV BUFF_LED5,#17
028F 3096FD 185 JNB KEYL2,$
0292 2137 186 JMP WAIT_KEYL1
0294 752801 187 KS14: MOV BUFF_LED7,#01
0297 752904 188 MOV BUFF_LED8,#04
029A 752211 189 MOV BUFF_LED1,#17
029D 752311 190 MOV BUFF_LED2,#17
A51 MACRO ASSEMBLER DEMO_LED 05/30/2006 10:17:11 PAGE 4
02A0 752511 191 MOV BUFF_LED4,#17
02A3 752611 192 MOV BUFF_LED5,#17
02A6 3096FD 193 JNB KEYL2,$
02A9 2137 194 JMP WAIT_KEYL1
02AB 752801 195 KS15: MOV BUFF_LED7,#01
02AE 752905 196 MOV BUFF_LED8,#05
02B1 752211 197 MOV BUFF_LED1,#17
02B4 752311 198 MOV BUFF_LED2,#17
02B7 752511 199 MOV BUFF_LED4,#17
02BA 752611 200 MOV BUFF_LED5,#17
02BD 3096FD 201 JNB KEYL2,$
02C0 2137 202 JMP WAIT_KEYL1
02C2 752801 203 KS16: MOV BUFF_LED7,#01
02C5 752906 204 MOV BUFF_LED8,#06
02C8 752211 205 MOV BUFF_LED1,#17
02CB 752311 206 MOV BUFF_LED2,#17
02CE 752511 207 MOV BUFF_LED4,#17
02D1 752611 208 MOV BUFF_LED5,#17
02D4 3096FD 209 JNB KEYL2,$
02D7 2137 210 JMP WAIT_KEYL1
02D9 02034F 211 SW5_OKA: JMP SW5_OK
02DC 02036B 212 SW6_OKA: JMP SW6_OK
02DF E530 213 SW1_OK: MOV A,HOR
02E1 B4180C 214 CJNE A,#24,SW1_OVER
02E4 753000 215 MOV HOR,#00H
02E7 D297 216 SETB BEEP
02E9 120387 217 LCALL DEL
02EC C297 218 CLR BEEP
02EE 2137 219 JMP WAIT_KEYL1
02F0 0530 220 SW1_OVER:INC HOR ;时加1
02F2 D297 221 SETB BEEP
02F4 120387 222 LCALL DEL
02F7 C297 223 CLR BEEP
02F9 2137 224 JMP WAIT_KEYL1
225
02FB E530 226 SW2_OK: MOV A,HOR
02FD B4000C 227 CJNE A,#00,SW2_OVER
0300 753017 228 MOV HOR,#23
0303 D297 229 SETB BEEP
0305 120387 230 LCALL DEL
0308 C297 231 CLR BEEP
030A 2137 232 JMP WAIT_KEYL1
030C 1530 233 SW2_OVER:DEC HOR ;时减1
030E D297 234 SETB BEEP
0310 120387 235 LCALL DEL
0313 C297 236 CLR BEEP
0315 2137 237 JMP WAIT_KEYL1
238
0317 E531 239 SW3_OK: MOV A,MIN
0319 B43B0C 240 CJNE A,#59,SW3_OVER
031C 753100 241 MOV MIN,#00H
031F D297 242 SETB BEEP
0321 120387 243 LCALL DEL
0324 C297 244 CLR BEEP
0326 2137 245 JMP WAIT_KEYL1
0328 0531 246 SW3_OVER:INC MIN ;分加1
032A D297 247 SETB BEEP
032C 120387 248 LCALL DEL
032F C297 249 CLR BEEP
0331 2137 250 JMP WAIT_KEYL1
251
0333 E531 252 SW4_OK: MOV A,MIN
0335 B4000C 253 CJNE A,#00,SW4_OVER
0338 75313B 254 MOV MIN,#59
033B D297 255 SETB BEEP
033D 120387 256 LCALL DEL
A51 MACRO ASSEMBLER DEMO_LED 05/30/2006 10:17:11 PAGE 5
0340 C297 257 CLR BEEP
0342 2137 258 JMP WAIT_KEYL1
0344 1531 259 SW4_OVER:DEC MIN ;分减1
0346 D297 260 SETB BEEP
0348 120387 261 LCALL DEL
034B C297 262 CLR BEEP
034D 2137 263 JMP WAIT_KEYL1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -