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

📄 delay.lis

📁 运动控制:利用单片机的定时器中断来产生脉冲
💻 LIS
字号:
                        .module delay.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\桌面\avr程序设计\电机控制\delay.c
 0000                   .dbfunc e Delay100us _Delay100us fV
 0000           ;              i -> R20
 0000           ;              x -> R16
                        .even
 0000           _Delay100us::
 0000 0E940000          xcall push_gset1
 0004                   .dbline -1
 0004                   .dbline 8
 0004           ; // 文件名 delay.c 延时
 0004           ; 
 0004           ; #include "config.h"
 0004           ; /***************************************************************************
 0004           ; 延时 M32 7.3728M 粗略计算
 0004           ; */
 0004           ; void Delay100us(uint8 x)
 0004           ; {
 0004                   .dbline 10
 0004           ;       uint8 i;          //4clock                   
 0004           ;       for(i=147;x!=0;x--)     
 0004 43E9              ldi R20,147
 0006 06C0              xjmp L5
 0008           L6:
 0008                   .dbline 11
 0008           L7:
 0008                   .dbline 11
 0008 842F              mov R24,R20
 000A 8150              subi R24,1
 000C 482F              mov R20,R24
 000E 8823              tst R24
 0010 D9F7              brne L6
 0012           L3:
 0012                   .dbline 10
 0012 0A95              dec R16
 0014           L5:
 0014                   .dbline 10
 0014 0023              tst R16
 0016 C1F7              brne L7
 0018                   .dbline -2
 0018           L1:
 0018 0E940000          xcall pop_gset1
 001C                   .dbline 0 ; func end
 001C 0895              ret
 001E                   .dbsym r i 20 c
 001E                   .dbsym r x 16 c
 001E                   .dbend
 001E                   .dbfunc e Delay1ms _Delay1ms fV
 001E           ;              n -> R20,R21
                        .even
 001E           _Delay1ms::
 001E 0E940000          xcall push_gset1
 0022 A801              movw R20,R16
 0024                   .dbline -1
 0024                   .dbline 14
 0024           ;       while(--i);      //5 * i clock
 0024           ; }
 0024           ; void Delay1ms(uint16 n)
 0024           ; {        
 0024                   .dbline 15
 0024 04C0              xjmp L13
 0026           L10:
 0026                   .dbline 15
 0026                   .dbline 16
 0026 0AE0              ldi R16,10
 0028 EBDF              xcall _Delay100us
 002A                   .dbline 17
 002A           L11:
 002A                   .dbline 15
 002A 4150              subi R20,1
 002C 5040              sbci R21,0
 002E           L13:
 002E                   .dbline 15
 002E           ;       for (;n!=0;n--){
 002E 4030              cpi R20,0
 0030 4507              cpc R20,R21
 0032 C9F7              brne L10
 0034           X0:
 0034                   .dbline -2
 0034           L9:
 0034 0E940000          xcall pop_gset1
 0038                   .dbline 0 ; func end
 0038 0895              ret
 003A                   .dbsym r n 20 i
 003A                   .dbend
 003A                   .dbfunc e Delay1s _Delay1s fV
 003A           ;              m -> R20,R21
                        .even
 003A           _Delay1s::
 003A 0E940000          xcall push_gset1
 003E A801              movw R20,R16
 0040                   .dbline -1
 0040                   .dbline 20
 0040           ;               Delay100us(10);
 0040           ;       }
 0040           ; }
 0040           ; void Delay1s(uint16 m)         //  m <= 6 ,when m==7, it is 1. 
 0040           ; {
 0040                   .dbline 21
 0040           ;       m=m*40;                
 0040 08E2              ldi R16,40
 0042 10E0              ldi R17,0
 0044 9A01              movw R18,R20
 0046 0E940000          xcall empy16s
 004A A801              movw R20,R16
 004C                   .dbline 22
 004C 04C0              xjmp L18
 004E           L15:
 004E                   .dbline 22
 004E                   .dbline 23
 004E 0AEF              ldi R16,250
 0050 D7DF              xcall _Delay100us
 0052                   .dbline 24
 0052           L16:
 0052                   .dbline 22
 0052 4150              subi R20,1
 0054 5040              sbci R21,0
 0056           L18:
 0056                   .dbline 22
 0056           ;       for (;m!=0;m--){
 0056 4030              cpi R20,0
 0058 4507              cpc R20,R21
 005A C9F7              brne L15
 005C           X1:
 005C                   .dbline -2
 005C           L14:
 005C 0E940000          xcall pop_gset1
 0060                   .dbline 0 ; func end
 0060 0895              ret
 0062                   .dbsym r m 20 i
 0062                   .dbend

⌨️ 快捷键说明

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