📄 main.lis
字号:
.module main.c
.area data(ram, con, rel)
0000 _TimeBCD_V::
0000 .blkb 2
.area idata
0000 0000 .byte 0,0
.area data(ram, con, rel)
0002 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\交通灯控制系统设计\main.c
0002 .dbsym e TimeBCD_V _TimeBCD_V A[2:2]c
0002 _TimeBCD_H::
0002 .blkb 2
.area idata
0002 0000 .byte 0,0
.area data(ram, con, rel)
0004 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\交通灯控制系统设计\main.c
0004 .dbsym e TimeBCD_H _TimeBCD_H A[2:2]c
.area lit(rom, con, rel)
0000 _SegTable::
0000 7E60 .byte 126,96
0002 3D79 .byte 61,'y
0004 635B .byte 'c,91
0006 5F70 .byte 95,'p
0008 7F7B .byte 127,123
000A .dbsym e SegTable _SegTable A[10:10]kc
.area text(rom, con, rel)
0000 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\交通灯控制系统设计\main.c
0000 .dbfunc e System_Init _System_Init fV
.even
0000 _System_Init::
0000 .dbline -1
0000 .dbline 28
0000 ; #include "iom16v.h"
0000 ; #include "DataType.h"
0000 ; #include "app.h"
0000 ;
0000 ; #define cSelfTestMode 0
0000 ; #define cNormalMode 1
0000 ;
0000 ; #define cTraffic_V 0
0000 ; #define cTraffic_H 1
0000 ;
0000 ; #define cReserved 0
0000 ; #define cForbidden 1
0000 ; #define cBuffer1 2
0000 ; #define cAllow 3
0000 ; #define cBuffer2 4
0000 ;
0000 ; INT8U ControllerMode;
0000 ; INT8U TrafficStatus_V;
0000 ; INT8U TrafficStatus_H;
0000 ; INT8U Time_V;
0000 ; INT8U Time_H;
0000 ; INT8U TimeBCD_V[2] = {0,0};
0000 ; INT8U TimeBCD_H[2] = {0,0};
0000 ;
0000 ; const INT8U SegTable[] = {0x7E,0x60,0x3D,0x79,0x63,0x5B,0x5F,0x70,0x7F,0x7B};
0000 ;
0000 ; void System_Init(void)
0000 ; {
0000 .dbline 29
0000 ; ControllerMode = cSelfTestMode;
0000 2224 clr R2
0002 20920400 sts _ControllerMode,R2
0006 .dbline 30
0006 ; TrafficStatus_V = cReserved;
0006 20920300 sts _TrafficStatus_V,R2
000A .dbline 31
000A ; TrafficStatus_H = cReserved;
000A 20920200 sts _TrafficStatus_H,R2
000E .dbline 32
000E ; Time_V = 0;
000E 20920100 sts _Time_V,R2
0012 .dbline 33
0012 ; Time_H = 0;
0012 20920000 sts _Time_H,R2
0016 .dbline -2
0016 .dbline 34
0016 ; }
0016 L1:
0016 .dbline 0 ; func end
0016 0895 ret
0018 .dbend
0018 .dbfunc e SetTrafficStatus _SetTrafficStatus fV
0018 ; Status -> R20
0018 ; Index -> R22
.even
0018 _SetTrafficStatus::
0018 0E940000 xcall push_gset2
001C 422F mov R20,R18
001E 602F mov R22,R16
0020 .dbline -1
0020 .dbline 37
0020 ;
0020 ; void SetTrafficStatus(INT8U Index,INT8U Status)
0020 ; {
0020 .dbline 38
0020 ; if(Index == cTraffic_V)
0020 6623 tst R22
0022 09F0 breq X0
0024 3BC0 xjmp L3
0026 X0:
0026 .dbline 39
0026 ; {
0026 .dbline 40
0026 ; TrafficStatus_V = Status;
0026 40930300 sts _TrafficStatus_V,R20
002A .dbline 41
002A ; if(Status == cAllow)
002A 4330 cpi R20,3
002C 81F4 brne L5
002E .dbline 42
002E ; {
002E .dbline 43
002E ; LED_ON_OFF(cR_LED_V,cLED_OFF);
002E 2227 clr R18
0030 0027 clr R16
0032 0E940000 xcall _LED_ON_OFF
0036 .dbline 44
0036 ; LED_ON_OFF(cG_LED_V,cLED_ON);
0036 21E0 ldi R18,1
0038 02E0 ldi R16,2
003A 0E940000 xcall _LED_ON_OFF
003E .dbline 45
003E ; LED_ON_OFF(cY_LED_V,cLED_OFF);
003E 2227 clr R18
0040 01E0 ldi R16,1
0042 0E940000 xcall _LED_ON_OFF
0046 .dbline 46
0046 ; Time_V = 30;
0046 8EE1 ldi R24,30
0048 80930100 sts _Time_V,R24
004C .dbline 47
004C ; }
004C 62C0 xjmp L4
004E L5:
004E .dbline 48
004E ; else if((Status == cBuffer1) || (Status == cBuffer2))
004E 4230 cpi R20,2
0050 11F0 breq L9
0052 4430 cpi R20,4
0054 81F4 brne L7
0056 L9:
0056 .dbline 49
0056 ; {
0056 .dbline 50
0056 ; LED_ON_OFF(cR_LED_V,cLED_OFF);
0056 2227 clr R18
0058 0027 clr R16
005A 0E940000 xcall _LED_ON_OFF
005E .dbline 51
005E ; LED_ON_OFF(cG_LED_V,cLED_OFF);
005E 2227 clr R18
0060 02E0 ldi R16,2
0062 0E940000 xcall _LED_ON_OFF
0066 .dbline 52
0066 ; LED_ON_OFF(cY_LED_V,cLED_ON);
0066 21E0 ldi R18,1
0068 01E0 ldi R16,1
006A 0E940000 xcall _LED_ON_OFF
006E .dbline 53
006E ; Time_V = 5;
006E 85E0 ldi R24,5
0070 80930100 sts _Time_V,R24
0074 .dbline 54
0074 ; }
0074 4EC0 xjmp L4
0076 L7:
0076 .dbline 55
0076 ; else if(Status == cForbidden)
0076 4130 cpi R20,1
0078 09F0 breq X1
007A 4BC0 xjmp L4
007C X1:
007C .dbline 56
007C ; {
007C .dbline 57
007C ; LED_ON_OFF(cR_LED_V,cLED_ON);
007C 21E0 ldi R18,1
007E 0027 clr R16
0080 0E940000 xcall _LED_ON_OFF
0084 .dbline 58
0084 ; LED_ON_OFF(cG_LED_V,cLED_OFF);
0084 2227 clr R18
0086 02E0 ldi R16,2
0088 0E940000 xcall _LED_ON_OFF
008C .dbline 59
008C ; LED_ON_OFF(cY_LED_V,cLED_OFF);
008C 2227 clr R18
008E 01E0 ldi R16,1
0090 0E940000 xcall _LED_ON_OFF
0094 .dbline 60
0094 ; Time_V = 30;
0094 8EE1 ldi R24,30
0096 80930100 sts _Time_V,R24
009A .dbline 61
009A ; }
009A .dbline 62
009A ; }
009A 3BC0 xjmp L4
009C L3:
009C .dbline 63
009C ; else if(Index == cTraffic_H)
009C 6130 cpi R22,1
009E C9F5 brne L12
00A0 .dbline 64
00A0 ; {
00A0 .dbline 65
00A0 ; TrafficStatus_H = Status;
00A0 40930200 sts _TrafficStatus_H,R20
00A4 .dbline 66
00A4 ; if(Status == cAllow)
00A4 4330 cpi R20,3
00A6 81F4 brne L14
00A8 .dbline 67
00A8 ; {
00A8 .dbline 68
00A8 ; LED_ON_OFF(cR_LED_H,cLED_OFF);
00A8 2227 clr R18
00AA 03E0 ldi R16,3
00AC 0E940000 xcall _LED_ON_OFF
00B0 .dbline 69
00B0 ; LED_ON_OFF(cG_LED_H,cLED_ON);
00B0 21E0 ldi R18,1
00B2 05E0 ldi R16,5
00B4 0E940000 xcall _LED_ON_OFF
00B8 .dbline 70
00B8 ; LED_ON_OFF(cY_LED_H,cLED_OFF);
00B8 2227 clr R18
00BA 04E0 ldi R16,4
00BC 0E940000 xcall _LED_ON_OFF
00C0 .dbline 71
00C0 ; Time_H = 30;
00C0 8EE1 ldi R24,30
00C2 80930000 sts _Time_H,R24
00C6 .dbline 72
00C6 ; }
00C6 25C0 xjmp L15
00C8 L14:
00C8 .dbline 73
00C8 ; else if((Status == cBuffer1) || (Status == cBuffer2))
00C8 4230 cpi R20,2
00CA 11F0 breq L18
00CC 4430 cpi R20,4
00CE 81F4 brne L16
00D0 L18:
00D0 .dbline 74
00D0 ; {
00D0 .dbline 75
00D0 ; LED_ON_OFF(cR_LED_H,cLED_OFF);
00D0 2227 clr R18
00D2 03E0 ldi R16,3
00D4 0E940000 xcall _LED_ON_OFF
00D8 .dbline 76
00D8 ; LED_ON_OFF(cG_LED_H,cLED_OFF);
00D8 2227 clr R18
00DA 05E0 ldi R16,5
00DC 0E940000 xcall _LED_ON_OFF
00E0 .dbline 77
00E0 ; LED_ON_OFF(cY_LED_H,cLED_ON);
00E0 21E0 ldi R18,1
00E2 04E0 ldi R16,4
00E4 0E940000 xcall _LED_ON_OFF
00E8 .dbline 78
00E8 ; Time_H = 5;
00E8 85E0 ldi R24,5
00EA 80930000 sts _Time_H,R24
00EE .dbline 79
00EE ; }
00EE 11C0 xjmp L17
00F0 L16:
00F0 .dbline 80
00F0 ; else if(Status == cForbidden)
00F0 4130 cpi R20,1
00F2 79F4 brne L19
00F4 .dbline 81
00F4 ; {
00F4 .dbline 82
00F4 ; LED_ON_OFF(cR_LED_H,cLED_ON);
00F4 21E0 ldi R18,1
00F6 03E0 ldi R16,3
00F8 0E940000 xcall _LED_ON_OFF
00FC .dbline 83
00FC ; LED_ON_OFF(cG_LED_H,cLED_OFF);
00FC 2227 clr R18
00FE 05E0 ldi R16,5
0100 0E940000 xcall _LED_ON_OFF
0104 .dbline 84
0104 ; LED_ON_OFF(cY_LED_H,cLED_OFF);
0104 2227 clr R18
0106 04E0 ldi R16,4
0108 0E940000 xcall _LED_ON_OFF
010C .dbline 85
010C ; Time_H = 30;
010C 8EE1 ldi R24,30
010E 80930000 sts _Time_H,R24
0112 .dbline 86
0112 ; }
0112 L19:
0112 L17:
0112 L15:
0112 .dbline 87
0112 ; }
0112 L12:
0112 L4:
0112 .dbline -2
0112 .dbline 88
0112 ; }
0112 L2:
0112 0E940000 xcall pop_gset2
0116 .dbline 0 ; func end
0116 0895 ret
0118 .dbsym r Status 20 c
0118 .dbsym r Index 22 c
0118 .dbend
0118 .dbfunc e main _main fV
.even
0118 _main::
0118 .dbline -1
0118 .dbline 91
0118 ;
0118 ; void main(void)
0118 ; {
0118 .dbline 92
0118 ; Hardware_Init();
0118 0E940000 xcall _Hardware_Init
011C .dbline 93
011C ; System_Init();
011C 71DF xcall _System_Init
011E L22:
011E .dbline 95
011E .dbline 96
011E .dbline 97
011E L23:
011E .dbline 94
011E FFCF xjmp L22
0120 X2:
0120 .dbline -2
0120 .dbline 98
0120 ; while(1)
0120 ; {
0120 ; ;
0120 ; }
0120 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -