📄 delay.lis
字号:
.module delay.c
.area text(rom, con, rel)
0000 .dbfile D:\ICCAVR~1\模块化~1\src\delay.c
0000 .dbfunc e delay_1us _delay_1us fV
.even
0000 _delay_1us::
0000 .dbline -1
0000 .dbline 5
0000 ; #define DELAY_C
0000 ; #include "common.h"
0000 ; #define XTAL 1 //晶振频率,单位MHz
0000 ; void delay_1us(void) //1us延时函数
0000 ; {
0000 .dbline 6
0000 ; asm("nop");
0000 0000 nop
0002 .dbline -2
0002 L1:
0002 .dbline 0 ; func end
0002 0895 ret
0004 .dbend
0004 .dbfunc e delay_nus _delay_nus fV
0004 ; i -> R20,R21
0004 ; n -> R10,R11
.even
0004 _delay_nus::
0004 0E940000 xcall push_xgset300C
0008 5801 movw R10,R16
000A .dbline -1
000A .dbline 10
000A ; }
000A ;
000A ; void delay_nus(unsigned int n) //N us延时函数
000A ; {
000A .dbline 11
000A ; unsigned int i=0;
000A 4427 clr R20
000C 5527 clr R21
000E .dbline 12
000E ; for (i=0;i<n;i++)
000E 03C0 xjmp L6
0010 L3:
0010 .dbline 13
0010 ; delay_1us();
0010 F7DF xcall _delay_1us
0012 L4:
0012 .dbline 12
0012 4F5F subi R20,255 ; offset = 1
0014 5F4F sbci R21,255
0016 L6:
0016 .dbline 12
0016 4A15 cp R20,R10
0018 5B05 cpc R21,R11
001A D0F3 brlo L3
001C X0:
001C .dbline -2
001C L2:
001C .dbline 0 ; func end
001C 0C940000 xjmp pop_xgset300C
0020 .dbsym r i 20 i
0020 .dbsym r n 10 i
0020 .dbend
0020 .dbfunc e delay_1ms _delay_1ms fV
0020 ; i -> R16,R17
.even
0020 _delay_1ms::
0020 .dbline -1
0020 .dbline 17
0020 ; }
0020 ;
0020 ; void delay_1ms(void) //1ms延时函数
0020 ; {
0020 .dbline 19
0020 ; unsigned int i;
0020 ; for (i=0;i<(unsigned int)(XTAL*143-2);i++);
0020 0027 clr R16
0022 1127 clr R17
0024 02C0 xjmp L11
0026 L8:
0026 .dbline 19
0026 L9:
0026 .dbline 19
0026 0F5F subi R16,255 ; offset = 1
0028 1F4F sbci R17,255
002A L11:
002A .dbline 19
002A 8DE8 ldi R24,141
002C 90E0 ldi R25,0
002E 0817 cp R16,R24
0030 1907 cpc R17,R25
0032 C8F3 brlo L8
0034 X1:
0034 .dbline -2
0034 L7:
0034 .dbline 0 ; func end
0034 0895 ret
0036 .dbsym r i 16 i
0036 .dbend
0036 .dbfunc e delay_nms _delay_nms fV
0036 ; i -> R20,R21
0036 ; n -> R10,R11
.even
0036 _delay_nms::
0036 0E940000 xcall push_xgset300C
003A 5801 movw R10,R16
003C .dbline -1
003C .dbline 23
003C ; }
003C ;
003C ; void delay_nms(unsigned int n) //N ms延时函数
003C ; {
003C .dbline 24
003C ; unsigned int i=0;
003C 4427 clr R20
003E 5527 clr R21
0040 .dbline 25
0040 ; for (i=0;i<n;i++)
0040 03C0 xjmp L16
0042 L13:
0042 .dbline 26
0042 ; {
0042 .dbline 27
0042 ; delay_1ms();
0042 EEDF xcall _delay_1ms
0044 .dbline 28
0044 ; }
0044 L14:
0044 .dbline 25
0044 4F5F subi R20,255 ; offset = 1
0046 5F4F sbci R21,255
0048 L16:
0048 .dbline 25
0048 4A15 cp R20,R10
004A 5B05 cpc R21,R11
004C D0F3 brlo L13
004E X2:
004E .dbline -2
004E L12:
004E .dbline 0 ; func end
004E 0C940000 xjmp pop_xgset300C
0052 .dbsym r i 20 i
0052 .dbsym r n 10 i
0052 .dbend
0052 ; }
0052 ;
0052 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -