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

📄 main.s

📁 这是我做课程设计时自己做的,用摩托罗位的飞思卡尔单片机做的,包括了对键盘复键的处理
💻 S
📖 第 1 页 / 共 2 页
字号:
	tsx
; 	}
; }
; 
; void PWMInit(unsigned int Period)
; {    
;     unsigned int Temp=Period/2;
	lda 5,X
	sta *__r1
	lda 4,X
	sta *__r0
	lsr *__r0
	ror *__r1
	lda *__r0
	sta ,X
	lda *__r1
	sta 1,X
;     //不允许溢出中断,不启动计数,分频因子=1,置位TSTOP,TRST
;     T1SC = 0x30;        
	lda #48
	sta 0x20
;     //[设置PWM周期]
;     T1MODH = (Temp>>8);     
	lda ,X
	sta 0x23
;     T1MODL = Period;      
	lda 5,X
	sta 0x24
;     //[初始化设置PWM脉宽为0]
;     T1CH0H = Period/4;
	lda 5,X
	sta *__r1
	lda 4,X
	sta *__r0
	lsr *__r0
	ror *__r1
	lsr *__r0
	ror *__r1
	mov *__r1,0x26
;     T1CH0L = Period/4;
	lda 5,X
	sta *__r1
	lda 4,X
	sta *__r0
	lsr *__r0
	ror *__r1
	lsr *__r0
	ror *__r1
	mov *__r1,0x27
;     //设为PWM模式,不允许输出比较中断,输出低电平,不带缓冲
;     T1SC0  = 0x1E;      
	lda #30
	sta 0x25
;     //允许定时器1计数寄存器计数           
;     T1SC  &= 0xDF;      
	lda 0x20
	and #-33
	sta 0x20
L41:
	ais #2
	.dbline 0 ; func end
	rts
;            key -> 4,X
_Key_handle::
	ais #-2
	tsx
; }    
; 
; void Key_handle(unsigned char key)
; {
;       if(LCD_buff1)
	lda *_LCD_buff1
	bne X66
	jmp L43
X66:
;       {
;       	switch(key)   //do something and return
	clr ,X
	lda 4,X
	sta 1,X
	lda ,X
	bne X44
	lda 1,X
	cmp #-91
	bne X67
	jmp L72
X67:
X44:
	lda ,X
	bne X45
	lda 1,X
	cmp #-90
	bne X68
	jmp L66
X68:
X45:
	lda 1,X
	sta *__r1
	lda ,X
	sta *__r0
	ldhx *__r0
	cphx #166
	tsx
	ble X69
	jmp L91
X69:
L90:
	lda ,X
	bne X46
	lda 1,X
	cmp #69
	bne X70
	jmp L82
X70:
X46:
	lda ,X
	bne X47
	lda 1,X
	cmp #70
	bne X71
	jmp L76
X71:
X47:
	lda 1,X
	sta *__r1
	lda ,X
	sta *__r0
	ldhx *__r0
	cphx #70
	tsx
	bgt L93
L92:
	lda ,X
	bne X48
	lda 1,X
	cmp #49
	bne X72
	jmp L48
X72:
X48:
	lda ,X
	bne X49
	lda 1,X
	cmp #50
	bne X73
	jmp L50
X73:
X49:
	lda ,X
	bne X50
	lda 1,X
	cmp #51
	bne X74
	jmp L52
X74:
X50:
	lda ,X
	bne X51
	lda 1,X
	cmp #52
	bne X75
	jmp L54
X75:
X51:
	lda ,X
	bne X52
	lda 1,X
	cmp #53
	bne X76
	jmp L56
X76:
X52:
	lda ,X
	bne X53
	lda 1,X
	cmp #54
	bne X77
	jmp L58
X77:
X53:
	lda ,X
	bne X54
	lda 1,X
	cmp #55
	bne X78
	jmp L60
X78:
X54:
	jmp L46
L93:
	lda ,X
	bne X55
	lda 1,X
	cmp #-107
	bne X79
	jmp L86
X79:
X55:
	lda ,X
	bne X56
	lda 1,X
	cmp #-106
	bne X80
	jmp L80
X80:
X56:
	jmp L46
L91:
	lda ,X
	bne X57
	lda 1,X
	cmp #-43
	bne X81
	jmp L84
X81:
X57:
	lda ,X
	bne X58
	lda 1,X
	cmp #-42
	bne X82
	jmp L78
X82:
X58:
	lda 1,X
	sta *__r1
	lda ,X
	sta *__r0
	ldhx *__r0
	cphx #214
	tsx
	bgt L95
L94:
	lda ,X
	bne X59
	lda 1,X
	cmp #-61
	bne X83
	jmp L88
X83:
X59:
	lda ,X
	bne X60
	lda 1,X
	cmp #-59
	bne X84
	jmp L70
X84:
X60:
	lda ,X
	bne X61
	lda 1,X
	cmp #-58
	bne X85
	jmp L64
X85:
X61:
	jmp L46
L95:
	lda ,X
	bne X62
	lda 1,X
	cmp #-29
	bne X86
	jmp L74
X86:
X62:
	lda ,X
	bne X63
	lda 1,X
	cmp #-27
	bne X87
	jmp L68
X87:
X63:
	lda ,X
	bne X64
	lda 1,X
	cmp #-26
	bne X88
	jmp L62
X88:
X64:
	jmp L46
X65:
; 		{
L48:
; 			case '1':{PWMInit(4699);lcdshow((unsigned char *)Key_show[1]);}break;
	ldhx #4699
	pshx
	pshh
	jsr _PWMInit
	ais #2
	lda #<_Key_show+32
	psha
	lda #>_Key_show+32
	psha
	jsr _lcdshow
	ais #2
	tsx
	jmp L46
L50:
; 			case '2':{PWMInit(4404);lcdshow((unsigned char *)Key_show[2]);}break;
	ldhx #4404
	pshx
	pshh
	jsr _PWMInit
	ais #2
	lda #<_Key_show+64
	psha
	lda #>_Key_show+64
	psha
	jsr _lcdshow
	ais #2
	tsx
	jmp L46
L52:
; 			case '3':{PWMInit(3723);lcdshow((unsigned char *)Key_show[3]);}break;
	ldhx #3723
	pshx
	pshh
	jsr _PWMInit
	ais #2
	lda #<_Key_show+96
	psha
	lda #>_Key_show+96
	psha
	jsr _lcdshow
	ais #2
	tsx
	jmp L46
L54:
; 			case '4':{PWMInit(3520);lcdshow((unsigned char *)Key_show[4]);}break;
	ldhx #3520
	pshx
	pshh
	jsr _PWMInit
	ais #2
	lda #<_Key_show+128
	psha
	lda #>_Key_show+128
	psha
	jsr _lcdshow
	ais #2
	tsx
	jmp L46
L56:
; 			case '5':{PWMInit(3134);lcdshow((unsigned char *)Key_show[5]);}break;
	ldhx #3134
	pshx
	pshh
	jsr _PWMInit
	ais #2
	lda #<_Key_show+160
	psha
	lda #>_Key_show+160
	psha
	jsr _lcdshow
	ais #2
	tsx
	jmp L46
L58:
; 			case '6':{PWMInit(2792);lcdshow((unsigned char *)Key_show[6]);}break;
	ldhx #2792
	pshx
	pshh
	jsr _PWMInit
	ais #2
	lda #<_Key_show+192
	psha
	lda #>_Key_show+192
	psha
	jsr _lcdshow
	ais #2
	tsx
	jmp L46
L60:
; 			case '7':{PWMInit(2487);lcdshow((unsigned char *)Key_show[7]);}break;
	ldhx #2487
	pshx
	pshh
	jsr _PWMInit
	ais #2
	lda #<_Key_show+224
	psha
	lda #>_Key_show+224
	psha
	jsr _lcdshow
	ais #2
	tsx
	jmp L46
L62:
; 			case L1:{PWMInit(9380);lcdshow((unsigned char *)Key_show[8]);}break;
	ldhx #9380
	pshx
	pshh
	jsr _PWMInit
	ais #2
	lda #<_Key_show+256
	psha
	lda #>_Key_show+256
	psha
	jsr _lcdshow
	ais #2
	tsx
	jmp L46
L64:
; 			case L2:{PWMInit(8359);lcdshow((unsigned char *)Key_show[9]);}break;
	ldhx #8359
	pshx
	pshh
	jsr _PWMInit
	ais #2
	lda #<_Key_show+288
	psha
	lda #>_Key_show+288
	psha
	jsr _lcdshow
	ais #2
	tsx
	jmp L46
L66:
; 			case L3:{PWMInit(7447);lcdshow((unsigned char *)Key_show[10]);}break;
	ldhx #7447
	pshx
	pshh
	jsr _PWMInit
	ais #2
	lda #<_Key_show+320
	psha
	lda #>_Key_show+320
	psha
	jsr _lcdshow
	ais #2
	tsx
	jmp L46
L68:
; 			case L4:{PWMInit(7041);lcdshow((unsigned char *)Key_show[11]);}break;
	ldhx #7041
	pshx
	pshh
	jsr _PWMInit
	ais #2
	lda #<_Key_show+352
	psha
	lda #>_Key_show+352
	psha
	jsr _lcdshow
	ais #2
	tsx
	jmp L46
L70:
; 			case L5:{PWMInit(6269);lcdshow((unsigned char *)Key_show[12]);}break;
	ldhx #6269
	pshx
	pshh
	jsr _PWMInit
	ais #2
	lda #<_Key_show+384
	psha
	lda #>_Key_show+384
	psha
	jsr _lcdshow
	ais #2
	tsx
	jmp L46
L72:
; 			case L6:{PWMInit(5585);lcdshow((unsigned char *)Key_show[13]);}break;
	ldhx #5585
	pshx
	pshh
	jsr _PWMInit
	ais #2
	lda #<_Key_show+416
	psha
	lda #>_Key_show+416
	psha
	jsr _lcdshow
	ais #2
	tsx
	jmp L46
L74:
; 			case L7:{PWMInit(4974);lcdshow((unsigned char *)Key_show[14]);}break;
	ldhx #4974
	pshx
	pshh
	jsr _PWMInit
	ais #2
	lda #<_Key_show+448
	psha
	lda #>_Key_show+448
	psha
	jsr _lcdshow
	ais #2
	tsx
	jmp L46
L76:
; 			case H1:{PWMInit(2349);lcdshow((unsigned char *)Key_show[15]);}break;
	ldhx #2349
	pshx
	pshh
	jsr _PWMInit
	ais #2
	lda #<_Key_show+480
	psha
	lda #>_Key_show+480
	psha
	jsr _lcdshow
	ais #2
	tsx
	jmp L46
L78:
; 			case H2:{PWMInit(2091);lcdshow((unsigned char *)Key_show[16]);}break;
	ldhx #2091
	pshx
	pshh
	jsr _PWMInit
	ais #2
	lda #<_Key_show+512
	psha
	lda #>_Key_show+512
	psha
	jsr _lcdshow
	ais #2
	tsx
	bra L46
L80:
; 			case H3:{PWMInit(1864);lcdshow((unsigned char *)Key_show[17]);}break;
	ldhx #1864
	pshx
	pshh
	jsr _PWMInit
	ais #2
	lda #<_Key_show+544
	psha
	lda #>_Key_show+544
	psha
	jsr _lcdshow
	ais #2
	tsx
	bra L46
L82:
; 			case H4:{PWMInit(1756);lcdshow((unsigned char *)Key_show[18]);}break;
	ldhx #1756
	pshx
	pshh
	jsr _PWMInit
	ais #2
	lda #<_Key_show+576
	psha
	lda #>_Key_show+576
	psha
	jsr _lcdshow
	ais #2
	tsx
	bra L46
L84:
; 			case H5:{PWMInit(1567);lcdshow((unsigned char *)Key_show[19]);}break;
	ldhx #1567
	pshx
	pshh
	jsr _PWMInit
	ais #2
	lda #<_Key_show+608
	psha
	lda #>_Key_show+608
	psha
	jsr _lcdshow
	ais #2
	tsx
	bra L46
L86:
; 			case H6:{PWMInit(1396);lcdshow((unsigned char *)Key_show[20]);}break;
	ldhx #1396
	pshx
	pshh
	jsr _PWMInit
	ais #2
	lda #<_Key_show+640
	psha
	lda #>_Key_show+640
	psha
	jsr _lcdshow
	ais #2
	tsx
	bra L46
L88:
; 			case H7:{PWMInit(1243);lcdshow((unsigned char *)Key_show[21]);}break;
	ldhx #1243
	pshx
	pshh
	jsr _PWMInit
	ais #2
	lda #<_Key_show+672
	psha
	lda #>_Key_show+672
	psha
	jsr _lcdshow
	ais #2
	tsx
; 			default: ;break;
L46:
; 		}
;       	LCD_buff1=0;
	clr *_LCD_buff1
; 		}
L43:
L42:
	ais #2
	.dbline 0 ; func end
	rts

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -