⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.s

📁 飞思卡尔U08开发平台下可以自由运行
💻 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 + -