關於51微控制器讀鎖存器 讀引腳的問題

2021-06-28 22:47:32 字數 733 閱讀 3202

80c51微控制器有p0-p3四個p口,以p0為例說明:

要搞清這個問題,就要明白p0口的內部結構。p0口是由鎖存器經兩個驅動場效電晶體和外部引腳相連的。

讀引腳的意思就是直接讀p0外部引腳的電位,而讀埠(鎖存器)讀的是內部與資料匯流排鏈結的鎖存器的電位。

兩者不同。一般來說,讀取p0的資料,都是讀引腳,目的是獲取與p0相連的外部電路的狀態。而讀埠是在執行下述語句時由cpu自行完成的:

inc p0;給p0加1

執行這個語句時 ,採用「讀-改-寫」的過程,先讀取p0的埠資料,再加1,然後送到p0鎖存器裡。注意這個埠資料跟p0的引腳狀態不一樣,比如你事先給p0寫進69h,p0裡資料就是69h,而引腳上的狀態因為你沒有執行mov a,p0之類的指令,它是不會進到p0的鎖存器裡去的。由此可見,所謂的讀埠,不是讀取p0的狀態,而是在執行inc之類的指令時由cpu自行完成的,

讀引腳就是讀取p0口狀態了。讀引腳時要注意:先要給p0寫ffh,使它的場效電晶體t2和地斷開。

因為p0口的場效電晶體t2一端接地,一端與外部引腳相連,由p0的鎖存器控制,當給鎖存器寫1時,它和地斷開,寫0時和地相連,所以寫零時讀到的總是低電平。

試想你現在要讀p0引腳,按理說p0與外部電路相連,外部電路的是什麼狀態,就應該讀到什麼,但如果p0口的場效電晶體t2一端接地的話,它會把p0口電位拉低,你讀到的總是低電平0,所以要先給p0寫ffh,把p0的場效電晶體t2和地斷開,再讀數時就是真實狀態了。當外部電路斷開,再讀時讀到的就是p0埠(鎖存器)的真實狀態了。

微控制器中 讀引腳 和 讀鎖存器 的區別

要搞清這個問題,就要明白p0口的內部結構。p0口是由鎖存器經兩個驅動場效電晶體和外部引腳相連的。讀引腳的意思就是直接讀p0外部引腳的電位,而讀埠 鎖存器 讀的是內部與資料匯流排鏈結的鎖存器的電位。兩者不同。一般來說,讀取p0的資料,都是讀引腳,目的是獲取與p0相連的外部電路的狀態。而讀埠是在執行下述...

微控制器引腳為什麼有讀鎖存器和讀引腳兩個選項?

要解答這個問題,我們先考慮一種情況,假如我們要對p0.1引腳輸出 賦值 為1,那麼微控制器內部是如何工作的?我的分析如下 我們知道,引腳屬於io裝置,微控制器內部cpu是通過位址匯流排,資料匯流排,控制匯流排對其進行賦值的,也就是說cpu不可能只對p0.1賦值,應該是對整個p0埠整體賦值,但是我們確...

51微控制器的復位引腳 51微控制器引腳功能介紹

40只引腳雙列直插封裝 dip 40只引腳按功能分為3類 1 電源及時鐘引腳 vcc vss xtal1 xtal2。2 控制引腳 psen ea ale reset 即rst 3 i o口引腳 p0 p1 p2 p3,為4個8位i o口的外部引腳。2.2.1 電源及時鐘引腳 1.電源引腳 1 vc...