单片机C语言实验电脑时钟编程
#include
#include
#include
#definePI3.1415926
//屏幕中心的坐标(640X480模式下)
#definemid_x320
#definemid_y240
intmain()
{intgraphdriver=DETECT,graphmode;
intend_x,end_y;
structtimecurtime;
floatth_hour,th_min,th_sec;
initgraph(&graphdriver,&graphmode,"C:\\TC2");//初始化VGA屏幕模式
setbkcolor(BLACK);//使用黑色的背景色
while(!kbhit(0))//若有键盘输入,则跳出,即是结束程序
{setcolor(GREEN);//把画笔设为绿色
circle(mid_x,mid_y,180);//钟的外圆
circle(mid_x,mid_y,150);//钟的内圆
circle(mid_x,mid_y,1);//画出钟的圆心
gettime(&curtime);//取得系统当前时间
th_sec=(float)curtime.ti_sec*0.1047197551;//把秒针的角度化为弧度,为以后绘制时方便,下同
th_min=(float)curtime.ti_min*0.1047197551+th_sec/60.0;//分针的弧度
th_hour=(float)curtime.ti_hour*0.5235987755+th_min/12.0;//时度的弧度,注意整时是12等分的,所时乘的是3.14/180*5
//计算出时针的尾的坐标(时针长70)
end_x=mid_x+70*sin(th_hour);
end_y=mid_y-70*cos(th_hour);
setcolor(RED);
line(mid_x,mid_y,end_x,end_y);//用红色线画出时针
//计算出分针坐标(分针长110)
end_x=mid_x+110*sin(th_min);
end_y=mid_y-110*cos(th_min);
setcolor(RED);
line(mid_x,mid_y,end_x,end_y);//用红色画出分针
end_x=mid_x+140*sin(th_sec);
end_y=mid_y-140*cos(th_sec);
setcolor(RED);
line(mid_x,mid_y,end_x,end_y);//同上,画出秒针,长为140
//画出钟盘上的刻度,刻度长20
line(140,240,160,240);//9点对应的大刻度
line(320,60,320,80);//12点对应的大刻度
line(500,240,480,240);//3点的刻度
line(320,420,320,400);//6点的刻度
line(410,395.7,400,378.4);//5点
line(475.7,330,458.4,320);//4点
line(475.7,150,458.4,160);//2点
line(410,84.3,400,101.6);//1点
line(230,84.3,240,101.6);//11点
line(164.3,150,181.6,160);//10点
line(164.3,330,181.6,320);//8点
line(230,395.7,240,378.4);//7点
sleep(BLUE);//这里应该是打错,停止一秒,应为sleep(1000)
cleardevice();//清除屏幕上的显示
closegraph();//关闭VGA屏幕,即返回文本方式
return0;
求一个简单的单片机时钟程序
#include
#defineucharunsignedchar
ucharcodeledtab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0-9
unsignedcharsec=0,min=0,hour=0,scanled;
unsignedcharkey,time;
unsignedchardisdat[6];
sbitK=P1^0;
voiddischg()
disdat[0]=sec%10;
disdat[1]=sec/10;
disdat[2]=min%10;
disdat[3]=min/10;
disdat[4]=hour%10;
disdat[5]=hour/10;
voidt0isr()interrupt1//秒计时
TR0=0;
TH0=0x3c;
TL0=0xb0;
TR0=1;
time++;
if(time==20)
time=0;
sec++;
if(sec>59)
sec=0;
min++;
if(min>59)
min=0;
hour++;
if(hour>23)hour=0;
dischg();
voidt1isr()interrupt3//显示
TH1=0xec;
TL1=0x78;
switch(scanled)
case0:
P2=0x01;
P0=~ledtab[disdat[5]];
break;
case1:
P2=0x02;
P0=~ledtab[disdat[4]]&0x7f;
break;
case2:
P2=0x04;
P0=~ledtab[disdat[3]];
break;
case3:
P2=0x08;
P0=~ledtab[disdat[2]]&0x7f;
break;
case4:
P2=0x10;
P0=~ledtab[disdat[1]];
break;
case5:
P2=0x20;
P0=~ledtab[disdat[0]];
break;
default:break;
scanled++;
scanled%=6;
main()
TMOD=0x11;
TH0=0x3c;
TL0=0xb0;
TH1=0xec;
TL1=0x78;
EA=1;
TR1=1;
ET0=1;
ET1=1;
sec=0;
min=0;
hour=0;
scanled=0;
time=0;
key=0;
dischg();
while(1)
if(K==0)
while(K==0);
key++;
key%=2;
switch(key)
case0:
TR0=1;
break;
case1:
TR0=0;
break;
你可以把电路也给我吗?
C++\编写一个时钟程序,模拟数字时钟的显示。
用C++设计一个Clock时钟类程序
内容无所谓,,