C语言编程,数码管显示时钟跟设置闹钟的程序?

C语言编程,数码管显示时钟跟设置闹钟的程序?,第1张

给个我以前写的粗胡程孙凳租序,你参考参考,我这个使用1602液晶写的,显示方式需要改则兆改

#include "1602yejing.h"

sbit key1=P3^2 //选择调整位置按钮

sbit key2=P3^3 //加一按钮

sbit key3=P3^4 //减一按钮

sbit key4=P3^5 //定时按钮

char shi,fen,miao,T_shi,T_fen,T_miao

uchar count,keynum,flag

uchar code table1[]=" 2011-12-26 1"

uchar code table2[]="10:30:30"

uchar code table3[]="input the timing"

uchar code table4[]="00:00:00"

void write_sfm(uchar add,uchar date)

{

uchar shi,ge

shi=date/10

ge=date%10

write_com(0xc0+add)

write_date(shi+'0')

write_date(ge+'0')

}

void init()

{

uchar num

shi=10

fen=30

miao=30

P1=0xfe

write_com(0x38)//显示模式

write_com(0x0c)//不显示光标,光标不闪烁

write_com(0x06)//地址指针加一,光标加一

write_com(0x01)//清屏

write_com(0x80)

for(num=0num<16num++)

{

write_date(table1[num])

delay(5)

}

write_com(0xc0)

for(num=0num<12num++)

{

write_date(table2[num])

delay(5)

}

TMOD=0x01

TH0=(65536-50000)/256

TL0=(65536-50000)%256

EA=1

ET0=1

TR0=1

}

void keyscan()

{

uchar i

if(key4==0)

{

delay(5)

if(key4==0)

{

while(!key4)

flag=1

write_com(0x80)

for(i=0i<16i++)

{

write_date(table3[i])

delay(5)

}

write_com(0xc0)

for(i=0i<12i++)

{

write_date(table4[i])

delay(5)

}

}

}

if(key1==0)

{

delay(5)

if(key1==0)

{

while(!key1)

keynum++

if(keynum==1)

{

if(flag==0) TR0=0

write_com(0xc0+11)

write_com(0x0f)

}

if(keynum==2)

{

write_com(0xc0+8)

write_com(0x0f)

}

if(keynum==3)

{

write_com(0xc0+5)

write_com(0x0f)

}

if(keynum==4)

{

write_com(0x0c)

TR0=1

if(flag==0)

{

keynum=0

}

if(flag==1)

{

flag=0

write_com(0x80)

for(i=0i<16i++)

{

write_date(table1[i])

delay(5)

}

write_sfm(4,shi)

write_sfm(7,fen)

write_sfm(10,miao)

}

}

}

}

if(keynum!=0)

{

if(key2==0)

{

delay(5)

if(key2==0)

{

// while(!key2)

if(keynum==1)

{

if(flag==0)

{

miao++

if(miao==60) miao=0

write_sfm(10,miao)

write_com(0xc0+10)

delay(300)

}

if(flag==1)

{

T_miao++

if(T_miao==60) T_miao=0

write_sfm(10,T_miao)

write_com(0xc0+10)

delay(300)

}

}

if(keynum==2)

{

if(flag==0)

{

fen++

if(fen==60) fen=0

write_sfm(7,fen)

write_com(0xc0+7)

delay(300)

}

if(flag==1)

{

T_fen++

if(T_fen==60) T_fen=0

write_sfm(7,T_fen)

write_com(0xc0+7)

delay(300)

}

}

if(keynum==3)

{

if(flag==0)

{

shi++

if(shi==24) shi=0

write_sfm(4,shi)

write_com(0xc0+4)

delay(300)

}

if(flag==1)

{

T_shi++

if(T_shi==24) T_shi=0

write_sfm(4,T_shi)

write_com(0xc0+4)

delay(300)

}

}

}

}

if(key3==0)

{

delay(5)

if(key3==0)

{

// while(!key3)

if(keynum==1)

{

if(flag==0)

{

miao--

if(miao==-1) miao=59

write_sfm(10,miao)

write_com(0xc0+10)

delay(300)

}

if(flag==1)

{

T_miao--

if(T_miao==-1) T_miao=59

write_sfm(10,T_miao)

write_com(0xc0+10)

delay(300)

}

}

if(keynum==2)

{

if(flag==0)

{

fen--

if(fen==-1) fen=59

write_sfm(7,fen)

write_com(0xc0+7)

delay(300)

}

if(flag==1)

{

T_fen--

if(T_fen==-1) T_fen=59

write_sfm(7,T_fen)

write_com(0xc0+7)

delay(300)

}

}

if(keynum==3)

{

if(flag==0)

{

shi--

if(shi==-1) shi=23

write_sfm(4,shi)

write_com(0xc0+4)

delay(300)

}

if(flag==1)

{

T_shi--

if(T_shi==-1) T_shi=23

write_sfm(4,T_shi)

write_com(0xc0+4)

delay(300)

}

}

}

}

}

}

void main()

{

init()

while(1)

{

keyscan()

if(miao==T_miao&&fen==T_fen&&shi==T_shi)

{

P1=0xff

}

}

}

void timer0() interrupt 1

{

TH0=(65536-50000)/256

TL0=(65536-50000)%256

count++

if(count==16)

{

count=0

P1=0xfe

miao++

if(miao==60)

{

miao=0

fen++

if(fen==60)

{

fen=0

shi++

if(shi==24)

{

shi=0

}

if(flag==0) write_sfm(4,shi)

}

if(flag==0) write_sfm(7,fen)

}

if(flag==0) write_sfm(10,miao)

}

}

头文件

#ifndef _1602yejing_H_

#define _1602yejing_H_

#include<reg52.h>

#define uchar unsigned char

#define uint unsigned int

sbit E=P2^7

sbit RW=P2^6

sbit RS=P2^5

void delay(uint z)

{

uint x,y

for(x=zx>0x--)

for(y=148y>0y--)

}

void write_com(uchar com)//写命令函数

{

P0=com

RS=0

RW=0

E=0

delay(5)

E=1

delay(5)

}

void write_date(uchar date)//写数据函数

{

P0=date

RS=1

RW=0

E=0

delay(5)

E=1

delay(5)

}

#endif

用C语言实现的闹钟程序

#include

#include

#include

#include

#include

void

main()

{

int

gd=DETECT,gm

int

x=320,y=240,r=200,i,h,m,s,thetamin,thetasec

struct

time

t

char

n[12][3]={"3","2","1","12","11","10","9","8","7","6","5","4"}

initgraph(&gd,&gm,"g:\\物亩tc\\bgi")//图形驱动器路径,根据自己的系统更换。

circle(x,y,210)

setcolor(4)

settextstyle(4,0,5)

for(i=0i<12i++)

{

if(i!=3)

outtextxy(x+(r-14)*cos(M_PI/6*i)-10,y-(r-14)*sin(M_PI/6*i)-26,n[i])

else

outtextxy(x+(r-14)*cos(M_PI/6*i)-20,y-(r-14)*sin(M_PI/6*i)-26,n[i])

}

gettime(&t)

printf("The

current

time

is:

%2d:%02d:%02d.%02d\n",t.ti_hour,

t.ti_min,

t.ti_sec,

t.ti_hund)

while(!kbhit())

{

setcolor(5)

setfillstyle(1,5)

circle(x,y,10)

floodfill(x,y,5)

gettime(&t)

if(t.ti_min!=m)

{

setcolor(0)

line(x,y,x+(r-60)*cos(thetamin*(M_PI/180)),y-(r-60)*sin(thetamin*(M_PI/180

)))

circle(x+(r-80)*cos(thetamin*(M_PI/180)),y-(r-80)*sin(thetamin*(M_PI/180))

,10)

line(x,y,x+(r-110)*cos(M_PI/6*h-((m/2)*(M_PI/180))),y-(r-110)*sin(M_PI/6*h

-((m/2)*(M_PI/180))))

circle(x+(r-130)*cos(M_PI/6*h-((m/2)*(M_PI/180))),y-(r-130)*sin(M_PI/6*h-(

(m/2)*(M_PI/180))),10)

}

if(t.ti_hour>12)

t.ti_hour=t.ti_hour-12

if(t.ti_hour<核腔4)

h=abs(t.ti_hour-3)

else&n

bsp

h=15-t.ti_hour

m=t.ti_min

if(t.ti_min<=15)

thetamin=(15-t.ti_min)*6

else

thetamin=450-t.ti_min*6

if(t.ti_sec<=15)

thetasec=(15-t.ti_sec)*6

else

thetasec=450-t.ti_sec*6

setcolor(4)

line(x,y,x+(r-110)*cos(M_PI/6*h-((m/2)*(M_PI/180))),y-(r-110)*sin(M_PI/6*h

-((m/2)*(M_PI/罩氏森180))))

circle(x+(r-130)*cos(M_PI/6*h-((m/2)*(M_PI/180))),y-(r-130)*sin(M_PI/6*h-(

(m/2)*(M_PI/180))),10)

line(x,y,x+(r-60)*cos(thetamin*(M_PI/180)),y-(r-60)*sin(thetamin*(M_PI/180

)))

circle(x+(r-80)*cos(thetamin*(M_PI/180)),y-(r-80)*sin(thetamin*(M_PI/180))

,10)

setcolor(15)

line(x,y,x+(r-70)*cos(thetasec*(M_PI/180)),y-(r-70)*sin(thetasec*(M_PI/180

)))

delay(1000)

setcolor(0)

line(x,y,x+(r-70)*cos(thetasec*(M_PI/180)),y-(r-70)*sin(thetasec*(M_PI/180

)))

}

}

该程序已在Turbo

C++3.0中通过编译.

呵呵,写了一个玩玩:

#include <stdio.h> 枣棚 

#include <windows.h>

#include <winbase.h> 

int main(int argc, char *argv[])

{

SYSTEMTIME time

SYSTEMTIME clock

GetLocalTime(&time)

printf("当前时间为:%2d:%2d:%2d\n",time.wHour,time.wMinute,time.wSecond)

printf("请设定闹钟时间:\n")

printf("时:")

scanf("%2d"梁巧,&clock.wHour)

printf("分:橡岩键")

scanf("%2d",&clock.wMinute)

while(1)

{

Sleep(1000)

GetLocalTime(&time)

if((time.wHour==clock.wHour)&&(time.wMinute==clock.wMinute))

{

printf("\a\a\a时间到!!!")

break

}

}

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12553711.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-26
下一篇2025-08-26

发表评论

登录后才能评论

评论列表(0条)

    保存