中断方法式矩阵c语言,矩阵键盘的C语言实例.doc

矩阵键盘的C语言实例

矩阵键盘扫描的C语言实例

1、按键扫描(线反转)

//-------------------------------- ------------------------------------------------------------------

// 函数名称: program_SCANkey

// 函数功能: 程序扫描键盘,

// 有键按下完成按键处理,无键按下直接返回

//--------------------------------------------------------------------------------------------------

void program_SCANkey()

{

unsigned char key_code;

if(judge_hitkey()) //判断是否有键按下

{

delay(1000); //延时20ms左右,消除抖动干扰

if(judge_hitkey()) //判断是否有效按键

{

key_code=scan_key(); //获取键值

while(judge_hitkey()); //等待按键释放

{

}

key_manage(key_code); //键盘扫描、键盘散转、按键处理

}

}

}

//--------------------------------------------------------------------------------------------------

// 函数名称: judge_hitkey

// 函数功能: //判断是否有键按下,有返回1,没有返回0

// 列判断,还可以用行判断。

//--------------------------------------------------------------------------------------------------

bit judge_hitkey() //判断是否有键按下,有返回1,没有返回0

{

unsigned char scancode,keycode;

scancode=0x0F; //开始设定P1.0~P1.3输出全1(初值)即表明无键闭合

KEY=scancode;

keycode=KEY; //读取P1.0~P1.3的真实状态,从而确定有没有键被按下

if(keycode==0x0F)

return(0); //全1则无键闭合

else

return(1); //否则有键闭合

}

//--------------------------------------------------------------------------------------------------

// 函数名称: scan_key

// 函数功能: //扫描键盘,返回键值(高四位代表行,低四位代表列)

// 说明:scancode 扫描码,keycode 键值,keycode_line 行,keycode_row 列

// 过程:先扫描行,确定那行的按键被按下。再扫描列,确定那列的按键被按下,从而确定那个按键被按下。

//--------------------------------------------------------------------------------------------------

unsigned char scan_key() //扫描键盘,返回键值(高四位代表行,低四位代表列)

{

unsigned char scancode,keycode,keycode_line,keycode_row;

scancode=0xF0; //列置低,行置高

KEY = scancode;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值