1)方式0。方式0是同步移位寄存器的输入输出方式。主要用于扩展并行输入或输出口。数据由RXD(P3.0)引脚输入或输出,同步移位脉冲由TXD(P3.1)引脚输出。发送和接收均为8位数据,低位在先,高位在后。波特率固定位fose/12,SM2必为0。
2)方式1。方式1是10位数据的异步通信。TXD为数据发送引脚,RXD为数据接收引脚。其中1位是起始位,8位数据位,1位停止位。
数据发送和接收时使用方式1是由一条写发送寄存器(SBUF)指令开始。随后在串行口由硬件自动加入起始位和停止位,构成一个完整的帧格式,而后在移位脉冲的作用下由TXD端口串行输出一帧字符发送完以后TXD输出维持在1的状态下,并将SCON寄存器TI置1让CPU可以发送下一个字符。接收数据时SCON的REN位处于允许接收状态(REN=1),串行口接收数据RXD端监测到从1到0跳变,判定起始位接收,将接收到的数据装载到接收缓冲器SBUF中,直到停止位到来,将停止位送入RB8中并置位中断标志位RI通知CPU从SBUF中取走接收到的字符。
波特率设定:方式1的波特率是可变的,其波特率由定时器1的计数溢出率和SMOD共同决定,即
其中,SMOD是PCON最高位的值,SMOD=1表示波特率加倍定时器工作在方式2。
3)方式2。方式2是固定波特率的11位的异步通信。1个起始位,9个数据位和1个停止位。发送时编程位TB8可以赋值0或1,接收时可编程位进入SCON的RB8。
波特率则是固定的,波特率=2SMOD×fosc/64。波特率与PCON寄存器中SMOD位的值有关。
使用方式2程序初始化:单片机外接晶振fosc=11.0592MHz
SCON=0x80;
TMOD=0x01;
PCON=0x00;(www.xing528.com)
TH1=0xFD;
TL1=0xFD;
EA=1;
EX0=1;
ES=1;
TR1=1;
4)方式3。方式3是11位异步串行通信,1个起始位,9个数据位和1个停止位,但波特率不固定其他与方式2相仿。
波特率是由定时/计数器T1的溢出率和SMOD共同决定的。
波特率=2SMOD×(定时器1溢出率)/32;
式中,T1计数率取决于它工作在定时器状态还是计数器状态。当工作于定时器状态时,T1计数率为fosc/12;当工作于计数器状态时,T1计数率为外部输入频率,此频率应小于fosc/24。产生溢出所需周期与定时器T1的工作方式、T1的预置值有关。因为方式2为自动重装入初值的8位定时器/计数器模式,所以用它来做波特率发生器最恰当。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。