新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 用單片機I/0口做按鍵輸入實驗

        用單片機I/0口做按鍵輸入實驗

        作者: 時間:2016-11-17 來源:網絡 收藏

        典型/都是準雙向口,既可以當輸出口也可以當輸入口。具體操作時,我們將數據寫出/就是將它當作輸出口使用;如果在程序中直接調用當前/的狀態,給我們定義的變量賦值或用于邏輯判斷、分支控制等操作,就是將它當作輸入口使用。

          下圖是使用P2.0口讀取按鍵控制的電路。

          從下圖中可見,在該電路中P2.0口是輸入應用。當按鍵沒有按下時+5V通過上拉電阻R1接到P2.0,這時P2.0口的電壓是+5V,即邏輯“1”:如果按鍵被按下,P2.0通過按鍵接到電源地,這時P2.0口的電壓是OV,即邏輯“0”。

          綜上所述,不按鍵時P2.0的狀態是“1”;按鍵時P2.0的狀態是“0”。

          如果沒有電阻R1,當按鍵接下時+5V電源會通過按鍵被短路到地,嚴重時會損壞電源,這是絕對不允許的。

          假設同時連接上圖和下圖的電路,用P2.0做輸入口,讀取按鍵:用P3.4控制蜂鳴器。寫一個程序,當按鍵按下時蜂鳴器鳴響,按鍵沒有按下時蜂鳴器停止鳴響,程序如下:

          #include

          sbitBuzzer=P3^4;sbitKey=P2^0;//【注1】

          //主程序voiDMAin(void){for(;;){if(Key==0){//【注2】

          Buzzer=0;//按鍵被按下,蜂鳴器鳴響}

          else{Buzzer=1;//按鍵沒有按下,蜂鳴器停止鳴響}

          }

          【注1】:將位變量Key定義為P2.0口,以后對變量Key的操作就是對P2.0口的操作;

          【注2】:條件語句,直接用Key的狀態(即P2.0口的狀態】來控制程序的運行。如果按鍵被按下P2.0的狀態為0,Key=0為真,程序執行Buzzer=0,這時蜂鳴器鳴響;如果按鍵沒有按下,P2.0的狀態為1,Key=0為假,程序執行Buzzer=1,蜂鳴器停止鳴響。



        關鍵詞: 單片機 I 0口

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 岱山县| 孝昌县| 安丘市| 通榆县| 新蔡县| 香河县| 南木林县| 平和县| 滦平县| 双桥区| 垦利县| 石林| 西乡县| 平和县| 天祝| 舞钢市| 德令哈市| 宁津县| 登封市| 甘南县| 黄梅县| 方山县| 彭泽县| 郧西县| 安龙县| 呼图壁县| 容城县| 吉林省| 祁门县| 三门峡市| 柳江县| 河池市| 泌阳县| 萍乡市| 长治县| 察雅县| 乐陵市| 泊头市| 贵州省| 常熟市| 南宫市|