基于8051单片机的高精度时钟设计 要求 LCD显示当前的年、月、日,时、分、秒,按键可修改 利用定时器

求硬件部分电路图
答案可用追加500积分

可以根据以下程序修改,数码管显示
此程序为国信长天51板子的程序,用到38译码器
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit HC138A=P2^5;
sbit HC138B=P2^6;
sbit HC138C=P2^7;

uchar num,num0,num1,num2;

void display(uchar w,uchar value) ;
void delayms(uint xms) ;
void sec(uchar );
void min(uchar );
void hour(uchar );

uchar table1[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90 ,0X40,0X79,0X24,0X30,0X19,0X12,0X02,0X78,0X00,0X10,0xbf};
//不带小数点的数字0-9和带点小数的

uchar table2[]={0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80 }; //数码管位选
void T_Tint()
{
TMOD=0X01;
TH0=(65536-49990)/256;
TL0=(65536-49990)%256;
EA=1;
ET0=1;
TR0=1;

}
void main()
{
T_Tint();
//display(8,0);
while(1)
{
sec(num0);
display(6,20);
delayms(2);
min(num1);
display(3,20);
delayms(2);
hour(num2);
}

}
void display(uchar w,uchar value)

{
WR=1;
P0=table1[value];
HC138A=1;
HC138B=1;
HC138C=1;
WR=0;

WR=1;
P0=table2[w];
HC138A=0;
HC138B=1;
HC138C=1;
WR=0;

WR=1;

}
void sec(uchar num0)
{
uchar shi,ge;
shi=num0/10;
ge=num0%10;
display(7,shi);
delayms(2);
display(8,ge);
delayms(2);
}

void min(uchar num1)
{
uchar shi,ge;
shi=num1/10;
ge=num1%10;
display(4,shi);
delayms(2);
display(5,ge);
delayms(2);
}

void hour(uchar num2)
{
uchar shi,ge;
shi=num2/10;
ge=num2%10;
display(1,shi);
delayms(2);
display(2,ge);
delayms(2);

}

void T0ISR()interrupt 1
{

TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
if(num==20)

{
num=0;
num0++;
}
if(num0==60)
{
num0=0;
num1++;
if(num1==60)
{
num1=0;
num2++;
if(num2==24)
{
num=0;
}
}
}
}

void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}追问

求硬件部分电路图 程序 我会的

追答

追问

按键 调节的部分在哪里呢? 只要一个键能完成?

追答

忘记画上去了

温馨提示:答案为网友推荐,仅供参考
相似回答