📄 main.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 + -