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

📄 init.lis

📁 avr单片机与flash存储器通信程序,调试通过,希望对大家有所帮助.
💻 LIS
字号:
                        .module init.c
                        .area text(rom, con, rel)
 0000                   .dbfile C:\ATMega8515\定时实验\init.c
 0000                   .dbfunc e port_init _port_init fV
                        .even
 0000           _port_init::
 0000                   .dbline -1
 0000                   .dbline 9
 0000           ; //ICC-AVR application builder : 2006-4-27 19:45:18
 0000           ; // Target : M8515
 0000           ; // Crystal: 11.059Mhz
 0000           ; 
 0000           ; #include <iom8515v.h>
 0000           ; #include <macros.h>
 0000           ; 
 0000           ; void port_init(void)
 0000           ; {
 0000                   .dbline 10
 0000           ;  PORTA = 0x00;
 0000 2224              clr R2
 0002 2BBA              out 0x1b,R2
 0004                   .dbline 11
 0004           ;  DDRA  = 0xFF;
 0004 8FEF              ldi R24,255
 0006 8ABB              out 0x1a,R24
 0008                   .dbline 12
 0008           ;  PORTB = 0x00;
 0008 28BA              out 0x18,R2
 000A                   .dbline 13
 000A           ;  DDRB  = 0x00;
 000A 27BA              out 0x17,R2
 000C                   .dbline 14
 000C           ;  PORTC = 0x00;
 000C 25BA              out 0x15,R2
 000E                   .dbline 15
 000E           ;  DDRC  = 0xC0;
 000E 80EC              ldi R24,192
 0010 84BB              out 0x14,R24
 0012                   .dbline 16
 0012           ;  PORTD = 0x00;
 0012 22BA              out 0x12,R2
 0014                   .dbline 17
 0014           ;  DDRD  = 0x00; 
 0014 21BA              out 0x11,R2
 0016                   .dbline 18
 0016           ;  PORTE = 0x00;
 0016 27B8              out 0x7,R2
 0018                   .dbline 19
 0018           ;  DDRE  = 0x00; 
 0018 26B8              out 0x6,R2
 001A                   .dbline -2
 001A           L1:
 001A                   .dbline 0 ; func end
 001A 0895              ret
 001C                   .dbend
 001C                   .dbfunc e timer1_init _timer1_init fV
                        .even
 001C           _timer1_init::
 001C                   .dbline -1
 001C                   .dbline 27
 001C           ; }
 001C           ; 
 001C           ; //TIMER1 initialize - prescale:1
 001C           ; // WGM: 0) Normal, TOP=0xFFFF
 001C           ; // desired value: 1mSec
 001C           ; // actual value:  1.000mSec (0.0%)
 001C           ; void timer1_init(void)
 001C           ; {
 001C                   .dbline 28
 001C           ;  TCCR1B = 0x00; //stop
 001C 2224              clr R2
 001E 2EBC              out 0x2e,R2
 0020                   .dbline 29
 0020           ;  TCNT1H = 0xD4; //setup
 0020 84ED              ldi R24,212
 0022 8DBD              out 0x2d,R24
 0024                   .dbline 30
 0024           ;  TCNT1L = 0xCE;
 0024 8EEC              ldi R24,206
 0026 8CBD              out 0x2c,R24
 0028                   .dbline 31
 0028           ;  OCR1AH = 0x2B;
 0028 8BE2              ldi R24,43
 002A 8BBD              out 0x2b,R24
 002C                   .dbline 32
 002C           ;  OCR1AL = 0x32;
 002C 82E3              ldi R24,50
 002E 8ABD              out 0x2a,R24
 0030                   .dbline 33
 0030           ;  OCR1BH = 0x2B;
 0030 8BE2              ldi R24,43
 0032 89BD              out 0x29,R24
 0034                   .dbline 34
 0034           ;  OCR1BL = 0x32;
 0034 82E3              ldi R24,50
 0036 88BD              out 0x28,R24
 0038                   .dbline 35
 0038           ;  TCCR1A = 0x00;
 0038 2FBC              out 0x2f,R2
 003A                   .dbline 36
 003A           ;  TCCR1B = 0x01; //start Timer
 003A 81E0              ldi R24,1
 003C 8EBD              out 0x2e,R24
 003E                   .dbline -2
 003E           L2:
 003E                   .dbline 0 ; func end
 003E 0895              ret
 0040                   .dbend
                        .area data(ram, con, rel)
 0000                   .dbfile C:\ATMega8515\定时实验\init.c
 0000           _count::
 0000                   .blkb 2
                        .area idata
 0000 0000              .word 0
                        .area data(ram, con, rel)
 0002                   .dbfile C:\ATMega8515\定时实验\init.c
 0002                   .dbsym e count _count i
                        .area vector(rom, abs)
                        .org 12
 000C 20C0              rjmp _timer1_ovf_isr
                        .area data(ram, con, rel)
 0002                   .dbfile C:\ATMega8515\定时实验\init.c
                        .area text(rom, con, rel)
 0040                   .dbfile C:\ATMega8515\定时实验\init.c
 0040                   .dbfunc e timer1_ovf_isr _timer1_ovf_isr fV
                        .even
 0040           _timer1_ovf_isr::
 0040 2A92              st -y,R2
 0042 3A92              st -y,R3
 0044 8A93              st -y,R24
 0046 9A93              st -y,R25
 0048 EA93              st -y,R30
 004A 2FB6              in R2,0x3f
 004C 2A92              st -y,R2
 004E                   .dbline -1
 004E                   .dbline 43
 004E                   .dbline 44
 004E 84ED              ldi R24,212
 0050 8DBD              out 0x2d,R24
 0052                   .dbline 45
 0052 8EEC              ldi R24,206
 0054 8CBD              out 0x2c,R24
 0056                   .dbline 47
 0056 20900000          lds R2,_count
 005A 30900100          lds R3,_count+1
 005E C101              movw R24,R2
 0060 0196              adiw R24,1
 0062 90930100          sts _count+1,R25
 0066 80930000          sts _count,R24
 006A C101              movw R24,R2
 006C 883E              cpi R24,232
 006E E3E0              ldi R30,3
 0070 9E07              cpc R25,R30
 0072 49F4              brne L4
 0074                   .dbline 47
 0074                   .dbline 47
 0074 2224              clr R2
 0076 3324              clr R3
 0078 30920100          sts _count+1,R3
 007C 20920000          sts _count,R2
 0080                   .dbline 47
 0080 81E0              ldi R24,1
 0082 80930000          sts _flag,R24
 0086                   .dbline 47
 0086           L4:
 0086                   .dbline -2
 0086           L3:
 0086 2990              ld R2,y+
 0088 2FBE              out 0x3f,R2
 008A E991              ld R30,y+
 008C 9991              ld R25,y+
 008E 8991              ld R24,y+
 0090 3990              ld R3,y+
 0092 2990              ld R2,y+
 0094                   .dbline 0 ; func end
 0094 1895              reti
 0096                   .dbend
 0096                   .dbfunc e init_devices _init_devices fV
                        .even
 0096           _init_devices::
 0096                   .dbline -1
 0096                   .dbline 52
 0096           ; }
 0096           ; 
 0096           ; unsigned int count=0;
 0096           ; extern unsigned char flag;
 0096           ; #pragma interrupt_handler timer1_ovf_isr:7
 0096           ; void timer1_ovf_isr(void)
 0096           ; {
 0096           ;  TCNT1H = 0xD4; //reload counter high value
 0096           ;  TCNT1L = 0xCE; //reload counter low value
 0096           ;  //计算1000次,一共1S
 0096           ;  if(count++==1000){count=0;flag=1;}
 0096           ; }
 0096           ; 
 0096           ; //call this routine to initialize all peripherals
 0096           ; void init_devices(void)
 0096           ; {
 0096                   .dbline 54
 0096           ;  //stop errant interrupts until set up
 0096           ;  CLI(); //disable all interrupts
 0096 F894              cli
 0098                   .dbline 55
 0098           ;  port_init();
 0098 B3DF              rcall _port_init
 009A                   .dbline 56
 009A           ;  timer1_init();
 009A C0DF              rcall _timer1_init
 009C                   .dbline 58
 009C           ; 
 009C           ;  MCUCR = 0x00;
 009C 2224              clr R2
 009E 25BE              out 0x35,R2
 00A0                   .dbline 59
 00A0           ;  EMCUCR = 0x00;
 00A0 26BE              out 0x36,R2
 00A2                   .dbline 60
 00A2           ;  GICR = 0x00;
 00A2 2BBE              out 0x3b,R2
 00A4                   .dbline 61
 00A4           ;  TIMSK = 0x80;
 00A4 80E8              ldi R24,128
 00A6 89BF              out 0x39,R24
 00A8                   .dbline 62
 00A8           ;  SEI(); //re-enable interrupts
 00A8 7894              sei
 00AA                   .dbline -2
 00AA           L6:
 00AA                   .dbline 0 ; func end
 00AA 0895              ret
 00AC                   .dbend

⌨️ 快捷键说明

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