单片机程序必知的几个寄存器

2019-04-15 19:31发布

单片机程序必知的几个寄存器

1.串口寄存器SBUFSBUF是指串行口中的两个缓冲寄存器,一个是发送寄存器,一个是接收寄存器,在物理结构上是完全独立的,但地址是重叠的。它们都是字节寻址的寄存器,字节地址均为99H串行发送数据时,CPUSBUF写入数据    SBUF=date; //发送数据串行接收数据时,CPUSBUF读出数据    date=SBUF; //接收数据2.TMOD:工作方式控制寄存器寄存器地址89H,不可位寻址。位序B7B6B5B4B3B2B1B0位符号GATEC/TM1M0GATEC/TM1M0GATE——门控位当=0时,以TR0(或TR1)状态决定定时器/计数器的启动或禁止当=1时,以TR0与INT0(或TR1与INT1)状态决定定时器/计数器的启动或禁止C/T=0 定时/计数工作方式选择位   0为定时器  1为计数器。
 M1M0——工作方式选择位  M1M0=00    方式0:是13位计数结构的工作方式,其计数器由TH全部8位和TL的低5位构成。M1M0=01    方式1:是16位计数结构的工作方式,计数器由TH全部8位和TL全部8位构成。 M1M0=10    方式2:自动装入8位计数器。M1M0=11    方式3:定时器/计数器0被拆成两个独立的8位计数器TL0和TH0。其中TL0既可以计数使用,又可以定时使用,定时器/计数器0的各控制位和引脚信号全归它使用。3.SCON控制寄存器.SCON寄存器各位定义D7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRI9FH9EH9DH9CH9BH9AH99H98HSM0、SM1——串行口工作方式控制位SM0SM1工作方式功能波特率00方式08位同步移位寄存器晶振频率/1201方式110位UART可变10方式211位UART晶振频率/64或晶振频率/3211方式311位UART可变

SM2

——多机通信控制位多机通信是工作于方式2和方式3,SM2位主要用于方式2和方式3。接收状态,当串行口工作于方式2或3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF,且置位RI发出中断申请,否则会将接收到的数据放弃。当SM2=0时,就不管第9位数据是0还是1,都会将数据送入SBUF,并发出中断申请。工作于方式0时,SM2必须为0。

REN

——允许接收位REN用于控制数据接收的允许和禁止,REN=1时,允许接收,REN=0时,禁止接收。

TB8

——发送数据位8在方式2和方式3中,TB8是要发送的——即第9位数据位。在多机通信中同样亦要传输这一位,并且它代表传输的地址还是数据,TB8=0为数据,TB8=1时为地址。

RB8

——接收数据位8在方式2和方式3中,RB8存放接收到的第9位数据,用以识别接收到的数据特征。

TI

——发送中断标志位可寻址标志位。方式0时,发送完第8位数据后,由硬件置位,其它方式下,在发送或停止位之前由硬件置位,因此,TI=1表示帧发送结束,TI可由软件清“0”。

RI

——接收中断标志位可寻址标志位。接收完第8位数据后,该位由硬件置位,在其他工作方式下,该位由硬件置位,RI=1表示帧接收完成。在串口中断处理时,TI,RI都需要软件清"0",硬件置位后不可能自动清0,此外,在进行缓冲区操作时,需要ES=0,以防止中断出现。4.AUXR辅助寄存器AUXR.0:S1BRS,如果为1那么串口1的波特率发生器为独立波特率发生器,否则为定时器1AUXR.1:EXTRAM,为1则可以使用内部扩展RAMAUXR.2:BRTx12,为1则独立波特率发生器不分频,否则12分频。AUXR.3:S2SMOD,为1串口2波特率加倍,否则不加倍AUXR.4:BRTR,为1则允许独立波特率允许,否则不允许。AUXR.5:UART_M0x6,为1则串口模式02分频,否则为12分频AUXR.6:T1x12,为1则定时器1不分频,否则12分频AUXR.7:T0x12,为1则定时器0不分频,否则12分频注意:12分频相当于传统的51单片机的速度注:AUXRAuxiliary Register(辅助寄存器)的缩写。AUXR寄存器不可位寻址。AUXR的第7位和第6位用得很多,分别用于设置定时器01是否12分频。因为是1T的单片机,为了兼容传统的8051若不设置则默认为0,即定时器12分频。例如:AUXR &= 0xBF; //定时器1时钟为Fosc/12,12T   1011 1111