找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3925|回復(fù): 4
收起左側(cè)

關(guān)于51單片機(jī)P1-P3口準(zhǔn)雙向IO口的問(wèn)題

[復(fù)制鏈接]
ID:482935 發(fā)表于 2020-5-9 08:50 | 顯示全部樓層 |閱讀模式
網(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”?
回復(fù)

使用道具 舉報(bào)

ID:267719 發(fā)表于 2020-5-9 09:24 | 顯示全部樓層
問(wèn)題1:需要置1
回復(fù)

使用道具 舉報(bào)

ID:94031 發(fā)表于 2020-5-9 09:38 | 顯示全部樓層
這是P1口內(nèi)部結(jié)構(gòu): p1.png
要讀P1口,必須先置1讓V2為高電平,這樣引腳高電平讀引腳就是高電平,引腳低電平讀引腳就是低電平,如果V2不置高為低,那么不管輸入是什么讀出來(lái)都是低電平。
回復(fù)

使用道具 舉報(bào)

ID:267719 發(fā)表于 2020-5-9 09:49 | 顯示全部樓層
問(wèn)題1:需要置1,這時(shí)IO口弱上拉(P0口必須外部上拉),這時(shí)才能讀到IO口。如果之前IO口置0了,那IO口對(duì)地短路,外部給什么信號(hào)都被連接到地了,讀到的IO口始終為0.
問(wèn)題2:下降沿的問(wèn)題,主要不是迎合單片機(jī)的“輸入特性”,而是符合協(xié)議特性。都按標(biāo)準(zhǔn)走。比如IIC,SPI等。這些都有標(biāo)準(zhǔn)的。
問(wèn)題3:如果IO口未接(P0口除外),那置1后,由于弱上拉存在,故讀到的IO口當(dāng)然永遠(yuǎn)是1. P0口(外部IO懸空)讀到的就是隨機(jī)了。
以上這些問(wèn)題都可以從51單片機(jī)的IO口等效電路可以分析到。
建議看下:
http://www.doc88.com/p-4109250816554.html

https://baijiahao.baidu.com/s?id ... r=spider&for=pc
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2020-5-9 09:50 | 顯示全部樓層
準(zhǔn)雙向IO口的高電平是虛高,可以輕易被外部低電平信號(hào)拉低;低電平是實(shí)低,不會(huì)被外部高電平信號(hào)拉高。所以在讀外部輸入電平時(shí)IO口要先置1。一旦IO口寄存器被置1,不論外部因素導(dǎo)致該端口狀態(tài)如何,IO口寄存器狀態(tài)不變,只是端口狀態(tài)隨外部信號(hào)改變。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表