📄 delay.s
字号:
.module delay.c
.area text(rom, con, rel)
.dbfile E:\DS18B20\delay.c
.dbfunc e delay_us _delay_us fV
; i -> R16,R17
.even
_delay_us::
.dbline -1
.dbline 31
; /****************************************
; ** 文 件 名: delay.c **
; ** 日 期: 2007年04月08日 **
; ** 描 述: 延时函数 **
; ** 作 者:tonghe **
; ** 版 本: V1.0 **
; ** 主控芯片:M16 **
; ** 晶振频率:7.3728MHZ, 波特率9600 **
; ****************************************/
; #include <iom16v.h>
; #include <macros.h>
; #include <E:\DS18B20\define.h>
; /****************************************
; * 函数名称: void delay_us(uchar i) *
; * 函数功能:延时函数 *
; * 晶振频率:7.3728MHZ *
; * 实际延时: *
; * delay_us(1); //2.71us *
; * delay_us(2); //3.53us *
; * delay_us(4); //5.15us *
; * delay_us(8); //8.41us *
; * delay_us(16); //14.92us *
; * delay_us(32); //27.94us *
; * delay_us(64); //53.98us *
; * delay_us(128); //106.07us *
; * delay_us(255); //209.42us *
; * delay_us(100); //83.28us *
; * _NOP(); //0.14us *
; ****************************************/
; void delay_us(uint i)
; {
L2:
.dbline 32
L3:
.dbline 32
; while(i--);
movw R2,R16
subi R16,1
sbci R17,0
tst R2
brne L2
tst R3
brne L2
X0:
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbsym r i 16 i
.dbend
.dbfunc e delay_ms _delay_ms fV
; a -> R20,R21
; i -> R16,R17
.even
_delay_ms::
xcall push_gset1
.dbline -1
.dbline 42
; }
;
; /****************************************
; * 函数名称: void delay_ms(uint i) *
; * 函数功能:延时函数 *
; * 晶振频率:7.3728MHZ *
; * 实际延时:i mS *
; ****************************************/
; void delay_ms(uint i)
; {
.dbline 44
; uint a;
; for(;i;i--)
xjmp L9
L6:
.dbline 45
; {
.dbline 46
; for(a=1220;a;a--)
ldi R20,1220
ldi R21,4
xjmp L13
L10:
.dbline 47
.dbline 47
.dbline 47
L11:
.dbline 46
subi R20,1
sbci R21,0
L13:
.dbline 46
cpi R20,0
cpc R20,R21
brne L10
X1:
.dbline 48
L7:
.dbline 44
subi R16,1
sbci R17,0
L9:
.dbline 44
cpi R16,0
cpc R16,R17
brne L6
X2:
.dbline -2
L5:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r a 20 i
.dbsym r i 16 i
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -