单片机串口工作方式(Serial port operation mode of single chi

2019-04-15 18:21发布

定时器TR0置1,开始工作,每个机器周期时间标记加1(TH0,TL0),到溢出点产生溢出标记,TH0TL0都是归0;根据定时的时间长短修改TH0,TL0. 如果一个机器周期的采样为高电平,后一个机器周期的采样位低电平,即为一个有效的计数脉冲,在下一个机器周期进行计数,TH0,TL0(TH1TL1)加一。可见采样计数脉冲是在2个机器周期进行的,因此计数脉冲频率不能高于晶振频率的1/24. 定时器的定时时间与系统的振荡频率紧密相关,因为每个机器周期有固定时间,即一个机器周期由晶振的12个振荡脉冲组成。若采用Fosc=12MHZ,则计数器的计数频率Fcont=Fosc*1/12为1MHZ。计数器计数脉冲的周期等于机器周期,即Tcont=1/Fcont=1/(fosc*1/12)=12/Fosc(单片机振荡频率) 开始计数到溢出,这段时间长短与计数器预先装入的初值有关,越大定时越短,最大定时时间为65536个机器周期。  单片机串行口接受/发送有关的寄存器共3个,即特殊功能寄存器的SBUF(串行数据缓冲寄存器),SCON(串行口控制寄存器),PCON(电源控制寄存器)。串行接口的工作方式:通常使用方式1,2,3。SM0,SM1(0,0)方式0:用于扩展并行输入/输出口.同步移位寄存器方式,通信的串行数据通过RXD引脚输入或输出,而TXD引脚输出同步移位脉冲。每次发从接受的数据8位,没有起始,结束位。74LS164,74LS165。波特率:fosc/12.(0,1)方式1:10位位一帧的异步串行通信方式,串口通过TXD引脚传送数据到外部,RXD引脚则接受外面所送过来的串行数据。一个起始位,8个数据位,1个停止位。单片机检查RXD引脚是否有串行脉冲输入,当REN=1且接收端检测到RXD上有高电平到低电平的变化,单片机串口接收端分成8次读入D0-D7,当成一个字节,然后将这个接收到的8位数据放入SBUF寄存器中,把停止位送入RB8中,并且将SCON寄存器里的RI位置1,等待CPU读取。传送数据时,将数据写入单片机SBUF寄存器,串行口就会将这个数据转换成一帧数据从TXD引脚输出,输出后,TXD保持在高电平状态下,并将TI置位,通知CPU下一个字符发送。波特率:(1,0)方式2:11位位1帧的异步串行通信方式,一个起始位,8个数据位,1个D8位和1个停止位。发送数据时,在SCON的TB8位中把第9个数据位的内容准备好,如TB8=1;发送数据由“SBUF=”语句向SBUF写入,而D8位的内容则由硬件电路从TB8中直接送到发送移位器的第9位,并以此来启动串行发送。一个字符帧发送完毕后,将TI位置1,其他与方式1相同。接受时,与1相似不同的是只在第九数据位,串行口把接受的前8个数据位送入SBUF,第九位送入RB8.波特率固定两种fosc/32(SMOD=1),focs/64(SMOD=0)(1,1)方式三:与工作二功能一样,差别:方式三的数据传输速率由定时器1控制,(8052定时器2),波特率可变。同方式1.T1为发生器波特率=(2^(SMOD))/32*定时器1的溢出率fosc/(12*(256-X))    74.简述IE中EA、EX0、ET0、ES位的作用。 EA:CPU中断允许控制位。EA=1时,CPU全部开中断;EA=0时,CPU全部关中断。EX0:外部中断INT0的中断允许控制位。EX0=1时,INT0开中断; EX0=0时,INT0关中断。ET0:定时计数器T0中断允许控制位。ET0=1时,T0开中断;ET0=0时,T0关中断。 ES:串行口中断允许控制位。ES=1时,串行口开中断;ES=0时,串行口关中断。定时/计数器工作方式的设置方法。 通过设置TMOD中的M1、M0位来进行设置定时/计数器工作方式:①   、当M1=0、M0=0时,为方式0,是13位定时/计数器工作方式 ②、当M1=0、M0=1时,为方式1,是16位定时/计数器工作方式②   、当M1=1、M0=0时,为方式2,,是自动再装入的8位定时/计数器工作方式 ④、当M1=1、M0=1时,为方式3,是T0分为两个8位定时/计数器,T1停止计数