📄 delay.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 + -