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

📄 delay.lis

📁 非常经典的基于AVR m16的DS18B20 C 程序 !1
💻 LIS
字号:
                        .module delay.c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\DS18B20\delay.c
 0000                   .dbfunc e delay_us _delay_us fV
 0000           ;              i -> R16,R17
                        .even
 0000           _delay_us::
 0000                   .dbline -1
 0000                   .dbline 31
 0000           ; /****************************************
 0000           ; ** 文 件 名: delay.c                             **
 0000           ; ** 日    期: 2007年04月08日                      **
 0000           ; ** 描    述: 延时函数                            **
 0000           ; ** 作    者:tonghe                                      **
 0000           ; ** 版  本: V1.0                                          **
 0000           ; ** 主控芯片:M16                                         **
 0000           ; ** 晶振频率:7.3728MHZ, 波特率9600       **
 0000           ; ****************************************/
 0000           ; #include <iom16v.h>
 0000           ; #include <macros.h>
 0000           ; #include <E:\DS18B20\define.h>
 0000           ; /****************************************
 0000           ; *  函数名称: void delay_us(uchar i)           *
 0000           ; *  函数功能:延时函数                                 *
 0000           ; *  晶振频率:7.3728MHZ                                        *
 0000           ; *  实际延时:                                                 *
 0000           ; *  delay_us(1);               //2.71us                        *
 0000           ; *  delay_us(2);               //3.53us                        *
 0000           ; *  delay_us(4);               //5.15us                        *
 0000           ; *  delay_us(8);               //8.41us                        *
 0000           ; *  delay_us(16);      //14.92us                       *
 0000           ; *  delay_us(32);      //27.94us                       *
 0000           ; *  delay_us(64);      //53.98us                       *
 0000           ; *  delay_us(128);     //106.07us                      *
 0000           ; *  delay_us(255);     //209.42us                      *
 0000           ; *  delay_us(100);     //83.28us                       *
 0000           ; *  _NOP();                    //0.14us                        *
 0000           ; ****************************************/
 0000           ; void delay_us(uint i)
 0000           ;        {
 0000           L2:
 0000                   .dbline 32
 0000           L3:
 0000                   .dbline 32
 0000           ;        while(i--);
 0000 1801              movw R2,R16
 0002 0150              subi R16,1
 0004 1040              sbci R17,0
 0006 2220              tst R2
 0008 D9F7              brne L2
 000A 3320              tst R3
 000C C9F7              brne L2
 000E           X0:
 000E                   .dbline -2
 000E           L1:
 000E                   .dbline 0 ; func end
 000E 0895              ret
 0010                   .dbsym r i 16 i
 0010                   .dbend
 0010                   .dbfunc e delay_ms _delay_ms fV
 0010           ;              a -> R20,R21
 0010           ;              i -> R16,R17
                        .even
 0010           _delay_ms::
 0010 0E940000          xcall push_gset1
 0014                   .dbline -1
 0014                   .dbline 42
 0014           ;        }
 0014           ;        
 0014           ; /****************************************
 0014           ; *  函数名称: void delay_ms(uint i)            *
 0014           ; *  函数功能:延时函数                                 *
 0014           ; *  晶振频率:7.3728MHZ                                        *
 0014           ; *  实际延时:i mS                                             *
 0014           ; ****************************************/
 0014           ; void delay_ms(uint i)
 0014           ;        {
 0014                   .dbline 44
 0014           ;        uint a;
 0014           ;        for(;i;i--)
 0014 0AC0              xjmp L9
 0016           L6:
 0016                   .dbline 45
 0016           ;           {
 0016                   .dbline 46
 0016           ;               for(a=1220;a;a--)
 0016 44EC              ldi R20,1220
 0018 54E0              ldi R21,4
 001A 02C0              xjmp L13
 001C           L10:
 001C                   .dbline 47
 001C                   .dbline 47
 001C                   .dbline 47
 001C           L11:
 001C                   .dbline 46
 001C 4150              subi R20,1
 001E 5040              sbci R21,0
 0020           L13:
 0020                   .dbline 46
 0020 4030              cpi R20,0
 0022 4507              cpc R20,R21
 0024 D9F7              brne L10
 0026           X1:
 0026                   .dbline 48
 0026           L7:
 0026                   .dbline 44
 0026 0150              subi R16,1
 0028 1040              sbci R17,0
 002A           L9:
 002A                   .dbline 44
 002A 0030              cpi R16,0
 002C 0107              cpc R16,R17
 002E 99F7              brne L6
 0030           X2:
 0030                   .dbline -2
 0030           L5:
 0030 0E940000          xcall pop_gset1
 0034                   .dbline 0 ; func end
 0034 0895              ret
 0036                   .dbsym r a 20 i
 0036                   .dbsym r i 16 i
 0036                   .dbend

⌨️ 快捷键说明

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