欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 關于51單片機P1-P3口準雙向IO口的問題 [打印本頁]

作者: 13681878016    時間: 2020-5-9 08:50
標題: 關于51單片機P1-P3口準雙向IO口的問題
網上看了很多解釋準雙向IO口的解答,
對于輸出方面沒啥問題了我,單片機程序內部置0就輸出0,內部置1就輸出1。
但是對于輸入,需要先單片機程序內部對IO口置1,然后才能讀輸入狀態。(單片機上電復位后,所有IO口都自動為高電平狀態,能讀輸入狀態)
至于純輸入的引腳,比如P1.1的確很方便了。但是如果是跟一個傳感器同行,而且是并行的通信,又能寫入,又能讀。這樣的話,讀的時候還先要再置1嗎? 比如IIC協議的一些電子元件/傳感器/屏幕。
另外我看了,很多電子元件都是在周期的下降沿才能被讀數據,比如單總線協議的DS18B20溫度傳感器這個,一跟單總線又寫又讀的,這樣先拉高,再拉低的下降沿讀取的設計是為了迎合單片機的“輸入特性”嗎?

還有當我單片機程序內部置1了之后,外部的電子元件如果給單片機一個‘1’的高電平,我的IO口讀取為1;外部電子元件給0,我讀取為0。但是如果不接電子元件的話,我單片機內部程序置1了(或者只是上電復位重啟后),直接讀IO口電平,那就是永遠‘1’高電平狀態對吧? 除非有外部的電子元件給單片機‘0’的低電平信號? 所以就是準雙向IO口其實本質是檢測低電平? 高電平其實是自己本身所置的“1”?

作者: carpcarey    時間: 2020-5-9 09:24
問題1:需要置1
作者: xuyaqi    時間: 2020-5-9 09:38
這是P1口內部結構:
要讀P1口,必須先置1讓V2為高電平,這樣引腳高電平讀引腳就是高電平,引腳低電平讀引腳就是低電平,如果V2不置高為低,那么不管輸入是什么讀出來都是低電平。

作者: carpcarey    時間: 2020-5-9 09:49
問題1:需要置1,這時IO口弱上拉(P0口必須外部上拉),這時才能讀到IO口。如果之前IO口置0了,那IO口對地短路,外部給什么信號都被連接到地了,讀到的IO口始終為0.
問題2:下降沿的問題,主要不是迎合單片機的“輸入特性”,而是符合協議特性。都按標準走。比如IIC,SPI等。這些都有標準的。
問題3:如果IO口未接(P0口除外),那置1后,由于弱上拉存在,故讀到的IO口當然永遠是1. P0口(外部IO懸空)讀到的就是隨機了。
以上這些問題都可以從51單片機的IO口等效電路可以分析到。
建議看下:
http://www.doc88.com/p-4109250816554.html

https://baijiahao.baidu.com/s?id ... r=spider&for=pc
作者: wulin    時間: 2020-5-9 09:50
準雙向IO口的高電平是虛高,可以輕易被外部低電平信號拉低;低電平是實低,不會被外部高電平信號拉高。所以在讀外部輸入電平時IO口要先置1。一旦IO口寄存器被置1,不論外部因素導致該端口狀態如何,IO口寄存器狀態不變,只是端口狀態隨外部信號改變。




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