📄 ledtest.lis
字号:
.module ledtest.c
.area data(ram, con, rel)
0000 _I_Timer::
0000 .blkb 2
.area idata
0000 0000 .word 0
.area data(ram, con, rel)
0002 .dbfile E:\ICC128\2008控制台\2008console0TEST\flashTest\ledtest.c
0002 .dbsym e I_Timer _I_Timer I
0002 _Field::
0002 .blkb 2
.area idata
0002 0002 .word 512
.area data(ram, con, rel)
0004 .dbfile E:\ICC128\2008控制台\2008console0TEST\flashTest\ledtest.c
0004 .dbsym e Field _Field I
.area text(rom, con, rel)
0000 .dbfile E:\ICC128\2008控制台\2008console0TEST\flashTest\ledtest.c
0000 .dbfunc e port_init _port_init fV
.even
0000 _port_init::
0000 .dbline -1
0000 .dbline 15
0000 ;
0000 ; //ICC-AVR application builder : 2008-1-23 9:13:29
0000 ; // Target : M128
0000 ; // Crystal: 8.0000Mhz
0000 ; //#include <iom128v.h>
0000 ; //#include <macros.h>
0000 ; #include "2008.h"
0000 ;
0000 ; int I_Timer=0;
0000 ; int Field = 512;
0000 ; uint xx[512];
0000 ; //#define portout (*(volatile unsigned char*)0x1100)
0000 ;
0000 ; void port_init(void)
0000 ; {
0000 .dbline 16
0000 ; PORTA = 0XFF;
0000 8FEF ldi R24,255
0002 8BBB out 0x1b,R24
0004 .dbline 17
0004 ; DDRA = 0XFF;
0004 8ABB out 0x1a,R24
0006 .dbline 18
0006 ; PORTF = 0XFF;
0006 80936200 sts 98,R24
000A .dbline 19
000A ; DDRF = 0XFF;
000A 80936100 sts 97,R24
000E .dbline 20
000E ; PORTB = 0xFF;
000E 88BB out 0x18,R24
0010 .dbline 21
0010 ; DDRB = 0xF7;
0010 87EF ldi R24,247
0012 87BB out 0x17,R24
0014 .dbline 22
0014 ; PORTD = 0xFF;
0014 8FEF ldi R24,255
0016 82BB out 0x12,R24
0018 .dbline 23
0018 ; DDRD = 0xFF;
0018 81BB out 0x11,R24
001A .dbline 24
001A ; PORTE = 0xFF;
001A 83B9 out 0x3,R24
001C .dbline 25
001C ; DDRE = 0xFF;
001C 82B9 out 0x2,R24
001E .dbline 26
001E ; PORTG = 0XFF;
001E 80936500 sts 101,R24
0022 .dbline 27
0022 ; DDRG = 0Xf7;
0022 87EF ldi R24,247
0024 80936400 sts 100,R24
0028 .dbline -2
0028 L1:
0028 .dbline 0 ; func end
0028 0895 ret
002A .dbend
002A .dbfunc e timer0_init _timer0_init fV
.even
002A _timer0_init::
002A .dbline -1
002A .dbline 35
002A ; }
002A ;
002A ; //TIMER0 initialize - prescale:1024
002A ; // WGM: Normal
002A ; // desired value: 20mSec
002A ; // actual value: 19.968mSec (0.2%)
002A ; void timer0_init(void)
002A ; {
002A .dbline 36
002A ; TCCR0 = 0x00; //stop
002A 2224 clr R2
002C 23BE out 0x33,R2
002E .dbline 37
002E ; ASSR = 0x00; //set async mode
002E 20BE out 0x30,R2
0030 .dbline 38
0030 ; TCNT0 = 0x64; //set count
0030 84E6 ldi R24,100
0032 82BF out 0x32,R24
0034 .dbline 39
0034 ; OCR0 = 0x9C;
0034 8CE9 ldi R24,156
0036 81BF out 0x31,R24
0038 .dbline 40
0038 ; TCCR0 = 0x07; //start timer
0038 87E0 ldi R24,7
003A 83BF out 0x33,R24
003C .dbline -2
003C L2:
003C .dbline 0 ; func end
003C 0895 ret
003E .dbend
.area vector(rom, abs)
.org 64
0040 0C941F00 jmp _timer0_ovf_isr
.area text(rom, con, rel)
003E .dbfile E:\ICC128\2008控制台\2008console0TEST\flashTest\ledtest.c
003E .dbfunc e timer0_ovf_isr _timer0_ovf_isr fV
.even
003E _timer0_ovf_isr::
003E 2A92 st -y,R2
0040 3A92 st -y,R3
0042 8A93 st -y,R24
0044 9A93 st -y,R25
0046 EA93 st -y,R30
0048 2FB6 in R2,0x3f
004A 2A92 st -y,R2
004C .dbline -1
004C .dbline 45
004C ; }
004C ;
004C ; #pragma interrupt_handler timer0_ovf_isr:17
004C ; void timer0_ovf_isr(void)
004C ; {
004C .dbline 46
004C ; I_Timer++;
004C 80910000 lds R24,_I_Timer
0050 90910100 lds R25,_I_Timer+1
0054 0196 adiw R24,1
0056 90930100 sts _I_Timer+1,R25
005A 80930000 sts _I_Timer,R24
005E .dbline 47
005E ; if(I_Timer == 50)
005E 8233 cpi R24,50
0060 E0E0 ldi R30,0
0062 9E07 cpc R25,R30
0064 61F4 brne L4
0066 .dbline 48
0066 ; {
0066 .dbline 49
0066 ; PORTG ^= 0x10;
0066 80E1 ldi R24,16
0068 20906500 lds R2,101
006C 2826 eor R2,R24
006E 20926500 sts 101,R2
0072 .dbline 50
0072 ; I_Timer =0;
0072 2224 clr R2
0074 3324 clr R3
0076 30920100 sts _I_Timer+1,R3
007A 20920000 sts _I_Timer,R2
007E .dbline 51
007E ; }
007E L4:
007E .dbline 52
007E ; TCNT0 = 0x64; //reload counter value
007E 84E6 ldi R24,100
0080 82BF out 0x32,R24
0082 .dbline -2
0082 L3:
0082 2990 ld R2,y+
0084 2FBE out 0x3f,R2
0086 E991 ld R30,y+
0088 9991 ld R25,y+
008A 8991 ld R24,y+
008C 3990 ld R3,y+
008E 2990 ld R2,y+
0090 .dbline 0 ; func end
0090 1895 reti
0092 .dbend
0092 .dbfunc e init_devices _init_devices fV
.even
0092 _init_devices::
0092 .dbline -1
0092 .dbline 57
0092 ; }
0092 ;
0092 ; //call this routine to initialize all peripherals
0092 ; void init_devices(void)
0092 ; {
0092 .dbline 59
0092 ; //stop errant interrupts until set up
0092 ; CLI(); //disable all interrupts
0092 F894 cli
0094 .dbline 60
0094 ; XDIV = 0x00; //xtal divider
0094 2224 clr R2
0096 2CBE out 0x3c,R2
0098 .dbline 61
0098 ; XMCRA = 0x00; //external memory
0098 20926D00 sts 109,R2
009C .dbline 62
009C ; port_init();
009C B1DF xcall _port_init
009E .dbline 63
009E ; timer0_init();
009E C5DF xcall _timer0_init
00A0 .dbline 64
00A0 ; MCUCR = 0x00;
00A0 2224 clr R2
00A2 25BE out 0x35,R2
00A4 .dbline 65
00A4 ; EICRA = 0x00; //extended ext ints
00A4 20926A00 sts 106,R2
00A8 .dbline 66
00A8 ; EICRB = 0x00; //extended ext ints
00A8 2ABE out 0x3a,R2
00AA .dbline 67
00AA ; EIMSK = 0x00;
00AA 29BE out 0x39,R2
00AC .dbline 68
00AC ; TIMSK = 0x01; //timer interrupt sources
00AC 81E0 ldi R24,1
00AE 87BF out 0x37,R24
00B0 .dbline 69
00B0 ; ETIMSK = 0x00; //extended timer interrupt sources
00B0 20927D00 sts 125,R2
00B4 .dbline 70
00B4 ; SEI(); //re-enable interrupts
00B4 7894 sei
00B6 .dbline -2
00B6 L6:
00B6 .dbline 0 ; func end
00B6 0895 ret
00B8 .dbend
00B8 .dbfunc e main _main fV
00B8 ; readXDIV -> <dead>
00B8 ; j -> R22,R23
00B8 ; i -> R20,R21
.even
00B8 _main::
00B8 2497 sbiw R28,4
00BA .dbline -1
00BA .dbline 74
00BA ; //all peripherals are now initialized
00BA ; }
00BA ; void main()
00BA ; {
00BA .dbline 78
00BA ; int i,j;
00BA ; unsigned char readXDIV;
00BA ;
00BA ; init_devices();
00BA EBDF xcall _init_devices
00BC .dbline 82
00BC ;
00BC ;
00BC ;
00BC ; initLCDM(); //初始化LCD
00BC 54D0 xcall _initLCDM
00BE .dbline 83
00BE ; Welcome_interface(); //显示欢迎界面
00BE 09D1 xcall _Welcome_interface
00C0 .dbline 85
00C0 ;
00C0 ; SdCmd(0x10,0x29); LCD_ChkBusy();
00C0 29E2 ldi R18,41
00C2 30E0 ldi R19,0
00C4 00E1 ldi R16,16
00C6 10E0 ldi R17,0
00C8 BED0 xcall _SdCmd
00CA .dbline 85
00CA F5D0 xcall _LCD_ChkBusy
00CC .dbline 86
00CC ; SdCmd(0xf1,0x0f);LCD_ChkBusy(); //设置字型大小
00CC 2FE0 ldi R18,15
00CE 30E0 ldi R19,0
00D0 01EF ldi R16,241
00D2 10E0 ldi R17,0
00D4 B8D0 xcall _SdCmd
00D6 .dbline 86
00D6 EFD0 xcall _LCD_ChkBusy
00D8 .dbline 87
00D8 ; ShowText(6,2,"测试 Flash AT45DB161D 读写");
00D8 80E0 ldi R24,<L8
00DA 90E0 ldi R25,>L8
00DC 9983 std y+1,R25
00DE 8883 std y+0,R24
00E0 22E0 ldi R18,2
00E2 30E0 ldi R19,0
00E4 06E0 ldi R16,6
00E6 10E0 ldi R17,0
00E8 47D1 xcall _ShowText
00EA .dbline 88
00EA ; for ( i=1; i<=48;i++)
00EA 41E0 ldi R20,1
00EC 50E0 ldi R21,0
00EE L9:
00EE .dbline 89
00EE .dbline 90
00EE 80916500 lds R24,101
00F2 8470 andi R24,4
00F4 80936500 sts 101,R24
00F8 .dbline 91
00F8 81E0 ldi R24,1
00FA 20906500 lds R2,101
00FE 2826 eor R2,R24
0100 20926500 sts 101,R2
0104 .dbline 92
0104 82E0 ldi R24,2
0106 20906500 lds R2,101
010A 2826 eor R2,R24
010C 20926500 sts 101,R2
0110 .dbline 93
0110 L10:
0110 .dbline 88
0110 4F5F subi R20,255 ; offset = 1
0112 5F4F sbci R21,255
0114 .dbline 88
0114 80E3 ldi R24,48
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -