📄 delay.lis
字号:
.module Delay.C
.area text(rom, con, rel)
0000 .dbfile C:\DOCUME~1\administrator\桌面\电子设计大赛_MrLiu\数控直流电流源(测试版)\Delay.C
0000 .dbfunc e delay_1us _delay_1us fV
.even
0000 _delay_1us::
0000 .dbline -1
0000 .dbline 12
0000 ; // Delay.c
0000 ; //
0000 ;
0000 ; /********************************************
0000 ; /* 延时函数1us/1ms/ms
0000 ; /* 在其他文件中调用函数时应做以下说明
0000 ; /* extern void delay_nus(unsigned int n);
0000 ; /* extern void delay_1ms(void);
0000 ; /* extern void delay_nms(unsigned int n);
0000 ; *********************************************/
0000 ; void delay_1us(void) //1us延时函数
0000 ; {
0000 .dbline 13
0000 ; asm("nop");
0000 0000 nop
0002 .dbline -2
0002 .dbline 14
0002 ; }
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 -> R22,R23
.even
0004 _delay_nus::
0004 00D0 rcall push_gset2
0006 602F mov R22,R16
0008 712F mov R23,R17
000A .dbline -1
000A .dbline 17
000A ;
000A ; void delay_nus(unsigned int n) //N us延时函数
000A ; {
000A .dbline 18
000A ; unsigned int i=0;
000A 4427 clr R20
000C 5527 clr R21
000E .dbline 19
000E ; for (i=0;i<n;i++)
000E 03C0 rjmp L6
0010 L3:
0010 .dbline 20
0010 F7DF rcall _delay_1us
0012 L4:
0012 .dbline 19
0012 4F5F subi R20,255 ; offset = 1
0014 5F4F sbci R21,255
0016 L6:
0016 .dbline 19
0016 4617 cp R20,R22
0018 5707 cpc R21,R23
001A D0F3 brlo L3
001C .dbline -2
001C .dbline 21
001C ; delay_1us();
001C ; }
001C L2:
001C 00D0 rcall pop_gset2
001E .dbline 0 ; func end
001E 0895 ret
0020 .dbsym r i 20 i
0020 .dbsym r n 22 i
0020 .dbend
0020 .dbfunc e delay_1ms _delay_1ms fV
0020 ; i -> R16,R17
.even
0020 _delay_1ms::
0020 .dbline -1
0020 .dbline 24
0020 ;
0020 ; void delay_1ms(void) //1ms延时函数
0020 ; {
0020 .dbline 26
0020 0027 clr R16
0022 1127 clr R17
0024 02C0 rjmp L11
0026 L8:
0026 .dbline 26
0026 L9:
0026 .dbline 26
0026 0F5F subi R16,255 ; offset = 1
0028 1F4F sbci R17,255
002A L11:
002A .dbline 26
002A ; unsigned int i;
002A ; for (i=0;i<1140;i++);
002A 0437 cpi R16,116
002C E4E0 ldi R30,4
002E 1E07 cpc R17,R30
0030 D0F3 brlo L8
0032 .dbline -2
0032 .dbline 27
0032 ; }
0032 L7:
0032 .dbline 0 ; func end
0032 0895 ret
0034 .dbsym r i 16 i
0034 .dbend
0034 .dbfunc e delay_nms _delay_nms fV
0034 ; i -> R20,R21
0034 ; n -> R22,R23
.even
0034 _delay_nms::
0034 00D0 rcall push_gset2
0036 602F mov R22,R16
0038 712F mov R23,R17
003A .dbline -1
003A .dbline 30
003A ;
003A ; void delay_nms(unsigned int n) //N ms延时函数
003A ; {
003A .dbline 31
003A ; unsigned int i=0;
003A 4427 clr R20
003C 5527 clr R21
003E .dbline 32
003E ; for (i=0;i<n;i++)
003E 03C0 rjmp L16
0040 L13:
0040 .dbline 33
0040 EFDF rcall _delay_1ms
0042 L14:
0042 .dbline 32
0042 4F5F subi R20,255 ; offset = 1
0044 5F4F sbci R21,255
0046 L16:
0046 .dbline 32
0046 4617 cp R20,R22
0048 5707 cpc R21,R23
004A D0F3 brlo L13
004C .dbline -2
004C .dbline 34
004C ; delay_1ms();
004C ; }
004C L12:
004C 00D0 rcall pop_gset2
004E .dbline 0 ; func end
004E 0895 ret
0050 .dbsym r i 20 i
0050 .dbsym r n 22 i
0050 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -