📄 训练项目一:闪烁灯.lis
字号:
.module _训练项目一:闪烁灯.c
.area text(rom, con, rel)
; i -> R20,R21
; j -> R22,R23
; uiTime -> R16,R17
.even
0000 _TimeDelay::
0000 0E940000 xcall push_xgsetF000
0004 ; /****************************************************************************
0004 ; ** File Name: 闪烁灯
0004 ; ** Createed By: Wangchangsong
0004 ; ** Create Date: 07/24/2008
0004 ; ** Version: 1.0
0004 ; ** Descriptions: led display
0004 ; **
0004 ; **---------------------------------------------------------------------------
0004 ; ** Modified By:
0004 ; ** Modified Date:
0004 ; ** Version:
0004 ; ** Descriptions:
0004 ; **
0004 ; ****************************************************************************/
0004 ;
0004 ; #include <iom128v.h>
0004 ;
0004 ; /****************************************************************************
0004 ; ** Function Name: timeDelay
0004 ; ** Descriptions: delay time
0004 ; ** Input Parameters: uiTime
0004 ; ** Output parameters: void
0004 ; ** Returned Value: void
0004 ; **---------------------------------------------------------------------------
0004 ; ****************************************************************************/
0004 ;
0004 ; void TimeDelay(unsigned int uiTime )
0004 ;
0004 ; {
0004 ; unsigned int i = 0,j = 0;
0004 4427 clr R20
0006 5527 clr R21
0008 6627 clr R22
000A 7727 clr R23
000C ;
000C ; for (i = 0;i < uiTime;i++)
000C 0BC0 xjmp L5
000E L2:
000E ; {
000E ; for (j = 0;j <2260;j++);
000E 6627 clr R22
0010 7727 clr R23
0012 02C0 xjmp L9
0014 L6:
0014 L7:
0014 6F5F subi R22,255 ; offset = 1
0016 7F4F sbci R23,255
0018 L9:
0018 643D cpi R22,212
001A E8E0 ldi R30,8
001C 7E07 cpc R23,R30
001E D0F3 brlo L6
0020 X0:
0020 ; }
0020 L3:
0020 4F5F subi R20,255 ; offset = 1
0022 5F4F sbci R21,255
0024 L5:
0024 4017 cp R20,R16
0026 5107 cpc R21,R17
0028 90F3 brlo L2
002A X1:
002A L1:
002A .dbline 0 ; func end
002A 0C940000 xjmp pop_xgsetF000
.even
002E _main::
002E ; }
002E ;
002E ; /****************************************************************************
002E ; ** Function Name: main
002E ; ** Descriptions: led display
002E ; ** Input Parameters: void
002E ; ** Output parameters: void
002E ; ** Returned Value: void
002E ; **---------------------------------------------------------------------------
002E ; ****************************************************************************/
002E ;
002E ; void main(void)
002E ; {
002E ; DDRB = ( 1<< PB1); /* PB0左移,有效 */
002E 82E0 ldi R24,2
0030 87BB out 0x17,R24
0032 06C0 xjmp L12
0034 L11:
0034 ;
0034 ; while(1) /* 死循环 */
0034 ; {
0034 ; TimeDelay(20);
0034 04E1 ldi R16,20
0036 10E0 ldi R17,0
0038 E3DF xcall _TimeDelay
003A ; PORTB = ~PORTB; /* 取反 */
003A 28B2 in R2,0x18
003C 2094 com R2
003E 28BA out 0x18,R2
0040 ; /* 延时 */
0040 ; }
0040 L12:
0040 F9CF xjmp L11
0042 X2:
0042 L10:
0042 .dbline 0 ; func end
0042 0895 ret
0044 ; }
0044 ;
0044 ; /****************************************************************************
0044 ; END FILE
0044 ; ****************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -