亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標題: 如何做到51單片機的高電平輸入檢測 [打印本頁]

作者: InazumaGDI    時間: 2018-11-5 14:12
標題: 如何做到51單片機的高電平輸入檢測
本帖最后由 InazumaGDI 于 2018-11-5 14:14 編輯

如題,我在做一個由紅外人體檢測模塊SR501 (默認輸出低電平 觸發輸出高電平) 觸發的蜂鳴器  
使用的單片機為STC89C52RC    代碼如下

#include <reg52.h>
sbit  HW = P2^0;   //定義紅外傳感器針腳 P2.0

void delay(unsigned long time)                //延時
{
  unsigned long i,j;
  for(i=0;i<time;i++)
      for(j=0;j<19;j++)
          {}
}

void main()

{
        HW = 0;                 //初始化紅外針腳為低電平
    P1 = 0xff;         //初始化P1針腳為1111 1111        
    while(1)         //循環
        {
         if(HW == 1);           //當紅外探頭被觸發   默認低電平轉換為高電平
         {
           P1 = 0x00;                //P1針腳轉為 0000 0000
           delay(5000);                //延時5S
           P1 = 0xff;                 //關閉P1針腳
         }
    }
}

燒錄后發現 P1針腳一直為低電平,后來查閱資料發現51單片機的針腳為準雙向接口,檢測輸入的
時候需要輸出一個1(高電平),然后外部輸入0(低電平)才可以觸發,也就是輸入只能檢測低電平,不可以檢測高電平輸入。 請問有沒有方法從程序上實現高電平輸入檢測?
作者: xuyaqi    時間: 2018-11-5 16:38
端口先輸出一個1(高電平),然后檢查端口電平,如果是1那么說明端口是輸入了高電平,否則是就是輸入了低電平。
作者: Colin_zhai    時間: 2018-11-5 16:46
1.STC文檔里面是有配置的,IO設成高阻輸入,應可以解決(通過軟件配置PxM0,PxM1)
2.實測STC89C52RC,IO初始化低,通過TLP521拉高是可以檢測的(未配置PxM0,PxM1)。
3.普通外設可能無較強的驅動能力,是無法把51 IO口拉高的.
作者: Nan1996    時間: 2018-11-5 17:24
紅外感應模塊輸出的電壓太小,通過一個三極管放大電流就行了,可以通過普通引腳,直接去判斷引腳電位,0或1,也可以通過外部中斷來觸發,再或者就是使用ad轉換進行電位采集放大
作者: Nan1996    時間: 2018-11-5 17:27
紅外感應模塊輸出的電位低,通過一個三極管放大之后就可以通過普通引腳進行檢測電位,0或1,再或者就是通過ad轉換進行程序內放大




歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1