新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 2. 模擬開關燈

        2. 模擬開關燈

        作者: 時間:2016-11-18 來源:網絡 收藏
        1.實驗任務
        如圖4.2.1所示,監視開關K1(接在P3.0端口上),用發光二極管L1(接在單片機P1.0端口上)顯示開關狀態,如果開關合上,L1亮,開關打開,L1熄滅。
        2.電路原理

        圖4.2.1
        3.系統板上硬件連線
        (1).把“單片機系統”區域中的P1.0端口用導線連接到“八路發光二極管指示模塊”區域中的L1端口上;
        (2).把“單片機系統”區域中的P3.0端口用導線連接到“四路撥動開關”區域中的K1端口上;
        4.程序設計內容
        (1).開關狀態的檢測過程
        單片機對開關狀態的檢測相對于單片機來說,是從單片機的P3.0端口輸入信號,而輸入的信號只有高電平和低電平兩種,當撥開開關K1撥上去,即輸入高電平,相當開關斷開,當撥動開關K1撥下去,即輸入低電平,相當開關閉合。單片機可以采用JBBIT,REL或者是JNBBIT,REL指令來完成對開關狀態的檢測即可。
        (2).輸出控制
        如圖3所示,當P1.0端口輸出高電平,即P1.0=1時,根據發光二極管的單向導電性可知,這時發光二極管L1熄滅;當P1.0端口輸出低電平,即P1.0=0時,發光二極管L1亮;我們可以使用SETBP1.0指令使P1.0端口輸出高電平,使用CLRP1.0指令使P1.0端口輸出低電平。
        5.程序框圖
        開始

        K1開關閉合了嗎?

        L1亮

        L1滅

        圖4.2.2
        6.匯編源程序
        ORG00H
        START:JBP3.0,LIG
        CLRP1.0
        SJMPSTART
        LIG:SETBP1.0
        SJMPSTART
        END
        7.C語言源程序
        #include
        sbitK1=P3^0;
        sbitL1=P1^0;

        voidmain(void)
        {
        while(1)
        {
        if(K1==0)
        {
        L1=0;//燈亮
        }
        else
        {
        L1=1;//燈滅
        }
        }
        }


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 华池县| 偃师市| 盘锦市| 凌源市| 萨嘎县| 尚义县| 施甸县| 千阳县| 古田县| 汕尾市| 中山市| 尼勒克县| 新余市| 鲁山县| 博白县| 洪湖市| 南阳市| 阿巴嘎旗| 阳新县| 清流县| 四平市| 玉门市| 益阳市| 深泽县| 迭部县| 莱阳市| 襄垣县| 荥经县| 大同市| 桑植县| 佛坪县| 甘南县| 资兴市| 阿克陶县| 宝应县| 进贤县| 伊川县| 樟树市| 册亨县| 合川市| 通城县|