新聞中心

        模擬開關(guān)燈

        作者: 時(shí)間:2011-02-27 來源:網(wǎng)絡(luò) 收藏

        1. 實(shí)驗(yàn)任務(wù)

        如圖4.2.1所示,監(jiān)視開關(guān)K1(接在P3.0端口上),用發(fā)光二極管L1(接在P1.0端口上)顯示開關(guān)狀態(tài),如果開關(guān)合上,L1亮,開關(guān)打開,L1熄滅。

        2. 電路原理圖

        4.2.1

        3. 系統(tǒng)板上硬件連線

        (1). 把“系統(tǒng)”區(qū)域中的P1.0端口用導(dǎo)線連接到“八路發(fā)光二極管指示模塊” 區(qū)域中的L1端口上;

        (2). 把“系統(tǒng)”區(qū)域中的P3.0端口用導(dǎo)線連接到“四路撥動(dòng)開關(guān)”區(qū)域中的K1端口上;

        4. 程序設(shè)計(jì)內(nèi)容

        (1). 開關(guān)狀態(tài)的檢測(cè)過程

        單片機(jī)對(duì)開關(guān)狀態(tài)的檢測(cè)相對(duì)于單片機(jī)來說,是從單片機(jī)的P3.0端口輸入信號(hào),而輸入的信號(hào)只有高電平和低電平兩種,當(dāng)撥開開關(guān)K1撥上去,即輸入高電平,相當(dāng)開關(guān)斷開,當(dāng)撥動(dòng)開關(guān)K1撥下去,即輸入低電平,相當(dāng)開關(guān)閉合。單片機(jī)可以采用JB BITREL或者是JNB BITREL指令來完成對(duì)開關(guān)狀態(tài)的檢測(cè)即可。

        (2). 輸出控制

        如圖3所示,當(dāng)P1.0端口輸出高電平,即P1.01時(shí),根據(jù)發(fā)光二極管的單向?qū)щ娦钥芍@時(shí)發(fā)光二極管L1熄滅;當(dāng)P1.0端口輸出低電平,即P1.00時(shí),發(fā)光二極管L1亮;我們可以使用SETB P1.0指令使P1.0端口輸出高電平,使用CLR P1.0指令使P1.0端口輸出低電平。

        5. 程序框圖

        4.2.2

        6. 匯編源程序

        ORG 00H

        START: JB P3.0,LIG

        CLR P1.0

        SJMP START

        LIG: SETB P1.0

        SJMP START

        END

        7. C語言源程序

        #include AT89X51.H>

        sbit K1=P3^0;

        sbit L1=P1^0;

        void main(void)

        {

        while(1)

        {

        if(K1==0)

        {

        L1=0; //燈亮

        }

        else

        {

        L1=1; //燈滅

        }

        }

        }



        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 临城县| 丹江口市| 驻马店市| 定结县| 满城县| 鹿邑县| 商都县| 明光市| 青神县| 中西区| 定边县| 基隆市| 科尔| 安达市| 黄浦区| 东阿县| 莱芜市| 德州市| 涞源县| 柯坪县| 盐亭县| 南岸区| 于都县| 化德县| 广汉市| 乌兰浩特市| 饶平县| 北辰区| 云安县| 阜城县| 万州区| 新和县| 建湖县| 宁南县| 石河子市| 方正县| 贺兰县| 保亭| 建瓯市| 宁化县| 定安县|