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

📄 delay.lis

📁 proteus仿真实例大全
💻 LIS
字号:
                        .module delay.c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\avr\电机控制\电机控制\delay.c
 0000                   .dbfunc e Delay100us _Delay100us fV
 0000           ;              i -> R20
 0000           ;              x -> R16
                        .even
 0000           _Delay100us::
 0000 4A93              st -y,R20
 0002                   .dbline -1
 0002                   .dbline 8
 0002           ; // 文件名 delay.c 延时
 0002           ; 
 0002           ; #include "config.h"
 0002           ; /***************************************************************************
 0002           ; 延时 M32 7.3728M 粗略计算
 0002           ; */
 0002           ; void Delay100us(uint8 x)
 0002           ; {
 0002                   .dbline 10
 0002           ;       uint8 i;          //4clock                   
 0002           ;       for(i=147;x!=0;x--)     
 0002 43E9              ldi R20,147
 0004 06C0              xjmp L5
 0006           L6:
 0006                   .dbline 11
 0006           ;       while(--i);      //5 * i clock
 0006           L7:
 0006                   .dbline 11
 0006 842F              mov R24,R20
 0008 8150              subi R24,1
 000A 482F              mov R20,R24
 000C 8823              tst R24
 000E D9F7              brne L6
 0010           X0:
 0010           L3:
 0010                   .dbline 10
 0010 0A95              dec R16
 0012           L5:
 0012                   .dbline 10
 0012 0023              tst R16
 0014 C1F7              brne L7
 0016           X1:
 0016                   .dbline -2
 0016           L1:
 0016                   .dbline 0 ; func end
 0016 4991              ld R20,y+
 0018 0895              ret
 001A                   .dbsym r i 20 c
 001A                   .dbsym r x 16 c
 001A                   .dbend
 001A                   .dbfunc e Delay1ms _Delay1ms fV
 001A           ;              n -> R20,R21
                        .even
 001A           _Delay1ms::
 001A 4A93              st -y,R20
 001C 5A93              st -y,R21
 001E A801              movw R20,R16
 0020                   .dbline -1
 0020                   .dbline 14
 0020           ; }
 0020           ; void Delay1ms(uint16 n)
 0020           ; {        
 0020                   .dbline 15
 0020           ;       for (;n!=0;n--){
 0020 04C0              xjmp L13
 0022           L10:
 0022                   .dbline 15
 0022                   .dbline 16
 0022           ;               Delay100us(10);
 0022 0AE0              ldi R16,10
 0024 EDDF              xcall _Delay100us
 0026                   .dbline 17
 0026           ;       }
 0026           L11:
 0026                   .dbline 15
 0026 4150              subi R20,1
 0028 5040              sbci R21,0
 002A           L13:
 002A                   .dbline 15
 002A 4030              cpi R20,0
 002C 4507              cpc R20,R21
 002E C9F7              brne L10
 0030           X2:
 0030                   .dbline -2
 0030           L9:
 0030                   .dbline 0 ; func end
 0030 5991              ld R21,y+
 0032 4991              ld R20,y+
 0034 0895              ret
 0036                   .dbsym r n 20 i
 0036                   .dbend
 0036                   .dbfunc e Delay1s _Delay1s fV
 0036           ;              m -> R20,R21
                        .even
 0036           _Delay1s::
 0036 4A93              st -y,R20
 0038 5A93              st -y,R21
 003A A801              movw R20,R16
 003C                   .dbline -1
 003C                   .dbline 20
 003C           ; }
 003C           ; void Delay1s(uint16 m)         //  m <= 6 ,when m==7, it is 1. 
 003C           ; {
 003C                   .dbline 21
 003C           ;       m=m*40;                
 003C 08E2              ldi R16,40
 003E 10E0              ldi R17,0
 0040 9A01              movw R18,R20
 0042 0E940000          xcall empy16s
 0046 A801              movw R20,R16
 0048                   .dbline 22
 0048           ;       for (;m!=0;m--){
 0048 04C0              xjmp L18
 004A           L15:
 004A                   .dbline 22
 004A                   .dbline 23
 004A           ;               Delay100us(250);
 004A 0AEF              ldi R16,250
 004C D9DF              xcall _Delay100us
 004E                   .dbline 24
 004E           ;       }
 004E           L16:
 004E                   .dbline 22
 004E 4150              subi R20,1
 0050 5040              sbci R21,0
 0052           L18:
 0052                   .dbline 22
 0052 4030              cpi R20,0
 0054 4507              cpc R20,R21
 0056 C9F7              brne L15
 0058           X3:
 0058                   .dbline -2
 0058           L14:
 0058                   .dbline 0 ; func end
 0058 5991              ld R21,y+
 005A 4991              ld R20,y+
 005C 0895              ret
 005E                   .dbsym r m 20 i
 005E                   .dbend
 005E           ; }

⌨️ 快捷键说明

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