51RTOS.com 版权所有 Copyright 20006-2009 我爱嵌入式 ( 51RTOS.com ) All rights reserved 沪ICP备09080633号 |
我爱嵌入式系统
/*
程序效果:按下任意键,LED显示P0读回的数据其中4*4的矩阵键盘接P0口
*/
#include<reg52.h> //头文件
unsigned char key=0xff; //定义一个变量用于存放按键值
void readkey(); //读按键子函数,获取键值
void main() //主函数
{
while(1)
{
readkey(); //读按键值
if(key!=0xff) //判断是否有按键按下
P2=~key;//这里取反:是因为LED为共阴,显示所按下的值
}
}
void readkey() //读键盘子函数
{
P0=0xfe; //将第一列拉低,扫描是否有按键按下,第一列键值为:0,4,8,C
key=P0; //读取键盘值
if(key!=0xfe) //若key!=0xfe,说明有按键按下,则返回
return; //否则继续扫描下一列
P0=0xfd;
key=P0;
if(key!=0xfd)
return;
P0=0xfb;
key=P0;
if(key!=0xfb)
return;
P0=0xf7;
key=P0;
if(key!=0xf7)
return;
key=0xff;
}
51RTOS.com 版权所有 Copyright 20006-2009 我爱嵌入式 ( 51RTOS.com ) All rights reserved 沪ICP备09080633号 |