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

📄 vectors08.s

📁 飞思卡尔的键盘中断源代码,C语言写的,很不错的
💻 S
字号:
	.module vectors08.c
	.area text
;       KB_valve -> 0,X
_isrKBI::
	pshh
	lda *__r0
	psha
	lda *__r1
	psha
	lda *__r2
	psha
	lda *__r3
	psha
	lda *__r4
	psha
	lda *__r5
	psha
	lda *__r6
	psha
	lda *__r7
	psha
	lda *__r8
	psha
	lda *__r9
	psha
	lda *__r10
	psha
	lda *__r11
	psha
	lda *__rhi
	psha
	lda *__rlo
	psha
	ais #-1
	tsx
; /*-----------------------------------------------------*
; *文件名:vectors08.c                                    *
; *功  能:用于定义中断矢量表                             *
; *-----------------------------------------------------*/
; /*[头文件]*/
; #include "GP32C.H"        
; #include "KB.h"           
; #include "SCI.h"          
; /*键盘中断处理函数------------------------------------*/
; #pragma interrupt_handler isrKBI
; void isrKBI(void) 
; {
; 	 unsigned char KB_valve;
; 	 asm("SEI");	  	        //关总中断
	SEI
; 	  INTKBSCR|= (1<<IntBit); //屏蔽键盘中断(IMASKK=1)
	bset #1,0x1a
; 	  KB_valve=KB_Scan();     //扫描键值
	jsr _KB_Scan
	tsx
	sta *__r1
	sta ,X
; 	  
; 	  if(KB_valve==0xE7||KB_valve==0xD7)
	cmp #-25
	beq L4
	cmp #-41
	bne L2
L4:
; 	    {
; 	    KB_doubleInit();
	jsr _KB_doubleInit
; 	    KB_valve=KB_doubleScan();
	jsr _KB_doubleScan
	tsx
	sta *__r1
	sta ,X
; 	     }
L2:
; 	     
;       SCISend1(KB_valve);
	lda ,X
	psha
	jsr _SCISend1
	ais #1
	tsx
;       KB_valve=KB_Def(KB_valve);  //键值转化为定义值
	lda ,X
	psha
	jsr _KB_Def
	ais #1
	tsx
	sta *__r1
	sta ,X
;       SCISend1(KB_valve);
	psha
	jsr _SCISend1
	ais #1
; 	  KB_Init();			     //重新初始化键盘
	jsr _KB_Init
	tsx
; 	  INTKBSCR&= ~(1<<IntBit); //打开键盘中断(IMASKK=0)
	bclr #1,0x1a
; 	 asm("CLI");			     //开总中断
	CLI
L1:
	ais #1
	.dbline 0 ; func end
	pula
	sta *__rlo
	pula
	sta *__rhi
	pula
	sta *__r11
	pula
	sta *__r10
	pula
	sta *__r9
	pula
	sta *__r8
	pula
	sta *__r7
	pula
	sta *__r6
	pula
	sta *__r5
	pula
	sta *__r4
	pula
	sta *__r3
	pula
	sta *__r2
	pula
	sta *__r1
	pula
	sta *__r0
	pulh
	rti
_isrDummy::
	pshh
; }
; 
; //未定义的中断处理函数,本函数不能删除
; #pragma interrupt_handler isrDummy  
; void isrDummy(void) 
;   {
L5:
	.dbline 0 ; func end
	pulh
	rti
	.area memory(abs)
	.org 0xffdc
__vectab::
	.word _isrDummy
	.word _isrDummy
	.word _isrKBI
	.word _isrDummy
	.word _isrDummy
	.word _isrDummy
	.word _isrDummy
	.word _isrDummy
	.word _isrDummy
	.word _isrDummy
	.word _isrDummy
	.word _isrDummy
	.word _isrDummy
	.word _isrDummy
	.word _isrDummy
	.word _isrDummy
	.word _isrDummy
	.area lit

⌨️ 快捷键说明

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