色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

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

          MCU學習之按鍵控制LED

          作者: 時間:2016-12-03 來源:網(wǎng)絡 收藏
          程序 :

          /**

          本文引用地址:http://cafeforensic.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在開發(fā)板上是以按鈕形式出現(xiàn), 按下就是提供低電平, 彈起就是提供高電平

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

          while( 1 )

          {

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

          if( !K1 )

          {

          P10 = 0;

          P11 = 1;

          }

          else

          {

          P10 = 1;

          P11 = 0;

          }

          }

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

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

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

          作業(yè) :

          把程序改為: 按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

          評論


          技術專區(qū)

          關閉