求一个单片机C语言的电子钟电路

来源:百度知道 编辑:UC知道 时间:2024/06/25 19:00:56
要求:设定时器设置成每50毫秒中断一次,程序中设置四个或七个变量:TCOUNT、SECOND、MINTEU、HOUR、DAY、MONTH、YEAR。 TCOUNT:记录中断次数,每中断一次加1。 SECOND:TCOUNT达到20时清0,同时SECOND加1。 MINTEU: SECOND达到60时清0,同时MINTEU加1。 HOUR: MINTEU达到60时清0,同时HOUR加1。HOUR达到24时清0。 这是原理图,请高手们帮帮忙,谢了,一定要能用图仿真的

#include<graphics.h>
#include<math.h>
#include<dos.h>
#define pi 3.1415926
#define X(a,b,c) x=a*cos(b*c*pi/180-pi/2)+300;
#define Y(a,b,c) y=a*sin(b*c*pi/180-pi/2)+240;
#define d(a,b,c) X(a,b,c);Y(a,b,c);line(300,240,x,y)
void init()
{int i,l,x1,x2,y1,y2;
setbkcolor(1);
circle(300,240,200);
circle(300,240,205);
circle(300,240,5);
for(i=0;i<60;i++)
{if(i%5==0) l=15;
else l=5;
x1=200*cos(i*6*pi/180)+300;
y1=200*sin(i*6*pi/180)+240;
x2=(200-l)*cos(i*6*pi/180)+300;
y2=(200-l)*sin(i*6*pi/180)+240;
line(x1,y1,x2,y2);
}
}
main()
{
int x,y;
int gd=VGA,gm=2;
unsigned char h,m,s;
struct time t[1];
initgraph(&gd,&gm,"d:\\tc");
init();
setwritemode(1);
gettime(t);
h=t[0].ti_hour;
m=t[0].ti_min;
s=t[0].ti_sec;
setcolor(7);
d(150,h,30);
setcolor(14);
d(170,m,6);