📄 key.c.bak
字号:
#include <mc9s12dt128.h>
#include "variable.H"
/*-----------------------------------------------------------------------/
函数名称:key_init()
功能:键盘初始化
参数:无
返回值:
/-----------------------------------------------------------------------*/
void key_init(void)
{
DDRH&=~0x18;//PH3、PH4设为输入
PIEH=0x18;//PH3、PH4中断使能
PPSH&=~0x18;//PH3、PH4中断下降沿触发
DDRJ&=~0x01;//PJ0设为输入
PIEJ=0x01;//PJ0中断使能
PPSJ&=~0x01;//PJ0中断下降沿触发
}
/*-----------------------------------------------------------------------/
函数名称:key_scan()
功能:键盘扫描
参数:无
返回值:返回键值
/-----------------------------------------------------------------------*/
unsigned char key_scan(void)
{
unsigned char key_value;
//flag_key_scan=0;
key_value=PTIH|(~0x18);
if(key_value==0xef){
return key_enter;
}
else if(key_value==0xf7){
return key_left;
}
else{
key_value=PTIJ|(~0x01);
if(key_value==0xfe){
return key_right;
}
}
return 0;
}
/*-----------------------------------------------------------------------/
函数名称:key_scan()
功能:键盘扫描
参数:无
返回值:返回键值
/-----------------------------------------------------------------------*/
#pragma CODE_SEG NON_BANKED
#pragma TRAP_PROC
void portj_isr(void)//portj口中断函数
{
unsigned int delay_count_s;
unsigned int delay_count_ms;
delay(300);
if((PTIJ&0x01)==0x00){
flag_key_scan=1;
key_code=key_scan();
delay_count_s=8400;
while(delay_count_s!=0){
delay_count_ms=100;
while(delay_count_ms!=0){
if(PTIJ_PTIJ0==1){
flag_key_scan=0;
break;
}
delay_count_ms--;
}
delay_count_s--;
if(flag_key_scan==0)break;
}
}
PIFJ=0x01;
}
#pragma CODE_SEG DEFAULT
#pragma CODE_SEG NON_BANKED
#pragma TRAP_PROC
void porth_isr(void)//
{
delay(300);
if((PTIH&0x18)!=0x18){
//flag_key_ph=1;
flag_key_scan=1;
key_code=key_scan();
}
PIFH_PIFH3=1;
PIFH_PIFH4=1;
}
#pragma CODE_SEG DEFAULT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -