[font=黑体]请输入要设置字体的文字[/font][size=3]请输入要设置字号的文字[/size][color=orange]请输入要设置色彩的文字[/color]
本人一直想制作个数码发光管的数字时钟,我试过四段数码管都点亮,但是一旦加上计时和各位的控制程序,数码管就只有一个亮,而且,数值显示也不对,不知道是驱动问题,还是软件问题,求解,如有正确代码给我,本人不胜感激,最好c语言版,谢谢!!!
代码如下:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar num,hh;
uint min,tt,a;
uchar code table[]={
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void main()
{
num=0;
hh=0;
min=0;
tt=0;
a=0;
TMOD=0x11;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
P2=0x02;
P1=table[hh/10];
for(a=50000;a<0;a--);
P2=0x04;
P1=table[hh%10];
for(a=50000;a<0;a--);
P2=0x08;
P1=table[(min%60)/10];
for(a=50000;a<0;a--);
P2=0x10;
P1=table[(min%60)%10];
for(a=50000;a<0;a--);
min=tt/60;
hh=tt/3600;
if(num==20)
{ num=0;
tt++;
}
if(min==720){
min=0;
}
if(tt==42300){
tt=0;
}
if(hh==12){
hh=0;
}
}
}
void time() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
}