📄 demo_led_8255.lst
字号:
A51 MACRO ASSEMBLER DEMO_LED_8255 05/30/2006 11:12:23 PAGE 1
MACRO ASSEMBLER A51 V1.11
OBJECT MODULE PLACED IN DEMO_LED_8255.OBJ
ASSEMBLER INVOKED BY: C:\MANLEY\PMEDWIN\A51.EXE DEMO_LED_8255.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
8000 26 CS_8255 EQU 8000H ;CS8255接CS0处
8000 27 ADD_8255_PA EQU 08000H
8001 28 ADD_8255_PB EQU 08001H
8002 29 ADD_8255_PC EQU 08002H
8003 30 ADD_8255_PCON EQU 08003H
0030 31 BUFF_RED EQU 30H ;红灯缓存
0031 32 BUFF_YEL EQU 31H ;黄灯缓存
0032 33 BUFF_GRN EQU 32H ;绿灯缓存
0033 34 BUFF_STEP EQU 33H ;交通灯运行步骤
003C 35 RED_VAL EQU 60
0005 36 YEL_VAL EQU 5
001E 37 GRN_VAL EQU 30
0038 38 HOR EQU 38H
0039 39 MIN EQU 39H
003A 40 SEC EQU 3AH
0000 41 org 000h
0000 020100 42 JMP main
000B 43 ORG 00BH
000B 0203BA 44 JMP T0_INT
0100 45 ORG 100H
0100 758140 46 MAIN: MOV SP ,#40H
0103 75D000 47 MOV PSW,#00H
0106 787F 48 MOV R0,#7FH ;初始化RAM区,
0108 7400 49 CLR_RAM:MOV A,#00H
010A F6 50 MOV @R0,A
010B D8FB 51 DJNZ R0,CLR_RAM
010D 7590FF 52 MOV P1,#0FFH ;INIT
0110 75A0FF 53 MOV P2,#0FFH
0113 7580FF 54 MOV P0,#0FFH
0116 75B0FF 55 MOV P3,#0FFH
0119 758921 56 MOV TMOD,#21h
011C 758CF4 57 MOV TH0,#HIGH(65536-3000) ;T0=3MS
011F 758A47 58 MOV TL0,#LOW(65535-3000)
A51 MACRO ASSEMBLER DEMO_LED_8255 05/30/2006 11:12:23 PAGE 2
59 ; SETB TR0
60 ; SETB ET0
61 ; SETB EA
0122 908003 62 MOV DPTR,#ADD_8255_PCON ;初始化8255
0125 7480 63 MOV A,#80H
0127 F0 64 MOVX @DPTR,A
0128 908000 65 MOV DPTR,#ADD_8255_PA
012B 7400 66 MLOOP: MOV A,#00H
012D F0 67 MOVX @DPTR,A
012E 120398 68 LCALL DEL
0131 74FF 69 MOV A,#0FFH
0133 F0 70 MOVX @DPTR,A
0134 120398 71 LCALL DEL
0137 80F2 72 JMP MLOOP
73
0139 75380A 74 mov hor,#10
013C 75390A 75 mov min,#10
013F 753A0A 76 mov sec,#10
0142 752711 77 MOV BUFF_LED6,#17
0145 752411 78 MOV BUFF_LED3,#17
79
0148 20951C 80 WAIT_KEYL1:JB KEYL1,WAIT_KEYL2 ;等候按键!
014B 752C00 81 MOV BUFF_T0,#00H
014E E590 82 MOV A,P1
0150 541C 83 ANL A,#00011100B
0152 03 84 RR A
0153 900157 85 MOV DPTR,#TAB_KL1
0156 73 86 JMP @A+DPTR
0157 2186 87 TAB_KL1: AJMP KS1
0159 219D 88 AJMP KS2
015B 21B4 89 AJMP KS3
015D 21CB 90 AJMP KS4
015F 21E2 91 AJMP KS5
0161 21F9 92 AJMP KS6
0163 4110 93 AJMP KS7
0165 4127 94 AJMP KS8
0167 2096DE 95 WAIT_KEYL2:JB KEYL2,WAIT_KEYL1
016A 752C00 96 MOV BUFF_T0,#00H
016D E590 97 MOV A,P1
016F 541C 98 ANL A,#00011100B
0171 03 99 RR A
0172 900176 100 MOV DPTR,#TAB_KL2
0175 73 101 JMP @A+DPTR
0176 413E 102 TAB_KL2: AJMP KS9
0178 4155 103 AJMP KS10
017A 4160 104 AJMP KS11
017C 4177 105 AJMP KS12
017E 418E 106 AJMP KS13
0180 41A5 107 AJMP KS14
0182 41BC 108 AJMP KS15
0184 41D3 109 AJMP KS16
0186 752800 110 KS1: MOV BUFF_LED7,#00 ;显示键值
0189 752901 111 MOV BUFF_LED8,#01
018C 752211 112 MOV BUFF_LED1,#17
018F 752311 113 MOV BUFF_LED2,#17
0192 752511 114 MOV BUFF_LED4,#17
0195 752611 115 MOV BUFF_LED5,#17
0198 3095FD 116 JNB KEYL1,$
019B 80AB 117 JMP WAIT_KEYL1
019D 752800 118 KS2: MOV BUFF_LED7,#00
01A0 752902 119 MOV BUFF_LED8,#02
01A3 752211 120 MOV BUFF_LED1,#17
01A6 752311 121 MOV BUFF_LED2,#17
01A9 752511 122 MOV BUFF_LED4,#17
01AC 752611 123 MOV BUFF_LED5,#17
01AF 3095FD 124 JNB KEYL1,$
A51 MACRO ASSEMBLER DEMO_LED_8255 05/30/2006 11:12:23 PAGE 3
01B2 8094 125 JMP WAIT_KEYL1
01B4 752800 126 KS3: MOV BUFF_LED7,#00
01B7 752903 127 MOV BUFF_LED8,#03
01BA 752211 128 MOV BUFF_LED1,#17
01BD 752311 129 MOV BUFF_LED2,#17
01C0 752511 130 MOV BUFF_LED4,#17
01C3 752611 131 MOV BUFF_LED5,#17
01C6 3095FD 132 JNB KEYL1,$
01C9 2148 133 JMP WAIT_KEYL1
01CB 752800 134 KS4: MOV BUFF_LED7,#00
01CE 752904 135 MOV BUFF_LED8,#04
01D1 752211 136 MOV BUFF_LED1,#17
01D4 752311 137 MOV BUFF_LED2,#17
01D7 752511 138 MOV BUFF_LED4,#17
01DA 752611 139 MOV BUFF_LED5,#17
01DD 3095FD 140 JNB KEYL1,$
01E0 2148 141 JMP WAIT_KEYL1
01E2 752800 142 KS5: MOV BUFF_LED7,#00
01E5 752905 143 MOV BUFF_LED8,#05
01E8 752211 144 MOV BUFF_LED1,#17
01EB 752311 145 MOV BUFF_LED2,#17
01EE 752511 146 MOV BUFF_LED4,#17
01F1 752611 147 MOV BUFF_LED5,#17
01F4 3095FD 148 JNB KEYL1,$
01F7 2148 149 JMP WAIT_KEYL1
01F9 752800 150 KS6: MOV BUFF_LED7,#00
01FC 752906 151 MOV BUFF_LED8,#06
01FF 752211 152 MOV BUFF_LED1,#17
0202 752311 153 MOV BUFF_LED2,#17
0205 752511 154 MOV BUFF_LED4,#17
0208 752611 155 MOV BUFF_LED5,#17
020B 3095FD 156 JNB KEYL1,$
020E 2148 157 JMP WAIT_KEYL1
0210 752800 158 KS7: MOV BUFF_LED7,#00
0213 752907 159 MOV BUFF_LED8,#07
0216 752211 160 MOV BUFF_LED1,#17
0219 752311 161 MOV BUFF_LED2,#17
021C 752511 162 MOV BUFF_LED4,#17
021F 752611 163 MOV BUFF_LED5,#17
0222 3095FD 164 JNB KEYL1,$
0225 2148 165 JMP WAIT_KEYL1
0227 752800 166 KS8: MOV BUFF_LED7,#00
022A 752908 167 MOV BUFF_LED8,#08
022D 752211 168 MOV BUFF_LED1,#17
0230 752311 169 MOV BUFF_LED2,#17
0233 752511 170 MOV BUFF_LED4,#17
0236 752611 171 MOV BUFF_LED5,#17
0239 3095FD 172 JNB KEYL1,$
023C 2148 173 JMP WAIT_KEYL1
023E 752800 174 KS9: MOV BUFF_LED7,#00
0241 752909 175 MOV BUFF_LED8,#09
0244 752211 176 MOV BUFF_LED1,#17
0247 752311 177 MOV BUFF_LED2,#17
024A 752511 178 MOV BUFF_LED4,#17
024D 752611 179 MOV BUFF_LED5,#17
0250 3096FD 180 JNB KEYL2,$
0253 2148 181 JMP WAIT_KEYL1
0255 752801 182 KS10: MOV BUFF_LED7,#01
0258 752900 183 MOV BUFF_LED8,#00
025B 3096FD 184 JNB KEYL2,$
025E 2148 185 JMP WAIT_KEYL1
0260 752801 186 KS11: MOV BUFF_LED7,#01
0263 752901 187 MOV BUFF_LED8,#01
0266 752211 188 MOV BUFF_LED1,#17
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -