文档详情

串行端口 8051.ppt

发布:2017-07-05约4.2千字共53页下载文档
文本预览下载声明
8051的串行口;串行通信基础;在实际工作中,计算机的CPU与外部设备之间常常要进行信息交换,一台计算机与其他计算机之间也往往要交换信息,所有这些信息交换均可称为通信。 通信方式有两种,即并行通信和串行通信。;并行通信是指数据的各位同时进行传送(发送或接收)的通信方式。 其优点是传送速度快; 缺点是数据有多少位,就需要多少根传送线。 并行通信在位数多、传送距离又远时就不太合适了。;串行通信指数据是一位一位按顺序传送的通信方式。 它的突出优点是只需一对传输线(利用电话线就可作为传输线),这样就大大降低了传送成本,特别适用于远距离通信; 其缺点是传送速度较低。假设并行传送N位数据所需时间位T,那么串行传送的时间至少为NT,实际上总是大于NT的。;1、异步通信 异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。单片机的串行通信使用的是异步串行通信。; 异步通信是以字符(构成的帧)为单位进行传输,字符与字符之间的间隙(时间间隔)是任意的,但每个字符中的各位是以固定的时间传送的,即字符之间是异步的(字符之间不一定有“位间隔”的整数倍的关系),但同一字符内的各位是同步的(各位之间的距离均为“位间隔”的整数倍)。;2、同步通信; 串行通信的速率用波特率来表示,所谓波特率(Baud rate)就是指一秒钟传送数据位的个数(每秒钟传送二进制代码的位数)。每秒钟传送一个数据位就是1波特。即:1波特=1bps(位/秒) 。 在串行通信中,数据位的发送和接收分别由发送时钟脉冲和接收时钟脉冲进行定时控制。时钟频率高,则波特率高,通信速度就快;反之,时钟频率低,波特率就低,通信速度就慢。;假设数据传送速率是120字符/s,而每个字符格式包含1个代码位(1个起始位、1个终止位、8个数据位)。这时,传送的波特率为: 10b/字符×120字符/s=1200b/s 每一位代码的传送时间Td为波特率的倒数。 Td=1b/(1200bs-1)=0.833ms 异步通信的传送速率在50b/s--19200b/s之间,常用于计算机到终端机和打印机之间的通信、直通电报以及无线电通信的数据发送等。 ;8051串行口及应用; 8051单片机除具有4个8位并行口外,还具有全双工串行接口。 此串行接口是一个全双工串行通信接口,即能同时进行串行发送和接收数据。 它可以作UATR(通用异步接收和发送器)用,也可以作同步移位寄存器用。 使用串行接口可以实现8051单片机系统之间点对点的单机通信和8051与系统机(如IBM-PC机等)的单机或多机通信。;8051串口结构;串行发送与接收的速率与移位时钟同步。8051用定时器T1作为串行通信的波特率发生器,T1溢出率经2分频(或不分频)后又经16分频作为串行发送或接收的移位脉冲。移位脉冲的速率即是波特率。;串行口的发送和接收都是以特殊功能寄存器SBUF的名义进行读或写的。当向SBUF发“写”命令时(执行“MOV SBUF,A”指令),即是向发送缓冲器SBUF装载并开始由TXD引脚向外发送一帧数据,发送完便使发送中断标志位TI=1。;在满足串行口接收中断标志位RI(SCON.0)=0的条件下,置允许接收位REN(SCON.4)=1就会接收一帧数据进入移位寄存器,并装载到接收SBUF中,同时使RI=1。当发读SBUF命令时(执行“MOV A,SBUF”命令),便由接收缓冲器(SBUF)取出信息通过8051内部总线送CPU。 ;接收器是双缓冲结构,在前一个字节被从接收缓冲器SBUF读出之前,第二个字节即开始被接收(串行输入至移位寄存器),但是,在第二个字节接收完毕而前一个字节CPU未读取时,会丢失前一个字节。; 发送时,只需将发送数据输入SBUF,CPU将自动启动和完成串行数据的发送; 接收时,CPU将自动把接收到的数据存入SBUF,用户只需从SBUF中读出接收数据。; 89C51串行口的工作主要受串行口控制寄存器SCON的控制,另外,也和电源控制寄存器PCON有些关系。SCON寄存器用来控制串行口的工作方式,还有一些其他的控制作用。;2、串行控制寄存器SCON(地址98H);① SM0 SM1——串行口工作方式选择位。;SCON; 在方式2和方式3中,若SM2=1,且RB8(接收到的第9位数据)=1时,将接收到的前8位数据送入SBUF,并置位RI产生中断请求;否则,将接收到的8位数据丢弃。而当SM2=0时,则不论第9位数据为0还是为1,都将前8位数据装入 SBUF中,并产生中断请求。第九位D8装入R8。 在方式0时,SM2必须为0。 ;
显示全部
相似文档