对于PQFP-44和PLCC-44封装的STC89系列单片机增加了4个I/O口P4口,P4口在特殊功能寄存器中的地址为E8H,可以进行位寻址,用户在使用P4口之前需要先定义地址,然后就像操作其它I/O口一样操作P4口了。
另外,P4口的P4.2和P4.3新增加了两个外部中断作为它们的第二功能,使用这两个外部中断时和使用P3.2和P3.3外部中断方法相同,P4.2(INT2)的中断向量入口地址为33H,中断序号为6,P4.3(INT3)的中断向量地址为3BH,中断序号为7,P4口的外部中断由另一个新增加的扩展中断控制寄存器来设置,请看下一个知识点。
知识点:扩展中断控制寄存器(XICON)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
STC89系列单片机扩展中断控制寄存器在特殊功能寄存器中的字节地址为C0H,能位寻址,该寄存器用来管理扩展中断开启、关闭、及中断优先级设定。单片机复位时该寄存器全部被清0。其各位的定义如表1所示。
表1扩展中断控制寄存器(XICON)
位序号 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
位符号 |
PX3 |
EX3 |
IE3 |
IT3 |
PX2 |
EX2 |
IE2 |
IT2 |
PX3:置位表明外部中断3的优先级为高,但优先级最终由中断优先级寄存器IP,扩展中断优先级寄存器IPH,和扩展中断控制寄存器XICON中的PX3、PX2共同决定,如:[PX3H,PX3]=[0,0];[0,1];[1,0];[1,1]代表不同的优先级。
EX3:置1,允许外部中断3中断;清0,禁止外部中断3中断。
IE3:外部中断3中断请求标志位,中断条件成立后,IE3=1,该位由硬件自动清零。
IT3:置1时,外部中断3为下降沿触发中断;清0时,为低电平触发中断。
PX2:置位表明外部中断2的优先级为高,但优先级最终由中断优先级寄存器IP,扩展中断优先级寄存器IPH,和扩展中断控制寄存器XICON中的PX3、PX2共同决定,如:[PX2H,PX2]=[0,0];[0,1];[1,0];[1,1]代表不同的优先级。
EX2:置1,允许外部中断2中断;清0,禁止外部中断2中断。
IE2:外部中断2中断请求标志位,中断条件成立后,IE2=1,该位由硬件自动清零。
IT2:置1时,外部中断2为下降沿触发中断;清0时,为低电平触发中断。
知识点:扩展中断优先级寄存器(IPH)
STC89系列单片机扩展中断优先级寄存器在特殊功能寄存器中的字节地址为B7H,不能位寻址,该寄存器与中断优先级寄存器、扩展中断控制寄存器XICON中的PX3、PX2位来共同决定单片机所有中断的最终优先级。单片机复位时该寄存器全部被清0。其各位的定义如表2所示。
表2扩展中断优先级寄存器(IPH)
位序号 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
位符号 |
PX3H |
PX2H |
PT2H |
PSH |
PT1H |
PX1H |
PT0H |
PX0H |
关于扩展中断优先级寄存器的用法是这样的:假如设定[PX3H,PX3]=[1,1],[PX2H,PX2]=[1,1] ,其它中断的组合均不是[1,1],则这时外部中断3、外部中断2的优先级为比其它中断优先级都高,因为不可能有两个最高,所以再来看系统默认的优先级,在软件设置优先级别相同时,外部中断2的优先级更高。用此方法可设置任一个中断的优先级。
使用P4口编写C语言代码时,在程序开始处加上如下语句,以后便可像操作其它I/O口一样操作P4口。
sfr P4=0xe8; 注:STC89LE516AD,STC89LE516X2,STC89LE58AD,STC89LE54ADr的P4口地址为C0h。 |
文章评论(0条评论)
登录后参与讨论