找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機(jī)控制的簡易樓梯照明燈設(shè)計(jì)

[復(fù)制鏈接]
ID:312085 發(fā)表于 2018-4-20 08:02 | 顯示全部樓層 |閱讀模式
自己做的樓梯照明燈,希望各位朋友捧捧場實(shí)驗(yàn)?zāi)康模?br />
  實(shí)現(xiàn)樓道間照明燈的方便控制,一個(gè)照明燈,在樓上和樓下各有一個(gè)(閉合式)開關(guān)控制。開關(guān)的閉合并不直接決定燈的亮滅,而開關(guān)狀態(tài)的改變才是決定燈亮滅的關(guān)鍵。即不管兩個(gè)開關(guān)當(dāng)前的狀態(tài)如何,只要有一個(gè)開關(guān)狀態(tài)發(fā)聲變化,都會使照明燈在打亮或者熄滅兩種狀態(tài)間切換。比如當(dāng)有人要上樓,若之前燈是滅的,在按下樓下開關(guān)后(此后開關(guān)為閉合狀態(tài)),燈會打亮;當(dāng)?shù)綐巧虾�,再按樓上開關(guān),燈會熄滅。而當(dāng)后來又有人上樓時(shí),再按次樓下開關(guān)(此后開關(guān)為打開狀態(tài)),燈同樣會打亮;此試驗(yàn)中,用P1口相連的第一個(gè)led來模擬照明燈,而用s2和s3來模擬兩個(gè)開關(guān)。注意,因?yàn)閷?shí)際樓道中的開關(guān)為閉合式的,而HL-1的開關(guān)為反彈式的,所以實(shí)驗(yàn)時(shí),請用手一直按著按鍵演示開關(guān)的閉合。



程序:
#include <reg52.h>

sbit light=P1^0;
sbit s1=P3^4;
sbit s2=P3^5;

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

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

全部資料51hei下載地址:
【實(shí)驗(yàn)14】樓梯照明燈.zip (10.83 KB, 下載次數(shù): 25)


評分

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

查看全部評分

回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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