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

📄 mydelay.lis

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

⌨️ 快捷键说明

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