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

📄 timer1.lis

📁 用的avr icc 开发的atmega16的超声波测距仪模型。
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 011A 00930000          sts _capt_timer1,R16
 011E                   .dbline 42
 011E           ;   cap[0]='0'+capt_timer1;
 011E C801              movw R24,R16
 0120 C096              adiw R24,48
 0122 80930000          sts _cap,R24
 0126                   .dbline 43
 0126           ;    LCD_DisplayString(2,1,"LENTH= ");
 0126 80E0              ldi R24,<L6
 0128 90E0              ldi R25,>L6
 012A 9983              std y+1,R25
 012C 8883              std y+0,R24
 012E 21E0              ldi R18,1
 0130 02E0              ldi R16,2
 0132 0E940000          xcall _LCD_DisplayString
 0136                   .dbline 44
 0136           ;    LCD_Cursor (2,8);
 0136 28E0              ldi R18,8
 0138 02E0              ldi R16,2
 013A 0E940000          xcall _LCD_Cursor
 013E                   .dbline 45
 013E           ;    LCD_DisplayCharacter (cap[3]);
 013E 00910300          lds R16,_cap+3
 0142 0E940000          xcall _LCD_DisplayCharacter
 0146                   .dbline 46
 0146           ;    LCD_Cursor (2,9);
 0146 29E0              ldi R18,9
 0148 02E0              ldi R16,2
 014A 0E940000          xcall _LCD_Cursor
 014E                   .dbline 47
 014E           ;    LCD_DisplayCharacter (cap[2]);
 014E 00910200          lds R16,_cap+2
 0152 0E940000          xcall _LCD_DisplayCharacter
 0156                   .dbline 48
 0156           ;    LCD_Cursor (2,10);
 0156 2AE0              ldi R18,10
 0158 02E0              ldi R16,2
 015A 0E940000          xcall _LCD_Cursor
 015E                   .dbline 49
 015E           ;    LCD_DisplayCharacter (cap[1]);
 015E 00910100          lds R16,_cap+1
 0162 0E940000          xcall _LCD_DisplayCharacter
 0166                   .dbline 50
 0166           ;    LCD_Cursor (2,11);
 0166 2BE0              ldi R18,11
 0168 02E0              ldi R16,2
 016A 0E940000          xcall _LCD_Cursor
 016E                   .dbline 51
 016E           ;    LCD_DisplayCharacter ('.');
 016E 0EE2              ldi R16,46
 0170 0E940000          xcall _LCD_DisplayCharacter
 0174                   .dbline 52
 0174           ;    LCD_Cursor (2,12);
 0174 2CE0              ldi R18,12
 0176 02E0              ldi R16,2
 0178 0E940000          xcall _LCD_Cursor
 017C                   .dbline 53
 017C           ;    LCD_DisplayCharacter (cap[0]);
 017C 00910000          lds R16,_cap
 0180 0E940000          xcall _LCD_DisplayCharacter
 0184                   .dbline 54
 0184           ;    LCD_DisplayString(2,13,"m     ");
 0184 80E0              ldi R24,<L10
 0186 90E0              ldi R25,>L10
 0188 9983              std y+1,R25
 018A 8883              std y+0,R24
 018C 2DE0              ldi R18,13
 018E 02E0              ldi R16,2
 0190 0E940000          xcall _LCD_DisplayString
 0194                   .dbline -2
 0194                   .dbline 55
 0194           ; }
 0194           L2:
 0194 2296              adiw R28,2
 0196 0E940000          xcall pop_lset
 019A                   .dbline 0 ; func end
 019A 1895              reti
 019C                   .dbend
                        .area vector(rom, abs)
                        .org 32
 0020 0C94CE00          jmp _timer1_ovf_isr
                        .area text(rom, con, rel)
 019C                   .dbfile D:\NEW\ECHO\timer1.c
 019C                   .dbfunc e timer1_ovf_isr _timer1_ovf_isr fV
                        .even
 019C           _timer1_ovf_isr::
 019C 0E940000          xcall push_lset
 01A0 2297              sbiw R28,2
 01A2                   .dbline -1
 01A2                   .dbline 59
 01A2           ; 
 01A2           ; #pragma interrupt_handler timer1_ovf_isr:9
 01A2           ; void timer1_ovf_isr(void)
 01A2           ; {
 01A2                   .dbline 61
 01A2           ;  //TIMER1 has overflowed
 01A2           ;  timer1_stop();
 01A2 1BD0              xcall _timer1_stop
 01A4                   .dbline 62
 01A4           ;  TIMSK = 0x00; //disable ovf interupt
 01A4 2224              clr R2
 01A6 29BE              out 0x39,R2
 01A8                   .dbline 63
 01A8           ;  TCNT1H = 0xCF /*INVALID SETTING*/; //reload counter high value
 01A8 8FEC              ldi R24,207
 01AA 8DBD              out 0x2d,R24
 01AC                   .dbline 64
 01AC           ;  TCNT1L = 0x2C /*INVALID SETTING*/; //reload counter low value
 01AC 8CE2              ldi R24,44
 01AE 8CBD              out 0x2c,R24
 01B0                   .dbline 65
 01B0           ;  LCD_DisplayString(2,1,"OUT OF RANGE !");//(ROW(1-2),COLUMN(1-16),STRING)
 01B0 80E0              ldi R24,<L12
 01B2 90E0              ldi R25,>L12
 01B4 9983              std y+1,R25
 01B6 8883              std y+0,R24
 01B8 21E0              ldi R18,1
 01BA 02E0              ldi R16,2
 01BC 0E940000          xcall _LCD_DisplayString
 01C0                   .dbline -2
 01C0                   .dbline 66
 01C0           ; }
 01C0           L11:
 01C0 2296              adiw R28,2
 01C2 0E940000          xcall pop_lset
 01C6                   .dbline 0 ; func end
 01C6 1895              reti
 01C8                   .dbend
 01C8                   .dbfunc e timer1_start _timer1_start fV
                        .even
 01C8           _timer1_start::
 01C8                   .dbline -1
 01C8                   .dbline 69
 01C8           ; 
 01C8           ; void timer1_start(void)
 01C8           ;   {TCCR1B = 0x00;//STOP TIMER1
 01C8                   .dbline 69
 01C8 2224              clr R2
 01CA 2EBC              out 0x2e,R2
 01CC                   .dbline 70
 01CC           ;    TCNT1H = 0xCF;//200 000 us
 01CC 8FEC              ldi R24,207
 01CE 8DBD              out 0x2d,R24
 01D0                   .dbline 71
 01D0           ;    TCNT1L = 0x2C ;
 01D0 8CE2              ldi R24,44
 01D2 8CBD              out 0x2c,R24
 01D4                   .dbline 72
 01D4           ;    TCCR1B = 0xC3; 
 01D4 83EC              ldi R24,195
 01D6 8EBD              out 0x2e,R24
 01D8                   .dbline -2
 01D8                   .dbline 73
 01D8           ;   }
 01D8           L13:
 01D8                   .dbline 0 ; func end
 01D8 0895              ret
 01DA                   .dbend
 01DA                   .dbfunc e timer1_stop _timer1_stop fV
                        .even
 01DA           _timer1_stop::
 01DA                   .dbline -1
 01DA                   .dbline 75
 01DA           ; void timer1_stop(void)
 01DA           ;   {
 01DA                   .dbline 76
 01DA           ;    TCCR1B=0x00;//STOP TIMER1
 01DA 2224              clr R2
 01DC 2EBC              out 0x2e,R2
 01DE                   .dbline -2
 01DE                   .dbline 77
 01DE           ;   }
 01DE           L14:
 01DE                   .dbline 0 ; func end
 01DE 0895              ret
 01E0                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile D:\NEW\ECHO\timer1.c
 0000           _capt_timer1::
 0000                   .blkb 2
 0002                   .dbfile D:\NEW\ECHO/timer1.h
 0002                   .dbsym e capt_timer1 _capt_timer1 i
                        .area data(ram, con, rel)
 0004                   .dbfile D:\NEW\ECHO/timer1.h
 0004           L12:
 0004                   .blkb 15
                        .area idata
 0004 4F5554204F462052414E4745202100    .byte 'O,'U,'T,32,'O,'F,32,'R,'A,'N,'G,'E,32,33,0
                        .area data(ram, con, rel)
 0013                   .dbfile D:\NEW\ECHO/timer1.h
 0013           L10:
 0013                   .blkb 7
                        .area idata
 0013 6D202020202000    .byte 'm,32,32,32,32,32,0
                        .area data(ram, con, rel)
 001A                   .dbfile D:\NEW\ECHO/timer1.h
 001A           L6:
 001A                   .blkb 8
                        .area idata
 001A 4C454E54483D2000  .byte 'L,'E,'N,'T,'H,61,32,0
                        .area data(ram, con, rel)
 0022                   .dbfile D:\NEW\ECHO/timer1.h

⌨️ 快捷键说明

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