|
10黑币
新手请教下各位大神,原理图如图所示,我的程序数码管亮度很暗,同样的程序开发板亮度可以,为什么在自己做的板子上亮度会很暗呢,有什么解决办法啊
单片机源程序如下:
char smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delay(uint x)
{
while(x--);
}
void Digplay()
{
uchar x,sec,min,sum;
delay(10000);
sum++;
if(sum==50)
{
sec++;
sum=0;
}
if(sec==60)
{
sec=0;
min++;
}
if(min==60)
min=0;
for(x=0;x<4;x++)
{
switch(x)
{
case 0:COM0=1;COM1=0;COM2=0;COM3=0;P0=smgduan[sec%10];break;
case 1:COM0=0;COM1=1;COM2=0;COM3=0;P0=smgduan[sec/10];break;
case 2:COM0=0;COM1=0;COM2=1;COM3=0;P0=smgduan[min%10];break;
case 3:COM0=0;COM1=0;COM2=0;COM3=1;P0=smgduan[min/10];break;
default:break;
}
// delay(100);
//P0=smgduan[x];
delay(3000);
P0=0x00;
}
}
|
最佳答案
查看完整内容
如果程序没有什么别的事要做,直接用延时就行,如果是初学者,没有必要把程序搞得太麻烦,等到你学会了,这种Delay()基本就可以不用在主函数中了输出端口要设定成强推挽输出,几个三极管是没有必要的,实际电路用20mA的驱动电流是完全足够的
这个是我的,参考一下,实际验证通过的
#include
sbit com0=P2^0;
sbit com1=P2^1;
sbit com2=P2^2;
sbit com3=P2^3; //定义4个com端口
#define out P0 //p0 为显示
sfr P0M0=0x94;
sfr P0 ...
|