Linux内核之特殊寄存器( 二 )


TR1: 定时器1运行控制位: TR=1表示启动定时器,需要配合GATE和INT1 。

  • 当GATE=1,且INT1为高电平时,TR1置1启动定时器 。
  • 当GATE=0时,TR1置1启动定时器1 。
TF0: 定时器0溢出标志位,功能和用法同TF1.
TR0: 定时器0运行控制位,功能和用法同TR1.
IE1: 外部中断1请求标志位.
  • IT1=0时,为电平触发方式,每个机器周期的S5P2采样INT1引脚,若INT1脚为高电平,则置1;否则IE1清0.
  • IT1=0时,为跳变沿触发方式,当第一个机器周期采样到INT1为低电平时,将IE1置1,表示外部中断1正在向CPU请求中断.当CPU响应,转向中断服务程序时,IE1由硬件清零.
IT1: 外部中断1触发方式选择位.
  • IT1=0时,为电平触发方式,引脚INT1上的低电平有效.
  • IT1=1时,为跳变沿触发方式,引脚INT1上的电平从高到低的负跳变有效.
IE0: 外部中断0请求标志位,功能和用法同IE1.
IT0: 外部中断0触发方式选择位,功能和用法同IT1.
(8) TMOD寄存器:定时器/计数器工作方式寄存器TMOD寄存器: 定时器/计数器工作方式寄存器.字节地址为89H,不能位寻址.
位序号
D7
D6
D5
D4
D3
D2
D1
D0
位符号
GATE
C/T
M1
M0
GATE
C/T
M1
M0
控制的定时器
定时器1
定时器0
 
 
 
 
 
 
GATE: 门控制位
  • GATE=0时,定时器/计数器启动与停止仅受TCON寄存器中的TRX(X=0/1)来控制.
    GATE=1时,定时器/计数器启动与停止由TCON寄存器中的TRX(X=0/1)和外部中断引脚(INT0或INT1)上的电平状态共同控制.
C/T ‾ overline{T}T: 定时器模式和计数器模式选择位
  • C/T ‾ overline{T}T=1时为计数器模式
    C/T ‾ overline{T}T=0时为定时器模式
M1,M0: 工作方式选择位
定时器T0有4种工作方式:方式0,方式1,方式2,=方式3=。
设置定时器T1为方式3会让它进入关闭状态 。通常情况下,T0不运行于工作方式3,只有在T1处于工作方式2,并不要求中断的条件下才可能使用 。这时,T1往往用作串行口波特率发生器,TH0用作定时器,TL0作为定时器或计数器 。
定时器T1有3种工作方式:方式0,方式1,方式2 。
(9) SUBF寄存器: 串行数据缓冲器(一个接收一个发送)当发送使用时,就采用SBUF=XXX; (XXX为需要传送的数据)
当接收使用时,采用XXX=SBUF;
(10) SCON寄存器: 串行口控制寄存器它用于控制串行通信的方式选择、接收和发送,指示串口的状态 。SCON既可以字节寻址,也可以位寻址 。
D7
D6
D5
D4
D3
D2
D1
D0
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
9FH
9EH
9DH
9CH
9BH
9AH
99H
98H
SM0, SM1:串行口工作方式控制位 。
SM0
SM1
工作方式
功能
波特率
0
0
方式0
8位同步移位寄存器
晶振频率/12
0
1
方式1
10位UART
可变
1
0
方式2
11位UART
晶振频率/64或晶振频率/32
1
1
方式3
11位UART
可变
工作方式0:串行口为同步移位寄存器的输入输出方式 。主要用于扩展并行输入或输出口 。数据由RXD(P3.0)引脚输入或输出,同步移位脉冲由TXD(P3.1)引脚输出 。发送和接收均为8位数据,低位在先,高位在后 。波特率固定为fosc/12 。
工作方式1:方式1是10位数据的异步通信口 。TXD为数据的发送引脚,RXD是数据的接受引脚 。传送一帧数据的格式为1位起始位,8位数据位,1位停止位 。
方式2或方式3:方式2或方式3时,为11位数据的异步通信口,TXD为数据发送引脚,RXD为数据接收引脚 。起始位1位、数据位9位(含附加的第九位,发送时为SCON中的TB8,接收时为SCON中的RB8)、停止位1位,一帧数据为11位 。方式2的波特率固定为晶振频率的1/32或1/64 。方式3的波特率由定时器T1的溢出率决定 。
SM2:多机通信控制位 。
多机通信是工作于方式2和方式3,即SM2主要用于方式2和方式3 。当串行口工作于方式2或3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF,且置位RI发出中断申请,否则会将接收到的数据放弃 。当SM2=0时,就不管第9位数据是0还是1,都会将数据送入SBUF,并发出中断申请 。


推荐阅读