IO口寄存器是RAM中的一些特殊功能單元,映射到片上外設(shè)相應(yīng)的功能。如P0就是寄存器的變量,代表的是一個8位的存儲空間,它的每一位映射到單片機的P0口的每一位。寄存器是程序,單片機以及外設(shè)口發(fā)生聯(lián)系的橋梁。IO口是可以將“0”或“1”轉(zhuǎn)換為電壓信號的端口。單片機中最常用的TTL電平:0V代表“0”,+5V代表“1”。MCS51有4個8位IO口:P0,P1,P2,P3,每個IO口有8位。 IO口的性能指標(biāo): 灌電能力:能夠流入IO口的最大電流 拉電能力:能夠從IO口流出的最大電流 上拉電阻與下拉電阻 最大輸入電壓 輸入口接了一個大于10M歐的電阻,輸入+5V或0會產(chǎn)生微弱的電流。 IO口的輸出: MCS51的拉電流能力<100us,灌電流能力10ms。使用MCS51的IO口直接驅(qū)動LED,數(shù)碼管等均采用“共陽接法” IO口的輸入: MCS51的IO口輸入狀態(tài)時有若上拉電阻效應(yīng),值為100K數(shù)量級,最大輸入電壓-0.5V"Vcc+0.5V C語言,IO口寄存器與IO口的映射: IO口與IO寄存器的映射(X代表0"3) IO口寄存器:Px,P0,P1,P2,P3這是4個51單片機寄存器的名稱。這些寄存器相應(yīng)的位發(fā)生改變,就會引起IO對應(yīng)引腳上物理電平,物理電壓的變化。reg52.h這個文件中將所有寄存器映射為同名的變量,對這些變量的讀寫相當(dāng)于對寄存器的讀寫,對寄存器的讀寫就相當(dāng)于對IO口的讀寫。 輸出狀態(tài)IO寄存器的設(shè)置 PX某一位置1或0,對應(yīng)IO口相應(yīng)位的電平高低,在讀取PX某一位之前,要向該為寫入1,然后讀回的數(shù)據(jù)真實的反映該為IO的輸入狀態(tài)。如果使用匯編寫需要這樣做,如果使用C寫,編譯器會自動完成寫1操作。 李萬鵬 |