|
所提的兩個問題,實際是一個問題,姑且叫做一個事件發(fā)生后需要亮燈N秒吧。
1、寫一個顯示程序,建議用時間中斷去做,如每5ms刷新一下顯示。
2、建立一個標(biāo)記:L1。顯示程序(5ms中斷時執(zhí)行),將L1送到LED接口,也即用L1的值(0,1)決定LED的明暗。
3、事件發(fā)生時,修改一下L1的值(如、讓LED亮)。如此,如何讓燈亮就完成了。下面談燈滅:
4、做個計時器來計時你的3秒或5秒,僅需一個寄存器而矣,設(shè)為SJ。同時再設(shè)立一個標(biāo)記:K_SJ,用K_SJ來決定SJ是否計時。
5、同樣在5ms中斷時,如果K_SJ=1,就將SJ+1,再看看SJ是否到3秒了(數(shù)值是多少,你自己算算吧),到了,就將L1置成關(guān)燈(不要去動LED端口,L1會在下次5ms中斷后,決定燈的熄滅!),并將K_SJ清0,停止計時器工作;如果K_SJ=0,什么事也不做,跳過。如此,定時關(guān)燈就完成了!下面說說,如何一開始計時,估計你也想到了:
6、在事件發(fā)生始,如同標(biāo)記亮燈一樣,將K_SJ置1,也就起動計時器SJ了,同時將SJ清0,計時從0開始!
記住:寫程序關(guān)鍵是構(gòu)思方案!程序,僅僅是抄幾個約定的句子而矣。
|
|