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

📄 main.lis

📁 AVR单片机C语言程序设计实例精粹
💻 LIS
字号:
                        .module main.c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\LED大屏幕显示系统设计\main.c
 0000                   .dbfunc e main _main fV
                        .even
 0000           _main::
 0000                   .dbline -1
 0000                   .dbline 15
 0000           ; //***************************************************************
 0000           ; // File Name : LED.c
 0000           ; // Author    : Steaven
 0000           ; // Created   : 2008-07-26
 0000           ; // Modified  : 
 0000           ; // Revision  : V0.0
 0000           ; //***************************************************************
 0000           ; 
 0000           ; #include "iom16v.h"
 0000           ; #include "DataType.h"
 0000           ; #include "app.h" 
 0000           ; #include "LED.h"
 0000           ;     
 0000           ; void main(void)
 0000           ; {
 0000                   .dbline 16
 0000           ;       Hardware_Init();
 0000 0E940000          xcall _Hardware_Init
 0004                   .dbline 17
 0004           ;       Display_Init();
 0004 0E940000          xcall _Display_Init
 0008                   .dbline 18
 0008           ;       DotTest();
 0008 0E940000          xcall _DotTest
 000C                   .dbline 19
 000C           ;       Interrupt_Init();
 000C 0E940000          xcall _Interrupt_Init
 0010           L2:
 0010                   .dbline 20
 0010                   .dbline 20
 0010                   .dbline 20
 0010           L3:
 0010                   .dbline 20
 0010 FFCF              xjmp L2
 0012           X0:
 0012                   .dbline -2
 0012                   .dbline 21
 0012           ;       while(1) {;}
 0012           ; }
 0012           L1:
 0012                   .dbline 0 ; func end
 0012 0895              ret
 0014                   .dbend
                        .area vector(rom, abs)
                        .org 76
 004C 0C940A00          jmp _Timer0_Interrupt
                        .area text(rom, con, rel)
 0014                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\LED大屏幕显示系统设计\main.c
                        .area data(ram, con, rel)
 0000                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\LED大屏幕显示系统设计\main.c
 0000           L6:
 0000                   .blkb 1
                        .area idata
 0000 00                .byte 0
                        .area data(ram, con, rel)
 0001                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\LED大屏幕显示系统设计\main.c
                        .area text(rom, con, rel)
 0014                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\LED大屏幕显示系统设计\main.c
 0014                   .dbfunc e Timer0_Interrupt _Timer0_Interrupt fV
 0014                   .dbsym s Index L6 c
                        .even
 0014           _Timer0_Interrupt::
 0014 2A92              st -y,R2
 0016 3A92              st -y,R3
 0018 0A93              st -y,R16
 001A 1A93              st -y,R17
 001C 8A93              st -y,R24
 001E 9A93              st -y,R25
 0020 EA93              st -y,R30
 0022 FA93              st -y,R31
 0024 2FB6              in R2,0x3f
 0026 2A92              st -y,R2
 0028                   .dbline -1
 0028                   .dbline 31
 0028                   .dbline 34
 0028 88B7              in R24,0x38
 002A 8260              ori R24,2
 002C 88BF              out 0x38,R24
 002E                   .dbline 35
 002E 2224              clr R2
 0030 22BE              out 0x32,R2
 0032                   .dbline 37
 0032 2BBA              out 0x1b,R2
 0034                   .dbline 38
 0034 10910000          lds R17,L6
 0038 01E0              ldi R16,1
 003A 0E940000          xcall lsl8
 003E 202E              mov R2,R16
 0040 2094              com R2
 0042 22BA              out 0x12,R2
 0044                   .dbline 39
 0044 80E0              ldi R24,<_Buffer
 0046 90E0              ldi R25,>_Buffer
 0048 E0910000          lds R30,L6
 004C FF27              clr R31
 004E E80F              add R30,R24
 0050 F91F              adc R31,R25
 0052 2080              ldd R2,z+0
 0054 2BBA              out 0x1b,R2
 0056                   .dbline 40
 0056 20900000          lds R2,L6
 005A 3324              clr R3
 005C 822D              mov R24,R2
 005E 8F5F              subi R24,255    ; addi 1
 0060 80930000          sts L6,R24
 0064 822D              mov R24,R2
 0066 8830              cpi R24,8
 0068 18F0              brlo L7
 006A                   .dbline 41
 006A                   .dbline 42
 006A 2224              clr R2
 006C 20920000          sts L6,R2
 0070                   .dbline 43
 0070           L7:
 0070                   .dbline -2
 0070                   .dbline 44
 0070           ; 
 0070           ; //***************************************************************
 0070           ; // Function    : Timer0_Interrupt
 0070           ; // Input       : none
 0070           ; // Output      : none
 0070           ; // Description : ATmega16 T/C0 ISR
 0070           ; //***************************************************************
 0070           ; #pragma interrupt_handler Timer0_Interrupt:20
 0070           ; void Timer0_Interrupt(void)
 0070           ; {
 0070           ;       static INT8U Index = 0;
 0070           ;       //Clear Timer0 OCIF Flag
 0070           ;       TIFR  |= 0x02;
 0070           ;       TCNT0  = 0x00;
 0070           ;       //Display Control
 0070           ;       PORTA = 0x00;
 0070           ;       PORTD = ~(1 << Index);
 0070           ;       PORTA = *(Buffer + Index);
 0070           ;       if(Index++ >= 8)
 0070           ;       {
 0070           ;          Index = 0;
 0070           ;       }  
 0070           ; }
 0070           L5:
 0070 2990              ld R2,y+
 0072 2FBE              out 0x3f,R2
 0074 F991              ld R31,y+
 0076 E991              ld R30,y+
 0078 9991              ld R25,y+
 007A 8991              ld R24,y+
 007C 1991              ld R17,y+
 007E 0991              ld R16,y+
 0080 3990              ld R3,y+
 0082 2990              ld R2,y+
 0084                   .dbline 0 ; func end
 0084 1895              reti
 0086                   .dbend
                        .area vector(rom, abs)
                        .org 24
 0018 0C944300          jmp _Timer1_Interrupt
                        .area text(rom, con, rel)
 0086                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\LED大屏幕显示系统设计\main.c
                        .area bss(ram, con, rel)
 0000                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\LED大屏幕显示系统设计\main.c
 0000           L10:
 0000                   .blkb 1
                        .area text(rom, con, rel)
 0086                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\LED大屏幕显示系统设计\main.c
 0086                   .dbfunc e Timer1_Interrupt _Timer1_Interrupt fV
 0086                   .dbsym s Index L10 c
 0086           ;           temp -> <dead>
                        .even
 0086           _Timer1_Interrupt::
 0086 0E940000          xcall push_lset
 008A                   .dbline -1
 008A                   .dbline 54
 008A           ; 
 008A           ; //***************************************************************
 008A           ; // Function    : Timer1_Interrupt
 008A           ; // Input       : none
 008A           ; // Output      : none
 008A           ; // Description : ATmega16 T/C1 ISR
 008A           ; //***************************************************************
 008A           ; #pragma interrupt_handler Timer1_Interrupt:7
 008A           ; void Timer1_Interrupt(void)
 008A           ; {
 008A                   .dbline 58
 008A           ;       INT8U temp;
 008A           ;       static INT8U Index;
 008A           ;       //Clear Timer1 OCIF Flag
 008A           ;       TIFR  |= 0x10;
 008A 88B7              in R24,0x38
 008C 8061              ori R24,16
 008E 88BF              out 0x38,R24
 0090                   .dbline 59
 0090           ;       TCNT1  = 0x00;
 0090 2224              clr R2
 0092 3324              clr R3
 0094 3DBC              out 0x2d,R3
 0096 2CBC              out 0x2c,R2
 0098                   .dbline 61
 0098           ;       //Buffer Control
 0098           ;       if(Index++ >= 8)
 0098 20900000          lds R2,L10
 009C 3324              clr R3
 009E 822D              mov R24,R2
 00A0 8F5F              subi R24,255    ; addi 1
 00A2 80930000          sts L10,R24
 00A6 822D              mov R24,R2
 00A8 8830              cpi R24,8
 00AA B0F0              brlo L11
 00AC                   .dbline 62
 00AC           ;       {
 00AC                   .dbline 63
 00AC           ;               Index = 0;
 00AC 2224              clr R2
 00AE 20920000          sts L10,R2
 00B2                   .dbline 64
 00B2           ;               pBufStr++;
 00B2 80910000          lds R24,_pBufStr
 00B6 90910100          lds R25,_pBufStr+1
 00BA 0196              adiw R24,1
 00BC 90930100          sts _pBufStr+1,R25
 00C0 80930000          sts _pBufStr,R24
 00C4                   .dbline 65
 00C4           ;               if(*pBufStr == '\0')
 00C4 FC01              movw R30,R24
 00C6 E491              lpm R30,Z
 00C8 EE23              tst R30
 00CA 31F4              brne L13
 00CC                   .dbline 66
 00CC           ;               {
 00CC                   .dbline 67
 00CC           ;                       pBufStr = String1;
 00CC 80E0              ldi R24,<_String1
 00CE 90E0              ldi R25,>_String1
 00D0 90930100          sts _pBufStr+1,R25
 00D4 80930000          sts _pBufStr,R24
 00D8                   .dbline 68
 00D8           ;               }
 00D8           L13:
 00D8                   .dbline 69
 00D8           ;       }
 00D8           L11:
 00D8                   .dbline 70
 00D8           ;       Buffer_IN(Index);
 00D8 00910000          lds R16,L10
 00DC 0E940000          xcall _Buffer_IN
 00E0                   .dbline -2
 00E0                   .dbline 71
 00E0           ; }
 00E0           L9:
 00E0 0E940000          xcall pop_lset
 00E4                   .dbline 0 ; func end
 00E4 1895              reti
 00E6                   .dbsym l temp 1 c
 00E6                   .dbend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -