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