怎么用C语言编程数字时钟

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用C语言编程数字时钟相关的知识,希望对你有一定的参考价值。

1、以下例程实现时钟的实时显示基本要求: 1) 自行设计界面,模拟表盘式时钟。要求界面美观,清晰。2)数字同步显示时间信息。


2、例程:

#include<graphics.h> 
#include<math.h> 
#include<dos.h> 
#define PI 3.1415926 
//屏幕中心的坐标(640X480模式下)
#define mid_x 320 
#define mid_y 240 
int main() 
 int graphdriver=DETECT,graphmode; 
int end_x,end_y; 
struct time curtime; 
float th_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屏幕,即返回文本方式
return 0; 

参考技术A 希望能帮到你

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit w=P2^6; //位定义
sbit d=P2^7; //段定义
uchar a[]=0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f;
uchar hnum,fnum,mnum,num1,hshi,hge,fshi,fge,mshi,mge;
void delay(uint);
void display1(uchar,uchar,uchar,uchar,uchar,uchar);
void init();
void main()

init();
while(1)

display1(hshi,hge,fshi,fge,mshi,mge);
//display2(fshi,fge);
//display3(mshi,mge);


/*......初始化.......*/
void init()

TMOD=1;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1; // 开总中断
ET0=1; //开定时器0
TR0=1;//启动定时器0


/*......显示......*/
void display1(uchar hshi,uchar hge,uchar fshi,uchar fge,uchar mshi,uchar mge)


d=1;
P0=a[hshi];
d=0;
P0=0xff;
w=1;
P0=0xfe;
w=0;
delay(1);

d=1;
P0=a[hge];
d=0;
P0=0xff;
w=1;
P0=0xfd;
w=0;
delay(1);

d=1;
P0=a[fshi];
d=0;
P0=0xff;
w=1;
P0=0xf7;
w=0;
delay(1);

d=1;
P0=a[fge];
d=0;
P0=0xff;
w=1;
P0=0xef;
w=0;
delay(1);

d=1;
P0=a[mshi];
d=0;
P0=0xff;
w=1;
P0=0xbf;
w=0;
delay(1);

d=1;
P0=a[mge];
d=0;
P0=0xff;
w=1;
P0=0x7f;
w=0;
delay(1);


/*.....延时......*/
void delay(uint z)

uint i,j;
for(i=z;i>0;i--)
for(j=110;j>0;j--);


/*......中断......*/
void T0_time() interrupt 1

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

num1=0;
mnum++;
mshi=mnum/10;
mge=mnum%10;
if(mnum==60)

mnum=0;
fnum++;
fshi=fnum/10;
fge=fnum%10;

if(fnum==60)

fnum=0;
hnum++;

hshi=hnum/10;
hge=hnum%10;

if(hnum==24)

hnum=0;


C语言零基础,怎么用C语言实现CRC16检验码

参考技术A 1.系统先把所有的float转换为double类型运算,最终得到的结果截取前七个作为有效数字,这样做可以使计算结果更准确。
2.有效数字:从左边第一个不是0的数字起,到精确到的位数止,所有的数字都叫做这个数的有效数字。比如:1.24的有效数字就是
1、2、4。0.24
的有效数字就是
2、4。
3.
同样的二进制数,假定你定义有符号(signed)类型,则第一位表示的是正负号,0代表正数,1代表负数;而如果定义无符号型(unsigned)的话,第一位为值了。
4.如果用指数表示,float类型有效数字为6~7位。double类型为15~16位,具体跟数字有关。
5.这个你是在哪看的啊,不对!
整形常量分为十进制、八进制、十六进制:
八进制形式为012前面有个零,十六进制为0x12前面有个0x(注意x前面是零),
而在一个八进制数字前面加\表示是字符型常量,例如\012为ASCII码为10的字符!
这是我逐字敲上去的,还希望您能采纳!

以上是关于怎么用C语言编程数字时钟的主要内容,如果未能解决你的问题,请参考以下文章

C语言 用devc++编写一个模拟时钟,最简单那种就行,但要能在devc++上运行。

怎么用易语言做一个闹钟,就是怎么实现到了某个时间,程序播放设定铃声的

C语言编图形时钟

C语言零基础,怎么用C语言实现CRC16检验码

这个c语言(c++)的程序要怎么写?

c语言怎么出表格