|
#include <reg52.h>
#define u8 unsigned char
#define u16 unsigned int
u8 code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
u8 code xx[]={0x7f/*0111 1111*/,0xbf/*1011 1111*/,0xdf/*1101 1111*/,0xef/*1110 1111*/};
u8 hang,xian;
sbit Lock1 = P2^4;
sbit Lock2 = P2^3;
sbit Lock3 = P2^2;
sbit a = P1^3;
sbit b = P1^2;
sbit c = P1^1;
sbit d = P1^0;
void main()
{
Lock1 = 0;
Lock2 = 0;
Lock3 = 0;
while(1)
{
for(hang=0;hang<2;hang++)
{
P1 = xx[hang];
if(a==0)
xian = table[4*hang+1];
else if(b==0)
xian = table[4*hang+2];
else if(c==0)
xian = table[4*hang+3];
else if(d==0)
xian = table[4*hang+4];
else
xian = table[0];
}
P0 = xian;
}
}
我想通过按矩阵键盘上前八个键让数码管输出1~8,可是不知道为什么第一行按键按了没反应,第二行是正常的
|
|