樓梯照明燈程序
#include
sbit light=P1^0;
sbit s1=P3^4;
sbit s2=P3^5;
bit change,s1sta,s2sta;//s1sta,s2sta 為開關 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 change;
}
void main()
{
s1sta=s1;
s2sta=s2;
while(1)
{
keyscan(); // 掃描按鍵狀態(tài)是否變化,即是否有人更改了按鍵狀態(tài)。
if(change)