?? demo_led_0809.lst
字號:
A51 MACRO ASSEMBLER DEMO_LED_0809 05/30/2006 11:28:13 PAGE 1
MACRO ASSEMBLER A51 V1.11
OBJECT MODULE PLACED IN DEMO_LED_0809.OBJ
ASSEMBLER INVOKED BY: C:\MANLEY\PMEDWIN\A51.EXE DEMO_LED_0809.ASM DB
LOC OBJ LINE SOURCE
1 ; 文檔內容--ADC0809實驗。
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
9000 26 CS_0809 EQU 9000H ;CS8255接CS1處
9000 27 ADD_0809 EQU 9000H
0030 28 BUFF_RED EQU 30H ;紅燈緩存
0031 29 BUFF_YEL EQU 31H ;黃燈緩存
0032 30 BUFF_GRN EQU 32H ;綠燈緩存
0033 31 BUFF_STEP EQU 33H ;交通燈運行步驟
003C 32 RED_VAL EQU 60
0005 33 YEL_VAL EQU 5
001E 34 GRN_VAL EQU 30
0038 35 HOR EQU 38H
0039 36 MIN EQU 39H
003A 37 SEC EQU 3AH
0000 38 org 000h
0000 020100 39 JMP main
000B 40 ORG 00BH
000B 0203BD 41 JMP T0_INT
0100 42 ORG 100H
0100 758140 43 MAIN: MOV SP ,#40H
0103 75D000 44 MOV PSW,#00H
0106 787F 45 MOV R0,#7FH ;初始化RAM區,
0108 7400 46 CLR_RAM:MOV A,#00H
010A F6 47 MOV @R0,A
010B D8FB 48 DJNZ R0,CLR_RAM
010D 7590FF 49 MOV P1,#0FFH ;INIT
0110 75A0FF 50 MOV P2,#0FFH
0113 7580FF 51 MOV P0,#0FFH
0116 75B0FF 52 MOV P3,#0FFH
0119 758921 53 MOV TMOD,#21h
011C 758CF4 54 MOV TH0,#HIGH(65536-3000) ;T0=3MS
011F 758A47 55 MOV TL0,#LOW(65535-3000)
0122 D28C 56 SETB TR0
0124 D2A9 57 SETB ET0
0126 D2AF 58 SETB EA
A51 MACRO ASSEMBLER DEMO_LED_0809 05/30/2006 11:28:13 PAGE 2
0128 752200 59 MOV BUFF_LED1,#00H
012B 752311 60 MOV BUFF_LED2,#17
012E 752411 61 MOV BUFF_LED3,#17
0131 752511 62 MOV BUFF_LED4,#17
0134 752611 63 MOV BUFF_LED5,#17
0137 909000 64 MLOOP: MOV DPTR,#ADD_0809 ;啟動ADC0809第0通道
013A 7400 65 MOV A,#00H
013C F0 66 MOVX @DPTR,A
013D 1203A7 67 LCALL DEL ;延時讀取轉換值
0140 E0 68 MOVX A,@DPTR
0141 75F064 69 MOV B,#100
0144 84 70 DIV AB
0145 F527 71 MOV BUFF_LED6,A
0147 E5F0 72 MOV A,B
0149 75F00A 73 MOV B,#10
014C 84 74 DIV AB
014D F528 75 MOV BUFF_LED7,A
014F 85F029 76 MOV BUFF_LED8,B
0152 1203B0 77 LCALL DEL1S
0155 80E0 78 JMP MLOOP
79
0157 20951C 80 WAIT_KEYL1:JB KEYL1,WAIT_KEYL2 ;等候按鍵!(使用按鍵S1-S8切換AD通到)
015A 752C00 81 MOV BUFF_T0,#00H
015D E590 82 MOV A,P1
015F 541C 83 ANL A,#00011100B
0161 03 84 RR A
0162 900166 85 MOV DPTR,#TAB_KL1
0165 73 86 JMP @A+DPTR
0166 2195 87 TAB_KL1: AJMP KS1
0168 21AC 88 AJMP KS2
016A 21C3 89 AJMP KS3
016C 21DA 90 AJMP KS4
016E 21F1 91 AJMP KS5
0170 4108 92 AJMP KS6
0172 411F 93 AJMP KS7
0174 4136 94 AJMP KS8
0176 2096DE 95 WAIT_KEYL2:JB KEYL2,WAIT_KEYL1
0179 752C00 96 MOV BUFF_T0,#00H
017C E590 97 MOV A,P1
017E 541C 98 ANL A,#00011100B
0180 03 99 RR A
0181 900185 100 MOV DPTR,#TAB_KL2
0184 73 101 JMP @A+DPTR
0185 414D 102 TAB_KL2: AJMP KS9
0187 4164 103 AJMP KS10
0189 416F 104 AJMP KS11
018B 4186 105 AJMP KS12
018D 419D 106 AJMP KS13
018F 41B4 107 AJMP KS14
0191 41CB 108 AJMP KS15
0193 41E2 109 AJMP KS16
0195 752800 110 KS1: MOV BUFF_LED7,#00 ;顯示鍵值
0198 752901 111 MOV BUFF_LED8,#01
019B 752211 112 MOV BUFF_LED1,#17
019E 752311 113 MOV BUFF_LED2,#17
01A1 752511 114 MOV BUFF_LED4,#17
01A4 752611 115 MOV BUFF_LED5,#17
01A7 3095FD 116 JNB KEYL1,$
01AA 80AB 117 JMP WAIT_KEYL1
01AC 752800 118 KS2: MOV BUFF_LED7,#00
01AF 752902 119 MOV BUFF_LED8,#02
01B2 752211 120 MOV BUFF_LED1,#17
01B5 752311 121 MOV BUFF_LED2,#17
01B8 752511 122 MOV BUFF_LED4,#17
01BB 752611 123 MOV BUFF_LED5,#17
01BE 3095FD 124 JNB KEYL1,$
A51 MACRO ASSEMBLER DEMO_LED_0809 05/30/2006 11:28:13 PAGE 3
01C1 8094 125 JMP WAIT_KEYL1
01C3 752800 126 KS3: MOV BUFF_LED7,#00
01C6 752903 127 MOV BUFF_LED8,#03
01C9 752211 128 MOV BUFF_LED1,#17
01CC 752311 129 MOV BUFF_LED2,#17
01CF 752511 130 MOV BUFF_LED4,#17
01D2 752611 131 MOV BUFF_LED5,#17
01D5 3095FD 132 JNB KEYL1,$
01D8 2157 133 JMP WAIT_KEYL1
01DA 752800 134 KS4: MOV BUFF_LED7,#00
01DD 752904 135 MOV BUFF_LED8,#04
01E0 752211 136 MOV BUFF_LED1,#17
01E3 752311 137 MOV BUFF_LED2,#17
01E6 752511 138 MOV BUFF_LED4,#17
01E9 752611 139 MOV BUFF_LED5,#17
01EC 3095FD 140 JNB KEYL1,$
01EF 2157 141 JMP WAIT_KEYL1
01F1 752800 142 KS5: MOV BUFF_LED7,#00
01F4 752905 143 MOV BUFF_LED8,#05
01F7 752211 144 MOV BUFF_LED1,#17
01FA 752311 145 MOV BUFF_LED2,#17
01FD 752511 146 MOV BUFF_LED4,#17
0200 752611 147 MOV BUFF_LED5,#17
0203 3095FD 148 JNB KEYL1,$
0206 2157 149 JMP WAIT_KEYL1
0208 752800 150 KS6: MOV BUFF_LED7,#00
020B 752906 151 MOV BUFF_LED8,#06
020E 752211 152 MOV BUFF_LED1,#17
0211 752311 153 MOV BUFF_LED2,#17
0214 752511 154 MOV BUFF_LED4,#17
0217 752611 155 MOV BUFF_LED5,#17
021A 3095FD 156 JNB KEYL1,$
021D 2157 157 JMP WAIT_KEYL1
021F 752800 158 KS7: MOV BUFF_LED7,#00
0222 752907 159 MOV BUFF_LED8,#07
0225 752211 160 MOV BUFF_LED1,#17
0228 752311 161 MOV BUFF_LED2,#17
022B 752511 162 MOV BUFF_LED4,#17
022E 752611 163 MOV BUFF_LED5,#17
0231 3095FD 164 JNB KEYL1,$
0234 2157 165 JMP WAIT_KEYL1
0236 752800 166 KS8: MOV BUFF_LED7,#00
0239 752908 167 MOV BUFF_LED8,#08
023C 752211 168 MOV BUFF_LED1,#17
023F 752311 169 MOV BUFF_LED2,#17
0242 752511 170 MOV BUFF_LED4,#17
0245 752611 171 MOV BUFF_LED5,#17
0248 3095FD 172 JNB KEYL1,$
024B 2157 173 JMP WAIT_KEYL1
024D 752800 174 KS9: MOV BUFF_LED7,#00
0250 752909 175 MOV BUFF_LED8,#09
0253 752211 176 MOV BUFF_LED1,#17
0256 752311 177 MOV BUFF_LED2,#17
0259 752511 178 MOV BUFF_LED4,#17
025C 752611 179 MOV BUFF_LED5,#17
025F 3096FD 180 JNB KEYL2,$
0262 2157 181 JMP WAIT_KEYL1
0264 752801 182 KS10: MOV BUFF_LED7,#01
0267 752900 183 MOV BUFF_LED8,#00
026A 3096FD 184 JNB KEYL2,$
026D 2157 185 JMP WAIT_KEYL1
026F 752801 186 KS11: MOV BUFF_LED7,#01
0272 752901 187 MOV BUFF_LED8,#01
0275 752211 188 MOV BUFF_LED1,#17
0278 752311 189 MOV BUFF_LED2,#17
027B 752511 190 MOV BUFF_LED4,#17
A51 MACRO ASSEMBLER DEMO_LED_0809 05/30/2006 11:28:13 PAGE 4
027E 752611 191 MOV BUFF_LED5,#17
0281 3096FD 192 JNB KEYL2,$
0284 2157 193 JMP WAIT_KEYL1
0286 752801 194 KS12: MOV BUFF_LED7,#01
0289 752902 195 MOV BUFF_LED8,#02
028C 752211 196 MOV BUFF_LED1,#17
028F 752311 197 MOV BUFF_LED2,#17
0292 752511 198 MOV BUFF_LED4,#17
0295 752611 199 MOV BUFF_LED5,#17
0298 3096FD 200 JNB KEYL2,$
029B 2157 201 JMP WAIT_KEYL1
029D 752801 202 KS13: MOV BUFF_LED7,#01
02A0 752903 203 MOV BUFF_LED8,#03
02A3 752211 204 MOV BUFF_LED1,#17
02A6 752311 205 MOV BUFF_LED2,#17
02A9 752511 206 MOV BUFF_LED4,#17
02AC 752611 207 MOV BUFF_LED5,#17
02AF 3096FD 208 JNB KEYL2,$
02B2 2157 209 JMP WAIT_KEYL1
02B4 752801 210 KS14: MOV BUFF_LED7,#01
02B7 752904 211 MOV BUFF_LED8,#04
02BA 752211 212 MOV BUFF_LED1,#17
02BD 752311 213 MOV BUFF_LED2,#17
02C0 752511 214 MOV BUFF_LED4,#17
02C3 752611 215 MOV BUFF_LED5,#17
02C6 3096FD 216 JNB KEYL2,$
02C9 2157 217 JMP WAIT_KEYL1
02CB 752801 218 KS15: MOV BUFF_LED7,#01
02CE 752905 219 MOV BUFF_LED8,#05
02D1 752211 220 MOV BUFF_LED1,#17
02D4 752311 221 MOV BUFF_LED2,#17
02D7 752511 222 MOV BUFF_LED4,#17
02DA 752611 223 MOV BUFF_LED5,#17
02DD 3096FD 224 JNB KEYL2,$
02E0 2157 225 JMP WAIT_KEYL1
02E2 752801 226 KS16: MOV BUFF_LED7,#01
02E5 752906 227 MOV BUFF_LED8,#06
02E8 752211 228 MOV BUFF_LED1,#17
02EB 752311 229 MOV BUFF_LED2,#17
02EE 752511 230 MOV BUFF_LED4,#17
02F1 752611 231 MOV BUFF_LED5,#17
02F4 3096FD 232 JNB KEYL2,$
02F7 2157 233 JMP WAIT_KEYL1
02F9 02036F 234 SW5_OKA: JMP SW5_OK
02FC 02038B 235 SW6_OKA: JMP SW6_OK
02FF E538 236 SW1_OK: MOV A,HOR
0301 B4180C 237 CJNE A,#24,SW1_OVER
0304 753800 238 MOV HOR,#00H
0307 D297 239 SETB BEEP
0309 1203A7 240 LCALL DEL
030C C297 241 CLR BEEP
030E 2157 242 JMP WAIT_KEYL1
0310 0538 243 SW1_OVER:INC HOR ;時加1
0312 D297 244 SETB BEEP
0314 1203A7 245 LCALL DEL
0317 C297 246 CLR BEEP
0319 2157 247 JMP WAIT_KEYL1
248
031B E538 249 SW2_OK: MOV A,HOR
031D B4000C 250 CJNE A,#00,SW2_OVER
0320 753817 251 MOV HOR,#23
0323 D297 252 SETB BEEP
0325 1203A7 253 LCALL DEL
0328 C297 254 CLR BEEP
032A 2157 255 JMP WAIT_KEYL1
032C 1538 256 SW2_OVER:DEC HOR ;時減1
A51 MACRO ASSEMBLER DEMO_LED_0809 05/30/2006 11:28:13 PAGE 5
032E D297 257 SETB BEEP
0330 1203A7 258 LCALL DEL
0333 C297 259 CLR BEEP
0335 2157 260 JMP WAIT_KEYL1
261
0337 E539 262 SW3_OK: MOV A,MIN
0339 B43B0C 263 CJNE A,#59,SW3_OVER
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -