📄 训练项目一:闪烁灯.s
字号:
.module _训练项目一:闪烁灯.c
.area text(rom, con, rel)
; i -> R20,R21
; j -> R22,R23
; uiTime -> R16,R17
.even
_TimeDelay::
xcall push_xgsetF000
; /****************************************************************************
; ** File Name: 闪烁灯
; ** Createed By: Wangchangsong
; ** Create Date: 07/24/2008
; ** Version: 1.0
; ** Descriptions: led display
; **
; **---------------------------------------------------------------------------
; ** Modified By:
; ** Modified Date:
; ** Version:
; ** Descriptions:
; **
; ****************************************************************************/
;
; #include <iom128v.h>
;
; /****************************************************************************
; ** Function Name: timeDelay
; ** Descriptions: delay time
; ** Input Parameters: uiTime
; ** Output parameters: void
; ** Returned Value: void
; **---------------------------------------------------------------------------
; ****************************************************************************/
;
; void TimeDelay(unsigned int uiTime )
;
; {
; unsigned int i = 0,j = 0;
clr R20
clr R21
clr R22
clr R23
;
; for (i = 0;i < uiTime;i++)
xjmp L5
L2:
; {
; for (j = 0;j <2260;j++);
clr R22
clr R23
xjmp L9
L6:
L7:
subi R22,255 ; offset = 1
sbci R23,255
L9:
cpi R22,212
ldi R30,8
cpc R23,R30
brlo L6
X0:
; }
L3:
subi R20,255 ; offset = 1
sbci R21,255
L5:
cp R20,R16
cpc R21,R17
brlo L2
X1:
L1:
.dbline 0 ; func end
xjmp pop_xgsetF000
.even
_main::
; }
;
; /****************************************************************************
; ** Function Name: main
; ** Descriptions: led display
; ** Input Parameters: void
; ** Output parameters: void
; ** Returned Value: void
; **---------------------------------------------------------------------------
; ****************************************************************************/
;
; void main(void)
; {
; DDRB = ( 1<< PB1); /* PB0左移,有效 */
ldi R24,2
out 0x17,R24
xjmp L12
L11:
;
; while(1) /* 死循环 */
; {
; TimeDelay(20);
ldi R16,20
ldi R17,0
xcall _TimeDelay
; PORTB = ~PORTB; /* 取反 */
in R2,0x18
com R2
out 0x18,R2
; /* 延时 */
; }
L12:
xjmp L11
X2:
L10:
.dbline 0 ; func end
ret
; }
;
; /****************************************************************************
; END FILE
; ****************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -