⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 delay.lis

📁 环保型IC卡门禁系统的C程序
💻 LIS
字号:
                        .module delay.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\delay.c
 0000                   .dbfunc e delay_1us _delay_1us fV
 0000           ;              i -> R16,R17
                        .even
 0000           _delay_1us::
 0000                   .dbline -1
 0000                   .dbline 6
 0000           ; /*-----------------------------------------------------------------------
 0000           ; 延时函数
 0000           ; 系统时钟:8M
 0000           ; -----------------------------------------------------------------------*/
 0000           ; void delay_1us(void)                 //1us延时函数
 0000           ;   {
 0000                   .dbline 7
 0000           ;    unsigned int i=0;
 0000 0027              clr R16
 0002 1127              clr R17
 0004                   .dbline 8
 0004           ;    for (i=0;i<8;i++)
 0004 03C0              rjmp L5
 0006           L2:
 0006                   .dbline 9
 0006                   .dbline 10
 0006 0000              nop
 0008                   .dbline 11
 0008           L3:
 0008                   .dbline 8
 0008 0F5F              subi R16,255  ; offset = 1
 000A 1F4F              sbci R17,255
 000C           L5:
 000C                   .dbline 8
 000C 0830              cpi R16,8
 000E E0E0              ldi R30,0
 0010 1E07              cpc R17,R30
 0012 C8F3              brlo L2
 0014                   .dbline -2
 0014           L1:
 0014                   .dbline 0 ; func end
 0014 0895              ret
 0016                   .dbsym r i 16 i
 0016                   .dbend
 0016                   .dbfunc e delay_nus _delay_nus fV
 0016           ;              i -> R20,R21
 0016           ;              n -> R22,R23
                        .even
 0016           _delay_nus::
 0016 00D0              rcall push_gset2
 0018 B801              movw R22,R16
 001A                   .dbline -1
 001A                   .dbline 15
 001A           ;    {
 001A           ;      asm("nop");
 001A           ;    }
 001A           ;   }
 001A           ; 
 001A           ; void delay_nus(unsigned int n)       //N us延时函数
 001A           ;   {
 001A                   .dbline 16
 001A           ;    unsigned int i=0;
 001A 4427              clr R20
 001C 5527              clr R21
 001E                   .dbline 17
 001E           ;    for (i=0;i<n;i++)
 001E 03C0              rjmp L10
 0020           L7:
 0020                   .dbline 18
 0020 EFDF              rcall _delay_1us
 0022           L8:
 0022                   .dbline 17
 0022 4F5F              subi R20,255  ; offset = 1
 0024 5F4F              sbci R21,255
 0026           L10:
 0026                   .dbline 17
 0026 4617              cp R20,R22
 0028 5707              cpc R21,R23
 002A D0F3              brlo L7
 002C                   .dbline -2
 002C           L6:
 002C 00D0              rcall pop_gset2
 002E                   .dbline 0 ; func end
 002E 0895              ret
 0030                   .dbsym r i 20 i
 0030                   .dbsym r n 22 i
 0030                   .dbend
 0030                   .dbfunc e delay_1ms _delay_1ms fV
 0030           ;              i -> R16,R17
                        .even
 0030           _delay_1ms::
 0030                   .dbline -1
 0030                   .dbline 22
 0030           ;    delay_1us();
 0030           ;   }
 0030           ;   
 0030           ; void delay_1ms(void)                 //1ms延时函数
 0030           ;   {
 0030                   .dbline 24
 0030 0027              clr R16
 0032 1127              clr R17
 0034 02C0              rjmp L15
 0036           L12:
 0036                   .dbline 24
 0036           L13:
 0036                   .dbline 24
 0036 0F5F              subi R16,255  ; offset = 1
 0038 1F4F              sbci R17,255
 003A           L15:
 003A                   .dbline 24
 003A           ;    unsigned int i;
 003A           ;    for (i=0;i<1140;i++);
 003A 0437              cpi R16,116
 003C E4E0              ldi R30,4
 003E 1E07              cpc R17,R30
 0040 D0F3              brlo L12
 0042                   .dbline -2
 0042           L11:
 0042                   .dbline 0 ; func end
 0042 0895              ret
 0044                   .dbsym r i 16 i
 0044                   .dbend
 0044                   .dbfunc e delay_nms _delay_nms fV
 0044           ;              i -> R20,R21
 0044           ;              n -> R22,R23
                        .even
 0044           _delay_nms::
 0044 00D0              rcall push_gset2
 0046 B801              movw R22,R16
 0048                   .dbline -1
 0048                   .dbline 28
 0048           ;   }
 0048           ;   
 0048           ; void delay_nms(unsigned int n)       //N ms延时函数
 0048           ;   {
 0048                   .dbline 29
 0048           ;    unsigned int i=0;
 0048 4427              clr R20
 004A 5527              clr R21
 004C                   .dbline 30
 004C           ;    for (i=0;i<n;i++)
 004C 03C0              rjmp L20
 004E           L17:
 004E                   .dbline 31
 004E F0DF              rcall _delay_1ms
 0050           L18:
 0050                   .dbline 30
 0050 4F5F              subi R20,255  ; offset = 1
 0052 5F4F              sbci R21,255
 0054           L20:
 0054                   .dbline 30
 0054 4617              cp R20,R22
 0056 5707              cpc R21,R23
 0058 D0F3              brlo L17
 005A                   .dbline -2
 005A           L16:
 005A 00D0              rcall pop_gset2
 005C                   .dbline 0 ; func end
 005C 0895              ret
 005E                   .dbsym r i 20 i
 005E                   .dbsym r n 22 i
 005E                   .dbend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -