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

📄 mydelay.s

📁 温度测量ds18b20.rar
💻 S
字号:
	.module mydelay.c
	.area text(rom, con, rel)
	.dbfile ..\..\..\..\PROTEU~2\5.avr\19.温度测量ds18b20\3.开搞ds18b20\mydelay.c
	.dbfile D:\教程及心得\Proteus\PROTEU~2\5.avr\19.温度测量ds18b20\3.开搞ds18b20\mydelay.c
	.dbfunc e delay0ms5us _delay0ms5us fV
	.even
_delay0ms5us::
	.dbline -1
	.dbline 3
; #include "mydelay.h"
; void delay0ms5us(void)
; {
	.dbline 7
; /*精确延时0ms 5us ,晶振8MHz*/
; /*us级精确延时 766us/晶振以内 延时=1+n*3 */
; // CLI;//屏蔽中断吗?
; asm("LDI R18,10");//1t ,寄存器R15~R30
	LDI R18,10
	.dbline 8
; asm("CLZ");//1t
	CLZ
	.dbline 9
; asm("LOOP1:DEC R18");//1t
	LOOP1:DEC R18
	.dbline 10
; asm("BRNE LOOP1");//1t或2t//标志位Z是0就转移
	BRNE LOOP1
	.dbline 11
; asm("NOP");//1t
	NOP
	.dbline 12
; asm("NOP");//1t
	NOP
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e delay0ms15us _delay0ms15us fV
	.even
_delay0ms15us::
	.dbline -1
	.dbline 19
; // SEI;
; /*us级精确延时 24543us以内,用nop补足了余数*/
; //===精确延时 4.125us,晶振8MHz ===//
; //===调用函数及返回花费0.875us==//
; }
; void delay0ms15us(void)
; {
	.dbline 23
; /*精确延时0ms 15us ,晶振8MHz*/
; /*us级精确延时 766us/晶振以内 延时=1+n*3 */
; // CLI;//屏蔽中断吗?
; asm("LDI R18,37");//1t ,寄存器R15~R30
	LDI R18,37
	.dbline 24
; asm("CLZ");//1t
	CLZ
	.dbline 25
; asm("LOOP111:DEC R18");//1t
	LOOP111:DEC R18
	.dbline 26
; asm("BRNE LOOP111");//1t或2t//标志位Z是0就转移
	BRNE LOOP111
	.dbline 27
; asm("NOP");//1t
	NOP
	.dbline -2
L2:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e delay0ms60us _delay0ms60us fV
	.even
_delay0ms60us::
	.dbline -1
	.dbline 34
; // SEI;
; /*us级精确延时 24543us以内,用nop补足了余数*/
; //===精确延时 14.125us,晶振8MHz ===//
; //===调用函数及返回花费0.875us==//
; }
; void delay0ms60us(void)
; {
	.dbline 38
; /*精确延时0ms 60us ,晶振8MHz*/
; /*us级精确延时 766us/晶振以内 延时=1+n*3 */
; // CLI;//屏蔽中断吗?
; asm("LDI R18,157");//1t ,寄存器R15~R30
	LDI R18,157
	.dbline 39
; asm("CLZ");//1t
	CLZ
	.dbline 40
; asm("LOOP11:DEC R18");//1t
	LOOP11:DEC R18
	.dbline 41
; asm("BRNE LOOP11");//1t或2t//标志位Z是0就转移
	BRNE LOOP11
	.dbline 42
; asm("NOP");//1t
	NOP
	.dbline -2
L3:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e delay0ms500us _delay0ms500us fV
	.even
_delay0ms500us::
	.dbline -1
	.dbline 49
; // SEI;
; /*us级精确延时 24543us以内,用nop补足了余数*/
; //===精确延时 59.125us,晶振8MHz ===//
; //===调用函数及返回花费0.875us==//
; }
; void delay0ms500us(void)
; {
	.dbline 53
; /*精确延时0ms 500us ,晶振8MHz*/
; /*us级 196348us/晶振即196ms/晶振以内 延时=n*(m*3+5)*/
; // CLI;//屏蔽中断吗?
; asm("LDI R18,6");//外圈循环n
	LDI R18,6
	.dbline 54
; asm("LOOP32:LDI R19,220");//内圈循环m
	LOOP32:LDI R19,220
	.dbline 55
; asm("CLZ");//1t
	CLZ
	.dbline 56
; asm("LOOP22:DEC R19");//1t
	LOOP22:DEC R19
	.dbline 57
; asm("BRNE LOOP22");
	BRNE LOOP22
	.dbline 58
; asm("CLZ");//1t
	CLZ
	.dbline 59
; asm("DEC R18");//1t
	DEC R18
	.dbline 60
; asm("BRNE LOOP32");
	BRNE LOOP32
	.dbline 61
; asm("NOP");//1t
	NOP
	.dbline 62
; asm("NOP");//1t
	NOP
	.dbline 63
; asm("NOP");//1t
	NOP
	.dbline -2
L4:
	.dbline 0 ; func end
	ret
	.dbend
; // SEI;
; /*us级精确延时 24543us以内,用nop补足了余数*/
; //===精确延时 499.125us,晶振8MHz ===//
; //===调用函数及返回花费0.875us==//
; }

⌨️ 快捷键说明

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