⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lis

📁 AVR单片机C语言程序设计实例精粹
💻 LIS
📖 第 1 页 / 共 3 页
字号:
                        .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 + -