📄 delay.lis
字号:
.module delay.c
.area text(rom, con, rel)
0000 .dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\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 4A93 st -y,R20
0008 5A93 st -y,R21
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 ; while (t--)
000E ; delay_us();
000E F8DF xcall _delay_us
0010 L4:
0010 .dbline 22
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 .dbline 0 ; func end
001E 5991 ld R21,y+
0020 4991 ld R20,y+
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 ; }
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 4A93 st -y,R20
002E 5A93 st -y,R21
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 ; while (t--)
0034 ; delay_ms();
0034 F7DF xcall _delay_ms
0036 L9:
0036 .dbline 41
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 .dbline 0 ; func end
0044 5991 ld R21,y+
0046 4991 ld R20,y+
0048 0895 ret
004A .dbsym r t 20 i
004A .dbend
004A ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -