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