为什么我控制不了数码管的显示,开和关只是位置的改变,而且点阵那边也会亮,请各位前辈解释一下
开前的
关后的
#include<reg52.h>
typedef unsigned u8;
typedef unsigned int u16;
sbit LSA=P2^2;
sbit k1=P3^1;
#define LSA P2
u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delay(u16 i)
{
while(i--);
}
void keypros()
{
if(k1==0)
{
delay(1000);
if(k1==0)
{
LSA=~LSA;
}
while(!k1);
}
}
void main()
{ P0=smgduan[6];
while(1)
{
keypros();
}
}
|