在数码管上显示时分秒的程序,时钟不显示
时间:10-02
整理:3721RD
点击:
求大神解答:这是一个在数码管上显示时分秒的程序 问题:只显示秒钟正常工作,分钟也可以工作但是闪烁数字暗淡,时钟不显示
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[] = {0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar code table1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
uchar num,miao,fen,shi,tt;
sbit dula=P2^6;
sbit wela=P2^7;
//sbit key1=P3^5;
//sbit key2=P3^6;
//sbit key3=P3^7;
void delay (uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void display_sfm(uchar add,uchar add1,uchar sj) //显示时分秒函数
{
dula=1;
P0=table[sj%10];
dula=0;
P0=0xff;
wela=1;
P0=table1[add];
wela=0;
delay(1);
dula=1;
P0=table[sj/10];
dula=0;
P0=0xff;
wela=1;
P0=table1[add1];
wela=0;
delay(1);
}
void init()
{
TMOD=0x01;
TH0=(65530-50000)/256;
TL0=(65535-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
void main()
{
init();
while(1)
{
if(tt==20)
{
tt=0;
miao++;
if(miao==60)
{
miao=0;
fen++;
if(fen==60)
{
fen=0;
shi++;
if(shi==24)
shi=0;
}
display_sfm(6,7,shi);
}
display_sfm(3,4,fen);
}
display_sfm(0,1,miao);
}
}
void timer0() interrupt 1
{
TH0=(65530-50000)/256;
TL0=(65535-50000)%256 ;
tt++;
}
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[] = {0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar code table1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
uchar num,miao,fen,shi,tt;
sbit dula=P2^6;
sbit wela=P2^7;
//sbit key1=P3^5;
//sbit key2=P3^6;
//sbit key3=P3^7;
void delay (uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void display_sfm(uchar add,uchar add1,uchar sj) //显示时分秒函数
{
dula=1;
P0=table[sj%10];
dula=0;
P0=0xff;
wela=1;
P0=table1[add];
wela=0;
delay(1);
dula=1;
P0=table[sj/10];
dula=0;
P0=0xff;
wela=1;
P0=table1[add1];
wela=0;
delay(1);
}
void init()
{
TMOD=0x01;
TH0=(65530-50000)/256;
TL0=(65535-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
void main()
{
init();
while(1)
{
if(tt==20)
{
tt=0;
miao++;
if(miao==60)
{
miao=0;
fen++;
if(fen==60)
{
fen=0;
shi++;
if(shi==24)
shi=0;
}
display_sfm(6,7,shi);
}
display_sfm(3,4,fen);
}
display_sfm(0,1,miao);
}
}
void timer0() interrupt 1
{
TH0=(65530-50000)/256;
TL0=(65535-50000)%256 ;
tt++;
}
时分秒要一起显示,而不是条件显示
搞定了,谢谢前辈指点
想请问一下 为什么会这样
想请问一下 为什么会这样