www.pudn.com > digital_duoji.rar > delay.s


	.module delay.c 
	.area text(rom, con, rel) 
	.dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\delay.c 
	.dbfunc e delay_us _delay_us fV 
;              t -> R16 
	.even 
_delay_us:: 
	.dbline -1 
	.dbline 10 
;  
;  
; #include  
; #include "delay.h" 
;  
; /*----------------------------------------------------------------------- 
; delay_us	   :1us延时函数 
; -----------------------------------------------------------------------*/ 
; void delay_us(void) 
; { 
	.dbline 11 
;    unsigned char t=2; 
	ldi R16,2 
	.dbline 12 
;    t--; 
	dec R16 
	.dbline -2 
L1: 
	.dbline 0 ; func end 
	ret 
	.dbsym r t 16 c 
	.dbend 
	.dbfunc e delay_nus _delay_nus fV 
;              t -> R20,R21 
	.even 
_delay_nus:: 
	st -y,R20 
	st -y,R21 
	movw R20,R16 
	.dbline -1 
	.dbline 21 
; } 
;  
; /*----------------------------------------------------------------------- 
; delay_nus          :长延时函数 
;  
; 输入参数: t        :延时时间 us 
; -----------------------------------------------------------------------*/ 
; void delay_nus(unsigned int t) 
; { 
	xjmp L4 
L3: 
	.dbline 23 
;     while (t--) 
;        delay_us(); 
	xcall _delay_us 
L4: 
	.dbline 22 
	movw R2,R20 
	subi R20,1 
	sbci R21,0 
	tst R2 
	brne L3 
	tst R3 
	brne L3 
X0: 
	.dbline -2 
L2: 
	.dbline 0 ; func end 
	ld R21,y+ 
	ld R20,y+ 
	ret 
	.dbsym r t 20 i 
	.dbend 
	.dbfunc e delay_ms _delay_ms fV 
	.even 
_delay_ms:: 
	.dbline -1 
	.dbline 30 
; } 
;  
; /*----------------------------------------------------------------------- 
; delay_ms	   :1ms延时函数 
; -----------------------------------------------------------------------*/ 
; void delay_ms(void) 
; { 
	.dbline 31 
;    delay_nus(1000); 
	ldi R16,1000 
	ldi R17,3 
	xcall _delay_nus 
	.dbline -2 
L6: 
	.dbline 0 ; func end 
	ret 
	.dbend 
	.dbfunc e delay_nms _delay_nms fV 
;              t -> R20,R21 
	.even 
_delay_nms:: 
	st -y,R20 
	st -y,R21 
	movw R20,R16 
	.dbline -1 
	.dbline 40 
; } 
;  
; /*----------------------------------------------------------------------- 
; delay_nms          :长延时函数 
;  
; 输入参数: t        :延时时间 ms 
; -----------------------------------------------------------------------*/ 
; void delay_nms(unsigned int t) 
; { 
	xjmp L9 
L8: 
	.dbline 42 
;     while (t--) 
;        delay_ms(); 
	xcall _delay_ms 
L9: 
	.dbline 41 
	movw R2,R20 
	subi R20,1 
	sbci R21,0 
	tst R2 
	brne L8 
	tst R3 
	brne L8 
X1: 
	.dbline -2 
L7: 
	.dbline 0 ; func end 
	ld R21,y+ 
	ld R20,y+ 
	ret 
	.dbsym r t 20 i 
	.dbend 
; }