畢業回饋—89C51之GPIO使用

STC89C51系列單片機共有以下幾類GPIO口:安全

(1)P0.0-P0.7: 函數

對應DIP40封裝的39-32號引腳:P0口既能夠做爲輸入/輸出GPIO口,也能夠做爲地址/數據複用總線使用。url

a)P0口做爲輸入/輸出IO口時,P0是一個8位準雙向IO口,上電覆位後處於開漏模式。且P0口內部無上拉電阻,在做爲I/O使用時必須外接4.7K-10K的上拉電阻;.net

b)P0口做爲地址/數據複用總線時,是低八位地址線【A0-A7】,數據線【D0-D7】,無需外接上拉電阻3d

(2)P1.0-P1.7:blog

對應DIP40封裝的1-8號引腳:都可做爲標準IO口,對於90系列的51內核的單片機其中P1.0,P1.1均有第二功能,P1.0能夠做爲定時器/計數器2(Timer2/Count2)的外部輸入;P1.1能夠做爲定時器/計數器2(Timer2/Count2)的捕捉/重裝方式的觸發控制。get

(3)P2.0-P2.7:it

對應DIP40封裝的21-28號引腳:內部含有上拉電阻,便可做爲輸入輸出口,也可做爲高8位地址總線使用(A8-A15);做爲輸入輸出口時,P2口是一個準雙向口io

(4)P3.0-P3.7:class

對應DIP40封裝的10-17號引腳:都可做爲標準IO口使用。此外均具有第二功能;

P3.0—RXD:串行數據接收端

P3.1—TXD:串行數據發送端

P3.2—INTO:外部中斷0,降低沿中斷或者低電平中斷(低電平有效)

P3.3—INT1:外部中斷1,降低沿中斷或者低電平中斷(低電平有效)

P3.4—T0:定時器/計數器0的外部輸入

P3.5—T1:定時器/計數器1的外部輸入

P3.6—WR:外部數據存儲器寫脈衝(低電平有效)

P3.7—RD:外部數據存儲器讀脈衝(低電平有效)

GPIO模式簡介:

51單片機IO口均具有準雙向口/弱上拉,和開漏輸出模式;P1,P2,P3上電覆位後是準雙向口/弱上拉,P0口上電覆位後是開漏輸出。

其中5V單片機P0口的灌電流最大爲12mA,其餘IO口的灌電流最大爲6mA;

3V單片機的P0口的灌電流最大爲8mA,其餘IO口的灌電流最大爲4mA;

image

準雙向口讀外部狀態前,要先鎖存爲‘1’,才能夠讀取到外部狀態;

image

當端口鎖存器爲0時,開漏輸出關閉全部的上拉晶體管;看成爲一個邏輯輸出時,這種配置方式必須外部上拉。通常經過電阻外接到VCC,若是外部有上拉電阻,開漏的IO口還能夠讀取外部狀態。

實驗—LED亮滅與閃爍

image

LED工做原理:當其陽極和陰極之間有大於0.7V的正向壓降,LED導通,而後變亮;

與單片機的鏈接以下圖:

image

限流電阻的計算公式以下圖:

LED(light-emitting diode),即發光二極管,俗稱LED小燈,普通的貼片發光二極管。這種二極管一般的正向導通電壓是 1.8V到2.2V 之間,工做電流通常在 1mA~20mA 之間。

image

因此,在工程上爲了安全起見,通常選擇200-3k的電阻

引腳定義:

image

IO口初始化以下:

image

主函數以下:

image

經過以上程序即可以實現點亮LED燈;

下面實現LED燈的閃爍:

閃爍的原理是在亮滅切換中間加入必定的延時函數,咱們對LED燈點亮程序作以下修改:

image

delay()函數定義以下:

image

自此就能夠實現LED1閃爍,LED2常亮。

相關文章
相關標籤/搜索