資源簡介
51單片機樓梯照明燈例子程序,C語言,有詳細注解,很實用噠
代碼片段和文件信息
/*************************HL-1開發(fā)板實驗例程**********************
*??名稱:實現(xiàn)樓道間照明燈的方便控制,一個照明燈,在樓上和樓下各有一個(閉合式)開關控制。
開關的閉合并不直接決定燈的亮滅,而開關狀態(tài)的改變才是決定燈亮滅的關鍵。即不管兩個開關當前的狀態(tài)
如何,只要有一個開關狀態(tài)發(fā)聲變化,都會使照明燈在打亮或者熄滅兩種狀態(tài)間切換。
比如當有人要上樓,若之前燈是滅的,在按下樓下開關后(此后開關為閉合狀態(tài)),燈會打亮;當?shù)綐巧虾螅?br/> 再按樓上開關,燈會熄滅。而當后來又有人上樓時,再按次樓下開關(此后開關為打開狀態(tài)),燈同樣會打亮;
此試驗中,用P1口相連的第一個led來模擬照明燈,而用s2和s3來模擬兩個開關。注意,因為實際樓道中的
開關為閉合式的,而HL-1的開關為反彈式的,所以實驗時,請用手一直按著按鍵演示開關的閉合。
*??晶振:11.0592MHZ
******************************************************************/
#include?
sbit?light=P1^0;
sbit?s1=P3^4;
sbit?s2=P3^5;
bit?changes1stas2sta;//s1stas2sta為開關s1和s2前一時刻的狀態(tài),用來和當前的s1與s2狀態(tài)進行對比,
???//進而判決兩個開關的狀態(tài)有無發(fā)生變化。
bit?keyscan()
{
if((s1^s1sta)||(s2^s2sta))?//^為異或,若兩者不同,則結果為1。即若兩開關中,任一開關的狀態(tài)發(fā)生變化,則此條件即為真。
change=1;
return?chang
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-05-16?09:14??3.6?樓梯照明燈\
?????文件????????1648??2018-04-24?08:42??3.6?樓梯照明燈\deng
?????文件????????2993??2018-04-24?08:42??3.6?樓梯照明燈\deng.LST
?????文件????????3705??2018-04-24?08:42??3.6?樓梯照明燈\deng.M51
?????文件????????1848??2018-04-24?08:42??3.6?樓梯照明燈\deng.OBJ
?????文件?????????963??2018-04-24?08:42??3.6?樓梯照明燈\deng.build_log.htm
?????文件????????1589??2014-05-14?19:58??3.6?樓梯照明燈\deng.c
?????文件?????????219??2018-04-24?08:42??3.6?樓梯照明燈\deng.hex
?????文件??????????25??2018-04-24?08:42??3.6?樓梯照明燈\deng.lnp
?????文件?????????307??2012-06-24?19:02??3.6?樓梯照明燈\deng.plg
?????文件???????88902??2018-04-24?09:17??3.6?樓梯照明燈\deng.uvgui.65459
?????文件????????5848??2018-04-24?09:12??3.6?樓梯照明燈\deng.uvopt
?????文件???????13855??2018-04-24?09:12??3.6?樓梯照明燈\deng.uvproj
?????文件?????????966??2018-04-24?08:42??3.6?樓梯照明燈\deng_Opt.Bak
?????文件????????2135??2012-02-15?15:58??3.6?樓梯照明燈\deng_Uv2.Bak
- 上一篇:[C++]AES全文件加解密
- 下一篇:C語言實現(xiàn)AES_ECB加密
評論
共有 條評論