8051單片機具有40個引腳,包括四個I/O端口。8個引腳用于特定目的,而32個引腳用作輸入/輸出引腳,以將單片機與外圍設備連接。每個PORT是8位的,可以配置為輸入或輸出端口。
一個端口通常是一組八個引腳,我們稱它們?yōu)镮O,因為我們可以配置它們的輸入或輸出。8051具有四個GPIO端口,每個端口具有八個引腳,而每個引腳可能具有一個或多個功能。下圖中為8051單片機的IO端口的PIN圖:
一、8051單片機的輸入輸出端口說明
8051單片機的端口0:
現(xiàn)在讓我們看一下IO端口0端口0是8個開漏雙向IO端口。端口0是8個開漏雙向IO端口,開漏僅表示連接到Gnd的晶體管。雙向意味著該端口可以配置為輸入或輸出。P0寄存器用于訪問PORT0。如果某些寄存器可以位訪問,則該寄存器是位訪問的。這意味著我們可以訪問該寄存器的各個位。將1寫入P0寄存器的某位將配置相應的引腳為輸入,而寫入0則將其配置為輸出。默認情況下,每個引腳都配置為上電輸入。
P0包括引腳(32-39)。它是具有一些替代功能的I/O端口。
(1)當外部存儲器與單片機一起使用時,低地址字節(jié)(地址A0-A7)被施加到P0上。如果不使用外部存儲器,則將P0的所有位都配置為用于I/O。
(2)P0不包含內置上拉電阻。
1.如果將此端口的任何引腳配置為輸入,則它會“浮動”,并且輸入具有無限的輸入電阻和不確定的電位。
2.當該端口的任何引腳配置為輸出時,它將充當“漏極開路”。如果端口位設置為邏輯0,則該引腳將接地(0V)。如果為端口位提供邏輯1,則外部輸出將保持“浮動”狀態(tài)。因此,要在該輸出引腳上施加邏輯1(5V),必須連接一個外部上拉電阻。
我們可以編寫一些簡單的代碼來測試端口0,我將PORT0的低四位配置為輸入,將高四位配置為輸出,無論我將在低四位上應用什么輸入,都應在高四位上顯示。讓我們將端口0的低4位配置為輸入,將高4位配置為輸出如前所述,為了將P0的某些引腳配置為輸入,我們將1寫入P0寄存器的相應位。 由于現(xiàn)在我們必須將P0的低四位配置為輸入,因此我們寫入1來為四位供電。為了將P0的高四位引腳配置為輸出,我們將0寫入P0寄存器的所有高四位,以十六進制表示,它將變?yōu)?x0F。(P0 = 0X0F)
8051單片機的端口1
P1包括引腳(1-8)。它是一個I/O端口,沒有其他功能,僅配置為常規(guī)I/O用途。P1包含內置上拉電阻,并且與TTL電路兼容。
8051單片機的端口2
P2包括引腳(21-28)。當外部存儲器與單片機一起使用時,它是一個I/O端口,除了P1以外,它還具有其他功能,用作端口0,然后將較高的地址字節(jié)(地址A8-A15)施加到P2上。當不使用外部存儲器時,P0的所有位都被配置為I/O目的。
現(xiàn)在,我們將通過有趣而簡單的示例來查看端口1和端口2。 兩個端口均為8位寬,雙向且具有內部上拉電阻。但是端口1和端口2 都不需要任何上拉電阻,因為兩個端口都已經(jīng)具有內部上拉功能。向端口的每一位寫入1會將端口配置為輸入,而寫入零會將其配置為輸出。向端口的每一位寫入1會將端口配置為輸入,而寫入0則將端口配置為輸出。默認情況下,兩個端口均配置為上電輸入。
8051單片機的端口3
P3包括引腳(10-17)。這是具有不同功能的I/O端口。要使用替代功能,必須將邏輯一(1)應用于P3寄存器的相應位。在硬件方面,該端口與P0相似,但包含內置上拉電阻。
二、輸入輸出端口8051單片機的PIN配置設置
輸入:引腳配置為1。
對于輸出:引腳被配置為0用于輸出。
當前限制:
1.當引腳配置為輸出時,單個引腳可以接收10mA的電流。當引腳配置為輸入時,內置的上拉電阻會提供非常弱的電流,但最多可以處理4個TTL輸入。
2.如果端口的所有8位都處于活動狀態(tài),則總電流必須限制為15mA。但是對于端口0,它可以高達26mA(端口P0:26mA)。
3.如果所有4個端口(32位)均處于活動狀態(tài),則總電流必須限制為71mA。
以上就是英銳恩單片機開發(fā)工程師分享的8051單片機I/O口說明與引腳配置。英銳恩專注單片機應用方案設計與開發(fā),提供8位單片機、16位單片機、32位單片機、運放芯片和模擬開關。