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

📄 tools.lis

📁 avr单片机atmage16驱动小灯的一些例程 并且包括一些收发数据的程序利用usb口
💻 LIS
字号:
                        .module tools.c
                        .area vector(rom, abs)
                        .org 12
 000C 00C0              rjmp _T1_OCR1A
                        .area text(rom, con, rel)
 0000                   .dbfile E:\ICCAVR\project\avrisp\tools.c
 0000                   .dbfunc e T1_OCR1A _T1_OCR1A fV
                        .even
 0000           _T1_OCR1A::
 0000 8A93              st -y,R24
 0002 9A93              st -y,R25
 0004 8FB7              in R24,0x3f
 0006 8A93              st -y,R24
 0008                   .dbline -1
 0008                   .dbline 18
 0008           ; 
 0008           ; #include "stk500.h"
 0008           ; 
 0008           ; static unsigned int t1_tick;
 0008           ; 
 0008           ; //Konstanten im EEPROM
 0008           ; //#define EEPROM  __attribute__ ((section (".eeprom")))
 0008           ; 
 0008           ; //Variablen im EEPROM
 0008           ; //EEPROM unsigned char eeprom_sck_period=10;
 0008           ; //unsigned char eeprom_sck_period=10;
 0008           ; 
 0008           ; #ifndef __iom88v_h
 0008           ; #pragma interrupt_handler T1_OCR1A: 7 /*meag8*/
 0008           ; #else
 0008           ; #pragma interrupt_handler T1_OCR1A: 12        /*mega88*/
 0008           ; #endif
 0008           ; void T1_OCR1A(void) {
 0008                   .dbline 19
 0008           ;       t1_tick --;
 0008 80910000          lds R24,_t1_tick
 000C 90910100          lds R25,_t1_tick+1
 0010 0197              sbiw R24,1
 0012 90930100          sts _t1_tick+1,R25
 0016 80930000          sts _t1_tick,R24
 001A                   .dbline -2
 001A           L2:
 001A 8991              ld R24,y+
 001C 8FBF              out 0x3f,R24
 001E 9991              ld R25,y+
 0020 8991              ld R24,y+
 0022                   .dbline 0 ; func end
 0022 1895              reti
 0024                   .dbend
 0024                   .dbfunc e get_t1_tick _get_t1_tick fc
                        .even
 0024           _get_t1_tick::
 0024                   .dbline -1
 0024                   .dbline 33
 0024           ; }
 0024           ; 
 0024           ; /*延时函数*/
 0024           ; //void wait_ms(unsigned int n) {
 0024           ; //
 0024           ; //    unsigned int a, b;
 0024           ; //    for (a = 0; a < n; a++) {
 0024           ; //            for (b = 600; b; b--) {
 0024           ; //                    ;
 0024           ; //                    }
 0024           ; //            }
 0024           ; //}
 0024           ; 
 0024           ; unsigned char get_t1_tick(void) {
 0024                   .dbline 34
 0024           ;       if(t1_tick) {
 0024 20900000          lds R2,_t1_tick
 0028 30900100          lds R3,_t1_tick+1
 002C 2220              tst R2
 002E 11F4              brne X0
 0030 3320              tst R3
 0032 41F0              breq L4
 0034           X0:
 0034                   .dbline 34
 0034                   .dbline 35
 0034           ;               t1_tick=0;
 0034 2224              clr R2
 0036 3324              clr R3
 0038 30920100          sts _t1_tick+1,R3
 003C 20920000          sts _t1_tick,R2
 0040                   .dbline 36
 0040           ;               return 1;
 0040 01E0              ldi R16,1
 0042 01C0              rjmp L3
 0044           L4:
 0044                   .dbline 38
 0044           ;               }
 0044           ;       return 0;
 0044 0027              clr R16
 0046                   .dbline -2
 0046           L3:
 0046                   .dbline 0 ; func end
 0046 0895              ret
 0048                   .dbend
 0048                   .dbfunc e wait_ms _wait_ms fV
 0048           ;              n -> R20,R21
                        .even
 0048           _wait_ms::
 0048 00D0              rcall push_gset1
 004A A801              movw R20,R16
 004C                   .dbline -1
 004C                   .dbline 41
 004C           ; }
 004C           ; 
 004C           ; void wait_ms(unsigned int n) {
 004C 05C0              rjmp L8
 004E           L7:
 004E                   .dbline 42
 004E           ;       while(n) {
 004E                   .dbline 43
 004E           ;               if (get_t1_tick()) {
 004E EADF              rcall _get_t1_tick
 0050 0023              tst R16
 0052 11F0              breq L10
 0054                   .dbline 43
 0054                   .dbline 44
 0054           ;                       n --;
 0054 4150              subi R20,1
 0056 5040              sbci R21,0
 0058                   .dbline 45
 0058           ;                       }
 0058           L10:
 0058                   .dbline 46
 0058           L8:
 0058                   .dbline 42
 0058 4030              cpi R20,0
 005A 4507              cpc R20,R21
 005C C1F7              brne L7
 005E           X1:
 005E                   .dbline -2
 005E           L6:
 005E 00D0              rcall pop_gset1
 0060                   .dbline 0 ; func end
 0060 0895              ret
 0062                   .dbsym r n 20 i
 0062                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile E:\ICCAVR\project\avrisp\tools.c
 0000           _t1_tick:
 0000                   .blkb 2
 0002                   .dbsym s t1_tick _t1_tick i

⌨️ 快捷键说明

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