这一篇文章主要介绍用C语言制作一个按钮控制的4x4数字键盘。
基本电路图如下:
使用的代码如下:
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar segtab[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xee,0x3e,0x9c,0x7a,0x9e,0x8e};
void time(char x)
{
unsigned char a,b;
for(a = 0;a < x;a++)
{
for(b = 0;b < 200;b++);
}
}
void main()
{
uchar key,key_row,key_column;
while(1)
{
P3 = 0x0f;
key_row = P3 & 0x0f;
if(key_row != 0x0f)
{
time(10);
if(key_row != 0x0f)
{
key_row = P3 & 0x0f;
}
}
P3 = 0xf0;
key_column = P3 & 0xf0;
if(key_column != 0xf0)
{
time(10);
if(key_column != 0xf0)
{
key_column = P3 & 0xf0;
}
}
key = key_row + key_column;
switch(key)
{
case 0xee: P0 = segtab[0];break;
case 0xde: P0 = segtab[1];break;
case 0xbe: P0 = segtab[2];break;
case 0x7e: P0 = segtab[3];break;
case 0xed: P0 = segtab[4];break;
case 0xdd: P0 = segtab[5];break;
case 0xbd: P0 = segtab[6];break;
case 0x7d: P0 = segtab[7];break;
case 0xeb: P0 = segtab[8];break;
case 0xdb: P0 = segtab[9];break;
case 0xbb: P0 = segtab[10];break;
case 0x7b: P0 = segtab[11];break;
case 0xe7: P0 = segtab[12];break;
case 0xd7: P0 = segtab[13];break;
case 0xb7: P0 = segtab[14];break;
case 0x77: P0 = segtab[15];break;
}
}
}
/*仅供学习参考*/