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

📄 timer.lis

📁 嵌入式单片机控制温度传感的无线收发方案!
💻 LIS
字号:
                        .module timer.c
                        .area data(ram, con, rel)
 0000           _i::
 0000                   .blkb 2
                        .area idata
 0000 0000              .word 0
                        .area data(ram, con, rel)
 0002                   .dbfile E:\公司用\atmega8l\final\nrf905_send1\timer.c
 0002                   .dbsym e i _i i
 0002           _count::
 0002                   .blkb 2
                        .area idata
 0002 0000              .word 0
                        .area data(ram, con, rel)
 0004                   .dbfile E:\公司用\atmega8l\final\nrf905_send1\timer.c
 0004                   .dbsym e count _count i
 0004           _flag::
 0004                   .blkb 2
                        .area idata
 0004 0000              .word 0
                        .area data(ram, con, rel)
 0006                   .dbfile E:\公司用\atmega8l\final\nrf905_send1\timer.c
 0006                   .dbsym e flag _flag i
                        .area text(rom, con, rel)
 0000                   .dbfile E:\公司用\atmega8l\final\nrf905_send1\timer.c
 0000                   .dbfunc e timer0_init _timer0_init fV
                        .even
 0000           _timer0_init::
 0000                   .dbline -1
 0000                   .dbline 14
 0000           ; //ICC-AVR application builder : 2008-7-29 14:35:46
 0000           ; // Target : M8
 0000           ; // Crystal: 4.0000Mhz
 0000           ; #include "confg.h"
 0000           ; 
 0000           ; unsigned int i=0,count=0,flag=0;
 0000           ; int number;
 0000           ; 
 0000           ; //TIMER0 initialisation - prescale:1024
 0000           ; // WGM: Normal
 0000           ; // desired value: 10mSec
 0000           ; // actual value: 9.984mSec (0.2%)
 0000           ; void timer0_init(void)
 0000           ; {
 0000                   .dbline 16
 0000           ; 
 0000           ;   TCCR0 = 0x00; //stop
 0000 2224              clr R2
 0002 23BE              out 0x33,R2
 0004                   .dbline 17
 0004           ;  TCNT0 = 0x64; //set count
 0004 84E6              ldi R24,100
 0006 82BF              out 0x32,R24
 0008                   .dbline 18
 0008           ;  TCCR0 = 0x04; //start timer
 0008 84E0              ldi R24,4
 000A 83BF              out 0x33,R24
 000C                   .dbline -2
 000C                   .dbline 19
 000C           ; }
 000C           L1:
 000C                   .dbline 0 ; func end
 000C 0895              ret
 000E                   .dbend
                        .area vector(rom, abs)
                        .org 18
 0012 07C0              rjmp _time0
                        .area text(rom, con, rel)
 000E                   .dbfile E:\公司用\atmega8l\final\nrf905_send1\timer.c
 000E                   .dbfunc e time0 _time0 fV
                        .even
 000E           _time0::
 000E 2A92              st -y,R2
 0010 3A92              st -y,R3
 0012 8A93              st -y,R24
 0014 9A93              st -y,R25
 0016 2FB6              in R2,0x3f
 0018 2A92              st -y,R2
 001A                   .dbline -1
 001A                   .dbline 24
 001A                   .dbline 25
 001A 84E6              ldi R24,100
 001C 82BF              out 0x32,R24
 001E                   .dbline 26
 001E 80910200          lds R24,_count
 0022 90910300          lds R25,_count+1
 0026 0196              adiw R24,1
 0028 90930300          sts _count+1,R25
 002C 80930200          sts _count,R24
 0030                   .dbline 27
 0030 20900000          lds R2,_number
 0034 30900100          lds R3,_number+1
 0038 8215              cp R24,R2
 003A 9305              cpc R25,R3
 003C 41F4              brne L3
 003E                   .dbline 28
 003E                   .dbline 29
 003E 2224              clr R2
 0040 29BE              out 0x39,R2
 0042                   .dbline 30
 0042 81E0              ldi R24,1
 0044 90E0              ldi R25,0
 0046 90930500          sts _flag+1,R25
 004A 80930400          sts _flag,R24
 004E                   .dbline 31
 004E           L3:
 004E                   .dbline -2
 004E                   .dbline 32
 004E           ; 
 004E           ; 
 004E           ; #pragma interrupt_handler time0:10
 004E           ; void time0(void)
 004E           ; {
 004E           ;   TCNT0 = 0x64; //set count
 004E           ;   count++;
 004E           ;   if(count==number) 
 004E           ;   {
 004E           ;   TIMSK=0x00;
 004E           ;   flag=1;
 004E           ;   }
 004E           ; }
 004E           L2:
 004E 2990              ld R2,y+
 0050 2FBE              out 0x3f,R2
 0052 9991              ld R25,y+
 0054 8991              ld R24,y+
 0056 3990              ld R3,y+
 0058 2990              ld R2,y+
 005A                   .dbline 0 ; func end
 005A 1895              reti
 005C                   .dbend
 005C                   .dbfunc e init_devices1 _init_devices1 fV
                        .even
 005C           _init_devices1::
 005C                   .dbline -1
 005C                   .dbline 35
 005C           ; //call this routine to initialise all peripherals
 005C           ; void init_devices1(void)
 005C           ; {
 005C                   .dbline 38
 005C           ;  
 005C           ;  //stop errant interrupts until set up
 005C           ;  CLI(); //disable all interrupts
 005C F894              cli
 005E                   .dbline 39
 005E           ;  timer0_init();
 005E D0DF              rcall _timer0_init
 0060                   .dbline 40
 0060           ;  count=0;
 0060 2224              clr R2
 0062 3324              clr R3
 0064 30920300          sts _count+1,R3
 0068 20920200          sts _count,R2
 006C                   .dbline 41
 006C           ;  flag=0;
 006C 30920500          sts _flag+1,R3
 0070 20920400          sts _flag,R2
 0074                   .dbline 43
 0074           ;  
 0074           ;  TIMSK = 0x01; //timer interrupt sources
 0074 81E0              ldi R24,1
 0076 89BF              out 0x39,R24
 0078                   .dbline 44
 0078           ;  SEI(); //re-enable interrupts
 0078 7894              sei
 007A                   .dbline -2
 007A                   .dbline 46
 007A           ;  //all peripherals are now initialised
 007A           ; }
 007A           L5:
 007A                   .dbline 0 ; func end
 007A 0895              ret
 007C                   .dbend
 007C                   .dbfunc e delay_10ms _delay_10ms fI
 007C           ;             no -> R16,R17
                        .even
 007C           _delay_10ms::
 007C                   .dbline -1
 007C                   .dbline 63
 007C           ; 
 007C           ; /*
 007C           ; int delay_10ms(int no)
 007C           ; {
 007C           ;   number=no;
 007C           ;   init_devices1();
 007C           ;  while(1) 
 007C           ;  {
 007C           ;   if(flag==1)
 007C           ;   break;
 007C           ;   }
 007C           ;   return 0;
 007C           ; }
 007C           ; */
 007C           ; 
 007C           ; int delay_10ms(int no)
 007C           ; {
 007C                   .dbline 64
 007C           ;   for(;no>0;no--)
 007C 1AC0              rjmp L10
 007E           L7:
 007E                   .dbline 65
 007E 2224              clr R2
 0080 3324              clr R3
 0082 30920100          sts _i+1,R3
 0086 20920000          sts _i,R2
 008A 09C0              rjmp L14
 008C           L11:
 008C                   .dbline 65
 008C           L12:
 008C                   .dbline 65
 008C 80910000          lds R24,_i
 0090 90910100          lds R25,_i+1
 0094 0196              adiw R24,1
 0096 90930100          sts _i+1,R25
 009A 80930000          sts _i,R24
 009E           L14:
 009E                   .dbline 65
 009E 80910000          lds R24,_i
 00A2 90910100          lds R25,_i+1
 00A6 8C3B              cpi R24,188
 00A8 E2E0              ldi R30,2
 00AA 9E07              cpc R25,R30
 00AC 78F3              brlo L11
 00AE           L8:
 00AE                   .dbline 64
 00AE 0150              subi R16,1
 00B0 1040              sbci R17,0
 00B2           L10:
 00B2                   .dbline 64
 00B2 2224              clr R2
 00B4 3324              clr R3
 00B6 2016              cp R2,R16
 00B8 3106              cpc R3,R17
 00BA 0CF3              brlt L7
 00BC                   .dbline 67
 00BC           ;    for (i=0;i<700;i++) ;
 00BC           ;    
 00BC           ;     return 0;
 00BC 0027              clr R16
 00BE 1127              clr R17
 00C0                   .dbline -2
 00C0           L6:
 00C0                   .dbline 0 ; func end
 00C0 0895              ret
 00C2                   .dbsym r no 16 I
 00C2                   .dbend
 00C2                   .dbfunc e delay_us _delay_us fV
 00C2           ;              m -> R20,R21
 00C2           ;             us -> R16,R17
                        .even
 00C2           _delay_us::
 00C2 00D0              rcall push_gset1
 00C4                   .dbline -1
 00C4                   .dbline 71
 00C4           ; }
 00C4           ; 
 00C4           ; void delay_us(uint us)
 00C4           ; {
 00C4                   .dbline 73
 00C4           ;   uint m;
 00C4           ;   for (m=0;m<us;m++)
 00C4 4427              clr R20
 00C6 5527              clr R21
 00C8 08C0              rjmp L19
 00CA           L16:
 00CA                   .dbline 74
 00CA                   .dbline 74
 00CA 0000              nop
 00CC                   .dbline 74
 00CC 0000              nop
 00CE                   .dbline 74
 00CE 0000              nop
 00D0                   .dbline 74
 00D0 0000              nop
 00D2                   .dbline 74
 00D2 0000              nop
 00D4                   .dbline 74
 00D4 0000              nop
 00D6                   .dbline 75
 00D6           L17:
 00D6                   .dbline 73
 00D6 4F5F              subi R20,255  ; offset = 1
 00D8 5F4F              sbci R21,255
 00DA           L19:
 00DA                   .dbline 73
 00DA 4017              cp R20,R16
 00DC 5107              cpc R21,R17
 00DE A8F3              brlo L16
 00E0                   .dbline -2
 00E0                   .dbline 76
 00E0           ;   {NOP();NOP();NOP();NOP();NOP();NOP();
 00E0           ;   }
 00E0           ; }
 00E0           L15:
 00E0 00D0              rcall pop_gset1
 00E2                   .dbline 0 ; func end
 00E2 0895              ret
 00E4                   .dbsym r m 20 i
 00E4                   .dbsym r us 16 i
 00E4                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile E:\公司用\atmega8l\final\nrf905_send1\timer.c
 0000           _number::
 0000                   .blkb 2
 0002                   .dbsym e number _number I

⌨️ 快捷键说明

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