📄 delay.lis
字号:
.module delay.c
.area text(rom, con, rel)
0000 .dbfile F:\我的设计\delphi\uartdispy\mcu\delay.c
0000 .dbfunc e delayUs _delayUs fV
0000 ; temp -> R16
.even
0000 _delayUs::
0000 .dbline -1
0000 .dbline 34
0000 ; /*********************************Copyright (c)*********************************
0000 ; **
0000 ; ** 文 件 名: delayUs.c
0000 ; ** 最后修改日期: 2005年06月8日
0000 ; ** 描 述: 延迟函数文件
0000 ; ** 版 本: V1.0
0000 ; ** 主 控 芯 片:M16 晶振频率:8 MHZ
0000 ; *******************************************************************************/
0000 ; #include <iom16v.h>
0000 ; #include <macros.h>
0000 ; #include "function.h"
0000 ; #include "define.h"
0000 ;
0000 ;
0000 ; /**********************************************************************
0000 ; functionName: void delayUs(BYTE temp)
0000 ; description : 延时函数 晶振频率:7.3728MHZ
0000 ; delayUs(1); //2.71us
0000 ; delayUs(2); //3.53us
0000 ; delayUs(4); //5.15us
0000 ; delayUs(8); //8.41us
0000 ; delayUs(16); //14.92us
0000 ; delayUs(32); //27.94us
0000 ; delayUs(64); //53.98us
0000 ; delayUs(128); //106.07us
0000 ; delayUs(255); //209.42us
0000 ; delayUs(18); //16.55us
0000 ; delayUs(34); //29.57us
0000 ; delayUs(35); //30.38us
0000 ; delayUs(100); //83.28
0000 ; _NOP(); //0.14us
0000 ; **********************************************************************/
0000 ; void delayUs(unsigned char temp)
0000 ; {
0000 L2:
0000 .dbline 35
0000 L3:
0000 .dbline 35
0000 ; while(temp--);
0000 202E mov R2,R16
0002 3324 clr R3
0004 0150 subi R16,1
0006 2220 tst R2
0008 D9F7 brne L2
000A .dbline -2
000A L1:
000A .dbline 0 ; func end
000A 0895 ret
000C .dbsym r temp 16 c
000C .dbend
000C .dbfunc e delay_1us _delay_1us fV
.even
000C _delay_1us::
000C .dbline -1
000C .dbline 43
000C ; }
000C ;
000C ; /*-----------------------------------------------------------------------
000C ; 延时函数
000C ; 系统时钟:8M
000C ; -----------------------------------------------------------------------*/
000C ; void delay_1us(void) //1us延时函数
000C ; {
000C .dbline 44
000C ; asm("nop");
000C 0000 nop
000E .dbline -2
000E L5:
000E .dbline 0 ; func end
000E 0895 ret
0010 .dbend
0010 .dbfunc e delay_nus _delay_nus fV
0010 ; i -> R20,R21
0010 ; n -> R22,R23
.even
0010 _delay_nus::
0010 0E940000 xcall push_gset2
0014 B801 movw R22,R16
0016 .dbline -1
0016 .dbline 48
0016 ; }
0016 ;
0016 ; void delay_nus(unsigned int n) //N us延时函数
0016 ; {
0016 .dbline 49
0016 ; unsigned int i=0;
0016 4427 clr R20
0018 5527 clr R21
001A .dbline 50
001A ; for (i=0;i<n;i++)
001A 03C0 xjmp L10
001C L7:
001C .dbline 51
001C F7DF xcall _delay_1us
001E L8:
001E .dbline 50
001E 4F5F subi R20,255 ; offset = 1
0020 5F4F sbci R21,255
0022 L10:
0022 .dbline 50
0022 4617 cp R20,R22
0024 5707 cpc R21,R23
0026 D0F3 brlo L7
0028 .dbline -2
0028 L6:
0028 0E940000 xcall pop_gset2
002C .dbline 0 ; func end
002C 0895 ret
002E .dbsym r i 20 i
002E .dbsym r n 22 i
002E .dbend
002E .dbfunc e delay_1ms _delay_1ms fV
002E ; i -> R16,R17
.even
002E _delay_1ms::
002E .dbline -1
002E .dbline 55
002E ; delay_1us();
002E ; }
002E ;
002E ; void delay_1ms(void) //1ms延时函数
002E ; {
002E .dbline 57
002E 0027 clr R16
0030 1127 clr R17
0032 02C0 xjmp L15
0034 L12:
0034 .dbline 57
0034 L13:
0034 .dbline 57
0034 0F5F subi R16,255 ; offset = 1
0036 1F4F sbci R17,255
0038 L15:
0038 .dbline 57
0038 ; unsigned int i;
0038 ; for (i=0;i<1140;i++);
0038 0437 cpi R16,116
003A E4E0 ldi R30,4
003C 1E07 cpc R17,R30
003E D0F3 brlo L12
0040 .dbline -2
0040 L11:
0040 .dbline 0 ; func end
0040 0895 ret
0042 .dbsym r i 16 i
0042 .dbend
0042 .dbfunc e delay_nms _delay_nms fV
0042 ; i -> R20,R21
0042 ; n -> R22,R23
.even
0042 _delay_nms::
0042 0E940000 xcall push_gset2
0046 B801 movw R22,R16
0048 .dbline -1
0048 .dbline 61
0048 ; }
0048 ;
0048 ; void delay_nms(unsigned int n) //N ms延时函数
0048 ; {
0048 .dbline 62
0048 ; unsigned int i=0;
0048 4427 clr R20
004A 5527 clr R21
004C .dbline 63
004C ; for (i=0;i<n;i++)
004C 03C0 xjmp L20
004E L17:
004E .dbline 64
004E EFDF xcall _delay_1ms
0050 L18:
0050 .dbline 63
0050 4F5F subi R20,255 ; offset = 1
0052 5F4F sbci R21,255
0054 L20:
0054 .dbline 63
0054 4617 cp R20,R22
0056 5707 cpc R21,R23
0058 D0F3 brlo L17
005A .dbline -2
005A L16:
005A 0E940000 xcall pop_gset2
005E .dbline 0 ; func end
005E 0895 ret
0060 .dbsym r i 20 i
0060 .dbsym r n 22 i
0060 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -