📄 delay.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 + -