
一旦时间到则发出声响。
程序执行后工作指示灯LED闪动,表示程序开始执行,显示器显示“0000”,按下 *** 作键K1~K4动作如下:
(1) K1—设置现在的时间。
(2) K2—显示闹钟设置的时间。
(3) K3—设置闹铃的时间。
(4) K4—闹铃ON/OFF的状态设置,设置为ON时连续三次发出“哗”的一声,设置为OFF发出“哗”的一声。
设置当前时间或闹铃时间如下。
(1) K1—时调整。
(2) K2—分调整。
(3) K3—设置完成。
(4) K4—闹铃时间到时,发出一阵声响,按下本键可以停止声响。
问题不是很清晰!首先,定时器溢出时间较短,需要在定时器中断外另设计数单元
其次,什么叫“检验对准时间”?我的理解是:使用一段程序来检验当前时间与设定时间(闹钟的定时值)的差值,差值为零时报时。基于该理解,有两种方式(根据你自己的情况自选):
1)先设计出一个时钟,然后将时钟值与设定值比对,具体语句可以使用“异或”(两时间相同时,异或值为零),或cjne指令本人倾向于后者(如:万一出现干扰在两值相同时没有比较,前者就失效了,而后者还能继续比较)。
2)
预置一个变量,每个固定时间间隔(使用定时中断)减一,到零时报时但要注意,直接在定时中断程序中减一时一定要在中断中判断到零否,否可能则会出现不报时的问题。
C语言时间计数从1970-1-1始。time()
函数返回
time_t
就是这个计数。
你若会
2011年01月10日10点钟
转
time_t
后面
用
它作时间
比较
就很简单。
设一个时间标志
flag=0,
当时间等于
2011年01月10日10点钟
flag=1。
如果
关掉按键
按了,则
flag=0
flag==1
beep,
否则
不响。
==============================
time_t
rawtime
struct
tm
*
target_time
time_t
t_end,t_now
/*
get
current
timeinfo
and
modify
it
to
the
user's
choice
*/
time
(
&rawtime
)
target_time
=
localtime
(
&rawtime
)
//
time_t
to
tm
//
time
struc
and
to
time_t
target_time->tm_year
=
2011
-
1900
target_time->tm_mon=
1
-
1
//
month
-
1
target_time->tm_mday
=
10
//
day
target_time->tm_hour
=
10
//
hour
target_time->tm_min
=
1
target_time->tm_sec
=
1
t_end
=
mktime
(target_time)
//
t_end
就是
2011年01月10日10点
时间计数
t_now
=
time(NULL)
//
现在时间计数
=============
若用条件语句:
if
(年
>
2011)
goto
Lab
if
(
(年
==
2011)
&&
(月>
1))
goto
Lab
if
(
(年
==
2011)
&&
(月==
1)
&&
(日
>10))
goto
Lab
if
((年
==
2011)
&&
(月==
1)
&&
(日
==
10)
&&
(时
>
10))
goto
Lab
继续计时
Lab:
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)