📄 main.s
字号:
.module main.c
.area text
; va -> 0,X
; ko -> 2,X
_main::
ais #-3
tsx
; /*-----------------------------------------------------*
; *工 程 名:
; *硬件连接:
; *程序描述: SD-HC08 模板生成
; */
; /*[头文件]*/
; #include "GP32C.h" //映像寄存器地址头文件
; #include "KB.h"
; /*[主函数]*/
; void main()
; { unsigned int va;
; unsigned char ko;
; KB_Init();
jsr _KB_Init
tsx
bra L3
L2:
; while(1)
; {
L5:
; do
; {
; ko=KB_Scan();
jsr _KB_Scan
tsx
sta *__r1
sta 2,X
L6:
; }while(ko==0xffff);//查找有没有按键按下,有就跳出,
lda 2,X
cmp #-1
beq L5
; va=KB_Def(ko);
psha
jsr _KB_Def
ais #1
tsx
lda *__r0
sta ,X
lda *__r1
sta 1,X
; Timer(va);
psha
lda ,X
psha
jsr _Timer
ais #2
tsx
L8:
; do
; {ko=KB_Scan();
jsr _KB_Scan
tsx
sta *__r1
sta 2,X
L9:
lda 2,X
cmp #-1
bne L8
bset #5,0x20
lda #-1
sta 0x7
lda 0x3
ora #48
sta 0x3
L3:
bra L2
X0:
L1:
ais #3
.dbline 0 ; func end
rts
; frql_w -> 0,X
; frqh_w -> 1,X
; frq_c -> 2,X
; frq -> 6,X
_Timer::
ais #-4
tsx
; }while(ko!=0xffff);//查询按键有没有放开,当放开就停止
; T1SC|=1<<TSTOPBit;//关记数器,第五位.
; DDRD=0xff;
; PTD|=0x30;//使数据口为I/o模式,输出为低电平(为1)
; }
; }
; /*定时器初始化设计*/
; void Timer(unsigned int frq)
; { unsigned int frq_c;
; unsigned char frqh_w,frql_w;
; frq_c=38400/frq;//得到频率值所对应的周期
lda #0
sta *__rlo
lda #-106
sta *__rhi
lda 7,X
psha
lda 6,X
psha
jsr __divmod16u
ais #2
lda *__rhi
sta 2,X
lda *__rlo
sta 3,X
; frq=((frq_c*2)>>8)&0x00ff;//得到高八位的数值
lsla
lda 2,X
rola
sta 7,X
clra
sta 6,X
; frqh_w=frq;
lda 7,X
sta 1,X
; frq=((frq_c*2)&0x00ff);//得到相应的低八位
lda 3,X
lsla
sta *__r1
lda 2,X
rola
lda *__r1
sta 7,X
clra
sta 6,X
; frql_w=frq;
lda 7,X
sta ,X
; //禁止溢出中断、不启动计数、分频因子=64
; T1SC=0b00100110;//分频系数为64,不容许中断,定时器停止
lda #38
sta 0x20
; T1SC0=0b00010110; //0b00010110设置通道0输出捕捉模式,
lda #22
sta 0x25
; //不允许比较中断,输出电平反转
; //计数寄存器初值=0x0000
; T1CNTH=0x00; T1CNTL=0x00;
clr 0x21
clr 0x22
; //对应的数值产生对应的频率值,在通道寄存器溢出时翻转;
; T1CH0H=frqh_w; T1CH0H=frql_w;
lda 1,X
sta 0x26
lda ,X
sta 0x26
; //允许定时器1计数寄存器计数
; T1SC&=~(1<<TSTOPBit);
bclr #5,0x20
L11:
ais #4
.dbline 0 ; func end
rts
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -