📄 main.lis
字号:
0120 L21:
0120 .dbline 0 ; func end
0120 0895 ret
0122 .dbend
.area vector(rom, abs)
.org 76
004C 0C949100 jmp _Timer0_Interrupt
.area text(rom, con, rel)
0122 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\交通灯控制系统设计\main.c
.area data(ram, con, rel)
0004 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\交通灯控制系统设计\main.c
0004 L26:
0004 .blkb 1
.area idata
0004 00 .byte 0
.area data(ram, con, rel)
0005 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\交通灯控制系统设计\main.c
.area text(rom, con, rel)
0122 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\交通灯控制系统设计\main.c
0122 .dbfunc e Timer0_Interrupt _Timer0_Interrupt fV
0122 .dbsym s TimeCount L26 c
.even
0122 _Timer0_Interrupt::
0122 0E940000 xcall push_lset
0126 .dbline -1
0126 .dbline 102
0126 ;
0126 ; #pragma interrupt_handler Timer0_Interrupt:20
0126 ; void Timer0_Interrupt(void)
0126 ; {
0126 .dbline 105
0126 ; static INT8U TimeCount = 0;
0126 ; //Clear Timer0 OCIF Flag
0126 ; TIFR |= 0x02;
0126 88B7 in R24,0x38
0128 8260 ori R24,2
012A 88BF out 0x38,R24
012C .dbline 106
012C ; TCNT0 = 0x00;
012C 2224 clr R2
012E 22BE out 0x32,R2
0130 .dbline 107
0130 ; if(ControllerMode == cNormalMode)
0130 80910400 lds R24,_ControllerMode
0134 8130 cpi R24,1
0136 09F0 breq X3
0138 3FC0 xjmp L27
013A X3:
013A .dbline 108
013A ; {
013A .dbline 109
013A ; INT2BCD(Time_V,TimeBCD_V);
013A 20E0 ldi R18,<_TimeBCD_V
013C 30E0 ldi R19,>_TimeBCD_V
013E 00910100 lds R16,_Time_V
0142 0E940000 xcall _INT2BCD
0146 .dbline 110
0146 ; INT2BCD(Time_H,TimeBCD_H);
0146 20E0 ldi R18,<_TimeBCD_H
0148 30E0 ldi R19,>_TimeBCD_H
014A 00910000 lds R16,_Time_H
014E 0E940000 xcall _INT2BCD
0152 .dbline 111
0152 ; if(TimeCount == 0)
0152 20900400 lds R2,L26
0156 2220 tst R2
0158 B1F4 brne L29
015A .dbline 112
015A ; {
015A .dbline 113
015A ; mSet_Data_V(DataConvert(TimeBCD_V[0]));
015A 00910000 lds R16,_TimeBCD_V
015E 0E940000 xcall _DataConvert
0162 0BBB out 0x1b,R16
0164 .dbline 114
0164 ; mSet_Data_H(DataConvert(TimeBCD_H[0]));
0164 00910200 lds R16,_TimeBCD_H
0168 0E940000 xcall _DataConvert
016C 02BB out 0x12,R16
016E .dbline 115
016E ; mSelect_V0();
016E 88B3 in R24,0x18
0170 8063 ori R24,48
0172 8F7E andi R24,239
0174 88BB out 0x18,R24
0176 .dbline 116
0176 ; mSelect_H0();
0176 88B3 in R24,0x18
0178 806C ori R24,192
017A 8F7B andi R24,191
017C 88BB out 0x18,R24
017E .dbline 117
017E ; TimeCount = 1;
017E 81E0 ldi R24,1
0180 80930400 sts L26,R24
0184 .dbline 118
0184 ; }
0184 19C0 xjmp L30
0186 L29:
0186 .dbline 119
0186 ; else if(TimeCount == 1)
0186 80910400 lds R24,L26
018A 8130 cpi R24,1
018C A9F4 brne L31
018E .dbline 120
018E ; {
018E .dbline 121
018E ; mSet_Data_V(DataConvert(TimeBCD_V[1]));
018E 00910100 lds R16,_TimeBCD_V+1
0192 0E940000 xcall _DataConvert
0196 0BBB out 0x1b,R16
0198 .dbline 122
0198 ; mSet_Data_H(DataConvert(TimeBCD_H[1]));
0198 00910300 lds R16,_TimeBCD_H+1
019C 0E940000 xcall _DataConvert
01A0 02BB out 0x12,R16
01A2 .dbline 123
01A2 ; mSelect_V1();
01A2 88B3 in R24,0x18
01A4 8063 ori R24,48
01A6 8F7D andi R24,223
01A8 88BB out 0x18,R24
01AA .dbline 124
01AA ; mSelect_H1();
01AA 88B3 in R24,0x18
01AC 806C ori R24,192
01AE 8F77 andi R24,127
01B0 88BB out 0x18,R24
01B2 .dbline 125
01B2 ; TimeCount = 0;
01B2 2224 clr R2
01B4 20920400 sts L26,R2
01B8 .dbline 126
01B8 ; }
01B8 L31:
01B8 L30:
01B8 .dbline 127
01B8 L27:
01B8 .dbline -2
01B8 .dbline 128
01B8 ; }
01B8 ; }
01B8 L25:
01B8 0E940000 xcall pop_lset
01BC .dbline 0 ; func end
01BC 1895 reti
01BE .dbend
.area vector(rom, abs)
.org 24
0018 0C94DF00 jmp _Timer1_Interrupt
.area text(rom, con, rel)
01BE .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\交通灯控制系统设计\main.c
.area data(ram, con, rel)
0005 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\交通灯控制系统设计\main.c
0005 L36:
0005 .blkb 1
.area idata
0005 00 .byte 0
.area data(ram, con, rel)
0006 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\交通灯控制系统设计\main.c
.area text(rom, con, rel)
01BE .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\交通灯控制系统设计\main.c
01BE .dbfunc e Timer1_Interrupt _Timer1_Interrupt fV
01BE .dbsym s TimeCount L36 c
.even
01BE _Timer1_Interrupt::
01BE 0E940000 xcall push_lset
01C2 .dbline -1
01C2 .dbline 132
01C2 ;
01C2 ; #pragma interrupt_handler Timer1_Interrupt:7
01C2 ; void Timer1_Interrupt(void)
01C2 ; {
01C2 .dbline 135
01C2 ; static INT8U TimeCount = 0;
01C2 ; //Clear Timer1 OCIF Flag
01C2 ; TIFR |= 0x10;
01C2 88B7 in R24,0x38
01C4 8061 ori R24,16
01C6 88BF out 0x38,R24
01C8 .dbline 136
01C8 ; TCNT1 = 0x00;
01C8 2224 clr R2
01CA 3324 clr R3
01CC 3DBC out 0x2d,R3
01CE 2CBC out 0x2c,R2
01D0 .dbline 137
01D0 ; if(ControllerMode == cSelfTestMode)
01D0 20900400 lds R2,_ControllerMode
01D4 2220 tst R2
01D6 09F0 breq X4
01D8 7DC0 xjmp L37
01DA X4:
01DA .dbline 138
01DA ; {
01DA .dbline 139
01DA ; TimeCount++;
01DA 80910500 lds R24,L36
01DE 8F5F subi R24,255 ; addi 1
01E0 80930500 sts L36,R24
01E4 .dbline 140
01E4 ; if(TimeCount == 1)
01E4 8130 cpi R24,1
01E6 69F4 brne L39
01E8 .dbline 141
01E8 ; {
01E8 .dbline 142
01E8 ; LED_ON_OFF(cR_LED_V,cLED_ON);
01E8 21E0 ldi R18,1
01EA 0027 clr R16
01EC 0E940000 xcall _LED_ON_OFF
01F0 .dbline 143
01F0 ; LED_ON_OFF(cG_LED_V,cLED_ON);
01F0 21E0 ldi R18,1
01F2 02E0 ldi R16,2
01F4 0E940000 xcall _LED_ON_OFF
01F8 .dbline 144
01F8 ; LED_ON_OFF(cY_LED_V,cLED_ON);
01F8 21E0 ldi R18,1
01FA 01E0 ldi R16,1
01FC 0E940000 xcall _LED_ON_OFF
0200 .dbline 145
0200 ; }
0200 F4C0 xjmp L38
0202 L39:
0202 .dbline 146
0202 ; else if(TimeCount == 2)
0202 80910500 lds R24,L36
0206 8230 cpi R24,2
0208 31F4 brne L41
020A .dbline 147
020A ; {
020A .dbline 148
020A ; mSet_Data_V(0xFF);
020A 8FEF ldi R24,255
020C 8BBB out 0x1b,R24
020E .dbline 149
020E ; mSelect_VA();
020E 88B3 in R24,0x18
0210 8F7C andi R24,207
0212 88BB out 0x18,R24
0214 .dbline 150
0214 ; }
0214 EAC0 xjmp L38
0216 L41:
0216 .dbline 151
0216 ; else if(TimeCount == 3)
0216 80910500 lds R24,L36
021A 8330 cpi R24,3
021C 69F4 brne L43
021E .dbline 152
021E ; {
021E .dbline 153
021E ; LED_ON_OFF(cR_LED_H,cLED_ON);
021E 21E0 ldi R18,1
0220 03E0 ldi R16,3
0222 0E940000 xcall _LED_ON_OFF
0226 .dbline 154
0226 ; LED_ON_OFF(cG_LED_H,cLED_ON);
0226 21E0 ldi R18,1
0228 05E0 ldi R16,5
022A 0E940000 xcall _LED_ON_OFF
022E .dbline 155
022E ; LED_ON_OFF(cY_LED_H,cLED_ON);
022E 21E0 ldi R18,1
0230 04E0 ldi R16,4
0232 0E940000 xcall _LED_ON_OFF
0236 .dbline 156
0236 ; }
0236 D9C0 xjmp L38
0238 L43:
0238 .dbline 157
0238 ; else if(TimeCount == 4)
0238 80910500 lds R24,L36
023C 8430 cpi R24,4
023E 31F4 brne L45
0240 .dbline 158
0240 ; {
0240 .dbline 159
0240 ; mSet_Data_H(0xFF);
0240 8FEF ldi R24,255
0242 82BB out 0x12,R24
0244 .dbline 160
0244 ; mSelect_HA();
0244 88B3 in R24,0x18
0246 8F73 andi R24,63
0248 88BB out 0x18,R24
024A .dbline 161
024A ; }
024A CFC0 xjmp L38
024C L45:
024C .dbline 162
024C ; else if(TimeCount == 5)
024C 80910500 lds R24,L36
0250 8530 cpi R24,5
0252 69F4 brne L47
0254 .dbline 163
0254 ; {
0254 .dbline 164
0254 ; LED_ON_OFF(cR_LED_V,cLED_OFF);
0254 2227 clr R18
0256 0027 clr R16
0258 0E940000 xcall _LED_ON_OFF
025C .dbline 165
025C ; LED_ON_OFF(cG_LED_V,cLED_OFF);
025C 2227 clr R18
025E 02E0 ldi R16,2
0260 0E940000 xcall _LED_ON_OFF
0264 .dbline 166
0264 ; LED_ON_OFF(cY_LED_V,cLED_OFF);
0264 2227 clr R18
0266 01E0 ldi R16,1
0268 0E940000 xcall _LED_ON_OFF
026C .dbline 167
026C ; }
026C BEC0 xjmp L38
026E L47:
026E .dbline 168
026E ; else if(TimeCount == 6)
026E 80910500 lds R24,L36
0272 8630 cpi R24,6
0274 21F4 brne L49
0276 .dbline 169
0276 ; {
0276 .dbline 170
0276 ; mSelect_VN();
0276 88B3 in R24,0x18
0278 8063 ori R24,48
027A 88BB out 0x18,R24
027C .dbline 171
027C ; }
027C B6C0 xjmp L38
027E L49:
027E .dbline 172
027E ; else if(TimeCount == 7)
027E 80910500 lds R24,L36
0282 8730 cpi R24,7
0284 69F4 brne L51
0286 .dbline 173
0286 ; {
0286 .dbline 174
0286 ; LED_ON_OFF(cR_LED_H,cLED_OFF);
0286 2227 clr R18
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -