目录
1键盘简绍
2按键的工作原理
3键盘类型
4独立键盘与矩阵键盘的特点
5本节相关原理图
6按键特性
7实践
1键盘简绍
2按键的工作原理
内部使用轻触按键,常态按下按键触点才闭合
3键盘类型
编码键盘与非编码键盘
4独立键盘与矩阵键盘的特点
5本节相关原理图
给P35 1如果按下此时为0,并且上电后默认为高电平
准双向io
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit DU = P2^6;
sbit WE = P2^7;
sbit Key_s1 = P3^5;
sbit Key_s2= P3^6;
uchar num;//数码管的值
//code固定table的值,code很大8kram区小
uchar code table[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};
void delay(unsigned int xms) //@12.000MHz
{
unsigned char i, j;
while(xms--)
{
i = 2;
j = 239;
do
{
while (--j);
} while (--i);
}
}
void main()
{
WE = 1;
P0=0xfb;//位选给0
WE = 0;//锁存器锁存
while(1)
{
if(Key_s1 == 0)
{
delay(20);//消抖
if(Key_s1==0)
{
if(num!=9)
num++;
while(!Key_s1);//判断是否松手
}
}
if(Key_s2 == 0)
{
delay(20);//消抖
if(Key_s2==0)
{
if(num>0)
num--;
while(!Key_s2);//判断是否松手
}
DU = 1;
P0 = table[num];//0000 0110 共阴极给1亮
DU = 0;
}
}
}