矩阵按键
4x4 控制16个按键,4 4 为8个接口
代码语言:javascript复制//下面是矩阵按键,采用 行列扫描方法,结果显示在静态数码管
#include"reg52.h"
#define GPIO_DIG P1
#define GPIO_KEY P0
unsigned char smgduan[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,
0x7c,0x39,0x5e,0x79,0x71};//
char keyvalue;
void delay_ms(int n)
{
unsigned int i=0,j=0;
for(i=0;i<n;i )
for(j=0;j<123;j );
}
void keypros(){
char a=0;
//check which column
GPIO_KEY=0x0f;
if(GPIO_KEY!=0x0f){
delay_ms(10);
if(GPIO_KEY!=0x0f){
switch(GPIO_KEY){
case(0x07): keyvalue=0;break;
case(0x0b): keyvalue=1;break;
case(0x0d): keyvalue=2;break;
case(0x0e): keyvalue=3;break;
}
//check which row
GPIO_KEY=0xf0;
if(GPIO_KEY!=0xf0){
delay_ms(10);
if(GPIO_KEY!=0xf0){
switch(GPIO_KEY){
case(0x70): keyvalue=keyvalue;break;
case(0xb0): keyvalue=keyvalue 4;break;
case(0xd0): keyvalue=keyvalue 8;break;
case(0xe0): keyvalue=keyvalue 12;break;
}
while((a<50)&&(GPIO_KEY!=0xf0)){
delay_ms(10);
a ;
}
}
}
}
}
}
void main(){
while(1){
keypros();
GPIO_DIG=~smgduan[keyvalue];
}
}
单片机IO扩展(并转串)--74HC165
开发板板载一个74HC165 芯片,本章就来介绍如何来扩展单片机IO 口,通过本章的学习,让大家学会使用74HC165 芯片来扩展IO 口。本章所要实现的功能是:使用开发板上的74HC165 模块扩展8 位IO 与独立按键连接,通过独立按键控制LED 灯。
明天再看看原理和编程