📄 trafficlight.lst
字号:
0173 C290 120 CLR SOUTH_RED ;南北红灯亮
0175 D291 121 SETB SOUTH_YELLOW ;南北黄灯灭
0177 D292 122 SETB SOUTH_GREEN ;南北绿灯灭
0179 D293 123 SETB EAST_RED ;东西红灯灭
017B C294 124 CLR EAST_YELLOW ;东西黄灯亮
A51 MACRO ASSEMBLER TRAFFICLIGHT 06/23/2007 09:47:05 PAGE 3
017D D295 125 SETB EAST_GREEN ;东西绿灯灭
017F 22 126 RET
0180 127 STATUS5_EXIT:
0180 B295 128 CPL EAST_GREEN ;东西绿灯闪
0182 22 129 RET
130
0183 131 STATUS6:
132 ;---------------------------------
133 ; 散转子程序6
134 ;状态6:南北红灯,东西黄灯 ,持续2秒
135 ;然后转到状态1
136 ;---------------------------------
0183 D53312 137 DJNZ SECOND_COUNT,STATUS6_EXIT
0186 753328 138 MOV SECOND_COUNT,#40 ;2秒定时到,转换到状态1
0189 753200 139 MOV STATUS_FLAG,#00H
018C D290 140 SETB SOUTH_RED ;南北红灯灭
018E D291 141 SETB SOUTH_YELLOW ;南北黄灯灭
0190 C292 142 CLR SOUTH_GREEN ;南北绿灯亮
0192 C293 143 CLR EAST_RED ;东西红灯亮
0194 D294 144 SETB EAST_YELLOW ;东西黄灯灭
0196 D295 145 SETB EAST_GREEN ;东西绿灯灭
0198 146 STATUS6_EXIT:
0198 22 147 RET
148
0199 149 INIT:
150 ;---------------------------------
151 ; 状态初始化子程序
152 ;---------------------------------
0199 D290 153 SETB SOUTH_RED ;南北红灯灭
019B D291 154 SETB SOUTH_YELLOW ;南北黄灯灭
019D C292 155 CLR SOUTH_GREEN ;南北绿灯亮
019F C293 156 CLR EAST_RED ;东西红灯亮
01A1 D294 157 SETB EAST_YELLOW ;东西黄灯灭
01A3 D295 158 SETB EAST_GREEN ;东西绿灯灭
01A5 7530FA 159 MOV TIME_COUNT0,#250 ;变量TIME_COUNT0赋初值250
01A8 753108 160 MOV TIME_COUNT1,#8 ;变量TIME_COUNT1赋初值8
01AB 753328 161 MOV SECOND_COUNT,#40 ;变量SECOND_COUNT赋初值40
01AE 753200 162 MOV STATUS_FLAG,#00H ;变量STATUS_FLAG赋初值00H
01B1 C200 163 CLR SECOND_FLAG ;清零位变量SECOND_FLAG
01B3 22 164 RET
165
01B4 166 T0_INT:
167 ;---------------------------------
168 ; T0中断服务程序
169 ;每0.5秒置一SECOND_FLAG
170 ;---------------------------------
01B4 D5300B 171 DJNZ TIME_COUNT0,T0_INT_EXIT
01B7 7530FA 172 MOV TIME_COUNT0,#250
01BA D53105 173 DJNZ TIME_COUNT1,T0_INT_EXIT
01BD 753108 174 MOV TIME_COUNT1,#8
01C0 D200 175 SETB SECOND_FLAG ;定时0.5秒到,置一SECOND_FLAG
01C2 176 T0_INT_EXIT:
01C2 32 177 RETI
178
01C3 179 T0_INIT:
180 ;---------------------------------
181 ; 定时器T0的初始化
182 ;---------------------------------
01C3 758902 183 MOV TMOD,#00000010B ;定时器T0工作在方式2
01C6 758A06 184 MOV TL0,#06H ;设定定时器T0的初始值
01C9 758C06 185 MOV TH0,#06H ;设定定时器T0的自动重装入值
01CC 758810 186 MOV TCON,#00010000B ;定时器T0使能
01CF D2AF 187 SETB EA ;中断允许总控制位使能
01D1 D2A9 188 SETB ET0 ;T0中断使能
01D3 22 189 RET
190
A51 MACRO ASSEMBLER TRAFFICLIGHT 06/23/2007 09:47:05 PAGE 4
191 END
A51 MACRO ASSEMBLER TRAFFICLIGHT 06/23/2007 09:47:05 PAGE 5
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
EA . . . . . . . . B ADDR 00A8H.7 A
EAST_GREEN . . . . B ADDR 0090H.5 A
EAST_RED . . . . . B ADDR 0090H.3 A
EAST_YELLOW. . . . B ADDR 0090H.4 A
ET0. . . . . . . . B ADDR 00A8H.1 A
INIT . . . . . . . C ADDR 0199H A
LOOP . . . . . . . C ADDR 0109H A
MAIN . . . . . . . C ADDR 0100H A
P1 . . . . . . . . D ADDR 0090H A
SECOND_COUNT . . . D ADDR 0033H A
SECOND_FLAG. . . . B ADDR 0020H.0 A
SOUTH_GREEN. . . . B ADDR 0090H.2 A
SOUTH_RED. . . . . B ADDR 0090H.0 A
SOUTH_YELLOW . . . B ADDR 0090H.1 A
SP . . . . . . . . D ADDR 0081H A
STATUS1. . . . . . C ADDR 0127H A
STATUS1_EXIT . . . C ADDR 0130H A
STATUS2. . . . . . C ADDR 0131H A
STATUS2_EXIT . . . C ADDR 0147H A
STATUS3. . . . . . C ADDR 014AH A
STATUS3_EXIT . . . C ADDR 015FH A
STATUS4. . . . . . C ADDR 0160H A
STATUS4_EXIT . . . C ADDR 0169H A
STATUS5. . . . . . C ADDR 016AH A
STATUS5_EXIT . . . C ADDR 0180H A
STATUS6. . . . . . C ADDR 0183H A
STATUS6_EXIT . . . C ADDR 0198H A
STATUS_CHANGE. . . C ADDR 0113H A
STATUS_FLAG. . . . D ADDR 0032H A
STATUS_PROC_TABLE. C ADDR 011BH A
T0_INIT. . . . . . C ADDR 01C3H A
T0_INT . . . . . . C ADDR 01B4H A
T0_INT_EXIT. . . . C ADDR 01C2H A
TCON . . . . . . . D ADDR 0088H A
TH0. . . . . . . . D ADDR 008CH A
TIME_COUNT0. . . . D ADDR 0030H A
TIME_COUNT1. . . . D ADDR 0031H A
TL0. . . . . . . . D ADDR 008AH A
TMOD . . . . . . . D ADDR 0089H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -