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

📄 main.lis

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