找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2431|回復(fù): 1
收起左側(cè)

樓梯照明燈的單片機(jī)源程序

[復(fù)制鏈接]
ID:253883 發(fā)表于 2017-12-17 21:49 | 顯示全部樓層 |閱讀模式
#include <reg52.h>

sbit light=P1^0;
sbit s2=P3^0;
sbit s3=P3^1;

bit change,s2sta,s3sta;//s2sta,s3sta為開(kāi)關(guān)s2和s3前一時(shí)刻的狀態(tài),用來(lái)和當(dāng)前的s1與s2狀態(tài)進(jìn)行對(duì)比,
                                           //進(jìn)而判決兩個(gè)開(kāi)關(guān)的狀態(tài)有無(wú)發(fā)生變化。
bit keyscan()
{
        if((s2^s2sta)||(s3^s3sta)) //^為異或,若兩者不同,則結(jié)果為1。即若兩開(kāi)關(guān)中,任一開(kāi)關(guān)的狀態(tài)發(fā)生變化,則此條件即為真。
                change=1;
        return change;
}

void main()
{        
        s2sta=s2;
        s3sta=s3;
        while(1)
        {
                keyscan();                   //掃描按鍵狀態(tài)是否變化,即是否有人更改了按鍵狀態(tài)。
                if(change)
                {
                        change=0;           //清零
                        light=~light;  //一旦發(fā)現(xiàn)有開(kāi)關(guān)狀態(tài)發(fā)生了變化,則燈的狀態(tài)就取反。(若以前亮,則熄滅;反之則打亮)
                        s2sta=s2;           //同時(shí),將s2和s3的當(dāng)前狀態(tài)送給s2sta和s3sta,為以后的比較做準(zhǔn)備。
                        s3sta=s3;
                }        
        }
}

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:66287 發(fā)表于 2018-7-28 14:43 | 顯示全部樓層
長(zhǎng)見(jiàn)識(shí)了,謝謝分享!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表