?? delay.s
字號:
.module delay.c
.area text(rom, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\自動充電小車\自動充電小車\298\delay.c
.dbfunc e delay_1us _delay_1us fV
; i -> R16,R17
.even
_delay_1us::
.dbline -1
.dbline 6
; #define _DELAY_C_
; #include "DELAY.H" //用戶自己定義的頭文件
;
; //1us延時函數
; void delay_1us( void )
; {
.dbline 7
; uint i = 1;
ldi R16,1
ldi R17,0
xjmp L3
L2:
.dbline 9
; while( i-- )
; {
.dbline 10
; asm("nop");
nop
.dbline 11
; }
L3:
.dbline 8
movw R2,R16
subi R16,1
sbci R17,0
tst R2
brne L2
tst R3
brne L2
X0:
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbsym r i 16 i
.dbend
.dbfunc e delay_nus _delay_nus fV
; i -> R20,R21
; n -> R10,R11
.even
_delay_nus::
xcall push_xgset300C
movw R10,R16
.dbline -1
.dbline 16
; }
;
; //nus延時函數
; void delay_nus( uint n )
; {
.dbline 17
; uint i = 0;
clr R20
clr R21
.dbline 18
; for (i = 0; i < n; i++)
xjmp L9
L6:
.dbline 19
; delay_1us();
xcall _delay_1us
L7:
.dbline 18
subi R20,255 ; offset = 1
sbci R21,255
L9:
.dbline 18
cp R20,R10
cpc R21,R11
brlo L6
X1:
.dbline -2
L5:
.dbline 0 ; func end
xjmp pop_xgset300C
.dbsym r i 20 i
.dbsym r n 10 i
.dbend
.dbfunc e delay_1ms _delay_1ms fV
; i -> R16,R17
.even
_delay_1ms::
.dbline -1
.dbline 24
; }
;
; //1ms延時函數
; void delay_1ms( void )
; {
.dbline 26
; uint i;
; for (i = 0; i < 1140; i++)
clr R16
clr R17
xjmp L14
L11:
.dbline 27
; {;}
.dbline 27
.dbline 27
L12:
.dbline 26
subi R16,255 ; offset = 1
sbci R17,255
L14:
.dbline 26
cpi R16,116
ldi R30,4
cpc R17,R30
brlo L11
X2:
.dbline -2
L10:
.dbline 0 ; func end
ret
.dbsym r i 16 i
.dbend
.dbfunc e delay_nms _delay_nms fV
; i -> R20,R21
; n -> R10,R11
.even
_delay_nms::
xcall push_xgset300C
movw R10,R16
.dbline -1
.dbline 32
; }
;
; //nms延時函數
; void delay_nms( uint n )
; {
.dbline 33
; uint i = 0;
clr R20
clr R21
.dbline 34
; for (i = 0; i < n; i++)
xjmp L19
L16:
.dbline 35
; delay_1ms();
xcall _delay_1ms
L17:
.dbline 34
subi R20,255 ; offset = 1
sbci R21,255
L19:
.dbline 34
cp R20,R10
cpc R21,R11
brlo L16
X3:
.dbline -2
L15:
.dbline 0 ; func end
xjmp pop_xgset300C
.dbsym r i 20 i
.dbsym r n 10 i
.dbend
.dbfunc e delay_ns _delay_ns fV
; i -> R10
; n -> R12
.even
_delay_ns::
st -y,R10
st -y,R12
mov R12,R16
.dbline -1
.dbline 40
; }
;
; //延時1S
; void delay_ns( uchar n )
; {
.dbline 42
; uchar i;
; for( i = 0; i < n; i++ )
clr R10
xjmp L24
L21:
.dbline 43
; {
.dbline 44
; delay_nms( 1000 );
ldi R16,1000
ldi R17,3
xcall _delay_nms
.dbline 45
; }
L22:
.dbline 42
inc R10
L24:
.dbline 42
cp R10,R12
brlo L21
X4:
.dbline -2
L20:
.dbline 0 ; func end
ld R12,y+
ld R10,y+
ret
.dbsym r i 10 c
.dbsym r n 12 c
.dbend
; }
;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -