用C语言怎么编辑一个闹钟?

用C语言怎么编辑一个闹钟?,第1张

呵呵,写了一漏搏个返改祥玩玩:\x0d\x0a#include \x0d\x0a#include \x0d\x0a#include  \x0d\x0a\x0d\x0aint main(int argc, char *argv[])\x0d\x0a{\x0d\x0aSYSTEMTIME time\x0d\x0aSYSTEMTIME clock\x0d\x0aGetLocalTime(&time)\x0d\x0aprintf("当前时间为:%2d:%2d:%2d\n",time.wHour,time.wMinute,time.wSecond)\x0d\x0a\x0d\x0aprintf("请设定闹钟时间:\n")\x0d\x0aprintf("时:歼告")\x0d\x0ascanf("%2d",&clock.wHour)\x0d\x0aprintf("分:")\x0d\x0ascanf("%2d",&clock.wMinute)\x0d\x0a\x0d\x0awhile(1)\x0d\x0a{\x0d\x0aSleep(1000)\x0d\x0aGetLocalTime(&time)\x0d\x0a\x0d\x0aif((time.wHour==clock.wHour)&&(time.wMinute==clock.wMinute))\x0d\x0a{\x0d\x0aprintf("\a\a\a时间到!!!")\x0d\x0abreak\x0d\x0a}\x0d\x0a}\x0d\x0a\x0d\x0areturn 0\x0d\x0a}

你看看行不行

#include<reg51.h>

uchar code tab[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}

void view() /*七段数码管显示程序 七个管轮流液悉显示*/

{P3=0x01

unsigned int i=0

while(i<6)

{n=vnum

P1=tab[n]

P3<<=1

i++

}

}

void mDelay(unsigned int Delay) /*延时程序*/

{ unsigned int i

for(Delay>虚埋州0Delay--)

{ for(i=0i<124i++)

{}

}

}

void jumpnum() /*用于钟表时分秒的进位*/

{if(jnum(5)>9) /*秒进位

{jnum[4]=jnum[4]+1

jnum[5]=0

if(jnum[4]>6) /*秒到分进位

{jnum[3]=jnum[3]+1

jum[4]=0

if(jnum[3]>9) /*分进位

{jnum[2]=jnum[2]+1

jnum[3]=0

if(jnum[2]>6) /*分到时进位

{jnum[1]=jnum[1]+1

jnum[2]=0

if(jnum[1]>9) /*时的进位

{jnum[1]=0

jnum[0]=jnum[0]+1

}

else if(jnum[1]>4&&jnum[0]>=2)

{jnum[1]=0

jnum[0]=0

}

}

}

}

}

void key() /*键盘控制程序

{if((P2&0xFF)!=0xFF)/*防抖动

{mDelay(3000)

if((P2&0xFF)!=0xFF)

{unsign int c

c=1

while(c<4)

{ if((P2&0xFF)!=0xFF)

{mDelay(3000)

vnum[]=num[]

void view()

if((P2&0xFF)!=0xFF)

{switch(P2): /*判断不同的按键

{case 0xFE: c++/*c用于判断是闹钟调时c=3还是时钟调时c=2

case oxFD :if(c=2) /*分位增加

{num[3]++}

else if(c=3)

{lnum[3]++

}

case oxFC :if(c=2) /*时位增加

{num[1]++}

else if(c=3)

{lnum[1]++

}

}

if(c=2) /*增加后判断是否需要进位

{jnum[]=num[]

jumpnum()

vnum[]=num[]

void view[]}

if(c=3)

{jnum[]=lnum[]

jumpnum()

vnum[]=num[]

void view[]}}}}}}}

void clock() /*闹钟程序

{for(cl=0num[cl]==lnum(cl)cl=cl+1) /*当前时间与设定时间相同

{}

unsigned int kp=0

if(cl==5&&kp==0) /*闹钟铃声

{for(i=1i<100i++)

{P1_7=~P1_7

for(j=1i<=100j++)}

void mDelay(3000)

for(i=1i<100i++)

{P1_7=~P1_7

for(j=1i<=100j++)}

vnum[]=num[]

void view()

if((P2&0xFF)!=0xFF)/*判断是否有按键,有则停止闹钟

{mDelayd(3000)

void view()

if((P2&0xFF)!=0xFF)

{kp=1}

}}}

viod intclock() /*整点报时程序

{unsigned int ic,i

if(num[2]==5&&num[3]==9&&num[4]==5&&num[5]==0) /*判断差十秒整点差蔽

{if(ic=num[5]+2(ic==(num[5]+2))&&num[5]<59ic=num[5]) /*开始发出500hz声因

{for(i=0i<100i++)

{P1_7=~P1_7

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

}

for(i=1i<150i++) /*1000hz声音

{P1_7=~P1_7

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

}}}}

void count() inturrupt 1 using 2 /*计时程序

{cn++

if(cn==20)

{num[5]++

cn=0

}

}

void main()

{ P2=0x00

unsigned int num[5],jnum[5],lnum[5]

ET0=1

EA=1

TR0=1

EX0=1

EX1=1

IT0=1

IT1=1

TMOD=0x01

TH0=0x3C

TL0=0xB0

unsigned int cn=0

P2=0x00

while(1)

{void key()

void view()

void jumpnumber()

void clock()

void intclock()

}

}


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

原文地址: http://outofmemory.cn/yw/12407754.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存