PIC16F877 I/O口特色
1.PORTA 總共有6個(gè)位(RA0~RA5),PORTA端口模塊有3個(gè)特殊的寄存器:端口數(shù)據(jù)寄存器PORTA,端口方向控制寄存器TRISA,A/D轉(zhuǎn)換控制寄存器ADCIN1;PORTA端口各引腳的所復(fù)合的功能相同,各引腳的內(nèi)部結(jié)構(gòu)也不一致。對(duì)三個(gè)寄存器的設(shè)置可控制PORTA端口作為數(shù)字I/O端口的應(yīng)用,而系統(tǒng)重置后,PORTA自動(dòng)成為模擬輸入狀態(tài),可讀取模擬輸入訊號(hào);
PORTB 是8位寬度的數(shù)字I/O端口(RB0~RB7),一般只有RB6和RB7兩個(gè)引腳存在復(fù)用功能,它們?cè)谛酒幊虩龑?xiě)和在線(xiàn)調(diào)試時(shí),RB6作為編程串行時(shí)鐘引腳PGC,RB7作為編程串行數(shù)據(jù)引腳PGM,這是一種特殊模式的功能復(fù)用類(lèi)型,它不可能出現(xiàn)在芯片正常工作時(shí)。PORTB模塊有關(guān)的特殊寄存器有4個(gè),PORTB端口作為數(shù)字I/0端口的應(yīng)用可以撰寫(xiě)程序規(guī)劃輸入輸出方向、狀態(tài);
PORTC 總共有8個(gè)位(RC0~RC7),有關(guān)的特殊寄存器有2個(gè),單片機(jī)上電之后,輸出數(shù)據(jù)寄存器PORTC的值隨機(jī)值,方向寄存器TRISC的值全為1,因此,起始狀態(tài)下各個(gè)引腳均處于輸入方式,對(duì)外呈現(xiàn)高阻狀態(tài),通過(guò)定義TRISC寄存器的值,可以分別指定引腳設(shè)置為輸入還是輸出方式。除了可作為數(shù)位I/O外,還和一些特殊功能的周邊電路共享接腳;
PORTC 是8位寬度的雙向數(shù)字I/O端口(RC0~RC7),有關(guān)的特殊寄存器有3個(gè),它在基本輸入/輸出功能的基礎(chǔ)上,增加并行從動(dòng)端口功能;另外每個(gè)引腳作I/O引腳使用時(shí),輸入信號(hào)都要經(jīng)過(guò)其內(nèi)部的施密特觸發(fā)輸入緩沖器,對(duì)于輸入信號(hào)波形可以起整形作用,而工作于并行從動(dòng)端口方式時(shí)則是經(jīng)過(guò)TTL緩沖器輸入。PORTC可作一般數(shù)字I/O,并與PSP(Parallel Slave Port)并列傳輸接口共享。當(dāng)整體系統(tǒng)需要多單片機(jī)時(shí),彼此可以經(jīng)由并列傳輸接口來(lái)快速傳輸資料;
PORTE 只有3條引腳的雙向I/O端口(RE0~RE2),有關(guān)的特殊寄存器有3個(gè),它在基本輸入/輸出功能的基礎(chǔ)上,增加并行從動(dòng)端口,模擬量輸入功能。單片機(jī)上電之后,輸出數(shù)據(jù)寄存器PORTE的值隨機(jī)值,方向寄存器TRISC的值全為1,因此,起始狀態(tài)下各個(gè)引腳均處于輸入方式,對(duì)外呈現(xiàn)高阻狀態(tài),通過(guò)定義TRISE寄存器的值,可分別指定引腳設(shè)置為輸入還是輸出方式。
2.由RA4的內(nèi)部結(jié)構(gòu)可知,RA4和PORTA端口的其它端口有很大的不同,它沒(méi)有被復(fù)用成模擬信號(hào)輸入。一般其作用有個(gè):普通數(shù)字I/O端口和定時(shí)TMR0的外部數(shù)字脈沖輸入端口(TOCKI)。RA4特征如下:
(1)輸入時(shí)與其它端口一樣,都是呈現(xiàn)高阻態(tài)。
(2)輸出低電平時(shí),與其它端口一樣,吸入端口外部電路的電流,引腳上的電壓接近0V。
(3)輸出高電平時(shí),與其它端口有很大不同,RA4端口只有一個(gè)N溝道場(chǎng)效應(yīng)驅(qū)動(dòng)管,沒(méi)有P溝道場(chǎng)效應(yīng)驅(qū)動(dòng)管,所以RA4引腳處于漏極開(kāi)路狀態(tài),輸出高電平時(shí)為懸空狀態(tài)。改進(jìn)方法:盡量設(shè)計(jì)成低電平有效,若需要高電平來(lái)驅(qū)動(dòng)外圍電路時(shí),必須在RA4引腳上外加上拉電阻。上拉電阻的取值范圍為1KΩ~10KΩ左右。
3.是,選項(xiàng)寄存器POTION也是一個(gè)可讀/寫(xiě)的寄存器,包含TMR0,分頻器和端口RB有關(guān)的控制位。端口RB0與外部中斷INT共同一引腳,與該引腳有關(guān)的2個(gè)控制位含義如下:
1=RB 端口弱上拉電路禁止
0=RB 端口弱上拉電路使能
所以該端口內(nèi)部每條引腳的弱上拉電路是不可單獨(dú)編