|
網(wǎng)上看了很多解釋準(zhǔn)雙向IO口的解答,
對(duì)于輸出方面沒(méi)啥問(wèn)題了我,單片機(jī)程序內(nèi)部置0就輸出0,內(nèi)部置1就輸出1。
但是對(duì)于輸入,需要先單片機(jī)程序內(nèi)部對(duì)IO口置1,然后才能讀輸入狀態(tài)。(單片機(jī)上電復(fù)位后,所有IO口都自動(dòng)為高電平狀態(tài),能讀輸入狀態(tài))
至于純輸入的引腳,比如P1.1的確很方便了。但是如果是跟一個(gè)傳感器同行,而且是并行的通信,又能寫入,又能讀。這樣的話,讀的時(shí)候還先要再置1嗎? 比如IIC協(xié)議的一些電子元件/傳感器/屏幕。
另外我看了,很多電子元件都是在周期的下降沿才能被讀數(shù)據(jù),比如單總線協(xié)議的DS18B20溫度傳感器這個(gè),一跟單總線又寫又讀的,這樣先拉高,再拉低的下降沿讀取的設(shè)計(jì)是為了迎合單片機(jī)的“輸入特性”嗎?
還有當(dāng)我單片機(jī)程序內(nèi)部置1了之后,外部的電子元件如果給單片機(jī)一個(gè)‘1’的高電平,我的IO口讀取為1;外部電子元件給0,我讀取為0。但是如果不接電子元件的話,我單片機(jī)內(nèi)部程序置1了(或者只是上電復(fù)位重啟后),直接讀IO口電平,那就是永遠(yuǎn)‘1’高電平狀態(tài)對(duì)吧? 除非有外部的電子元件給單片機(jī)‘0’的低電平信號(hào)? 所以就是準(zhǔn)雙向IO口其實(shí)本質(zhì)是檢測(cè)低電平? 高電平其實(shí)是自己本身所置的“1”?
|
|