单片机两位数码管问题

我用两个一位数码管00~99的动态程序在这幅电路图上测试,为什么就只有一个数码管会亮,另一个不亮?程序没错,因为我在第二幅图两个一位数码管上测试了可以显示00~99。

如果你是共阳极的数码管,位选端接的是P2,段选端接的是P1。那么我让他显示1-8:
#include<reg52.h>
#include<intrins.h>
unsigned char i,temp;
unsigned char code table[]=
{
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f
};
void delay()
{
unsigned i,j;
for(i = 10;i > 0;i--)
for(j = 2;j > 0;j--);
}
void main()
{
while(1)//无限循环
{
temp = 0x01;
for(i = 0;i < 8;i++)//扫描8位
{
P2 = temp;
P1 = table[i];
delay();//稍微延时
temp = _crol_(temp,1);//循环左移动一位
}
}
}
你试试行不行。
你的灯肯定不能亮啦,你看看你的电路的灯的负极,是不是接了+5V啊。这样肯定不能亮啊。应该将灯反过来,然后在P0口接一个排阻(上拉电阻)。最后给P0口低电平就可以亮啦。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-04-10
这两个仿真图,看不出问题,还是把程序发上来看一下吧。追问

字符太多写不下

追答

就是两位数码管的程序,能有多长?如果有注释,把注释删掉。

相似回答