注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
sailorli123的个人空间 https://home.eeworld.com.cn/space-uid-217996.html [收藏] [复制] [分享] [RSS]
日志

浅谈按键扫描子程序

已有 1279 次阅读2010-5-21 16:59 |

最近整理了一下有关按键扫描的子程序,和大家分享一下
1、多按键扫描,例如有四个按键K1,K2,K3,K4。
#include<intrins.h>
#define uchar unsigned char;
uchar key_v,key_s;
bit scan_key()
{
key_s=0x00;
key_s|=k4;
key_s<<=1;
key_s|=k3;
key_s<<=1;
key_s|=k2;
key_s<<=1;
key_s|=k1;
key_s<<=1;
return(key_s^key_v); 
}
void proc_key()
{
if(key_v&0x01==0)//k1按下
{
}
else if(key_v&0x02==0)//k2按下
{
}
else if(key_v&0x04==0)//k3按下
{
}
else if(key_v&0x08==0)//k4按下
{
}
}
main()
{
.......
key_v=0x0f;
while(1)
{
if(scan_key)
delay();
if(scan_key)
{
key_v=key_s;
proc_key();
}
}
}
 
全部作者的其他最新日志
发表评论 评论 (2 个评论)
回复 1017896469 2010-6-3 14:30
想问一下有管按键的问题,先看下面的程序
while(1)
{  while()
    {




while()




}我想在添加一个查询P1口那个按键按下,来决定程序执行while(1)里面那个while()语句,希望能够指教
条件(是at89c51芯片,不是指中断,只是想让查询p1口那个按键按下来决定点阵屏显示汉字的移动方向)
希望能够得到高手的帮忙,先谢了!!
回复 sailorli123 2010-6-8 09:32
你用上面的子程序可以检测并识别是哪个按键按下了,你在加一个case语句,来执行该按键的功能,不知道我回答的是不是你想要的,请批评指正

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章