📄 main.s
字号:
.module main.c
.area text
_main::
; /*-----------------------------------------------------*
; *工 程 名:Prgframe.prj *
; *硬件连接:PTA.1接指示灯 *
; *程序描述:指示灯PTA.1闪烁 *
; *目 的:第一个freescale(Motorola) HC08系列MCU程序框架*
; *说 明:提供Motorola MCU的编程框架,供教学入门使用 *
; *注 意:如果延时不够长的话,会发觉灯不会闪烁,而是一 *
; * 直亮,这是由于人的视觉的引起的。 *
; *--------《嵌入式应用技术基础教程》教学实例-----------*/
; /*[头文件]*/
; #include "GP32C.h" //映像寄存器地址头文件
; /*[指示灯所接引脚定义]*/
; #define Light_P PTA //灯(Light)接在PTA口
; #define Light_D DDRA //相应的方向寄存器
; #define Light_Pin 1 //灯所在的引脚
; /*[全局变量声明]*/
; unsigned char I1;
; /*[延时子函数声明]*/
; void Delay1000(void);
; /*[主函数]*/
; void main()
; {
; //[I/O初始化]
; Light_D|=1<<Light_Pin; //令指示灯引脚为输出
bset #1,0x4
; Light_P|=1<<Light_Pin; //初始时,指示灯"暗"
bset #1,0
bra L3
L2:
; //[程序总循环入口]
; while(1)
; {
; //指示灯(Light)“亮”
; Light_P&=~(1<<Light_Pin);
bclr #1,0
; //延时
; for(I1=0;I1<=250;I1++)
clr *_I1
bra L8
L5:
jsr _Delay1000
tsx
L6:
inc *_I1
L8:
lda *_I1
cmp #-6
bls L5
; Delay1000();
; //指示灯(Light)"暗”
; Light_P|=1<<Light_Pin;
bset #1,0
; //延时
; for(I1=0;I1<=250;I1++)
clr *_I1
bra L12
L9:
jsr _Delay1000
tsx
L10:
inc *_I1
L12:
lda *_I1
cmp #-6
bls L9
L3:
bra L2
X0:
L1:
.dbline 0 ; func end
rts
; u -> 0,X
_Delay1000::
ais #-1
tsx
; Delay1000();
; }
; }
; /*[内部子程序存放处]
; /*Delay1000:延时1000个时钟周期-------------------------*
; *功 能:延时函数(约1000个时钟周期) *
; *参 数:无 *
; *返 回:无 *
; *-----------------------------------------------------*/
; void Delay1000(void)
; { unsigned char u;
clr ,X
bra L17
L14:
L15:
inc ,X
L17:
; for(u=0;u<=110;u++);
lda ,X
cmp #110
bls L14
L13:
ais #1
.dbline 0 ; func end
rts
.area bss
_I1::
.blkb 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -