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

📄 delay.lis

📁 ds18b20+1602液晶显示 基于atmega16l单片机的编程
💻 LIS
字号:
                        .module delay.c
                        .area text(rom, con, rel)
 0000                   .dbfile F:\avr最小系统板\程序代码\ex15_ds18b20_1602\delay.c
 0000                   .dbfunc e delay_us _delay_us fV
                        .even
 0000           _delay_us::
 0000                   .dbline -1
 0000                   .dbline 19
 0000           ; /*--------------------------------------------------*/
 0000           ; /*             AVR-ARM开发网论坛                    */
 0000           ; /*           http://www.avrarm.com                  */
 0000           ; /*            AVR生成代码测试程序                   */
 0000           ; /*--------------------------------------------------*/
 0000           ; /*     程序由AVR辅助开发工具V2.1.0自动生成          */
 0000           ; /*     AVR系统的处理器为:   ATMega16               */
 0000           ; /*     AVR系统的晶振频率:   8.0000 Mhz             */
 0000           ; /*--------------------------------------------------*/
 0000           ; 
 0000           ; #include <iom16v.h>
 0000           ; #include <macros.h>
 0000           ; #include "delay.h"
 0000           ; 
 0000           ; /*-----------------------------------------------------------------------
 0000           ; delay_us         :1us延时函数
 0000           ; -----------------------------------------------------------------------*/
 0000           ; void delay_us(void)
 0000           ; {
 0000                   .dbline 20
 0000           ;   _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           ;              t -> R20,R21
                        .even
 0004           _delay_nus::
 0004 0E940000          xcall push_gset1
 0008 A801              movw R20,R16
 000A                   .dbline -1
 000A                   .dbline 29
 000A           ; }
 000A           ; 
 000A           ; /*-----------------------------------------------------------------------
 000A           ; delay_nus          :长延时函数
 000A           ; 
 000A           ; 输入参数: t        :延时时间 us
 000A           ; -----------------------------------------------------------------------*/
 000A           ; void delay_nus(unsigned int t)
 000A           ; {
 000A 01C0              xjmp L4
 000C           L3:
 000C                   .dbline 31
 000C F9DF              xcall _delay_us
 000E           L4:
 000E                   .dbline 30
 000E           ;     while (t--)
 000E 1A01              movw R2,R20
 0010 4150              subi R20,1
 0012 5040              sbci R21,0
 0014 2220              tst R2
 0016 D1F7              brne L3
 0018 3320              tst R3
 001A C1F7              brne L3
 001C           X0:
 001C                   .dbline -2
 001C           L2:
 001C 0E940000          xcall pop_gset1
 0020                   .dbline 0 ; func end
 0020 0895              ret
 0022                   .dbsym r t 20 i
 0022                   .dbend
 0022                   .dbfunc e delay_ms _delay_ms fV
                        .even
 0022           _delay_ms::
 0022                   .dbline -1
 0022                   .dbline 38
 0022           ;        delay_us();
 0022           ; }
 0022           ; 
 0022           ; /*-----------------------------------------------------------------------
 0022           ; delay_ms         :1ms延时函数
 0022           ; -----------------------------------------------------------------------*/
 0022           ; void delay_ms(void)
 0022           ; {
 0022                   .dbline 39
 0022           ;    delay_nus(1000);
 0022 08EE              ldi R16,1000
 0024 13E0              ldi R17,3
 0026 EEDF              xcall _delay_nus
 0028                   .dbline -2
 0028           L6:
 0028                   .dbline 0 ; func end
 0028 0895              ret
 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           ; /*-----------------------------------------------------------------------
 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 F7DF              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           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 + -