资源描述:
《《串行口UAR》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第七章串行口UART§7.1串行通信基本知识§7.289S51串行口及应用§7.3串口模式3下的多机通讯§7.4RS-232C标准接口总线和串行通信硬件设计§7.5思考题与习题§7.1串行通讯基本知识数据通讯传输方式同步通讯和异步通讯波特率:表示每秒钟传送二进制代码的位数,单位b/s并行通讯串行通讯单向(单工)配置全双向(全双工)配置半双向(半双工)配置异步通讯的一帧数据格式同步传送的数据格式串行通信协议通信的双方须约定相同的字符格式和波特率。包括:起始位数据位奇偶校验位停止位波特率设置握手信号约定§7.2MCS-51串行口及
2、应用串行通讯可以实现单片机与单片机、单片机与微机之间的数据交换。串行通讯电路简单,实现远距离低成本的数据传输。缺点是传输速度慢。在一些系统中,采用串行通讯的形式将多微处理器连接起来,构成一个完整的多CPU控制系统。从机从机从机从机主机单片机系统中的串行接口及特点串行(异步)通信应用示意图MCS-51TXD(甲)RXDRXDMCS-51TXD(乙)单片机甲、乙之间近距离的直接通讯TXDRXDRXDTXDRS-232或485RS-232或485TXDRXDRS-232PC机COM1,COM2单片机甲乙两地之间远距离通讯单片机与PC
3、机之间的数据通讯§7.2.189S51串行口1、串行口结构2、与串口有关的寄存器数据缓冲寄存器SBUF地址:99HSBUF是用来存放发送和接收数据的寄存器,对应两个独立的缓冲器。CPU写SBUF就是开始发送数据(MOVSBUF,A);CPU读SBUF就是读取接收到的数据到A(MOVA,SBUF)。该结构在硬件设计上保证了51单片机串行口是一个可同时发送与接收的”全双工”串口。接收SBUF移位寄存器发送SBUF移位寄存器内部总线CPUMCS-51RXDP3.0TXDP3.1SBUF硬件电路:发送:执行指令MOVSBUF,A接收
4、:当检测到起始位电路自动启动接收。串行口控制寄存器SCON地址:98HSM0SM1:串行口工作模式选择位。SM0SM1SM2RENTB8RB8TIRISM0SM1模式功能波特率000同步移位寄存器模式Fosc/120118位异步通信UART可变1029位异步通信UARTFosc/64或/321139位异步通信UART可变RI:完成一帧数据接收标志,应软件清零,接收完成RI=1并申请中断(如果中断开放,则引发中断);TI:完成一帧数据发送标志,应软件清零,发送完成TI=1同时申请中断(如果中断开放,则引发中断);RB8:在9位数
5、据传送的模式2、3中,接收到的第9位数据;TB8:在9位数据传送的模式2、3中,将要发送的第9位数据;REN:允许接收位,REN=1时允许接收.由软件置位或清零。SM0SM1SM2RENTB8RB8TIRISM2:多机通信使能位.1)模式0、1时:SM2不用,应设为0。2)模式2、3时:SM2=0,无论RB8如何,RI都能被激活(RI=1)。若SM2=1,收到的第9位(RB8)=0时,则RI不会被激活;若SM2=1且RB8=1时,RI才能被激活=1并引发中断。在接收方式时:当SM2=1时,能否接收到数据取决于对方发送的第9位数
6、据RB8,可由发送方来控制接收方的数据接收。此种方式(SM2=1)用于多机通信。SM0SM1SM2RENTB8RB8TIRI如何使用RI,TI标志完成接收、发送?通信双方不是同步工作的,数据交换由各自SBUF进行。CPU不参与通信过程,只能通过标志了解SBUF的发送、接收的状态,以便决定后续操作。RI(SCON.0):接收完成标志。①当SUBF从RXD接收完一个完整的数据帧时,RI=1。如果串口中断是开放的,则RI=1时会自动引发中断。用户可以通过中断服务程序将SBUF中的数据取出送累加器A。MOVA,SBUF——中断方式接收
7、数据;②也可以使用查询的方式对RI进行检测,如果RI=1则执行:MOVA,SBUF;否则等待——查询方式接收数据。TI(SCON.1):发送完成标志。当CPU执行:MOVSBUF,A后,SBUF开始通过TXD向外发送数据。当完成一帧数据的发送后,TI=1。①如果系统中断是开放的,则TI=1会自动引发中断。用户可以通过中断服务程序向SBUF输送下一个数据:MOVSBUF,A———中断方式发送数据;②也可以使用查询的方式对TI进行检测,如果TI=1则执行:MOVSBUF,A;否则等待——查询方式发送。使用查询RI、TI标志方式进行
8、发送与接收N个数据CLRSCON.TI数据送累加器A修改数据区指针movsbuf,aTI=1?N个数据发送完?YESNOYESNO发送数据的程序框图SETBSCON.RENmova,sbufRI=1?N个数据接收完?YESNOYESNOCLRSCON.RIA送数据区修改数据指