📄 main.s
字号:
.module main.c
.area text
.area func_lit
L30:
.word L8
.word L9
.word L10
.word L11
.word L12
.word L13
.word L14
.word L5
.word L5
.word L5
.word L5
.word L5
.word L5
.word L5
.word L5
.word L5
.word L15
.word L16
.word L17
.word L18
.word L19
.word L20
.word L21
.area text
; KB_valve -> 2,X
_main::
ais #-3
tsx
; /*-----------------------------------------------------*
; *工 程 名:PWM.prj *
; *硬件接线:PTD.4,即定时器1通道0(21脚)接指示灯或蜂鸣器 *
; *程序描述:通过对PWM占空比的调节实现现指示灯的渐亮的功能*
; * 当占空比为100%时再从0%逐渐增加 *
; *目 的:学习HC08系列定时器脉宽调制功能 *
; *---------《嵌入式应用技术基础教程》教学实例----------*/
; /*[头文件]*/
; #include "GP32C.H" //包含头文件
; #include "KB.h"
; /*函数声明*/
; extern void PWMInit(unsigned int ); //PWM初始化
; extern void PWMconf(unsigned int); //PWM设置
; extern void Delay_ms(unsigned char ); //延时
; /*主程序*/
; void main()
; {
; unsigned char KB_valve;
; DDRB=0xFF;
lda #-1
sta 0x5
; PTB=0xFF;
lda #-1
sta 0x1
jmp L3
L2:
; //[主循环]
; while(1)
; {
; //KB_Init();
; KB_valve=KB_Scan();
jsr _KB_Scan
tsx
sta *__r1
sta 2,X
; KB_valve=KB_Def(KB_valve);
psha
jsr _KB_Def
ais #1
tsx
sta *__r1
sta 2,X
; switch(KB_valve)
clr ,X
sta 1,X
lda ,X
sta *__r0
ldhx *__r0
cphx #49
tsx
bge X9
jmp L5
X9:
lda 1,X
sta *__r1
lda ,X
sta *__r0
ldhx *__r0
cphx #71
tsx
bgt L29
lda 1,X
sub #49
sta *__r1
lda ,X
sbc #0
sta *__r0
lsl *__r1
rol *__r0
lda *__r1
add #<L30
sta *__r1
lda *__r0
adc #>L30
sta *__r0
ldhx *__r0
lda 1,x
sta *__r1
lda ,x
tsx
sta *__r0
lda *__r1
psha
lda *__r0
psha
rts
L29:
lda ,X
bne X0
lda 1,X
cmp #97
bne X10
jmp L22
X10:
X0:
lda ,X
bne X1
lda 1,X
cmp #98
bne X11
jmp L23
X11:
X1:
lda ,X
bne X2
lda 1,X
cmp #99
bne X12
jmp L24
X12:
X2:
lda ,X
bne X3
lda 1,X
cmp #100
bne X13
jmp L25
X13:
X3:
lda ,X
bne X4
lda 1,X
cmp #101
bne X14
jmp L26
X14:
X4:
lda ,X
bne X5
lda 1,X
cmp #102
bne X15
jmp L27
X15:
X5:
lda ,X
bne X6
lda 1,X
cmp #103
bne X16
jmp L28
X16:
X6:
jmp L5
X7:
; {
L8:
;
; case '1':PWMconf(523);PTB=0xF0;break;//1~7
ldhx #523
pshx
pshh
jsr _PWMconf
ais #2
tsx
lda #-16
sta 0x1
jmp L6
L9:
; case '2':PWMconf(587);PTB=0xF0;break;
ldhx #587
pshx
pshh
jsr _PWMconf
ais #2
tsx
lda #-16
sta 0x1
jmp L6
L10:
; case '3':PWMconf(659);PTB=0xF0;break;
ldhx #659
pshx
pshh
jsr _PWMconf
ais #2
tsx
lda #-16
sta 0x1
jmp L6
L11:
; case '4':PWMconf(698);PTB=0xF0;break;
ldhx #698
pshx
pshh
jsr _PWMconf
ais #2
tsx
lda #-16
sta 0x1
jmp L6
L12:
; case '5':PWMconf(784);PTB=0xF0;break;
ldhx #784
pshx
pshh
jsr _PWMconf
ais #2
tsx
lda #-16
sta 0x1
jmp L6
L13:
; case '6':PWMconf(880);PTB=0xF0;break;
ldhx #880
pshx
pshh
jsr _PWMconf
ais #2
tsx
lda #-16
sta 0x1
jmp L6
L14:
; case '7':PWMconf(988);PTB=0xF0;break;
ldhx #988
pshx
pshh
jsr _PWMconf
ais #2
tsx
lda #-16
sta 0x1
jmp L6
L15:
;
; case 'A':PWMconf(262);PTB=0xF0;break;//#1~~~~#7
ldhx #262
pshx
pshh
jsr _PWMconf
ais #2
tsx
lda #-16
sta 0x1
jmp L6
L16:
; case 'B':PWMconf(294);PTB=0xF0;break;
ldhx #294
pshx
pshh
jsr _PWMconf
ais #2
tsx
lda #-16
sta 0x1
jmp L6
L17:
; case 'C':PWMconf(330);PTB=0xF0;break;
ldhx #330
pshx
pshh
jsr _PWMconf
ais #2
tsx
lda #-16
sta 0x1
jmp L6
L18:
; case 'D':PWMconf(349);PTB=0xF0;break;
ldhx #349
pshx
pshh
jsr _PWMconf
ais #2
tsx
lda #-16
sta 0x1
jmp L6
L19:
; case 'E':PWMconf(392);PTB=0xF0;break;
ldhx #392
pshx
pshh
jsr _PWMconf
ais #2
tsx
lda #-16
sta 0x1
jmp L6
L20:
; case 'F':PWMconf(440);PTB=0xF0;break;
ldhx #440
pshx
pshh
jsr _PWMconf
ais #2
tsx
lda #-16
sta 0x1
jmp L6
L21:
; case 'G':PWMconf(494);PTB=0xF0;break;
ldhx #494
pshx
pshh
jsr _PWMconf
ais #2
tsx
lda #-16
sta 0x1
jmp L6
L22:
;
; case 'a':PWMconf(1046);PTB=0xF0;break;//*1~~~~*7
ldhx #1046
pshx
pshh
jsr _PWMconf
ais #2
tsx
lda #-16
sta 0x1
jmp L6
L23:
; case 'b':PWMconf(1175);PTB=0xF0;break;
ldhx #1175
pshx
pshh
jsr _PWMconf
ais #2
tsx
lda #-16
sta 0x1
bra L6
L24:
; case 'c':PWMconf(1318);PTB=0xF0;break;
ldhx #1318
pshx
pshh
jsr _PWMconf
ais #2
tsx
lda #-16
sta 0x1
bra L6
L25:
; case 'd':PWMconf(1397);PTB=0xF0;break;
ldhx #1397
pshx
pshh
jsr _PWMconf
ais #2
tsx
lda #-16
sta 0x1
bra L6
L26:
; case 'e':PWMconf(1568);PTB=0xF0;break;
ldhx #1568
pshx
pshh
jsr _PWMconf
ais #2
tsx
lda #-16
sta 0x1
bra L6
L27:
; case 'f':PWMconf(1760);PTB=0xF0;break;
ldhx #1760
pshx
pshh
jsr _PWMconf
ais #2
tsx
lda #-16
sta 0x1
bra L6
L28:
; case 'g':PWMconf(1976);PTB=0xF0;break;
ldhx #1976
pshx
pshh
jsr _PWMconf
ais #2
tsx
lda #-16
sta 0x1
bra L6
L5:
;
; default :T1SC|=(1<<5);T1SC0=0x0e;PTB=0xFF;break;//停止定时器1计数器计数
bset #5,0x20
lda #14
sta 0x25
lda #-1
sta 0x1
L6:
L3:
jmp L2
X8:
L1:
ais #3
.dbline 0 ; func end
rts
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -