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

📄 delay.lis

📁 基于AVR单片机的lm1602字符液晶模块显示的C代码
💻 LIS
字号:
                        .module delay.c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\avr\测试\lcd1\delay.c
 0000                   .dbfunc e delay_us _delay_us fV
 0000           ;              t -> R16
                        .even
 0000           _delay_us::
 0000                   .dbline -1
 0000                   .dbline 18
 0000           ; /*--------------------------------------------------*/
 0000           ; /*             AVR-ARM开发网论坛                    */
 0000           ; /*           http://www.avrarm.com                  */
 0000           ; /*            AVR生成代码测试程序                   */
 0000           ; /*--------------------------------------------------*/
 0000           ; /*     程序由AVR辅助开发工具V2.1.1自动生成          */
 0000           ; /*     AVR系统的处理器为:   ATMega16               */
 0000           ; /*     AVR系统的晶振频率:   1.0000 Mhz             */
 0000           ; /*--------------------------------------------------*/
 0000           ; 
 0000           ; #include <iom16v.h>
 0000           ; #include "delay.h"
 0000           ; 
 0000           ; /*-----------------------------------------------------------------------
 0000           ; delay_us         :1us延时函数
 0000           ; -----------------------------------------------------------------------*/
 0000           ; void delay_us(void)
 0000           ; {
 0000                   .dbline 19
 0000           ;    unsigned char t=2;
 0000 02E0              ldi R16,2
 0002                   .dbline 20
 0002           ;    t--;
 0002 0A95              dec R16
 0004                   .dbline -2
 0004                   .dbline 21
 0004           ; }
 0004           L1:
 0004                   .dbline 0 ; func end
 0004 0895              ret
 0006                   .dbsym r t 16 c
 0006                   .dbend
 0006                   .dbfunc e delay_nus _delay_nus fV
 0006           ;              t -> R20,R21
                        .even
 0006           _delay_nus::
 0006 0E940000          xcall push_gset1
 000A A801              movw R20,R16
 000C                   .dbline -1
 000C                   .dbline 29
 000C           ; 
 000C           ; /*-----------------------------------------------------------------------
 000C           ; delay_nus          :长延时函数
 000C           ; 
 000C           ; 输入参数: t        :延时时间 us
 000C           ; -----------------------------------------------------------------------*/
 000C           ; void delay_nus(unsigned int t)
 000C           ; {
 000C 01C0              xjmp L4
 000E           L3:
 000E                   .dbline 31
 000E F8DF              xcall _delay_us
 0010           L4:
 0010                   .dbline 30
 0010           ;     while (t--)
 0010 1A01              movw R2,R20
 0012 4150              subi R20,1
 0014 5040              sbci R21,0
 0016 2220              tst R2
 0018 D1F7              brne L3
 001A 3320              tst R3
 001C C1F7              brne L3
 001E           X0:
 001E                   .dbline -2
 001E                   .dbline 32
 001E           ;        delay_us();
 001E           ; }
 001E           L2:
 001E 0E940000          xcall pop_gset1
 0022                   .dbline 0 ; func end
 0022 0895              ret
 0024                   .dbsym r t 20 i
 0024                   .dbend
 0024                   .dbfunc e delay_ms _delay_ms fV
                        .even
 0024           _delay_ms::
 0024                   .dbline -1
 0024                   .dbline 38
 0024           ; 
 0024           ; /*-----------------------------------------------------------------------
 0024           ; delay_ms         :1ms延时函数
 0024           ; -----------------------------------------------------------------------*/
 0024           ; void delay_ms(void)
 0024           ; {
 0024                   .dbline 39
 0024           ;    delay_nus(1000);
 0024 08EE              ldi R16,1000
 0026 13E0              ldi R17,3
 0028                   .dbline -2
 0028                   .dbline 40
 0028           ; }
 0028           L6:
 0028                   .dbline 0 ; func end
 0028 EECF              xjmp _delay_nus
 002A                   .dbend
 002A                   .dbfunc e delay_nms _delay_nms fV
 002A           ;              t -> R20,R21
                        .even
 002A           _delay_nms::
 002A 0E940000          xcall push_gset1
 002E A801              movw R20,R16
 0030                   .dbline -1
 0030                   .dbline 48
 0030           ; 
 0030           ; /*-----------------------------------------------------------------------
 0030           ; delay_nms          :长延时函数
 0030           ; 
 0030           ; 输入参数: t        :延时时间 ms
 0030           ; -----------------------------------------------------------------------*/
 0030           ; void delay_nms(unsigned int t)
 0030           ; {
 0030 01C0              xjmp L9
 0032           L8:
 0032                   .dbline 50
 0032 F8DF              xcall _delay_ms
 0034           L9:
 0034                   .dbline 49
 0034           ;     while (t--)
 0034 1A01              movw R2,R20
 0036 4150              subi R20,1
 0038 5040              sbci R21,0
 003A 2220              tst R2
 003C D1F7              brne L8
 003E 3320              tst R3
 0040 C1F7              brne L8
 0042           X1:
 0042                   .dbline -2
 0042                   .dbline 51
 0042           ;        delay_ms();
 0042           ; }
 0042           L7:
 0042 0E940000          xcall pop_gset1
 0046                   .dbline 0 ; func end
 0046 0895              ret
 0048                   .dbsym r t 20 i
 0048                   .dbend

⌨️ 快捷键说明

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