📄 delay.lis
字号:
.module delay.c
.area text(rom, con, rel)
0000 .dbfile F:\CH452L\delay.c
0000 .dbfunc e Delay_Nus _Delay_Nus fV
0000 ; i -> R20,R21
0000 ; time -> R16,R17
.even
0000 _Delay_Nus::
0000 00D0 rcall push_gset1
0002 .dbline -1
0002 .dbline 13
0002 ; #include<iom8v.h>
0002 ; #include<macros.h>
0002 ;
0002 ; #define xtal 8 //定义时钟频率8M
0002 ;
0002 ; /************************************************************
0002 ; * 函数名称:void Delay_Nus(unsigned int time)
0002 ; * 功 能:软件延时N微秒
0002 ; * 入口参数:time 延时时间
0002 ; * 出口参数:无
0002 ; ************************************************************/
0002 ; void Delay_Nus(unsigned int time)
0002 ; {
0002 .dbline 15
0002 ; unsigned int i;
0002 ; for(i=0;i<time;i++)
0002 4427 clr R20
0004 5527 clr R21
0006 03C0 rjmp L5
0008 L2:
0008 .dbline 16
0008 .dbline 17
0008 0000 nop
000A .dbline 18
000A L3:
000A .dbline 15
000A 4F5F subi R20,255 ; offset = 1
000C 5F4F sbci R21,255
000E L5:
000E .dbline 15
000E 4017 cp R20,R16
0010 5107 cpc R21,R17
0012 D0F3 brlo L2
0014 .dbline -2
0014 L1:
0014 00D0 rcall pop_gset1
0016 .dbline 0 ; func end
0016 0895 ret
0018 .dbsym r i 20 i
0018 .dbsym r time 16 i
0018 .dbend
0018 .dbfunc e Delay_Nms _Delay_Nms fV
0018 ; i -> R20,R21
0018 ; time -> R16,R17
.even
0018 _Delay_Nms::
0018 00D0 rcall push_gset1
001A .dbline -1
001A .dbline 28
001A ; {
001A ; asm("nop");
001A ; }
001A ; }
001A ;
001A ; /************************************************************
001A ; * 函数名称:void Delay_Nms(unsigned int time)
001A ; * 功 能:软件延时N毫秒
001A ; * 入口参数:time 延时时间 MS
001A ; * 出口参数:无
001A ; ************************************************************/
001A ; void Delay_Nms(unsigned int time)
001A ; {
001A 09C0 rjmp L8
001C L7:
001C .dbline 31
001C ; unsigned int i;
001C ; while(time--)
001C ; {
001C .dbline 32
001C ; for(i=1;i<(unsigned int)(xtal*143-2);i++)
001C 41E0 ldi R20,1
001E 50E0 ldi R21,0
0020 02C0 rjmp L13
0022 L10:
0022 .dbline 33
0022 L11:
0022 .dbline 32
0022 4F5F subi R20,255 ; offset = 1
0024 5F4F sbci R21,255
0026 L13:
0026 .dbline 32
0026 4637 cpi R20,118
0028 E4E0 ldi R30,4
002A 5E07 cpc R21,R30
002C D0F3 brlo L10
002E .dbline 34
002E L8:
002E .dbline 30
002E 1801 movw R2,R16
0030 0150 subi R16,1
0032 1040 sbci R17,0
0034 2220 tst R2
0036 91F7 brne L7
0038 3320 tst R3
003A 81F7 brne L7
003C X0:
003C .dbline -2
003C L6:
003C 00D0 rcall pop_gset1
003E .dbline 0 ; func end
003E 0895 ret
0040 .dbsym r i 20 i
0040 .dbsym r time 16 i
0040 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -