标题:
求各位前辈指导 51单片机时钟问题
[打印本页]
作者:
baikeeditor
时间:
2013-6-7 14:23
标题:
求各位前辈指导 51单片机时钟问题
#include<AT89X51.h>
#define uchar unsigned char
uchar code table[]={0xc0,0xf9,0xc4,0xb0,0x99
,0x92,0x82,0xf8,0x80,0x90}; //
共阳数码管
uchar time,num,hour,min,sec;
void delay(uchar x)
{
TMOD=0x01;
TR0=1;
while(x--)
{
TH0=0x1c;
TL0=0x18;
while(!TF);
TF0=0;
time++;
}
TR0=0;
}
void write(uchar num,chose)
{
uchar i;
for(i=0;i<2;i++)
{
P0=0xff;
P2=~chose;//
位选
if(i==0)
{
P0=table[num%10];//
段选
}
else
P0=table[num/10];//
段选
chose=chose<<1;
delay(5);
}
}
void display()
{
P0=0xff;
P2=0xdb;
P0=0xbf;
delay(5);
}//-
隔开时,分,秒显示
void time_add()
{
if(time==1000)
{
sec++;
if(sec==60)
{
sec=0;
min++;
if(min==60)
{
min=0;
hour++;
if(hour==24)
{
hour=0;
}
}
}
}
}
void main()
{
hour=23;
min=37;
sec=50;
while(1)
{
write(sec,0x01);
write(min,0x08);
write(hour,0x40);
display();
time_add();
}
}
作者:
cuicaifeng
时间:
2013-7-29 14:31
先调试一位的显示,再调动态显示固定数据,再调时钟,不要胡子眉毛一把抓。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0