定时器/计数器接口TMOD(方式寄存器)设定定时器/计数器T0和T1的工作方式定时器1:定时器0:D7D6D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1M0GATE:门控位(定时器的启动是否受到外部中断请求信号的影响)。GATE=0定时器的启动不受到外部中断请求信号的影响一般情况下GATE=0。GATE=1T0的启动受到/INT0(P3.2)控制,T1的启动还受到/INT1(P3.3)控制,只有当外部中断信号/INT0和/INT1为高电平的时候才启动。C/T:定时/计数方式选择位C/T=0工作于定时方式C/T=1工作于计数方式M1和M0为工作方式选择位M1M0工作方式方式说明00013位定时计数器01116位定时计数器1028位自动重置定时计数器113两个8位定时计数器(只有T0有)方式0(13位)TL0(TL1)的低5位和TH0(TH1)的8位满值为2的13次幂为8192初值X=8192-N方式1(16位)TL0(TL1)的8位和TH0(TH1)的8位满值为2的16次幂为65536初值X=65536-N方式2(8位自动重置定时计数器)16位计数器只用了8位(TL0或者TL1)来计数;TH0或者TH1用来保存初值。满值为2的8次幂为256初值X=256-N方式3(只有T0才有)Tl0可以作为定时/计数器使用;TH0只能用作定时器使用满值为2的8次幂为256初值X=256-N特殊功能寄存器TCON:①定时/计数器的控制寄存器(定时/计数器的启动与溢出(D4-D7))②外部中断控制(D0-D3)D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0TF1、TF0:定时计数器T1、T0的溢出标志位(溢出中断),计满时,由硬件使它置位;如果中断允许,则触发T1、T0中断,进入中断处理后由硬件电路自动清除。TR1、TR0:定时计数器T1、T0的启动位(可由软件置位或者清零)TR1=1启动TR1=0停止TR0=1启动TR0=0停止IT0、IT1:外部中断0(或者1)触发方式控制位。IT0=0(IT1=0)选择外部中断为电平触发方式IT0=1(IT1=1)选择外部中断为边沿触发方式IE0、IE1:外部中断0(或者1)的中断请求标志位电平触发的时候【IT0=0(IT1=0)】若P3.2(P3.3)引脚为高电平,则IE0(IE1)清零若P3.2(P3.3)引脚为低电平,则IE0(IE1)置1,向CPU请求中断,CPU响应后不能由硬件自动将IE0(IE1)清零边沿触发的时候【IT0=1(IT1=1)】若第一个机器周期采样到P3.2(P3.3)为高电平,第二个机器周期采样到P3.2(P3.3)为低电平,则IE0(IE1)置1,向CPU请求中断,CPU响应后由硬件自动将IE0(IE1)清零经常要用到的位:TMOD:【定时/计数器的选择以及他们的工作方式】MOVTMOD,#02H;定时器0方式2TH0、TL0(TH1、TL1):【赋初值】EA:【中断允许总控制位】SETBEA;开启中断ET0(ET1):【定时计数器T0(T1)的溢出中断允许位】SETBET0;T0溢出中断允许TR0(TR1):【启动定时/计数器】SETBTR0;开启定时器T051单片机串行口的功能与结构串行口控制寄存器SCONSCOND7D6D5D4D3D2D1D098HSM0SM1SM2RENTB8RB8TIRISM0、SM1为串行口工作方式选择位SM0SM1方式功能波特率00方式0移位寄存器方式fosc/1201方式18位异步通信方式可变10方式29位异步通信方式fosc/32或者fosc/6411方式39位异步通信方式可变SM2为多机通信控制位:A、方式0时,SM2必须为0B、方式1时,若SM2=1则接收到有效的停止位,接受才有效C、方式2和方式3接受数据,SM2=1,①RB8=0(接收到的第九位数据),则输入移位寄存器中接受的数据不能移入到接收数据寄存器SBUF,RI不置1(接收中断标志位),接收无效;②RB8=1(接收到的第九位数据),则输入移位寄存器中接受的数据将移入到接收数据寄存器SBUF,RI置1(接收中断标志位),接收有效;REN:允许接收控制位REN=1允许接收REN=0禁止接收TB8(发送数据的第9位)在方式2和方式3中,TB8为发送数据的第9位,可以用来做奇偶校验位在多机通信当中,用来表示主机发送的是地址还是数据,TB8=0表示数据,TB8=1表示地址。RB8(接收数据的第9位)在方式2和方式3中,RB8为接收数据的第9位,在方式1中,若SM2=0,则RB8为接收到的停止位在方式0中,不使用RB8TI:发送中断标志位在一组数据发送完毕后被硬件置位。在方式0时,当发送数据第8位结束后,由内部硬件使TI置位在方式1、2、3时,在停止位开始发送时由硬件置位TI置位标志着上一个数据发送完毕,CPU可以通过串口发送下一个数据了在CPU响应中断后,TI不能自动清零,必须用软件清零,此外,TI可以供查询使用RI:接收中断标志位在一组数据发送完毕后被硬件置位。在方式0时,当接收数据第8位结束后,由内部硬件使RI置位在方式1、2、3时,当接收有效,由硬件使RI置位TI置位标志着上一个数据已经接收到,CPU可以从接收数据寄存器中来取接收的数据在CPU响应中断后,RI不能自动清零,必须用软件清零,此外,RI可以供查询使用对于串口发送中断TI和接收中断RI,无论哪个响应,都触发串口中断电源控制寄存器PCONPCOND7D6D5D4D3D2D1D087HSMODSMOD:波特率加倍位当SMOD=1,则串行口方式1、方式、2方式3的波特率加倍。PCON不能进行为寻址,只能按字节方式访问。串行口的工作方式方式0:通常用来外接移位寄存器,用作扩展I/O接口,波特率固定为fosc/12中断中端允许控制IED7D6D5D4D3D2D1D0A8HEAET2ESET1EX1ET0EX0EA:中断总允许位EA=0屏蔽所有的中断请求EA=1开放中断EA的作用是使中断允许形成2级控制,即各中断源首先受到EA控制,其次还要受到中断源自己的中断允许控制。ET2:定时/计数器T2的溢出中断允许位(只用与52系列,51系列没有此位)ET2=1允许T2中断ET2=0禁止T2中断ET1:定时/计数器T1的溢出中断允许位ET1=1允许T1中断ET1=0禁止T1中断ET0:定时/计数器T0的溢出中断允许位ET0=1允许T0中断ET0=0禁止T0中断ES:串行口中断允许位ES=1允许串行口中断ES=0禁止串行口中断EX1:外部中断/INT1的中断允许位EX1=1允许外部中断/INT1的中断允许位EX1=0禁止外部中断/INT1的中断允许位EX0:外部中断/INT0的中断允许位EX0=1允许外部中断/INT0的中断允许位EX0=0禁止外部中断/INT0的中断允许位优先级控制(优先级控制寄存器)IPD7D6D5D4D3D2D1D0B8HPT2PSPT1PX1PT0PX0PX0:外部中断/INT0的中断优先级控制位PT0:定时/计数器T0的中断优先级控制位PX1:外部中断/INT1的中断优先级控制位PT1:定时/计数器T1的中断优先级控制位PS:串行口的中断优先级控制位PT2:定时/计数器T2的中断优先级控制位,只用于52子系列中断响应条件中断源有请求且中中断允许中断响应时间:单片机响应中断的最短时间为3个机器周期(长调用指令的两个机器周期和检测的一个机器周期)优先级由高到低如果某一位被置1,则对应的中断源就被设置为最高优先级