📄 delay.lis
字号:
.module delay.c
.area text(rom, con, rel)
0000 .dbfile D:\论文资料\AVRPWM~1\阿莫MP3范例板\MP3范例板\u盘MP3代码\delay.c
0000 .dbfunc e delay_us _delay_us fV
0000 ; t -> R16
.even
0000 _delay_us::
0000 .dbline -1
0000 .dbline 10
0000 ;
0000 ;
0000 ; #include <iom64v.h>
0000 ; #include "delay.h"
0000 ;
0000 ; /*-----------------------------------------------------------------------
0000 ; delay_us :1us延时函数
0000 ; -----------------------------------------------------------------------*/
0000 ; void delay_us(void)
0000 ; {
0000 .dbline 11
0000 ; unsigned char t=2;
0000 02E0 ldi R16,2
0002 .dbline 12
0002 ; t--;
0002 0A95 dec R16
0004 .dbline -2
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 21
000C ; }
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 23
000E F8DF xcall _delay_us
0010 L4:
0010 .dbline 22
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 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 30
0024 ; delay_us();
0024 ; }
0024 ;
0024 ; /*-----------------------------------------------------------------------
0024 ; delay_ms :1ms延时函数
0024 ; -----------------------------------------------------------------------*/
0024 ; void delay_ms(void)
0024 ; {
0024 .dbline 31
0024 ; delay_nus(1000);
0024 08EE ldi R16,1000
0026 13E0 ldi R17,3
0028 EEDF xcall _delay_nus
002A .dbline -2
002A L6:
002A .dbline 0 ; func end
002A 0895 ret
002C .dbend
002C .dbfunc e delay_nms _delay_nms fV
002C ; t -> R20,R21
.even
002C _delay_nms::
002C 0E940000 xcall push_gset1
0030 A801 movw R20,R16
0032 .dbline -1
0032 .dbline 40
0032 ; }
0032 ;
0032 ; /*-----------------------------------------------------------------------
0032 ; delay_nms :长延时函数
0032 ;
0032 ; 输入参数: t :延时时间 ms
0032 ; -----------------------------------------------------------------------*/
0032 ; void delay_nms(unsigned int t)
0032 ; {
0032 01C0 xjmp L9
0034 L8:
0034 .dbline 42
0034 F7DF xcall _delay_ms
0036 L9:
0036 .dbline 41
0036 ; while (t--)
0036 1A01 movw R2,R20
0038 4150 subi R20,1
003A 5040 sbci R21,0
003C 2220 tst R2
003E D1F7 brne L8
0040 3320 tst R3
0042 C1F7 brne L8
0044 X1:
0044 .dbline -2
0044 L7:
0044 0E940000 xcall pop_gset1
0048 .dbline 0 ; func end
0048 0895 ret
004A .dbsym r t 20 i
004A .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -