新聞中心

        EEPW首頁 > 光電顯示 > 設計應用 > MCU學習之按鍵控制LED

        MCU學習之按鍵控制LED

        作者: 時間:2016-12-03 來源:網絡 收藏
        程序 :

        /**

        本文引用地址:http://www.104case.com/article/201612/325405.htm

        * 讀IO, 用按鈕控制點燈.

        */

        #include

        #include

        // 10個LED

        sbit P10 = P1^0;

        sbit P11 = P1^1;

        sbit P12 = P1^2;

        sbit P13 = P1^3;

        sbit P14 = P1^4;

        sbit P15 = P1^5;

        sbit P16 = P1^6;

        sbit P17 = P1^7;

        // 定義開關. 低電平有效.

        sbit K1 = P3^2;

        sbit K2 = P3^5;

        void main( void )

        {

        while( 1 )

        {

        if( !K1 )// K1按下, 點亮LED

        {

        P10 = 0;

        }

        if( !K2 )// K2按下, 熄滅LED

        {

        P10 = 1;

        }

        }

        }

        總結 :

        1. 對于MCU來說, 所有的端口永遠都提供高電平(低電平有效), 如果你想讓某個端口提供低電平, 必須手工設定(僅僅是猜測).

        2. 上面的K1, K2在開發板上是以按鈕形式出現, 按下就是提供低電平, 彈起就是提供高電平

        對于第2點,可以通過程序來考證 :

        while( 1 )

        {

        // 當K1被按下, 此時P3^2提供低電平, 彈起后P3^2依然是低電平.

        if( !K1 )

        {

        P10 = 0;

        P11 = 1;

        }

        else

        {

        P10 = 1;

        P11 = 0;

        }

        }

        仿真的時候, 很明白的看到是P11點亮, P10熄滅. 說明執行的是else, 也就是K1一直處于電平狀態.

        當按下K1之后, P10點亮 P11熄滅, 說明K1提供了低電平, 按鈕按下起了作用. 然后松手彈起K1, 看看到P10熄滅P11點亮. 說明K1又恢復了高電平.

        由此可見按鈕是onPress時改變了管腳電平, onRelease的時候又恢復了.

        作業 :

        把程序改為: 按K1,P10燈亮,P11燈滅。按K2,P10燈滅,P11燈亮。

        /**

        * 讀IO, 用按鈕控制點燈.

        */

        #include

        #include

        // 10個LED

        sbit P10 = P1^0;

        sbit P11 = P1^1;

        sbit P12 = P1^2;

        sbit P13 = P1^3;

        sbit P14 = P1^4;

        sbit P15 = P1^5;

        sbit P16 = P1^6;

        sbit P17 = P1^7;

        // 定義開關

        sbit K1 = P3^2;

        sbit K2 = P3^5;

        void main( void )

        {

        while( 1 )

        {

        if( !K1 )// K1按下, 點亮LED

        {

        P10 = 0;

        P11 = 1;

        }

        if( !K2 )// K2按下, 熄滅LED

        {

        P10 = 1;

        P11 = 0;

        }

        }

        }



        關鍵詞: MCULE

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 临泽县| 偏关县| 石狮市| 汝南县| 仙桃市| 兴隆县| 康乐县| 依兰县| 望江县| 怀宁县| 旌德县| 日喀则市| 邯郸市| 海林市| 泗水县| 荔浦县| 西安市| 大英县| 茂名市| 克东县| 视频| 年辖:市辖区| 句容市| 奇台县| 远安县| 新绛县| 仁寿县| 永丰县| 会泽县| 新宁县| 邯郸县| 青田县| 长寿区| 海城市| 恩平市| 汉源县| 楚雄市| 布尔津县| 探索| 乐陵市| 普陀区|