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

📄 delay.lis

📁 lcd液晶驱动显示原代码 根据硬件自己修改
💻 LIS
字号:
                        .module delay.c
                        .area text(rom, con, rel)
 0000                   .dbfile C:\DOCUME~1\Administrator\桌面\1602\delay.c
 0000                   .dbfunc e delay_1us _delay_1us fV
                        .even
 0000           _delay_1us::
 0000                   .dbline -1
 0000                   .dbline 8
 0000           ; /*---------------------------------------延时函数-------------------------------------*/ 
 0000           ; 
 0000           ; /*-----------------------------------------------------------------------
 0000           ; 延时函数
 0000           ; 系统时钟:8M
 0000           ; -----------------------------------------------------------------------*/
 0000           ; void delay_1us(void)                 //1us延时函数
 0000           ;   {
 0000                   .dbline 9
 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 -> R22,R23
                        .even
 0004           _delay_nus::
 0004 00D0              rcall push_gset2
 0006 B801              movw R22,R16
 0008                   .dbline -1
 0008                   .dbline 13
 0008           ;   }
 0008           ; 
 0008           ; void delay_nus(unsigned int n)       //N us延时函数
 0008           ;   {
 0008                   .dbline 14
 0008           ;    unsigned int i=0;
 0008 4427              clr R20
 000A 5527              clr R21
 000C                   .dbline 15
 000C           ;    for (i=0;i<n;i++)
 000C 03C0              rjmp L6
 000E           L3:
 000E                   .dbline 16
 000E F8DF              rcall _delay_1us
 0010           L4:
 0010                   .dbline 15
 0010 4F5F              subi R20,255  ; offset = 1
 0012 5F4F              sbci R21,255
 0014           L6:
 0014                   .dbline 15
 0014 4617              cp R20,R22
 0016 5707              cpc R21,R23
 0018 D0F3              brlo L3
 001A                   .dbline -2
 001A           L2:
 001A 00D0              rcall pop_gset2
 001C                   .dbline 0 ; func end
 001C 0895              ret
 001E                   .dbsym r i 20 i
 001E                   .dbsym r n 22 i
 001E                   .dbend
 001E                   .dbfunc e delay_1ms _delay_1ms fV
 001E           ;           xtal -> R16
 001E           ;              i -> R18,R19
                        .even
 001E           _delay_1ms::
 001E                   .dbline -1
 001E                   .dbline 20
 001E           ;    delay_1us();
 001E           ;   }
 001E           ; 
 001E           ; void delay_1ms(void )  //延时1ms 
 001E           ; { 
 001E                   .dbline 23
 001E           ;    unsigned int i ; 
 001E           ;    unsigned char xtal; 
 001E           ;    xtal=4; 
 001E 04E0              ldi R16,4
 0020                   .dbline 24
 0020           ;    for (i=1;i<(xtal*143-2);i++) 
 0020 21E0              ldi R18,1
 0022 30E0              ldi R19,0
 0024 02C0              rjmp L11
 0026           L8:
 0026                   .dbline 25
 0026                   .dbline 26
 0026                   .dbline 27
 0026           L9:
 0026                   .dbline 24
 0026 2F5F              subi R18,255  ; offset = 1
 0028 3F4F              sbci R19,255
 002A           L11:
 002A                   .dbline 24
 002A 8FE8              ldi R24,143
 002C 809F              mul R24,R16
 002E C001              movw R24,R0
 0030 0297              sbiw R24,2
 0032 2817              cp R18,R24
 0034 3907              cpc R19,R25
 0036 B8F3              brlo L8
 0038                   .dbline -2
 0038           L7:
 0038                   .dbline 0 ; func end
 0038 0895              ret
 003A                   .dbsym r xtal 16 c
 003A                   .dbsym r i 18 i
 003A                   .dbend
 003A                   .dbfunc e delay_nms _delay_nms fV
 003A           ;              i -> R20,R21
 003A           ;              n -> R22,R23
                        .even
 003A           _delay_nms::
 003A 00D0              rcall push_gset2
 003C B801              movw R22,R16
 003E                   .dbline -1
 003E                   .dbline 31
 003E           ;    { 
 003E           ;     ; 
 003E           ;    }    
 003E           ; } 
 003E           ; 
 003E           ; void delay_nms(unsigned int n)  //延时nms 
 003E           ; { 
 003E                   .dbline 32
 003E           ;    unsigned int i=0 ;  
 003E 4427              clr R20
 0040 5527              clr R21
 0042                   .dbline 33
 0042           ;    for(i=0;i<n;i++) 
 0042 03C0              rjmp L16
 0044           L13:
 0044                   .dbline 34
 0044                   .dbline 35
 0044 ECDF              rcall _delay_1ms
 0046                   .dbline 36
 0046           L14:
 0046                   .dbline 33
 0046 4F5F              subi R20,255  ; offset = 1
 0048 5F4F              sbci R21,255
 004A           L16:
 004A                   .dbline 33
 004A 4617              cp R20,R22
 004C 5707              cpc R21,R23
 004E D0F3              brlo L13
 0050                   .dbline -2
 0050           L12:
 0050 00D0              rcall pop_gset2
 0052                   .dbline 0 ; func end
 0052 0895              ret
 0054                   .dbsym r i 20 i
 0054                   .dbsym r n 22 i
 0054                   .dbend

⌨️ 快捷键说明

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