📄 delay.lis
字号:
.module delay.c
.area text(rom, con, rel)
0000 .dbfile ..\source\bms\delay.c
0000 .dbfile C:\DOCUME~1\Administrator\桌面\MEGA16\source\bms\delay.c
0000 .dbfunc e delay_nus _delay_nus fV
0000 ; n -> R16,R17
.even
0000 _delay_nus::
0000 .dbline -1
0000 .dbline 11
0000 ; /*-----------------------------------------------------------------------
0000 ; 延时函数
0000 ; 系统时钟:4M
0000 ; -----------------------------------------------------------------------*/
0000 ; #include <iom16v.h>
0000 ; #include <macros.h>
0000 ; #include "delay.h"
0000 ;
0000 ; #define xtal 4 //晶振频率nMHz
0000 ;
0000 ; void delay_nus(unsigned int n) {
0000 .dbline 13
0000 ;
0000 ; if (n == 0) {
0000 0030 cpi R16,0
0002 0107 cpc R16,R17
0004 09F4 brne L5
0006 X0:
0006 .dbline 13
0006 .dbline 14
0006 ; return ;
0006 06C0 xjmp L1
0008 L4:
0008 .dbline 16
0008 ; }
0008 ; while (--n);
0008 L5:
0008 .dbline 16
0008 C801 movw R24,R16
000A 0197 sbiw R24,1
000C 8C01 movw R16,R24
000E 0030 cpi R16,0
0010 0107 cpc R16,R17
0012 D1F7 brne L4
0014 X1:
0014 .dbline -2
0014 L1:
0014 .dbline 0 ; func end
0014 0895 ret
0016 .dbsym r n 16 i
0016 .dbend
0016 .dbfunc e delay_nms _delay_nms fV
0016 ; a -> R20,R21
0016 ; b -> R22,R23
0016 ; n -> R16,R17
.even
0016 _delay_nms::
0016 0E940000 xcall push_xgsetF000
001A .dbline -1
001A .dbline 20
001A ; }
001A ;
001A ; /*延时函数*/
001A ; void delay_nms(unsigned int n) {
001A .dbline 24
001A ;
001A ; unsigned int b;
001A ; unsigned int a;
001A ; for (a = 1; a < n; a++) {
001A 41E0 ldi R20,1
001C 50E0 ldi R21,0
001E 0BC0 xjmp L11
0020 L8:
0020 .dbline 24
0020 .dbline 25
0020 ; for (b = 1; b<xtal*143-2; b++) {
0020 61E0 ldi R22,1
0022 70E0 ldi R23,0
0024 02C0 xjmp L15
0026 L12:
0026 .dbline 25
0026 .dbline 26
0026 ; }
0026 L13:
0026 .dbline 25
0026 6F5F subi R22,255 ; offset = 1
0028 7F4F sbci R23,255
002A L15:
002A .dbline 25
002A 6A33 cpi R22,58
002C E2E0 ldi R30,2
002E 7E07 cpc R23,R30
0030 D0F3 brlo L12
0032 X2:
0032 .dbline 27
0032 ; }
0032 L9:
0032 .dbline 24
0032 4F5F subi R20,255 ; offset = 1
0034 5F4F sbci R21,255
0036 L11:
0036 .dbline 24
0036 4017 cp R20,R16
0038 5107 cpc R21,R17
003A 90F3 brlo L8
003C X3:
003C .dbline -2
003C L7:
003C .dbline 0 ; func end
003C 0C940000 xjmp pop_xgsetF000
0040 .dbsym r a 20 i
0040 .dbsym r b 22 i
0040 .dbsym r n 16 i
0040 .dbend
0040 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -