📄 main.s
字号:
.module main.c
.area text
_main::
; /*-----------------------------------------------------*
; *文件名:Tim1Ch0I.prj *
; *硬件接线:1:PTA.1接指示灯 *
; * 2:PTD.4,即定时器1通道0(21脚),接开关 *
; *程序描述:以输入捕捉中断方式, *
; * 开关拨动使捕捉中断取反指示灯PTA1,使其闪动 *
; *目的:学习HC08系列定时器溢出捕捉功能 *
; *说明:本例是将定时器1通道0(21脚)设为"跳变沿捕捉" *
; * (即电平发生变化时产生中断),验证方法是将21脚不 *
; * 断接高电平、低电平,此时指示灯PTA1状态跟随改变 *
; *---------《嵌入式应用技术基础教程》教学实例----------*/
; #include "GP32C.h"
; #include "head.h"
; /*函数声明*/
; void SetTim1Ch0I(void); //定时器1和定时器1通道0初始化
;
; void main()
; {
; asm("SEI"); //禁止所有中断
SEI
; //[I/O初始化]
; Light_D|=1<<Light_Pin; //令指示灯引脚为输出
bset #1,0x4
; Light_P|=1<<Light_Pin; //初始时,指示灯"暗"
bset #1,0
; //[定时器1和定时器1通道0初始化]
; SetTim1Ch0I();
jsr _SetTim1Ch0I
tsx
; asm("CLI"); //开放中断
CLI
L2:
L3:
; //[主循环开始,为空操作]
; //[等待输入捕捉中断,(开关的拨动)]
; while(1);
bra L2
X0:
L1:
.dbline 0 ; func end
rts
_SetTim1Ch0I::
; }
;
; /*SetTim1Ch0I:定时器1和定时器1通道0 初始化-------------*
; * 功能:初始化定时器1和定时器1通道0 *
; * 参数:无 *
; * 返回:无 *
; *-----------------------------------------------------*/
; void SetTim1Ch0I()
; {
; T1SC=0b00110000;//允许溢出中断、不启动计数、分频因子=1
lda #48
sta 0x20
; T1SC0=0b01001100; //01001100设置通道0输入捕捉模式,
lda #76
sta 0x25
; //允许输入捕捉中断,跳变沿捕捉
; T1SC&=0b11011111; //允许定时器1计数寄存器计数
lda 0x20
and #-33
sta 0x20
L5:
.dbline 0 ; func end
rts
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -