單片機有很多引腳,這些引腳負責(zé)控制外面的設(shè)備。圖2-47所示的是用Vcc驅(qū)動LED小燈,這個LED小燈可以用發(fā)光二極管或者是數(shù)碼管。圖 2-47 點亮一個發(fā)光二極管的電路圖
現(xiàn)在當我們把GND去掉,換成I/O口,把VCC去掉,換成I/O口。當I/O口輸出大電流時,它是有一定的要求的,把單片機的這個I/O畫出來了,如圖2-48所示。
圖 2-48 單片機引腳內(nèi)部原理圖
這個是單片機的一個I/O口,方框里是單片機的內(nèi)部,方框外是單片機引腳外部,內(nèi)部和三極管的原理是一樣的,所以我們用三極管來說明,當單片機輸出一個高電平時,三極管不會導(dǎo)通,外部也輸出一個高電平;當單片機輸出一個低電平時,三極管導(dǎo)通,外部I/O口就輸出一個低電平。在輸出高電平時,這里有一個電阻。
表2-4是I/O口工作類型的設(shè)定參數(shù)表。
表 2-4 I/O口工作類型的設(shè)定參數(shù)
從圖2-49中可以看到I/O口是準雙向口,它是可設(shè)的,是
可編程的。這就是說,我們內(nèi)部可以進行一個設(shè)置;另外,這個特殊功能寄存器在使用的時候,如果不進行設(shè)置,它默認的是00,也就是標準的準雙向口,它的灌電流比較大,可以輸入20mA,它的輸出電流在250~160uA這個范圍之內(nèi)。大家要注意,單引腳灌電流達20mA,但是整體電流推進不要超過55mA,否則可能影響到單片機芯片的壽命。因此可以從這里看到,單片機是一個控制模塊、控制中心,而不是一個驅(qū)動器。要避免給單片機輸入或者是輸出一個大電流,這是普通I/O口要注意的。這是一個強推挽輸出,可以達到20mA。什么是推挽輸出?先看圖2-50。這個是一個普通的I/O口,是帶
上拉電阻的,是強推挽輸出。
圖 2-49 單片機引腳強推挽輸出的內(nèi)部原理圖
這是一個內(nèi)部總線,它幾乎沒這個上下拉電阻,一但內(nèi)部總線輸出一個高電平,三極管就導(dǎo)通了,導(dǎo)通后這個電流就下來了,這里是高電平。這是一個反相器,是一個低電平。下面這個三極管是截止的,電流就直接從上面的三極管直接輸出了,若沒有限流電阻,則這個電流是非常大。因此,外部需要加限流電阻,要注意,若不接上拉電阻,也有可能燒壞單片機的引腳。當?shù)碗娖綍r,上面的三極管是戒截止的,一但產(chǎn)生低電平,經(jīng)過反相器,第二個三極管接的是一個高電平,三極管導(dǎo)通,這個三極管輸出電流也是非常大的,因此外部也要加限流電阻,這個是一個強推挽輸出。
下面介紹開漏,又叫開集。內(nèi)部總線經(jīng)過一個反相器,原理圖如下圖2-50所示。
圖 2-50 單片機引腳開漏輸出內(nèi)部原理圖
假設(shè)是一個高電平經(jīng)過反相器變成低電平,電路內(nèi)部沒有上拉電阻,即使是高電平,三極管導(dǎo)通也不會輸出一個高電平,還是輸出一個低電平。因此開漏的時候,外部一定要加上拉電阻,它才有可能輸出高電平,不加上拉電阻,它就不會輸出高電平。比如說我們這個89C51的P0口就是一個開漏的雙向I/O口,寫1的時候,P0口懸浮,可用作高阻態(tài)輸入。如果說寫1,外部沒上拉電阻,還是一個懸空的,不可能輸出一個高電平,所以外部一定是要加一個上拉電阻。它的作用也很多,比如在實際運用系統(tǒng)中,要避免直接接高電平,可以在做電平轉(zhuǎn)換時,使用這條電路。一個5V的系統(tǒng)要控制一個12V的系統(tǒng)時,用5V的電平控制三極管的導(dǎo)通,一但導(dǎo)通了,外部就是12V,則進行了一個電平的轉(zhuǎn)換。在這里要避免單片機直接接外部電路,要進行電平的轉(zhuǎn)換。
評論