小雨 發問時間: 電腦與網際網路程式設計 · 1 0 年前

8051的input如何設定?

雙向input/output請如何設定從原本output改成input

請問一下若要正確讀取input的值

為何內部要先設ff

請仔細的說明內部電路的動作原理,勞駕

2 個解答

評分
  • 最佳解答

    8051除了PORT0有開集極的輸出特性外,其他三個PORT輸出入特性都差不多,8051不需要另外設定控制port的輸出或輸入,但是當port要當輸入時,的確要先設為FF,其實就好像寫了一個FF輸出一樣,因為8051的port1/2/3都有MOS來驅動輸出,當寫00到port時,MOS是將port上的腳拉到地,這個拉地的信號是很強的,所以你想讀入high信號是不可能的(直接連VCC會有大電流,很危險),但是當寫FF到port時,MOS並不驅動一個很強的high信號,而是放手讓一個pull high的電阻讓port的信號被拉到一個較弱的high準位,這個時候若外部電路將腳接地,這樣port腳上也會被拉到地,這時讀入8051就可以分辨是low信號(0),或是原來的high信號(1)

    2008-07-17 08:39:08 補充:

    如果外面的信號是"1",因為同為pull high的電位,所以會被8051讀入"1",如果外面的信號是"0",因為電位被拉地,所8051會讀入"0"

  • 先生
    Lv 6
    1 0 年前

    如果你把輸出設成00h,

    輸入的訊號就被你的輸出給短路掉了,怎麼讀取都是0

    (共用的腳位,輸入輸出互相會影響)

    用比諭的說法

    給你一張白紙(它代表ff)

    你用黑筆畫成黑的(它代表00)

    如果給你一張黑紙(它代表00)

    你再用黑筆畫成黑的(它還是代表00)

    畫與不畫,它都是黑的, 是不是就沒意義了...

    參考資料: 我在大亞電梯從事電梯控制系統研發,從業17年...
還有問題?馬上發問,尋求解答。