虽然是实现了动态扫描,但是数码管有的不应该亮的段有一点微微亮,显示的数字是通过一个指向数组的指针引入的,6段共阴数码管,程序如下,就是不懂我写的这种需不需要消影,我试着加了一些P0=0xff,没什么效果
sbit Ud=P2^6;//段选
sbit Uw=P2^7;//位选
uint8 a[6]={0};//缓存区
uint8 code table[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void LedDisplay(uint8 *p)
{
static uint8 num=0;
if(Time_2MS)
{
Time_2MS=0;
P0=table[*(p+num)];
Ud=1;
Ud=0;
P0=_crol_(0xfe,num);
Uw=1;
Uw=0;
if(++num==6)
{
num=0;
}
}
}
void main(void)
{
uint8 *pp=a;
Timer0lnit();
SetClock(23,59,50);
EA=1;
while(1)
{
LedDisplay(a);
RunClock();
}
}
sbit Ud=P2^6;//段选
sbit Uw=P2^7;//位选
uint8 a[6]={0};//缓存区
uint8 code table[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void LedDisplay(uint8 *p)
{
static uint8 num=0;
if(Time_2MS)
{
Time_2MS=0;
P0=table[*(p+num)];
Ud=1;
Ud=0;
P0=_crol_(0xfe,num);
Uw=1;
Uw=0;
if(++num==6)
{
num=0;
}
}
}
void main(void)
{
uint8 *pp=a;
Timer0lnit();
SetClock(23,59,50);
EA=1;
while(1)
{
LedDisplay(a);
RunClock();
}
}