STC單片機擴展P4口的應(yīng)用
對于PQFP-44和PLCC-44封裝的STC89系列單片機增加了4個I/O口P4口,P4口在特殊功能寄存器中的地址為E8H,可以進行位尋址,用戶在使用P4口之前需要先定義地址,然后就像操作其它I/O口一樣操作P4口了。
本文引用地址:http://2s4d.com/article/172459.htm另外,P4口的P4.2和P4.3新增加了兩個外部中斷作為它們的第二功能,使用這兩個外部中斷時和使用P3.2和P3.3外部中斷方法相同,P4.2(INT2)的中斷向量入口地址為33H,中斷序號為6,P4.3(INT3)的中斷向量地址為3BH,中斷序號為7,P4口的外部中斷由另一個新增加的擴展中斷控制寄存器來設(shè)置,請看下一個知識點。
知識點:擴展中斷控制寄存器(XICON)
STC89系列單片機擴展中斷控制寄存器在特殊功能寄存器中的字節(jié)地址為C0H,能位尋址,該寄存器用來管理擴展中斷開啟、關(guān)閉、及中斷優(yōu)先級設(shè)定。單片機復(fù)位時該寄存器全部被清0。其各位的定義如表1所示。
表1擴展中斷控制寄存器(XICON)
位序號 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
位符號 | PX3 | EX3 | IE3 | IT3 | PX2 | EX2 | IE2 | IT2 |
PX3:置位表明外部中斷3的優(yōu)先級為高,但優(yōu)先級最終由中斷優(yōu)先級寄存器IP,擴展中斷優(yōu)先級寄存器IPH,和擴展中斷控制寄存器XICON中的PX3、PX2共同決定,如:[PX3H,PX3]=[0,0];[0,1];[1,0];[1,1]代表不同的優(yōu)先級。
EX3:置1,允許外部中斷3中斷;清0,禁止外部中斷3中斷。
IE3:外部中斷3中斷請求標志位,中斷條件成立后,IE3=1,該位由硬件自動清零。
IT3:置1時,外部中斷3為下降沿觸發(fā)中斷;清0時,為低電平觸發(fā)中斷。
PX2:置位表明外部中斷2的優(yōu)先級為高,但優(yōu)先級最終由中斷優(yōu)先級寄存器IP,擴展中斷優(yōu)先級寄存器IPH,和擴展中斷控制寄存器XICON中的PX3、PX2共同決定,如:[PX2H,PX2]=[0,0];[0,1];[1,0];[1,1]代表不同的優(yōu)先級。
EX2:置1,允許外部中斷2中斷;清0,禁止外部中斷2中斷。
IE2:外部中斷2中斷請求標志位,中斷條件成立后,IE2=1,該位由硬件自動清零。
IT2:置1時,外部中斷2為下降沿觸發(fā)中斷;清0時,為低電平觸發(fā)中斷。
知識點:擴展中斷優(yōu)先級寄存器(IPH)
STC89系列單片機擴展中斷優(yōu)先級寄存器在特殊功能寄存器中的字節(jié)地址為B7H,不能位尋址,該寄存器與中斷優(yōu)先級寄存器、擴展中斷控制寄存器XICON中的PX3、PX2位來共同決定單片機所有中斷的最終優(yōu)先級。單片機復(fù)位時該寄存器全部被清0。其各位的定義如表2所示。
表2擴展中斷優(yōu)先級寄存器(IPH)
位序號 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
位符號 | PX3H | PX2H | PT2H | PSH | PT1H | PX1H | PT0H | PX0H |
關(guān)于擴展中斷優(yōu)先級寄存器的用法是這樣的:假如設(shè)定[PX3H,PX3]=[1,1],[PX2H,PX2]=[1,1] ,其它中斷的組合均不是[1,1],則這時外部中斷3、外部中斷2的優(yōu)先級為比其它中斷優(yōu)先級都高,因為不可能有兩個最高,所以再來看系統(tǒng)默認的優(yōu)先級,在軟件設(shè)置優(yōu)先級別相同時,外部中斷2的優(yōu)先級更高。用此方法可設(shè)置任一個中斷的優(yōu)先級。
使用P4口編寫C語言代碼時,在程序開始處加上如下語句,以后便可像操作其它I/O口一樣操作P4口。
sfr P4=0xe8;
注:STC89LE516AD,STC89LE516X2,STC89LE58AD,STC89LE54ADr的P4口地址為C0h。
評論