MCS-51单片机特殊功能寄存器详解
时间:11-29
来源:互联网
点击:
1、 定时器/计数器的方式寄存器TMOD
TMOD是一个8位的特殊功能寄存器,对应的地址是89H,不可位寻址。 A 主要完成三个功能:
*确定选择定时器还是计数器;
*选择何种工作方式;
*是否借用外中断控制定时器和计数器的启停;
B TMOD的低4位是控制T0的字段(T0--P3.4 定时器/计数器0外部事件脉冲输入端)
TMOD的高4位是控制T1的字段(T1--P3.5定时器/计数器1外部事件脉冲输入端)
C 控制字的格式和含义
a、 GATE(TMOD.7)
分为两种情况:GATE=0,定时器的启停和INT1无关,只取决于TR0;
GATE=1,定时器的启停不仅要由TR0来控制,而且要INT1引脚的控制,只有二者
都为高电平时定时器 才开始工作;
b、 C/T(TMOD.6)
分为两种情况:C/T=0,用作定时器;
C/T=1,用作计数器;
d、 M1(TMOD.5),M0(TMOD.4)
用M1,M0来控制定时器/计数器的4种工作方式:
*方式0:M1=0,M0=0.13位定时/计数方式
*方式1:M1=0,M0=1.16位定时/计数器
*方式2,M1=1,M0=0.8位初值自动重新装入的8位定时/计数器
*方式3,M1=1,M0=1.仅适用于T0,分为两个8位计数器,T1停止计数
2、定时器/计数器控制寄存器TCON
TCON是一个8位的特殊功能寄存器,对应的地址为88H,可为寻址。
A 控制字的格式和含义
a、TF1(TCON.7),TF0(TCON.5)----T1、T0计数溢出标志位
当计数器计数溢出时,该位置“1”。使用查询方式时,此位作为状态位供cpu
查询,但应注意在查询该位有效后应以软件方法及时将该位清“0”。使用中断
方式时,此位作为中断申请标志位,进入中断服务程序后由硬件自动清0.
b、TR1(TCON.6),TR0(TCON.4)----计数运行控制位
TR1(TR0)=1,启动定时/计数器工作的必要条件,还与GATE位的状态有关。
TR1(TR0)=0,停止定时/计数器工作。
该位可由软件置1或清0.
C、 IE1(TCON.3),IE0(TCON.1)----外部中断INT1(P3.3)、INT0(P3.2)的中断请求标志位
当有外部的中断请求时,INT1(INT0)=1(有硬件完成),在cpu响应中断后,由硬件将
IE1(IE0)清0.
d、 IT1(TCON.2),IT0(TCON.0)----INT1(INT0)触发方式控制位
可由软件进行置位和复位。IT0(IT1)=0,INT0(INT1)为低电平触发方式;
IT0(IT1)=1,INT0(INT1)为负跳变触发方式;
3、中断允许寄存器IE
在51中断系统中,中断的允许或禁止是由片内可进行位寻址的8位中断允许寄存器IE来
控制的
EA(IE.7):总开关,如果它等于0,则所有中断都不允许;
ES(IE.4):串行口中断允许;
ET1:定时器1中断允许;
EX1:外中断1中断允许;
ET0:定时器0中断允许;
EX0;外中断0中断允许;
4、5个中断源的优先级
单片机的中断服务入口地址如下,它们的自然优先级由高到低排列。
外中断0:0003H;
定时器0:000BH;
外中断1:0013H;
定时器1:001BH;
串口:0023H;
采用c51的编程语言,该语言中断服务函数的完整语法如下:
返回值 函数名称()interrupt n
interrupt对应的是中断源的编号,而决定了使用寄存器的组号。这里,需要对
寄存器的组号进行简单的解释。51系统中有4个寄存器组,具体的位置取决于psw(程序状态字)
的两位RS0、RS1的设置。当运行一个中断任务时,采用不同的寄存器组。在c51
中,寄存器组的选择就取决于using后的变量的指定,变量位0~3的整数。
在这里给出不同中断服务程序的c51程序写法:
*外中断INT0--------void intsvr0(void) interrupt 0 using 1
*定时/计数器T0-----void timer0(void) interrupt 1 using 1
*外中断INT1--------void intsvr0(void) interrupt 2 using 1
*定时/计数器T1-----void timer0(void) interrupt 3 using 1
TCON:定时器控制寄存器
寄存器地址88H,位寻址8FH~88H。
TF0(TF1)——计数溢出标志位,当计数器计数溢出时,该位置1。
TR0(TR1)——定时器运行控制位
当TR0(TR1)=0 停止定时器/计数器工作
当TR0(TR1)=1 启动定时器/计数器工作
IE0(IE1)——外中断请求标志位
当CPU采样到P3.2(P3.3)出现有效中断请求时,此位由硬件置1。在中断响应完成后转向中断服务时,再由硬件自动清0。
IT0(IT1)——外中断请求信号方式控制位
当IT0(IT1)=1 脉冲方式(后沿负跳有效)
当IT0(IT1)=0 电平方式(低电平有效)此位由软件置1或清0。
TF0(TF1)——计数溢出标志位
当计数器产生计数溢出时,此位由硬件置1。当转向中断服务时,再有硬件自动清0。计数溢出的标志位的使用有两种情况:采用中断方式时,作中断请求标志位来使用;采用查询方式时,作查询状态位来使用。 TMOD:工作方式控制寄存器
寄存器地址89H,不可位寻址。
P3口的代替功能
寄存器地址B0H,位寻址B7H~B0H。
引脚 | P3.0 | P3.1 | P3.2 | P3.3 | P3.4 | P3.5 | P3.6 | P3.7 |
代替功能 | RXD | TXD | /INT0 | /INT1 | T0 | T1 | /WR | /RD |
TCON:定时器控制寄存器
寄存器地址88H,位寻址8FH~88H。
位地址 | 8F | 8E | 8D | 8C | 8B | 8A | 89 | 88 |
位符号 | TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0 |
TR0(TR1)——定时器运行控制位
当TR0(TR1)=0
当TR0(TR1)=1
IE0(IE1)——外中断请求标志位
当CPU采样到P3.2(P3.3)出现有效中断请求时,此位由硬件置1。在中断响应完成后转向中断服务时,再由硬件自动清0。
IT0(IT1)——外中断请求信号方式控制位
当IT0(IT1)=1 脉冲方式(后沿负跳有效)
当IT0(IT1)=0 电平方式(低电平有效)此位由软件置1或清0。
TF0(TF1)——计数溢出标志位
当计数器产生计数溢出时,此位由硬件置1。当转向中断服务时,再有硬件自动清0。计数溢出的标志位的使用有两种情况:采用中断方式时,作中断请求标志位来使用;采用查询方式时,作查询状态位来使用。 TMOD:工作方式控制寄存器
寄存器地址89H,不可位寻址。
MCS-51单片机特殊功能寄存 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)