六个数码管显示分秒,做成一个电子钟。显示格式为: 分 秒

求C语言编程跟用哪个芯片呀,本人刚接触不太明白,六个是不是六位数码管显示,[email protected],求好人
仿真 芯片自己选就行 没人懂吗?

#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define ON 0
#define OFF 1
#define LEDBus P0
sbit MIAO =P0^5;
sbit HOU_S=P1^0;
sbit HOU_G=P1^1;
sbit MIN_S=P1^2;
sbit MIN_G=P1^3;
sbit H_KEY=P3^2;
sbit M_KEY=P3^3;
bit SHAN;
uchar second,minute,hour;
uchar code LEDTab[]={0x5f,0x0a,0x9d,0xd5,0xc6,0xd3,0xda,0x45,0xdf,0xc7};
void delay(uchar t);
void init();
void display();
void min_tiao();
void hou_tiao();
void main()
{
init();
while(1)
{
if(!H_KEY) hou_tiao();
if(!M_KEY) min_tiao();
display();
}
}

void init()
{
TMOD=1;TH0=0X3C;TL0=0XB0;
ET0=1;TR0=1;EA=1;
}

void display()
{
LEDBus=LEDTab[minute%10];
MIN_G=0;
delay(1);
MIN_G=1;

LEDBus=LEDTab[minute/10];
MIN_S=0;
delay(1);
MIN_S=1;

LEDBus=LEDTab[hour%10];
MIAO=SHAN;
HOU_G=0;
delay(1);
HOU_G=1;

LEDBus=LEDTab[hour/10];
HOU_S=0;
delay(1);
HOU_S=1;

}

void min_tiao()
{
while(!M_KEY) display();
second=0;minute++;
if(minute==60) minute=0;
}

void hou_tiao()
{
while(!H_KEY) display() ;
second=0;hour++;
if(hour==24) hour=0;
}

void delay(uchar t)
{
uchar i;
for(;t>0;t--)
for(i=124;i>0;i--);
}

void timer0() interrupt 1
{
uchar tim1,tim2;
TL0=TL0+0XB0;TH0=0X3C;
tim1++;
if(tim1==10)
{
SHAN=!SHAN;
tim1=0;tim2++;
if(tim2==2)
{
tim2=0;second++;
if(second==60)
{
second=0;minute++;
if(minute==60)
{
minute=0;hour++;
if(hour==24) hour=0;
}
}
}
}
}
芯片用51单片机
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-23
hh