您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > 7章-51单片机串行口
1《微型计算机原理及接口技术》授课专业:自动化授课学时:60学时2第七章MCS-51串行口7.1串行口结构17.2串行口工作方式23§7.1串行口结构2学习内容串行口结构1串行通信基本概念4通信的两种基本方式串行通信的分类波特率的概念串行通信的制式一、基本概念5通信:是计算机与外界的信息交换。两种基本方式并行通信:所传送数据的各位同时发送或接收,信息传输线的位数与数据的位数相等。串行通信:所传送数据的各位按顺序一位一位地发送或接收,先传送低位后送高位。1、通信的两种基本方式6速度快,适合近距离传输;但占用数据线多,线路复杂,成本高。线路简单,成本低,适合远距离通信;但传输速度慢。7按照串行数据的时钟控制方式,串行通信可分为:异步通信同步通信①异步通信:接收器和发射器有各自的时钟,它们的工作非同步;异步通信用一帧来表示一个字符。2、串行通信的分类8…P1D0D1D2D3D4D5D6D7P10第n个字符(一帧)n-1n+10D0…起始位数据位(5~8位)校验位停止位一帧信息包括起始位、数据位、奇偶校验位和停止位四部分。9②同步通信:接收器和发射器由同一时钟源控制;同步传输方式去掉了异步传输的起始位和停止位,只在传输数据块时先送出一个同步标志即可。比较:同步传输方式比异步传输方式速度快;同步传输方式必须用一个时钟来协调收发器的工作,所以它的硬件设备复杂。10波特率:每秒钟所传送的二进制数码的位数。单位:位/秒(bps)波特率反映了串行通信的速率。在异步串行通信中,波特率为每秒传送的字符数和每个字符的位数的乘积。3、波特率的概念11[例7-1]:数据传送的速率为120字符/秒,而每个字符又包含10位二进制数,计算波特率大小和每位传送时间。解:波特率=120字符/秒×10位/字符=1200位/秒=1200bps。每一位的传送时间为波特率的倒数:T=1/1200=0.833ms。3、波特率的概念12在串行通信中,根据数据在两个站点之间的传送方向可以分三种制式:单工半双工全双工4、串行通信的制式13①单工制式②半双工制式数据可以双向传送,但不能同时发送和接收,要通过换向器转换方向。14③全双工制式通信双方用两个独立的收发器单独连接,可以同时发送和接收数据,因而提高了速度。15二、串行口结构1、MSC-51串行口特点:功能很强的全双工串行口,可同时接收和发送数据;接收、发送数据均可工作在查询方式或中断方式;能方便地与其他计算机或外设实现双机、多机通信。16172、串行口数据缓冲器SBUFSBUF是两个物理上独立的接收、发送寄存器。接收SBUF用于存放接收到的数据,只能读出、不能写入。发送SBUF用于存放欲发送的数据,只能写入,不能读出。18注意:串行口可同时发送和接收数据,两个缓冲器公用一个地址99H,通过对SBUF的读/写指令来区别:CPU读SBUF时:MOVA,SBUF;就是读取接收SBUF的内容;CPU写SBUF时:MOVSBUF,A;就是修改发送SBUF的内容,同时启动数据串行发送。193、串行口的控制寄存器MCS-51串行口是一个可编程接口,涉及两个特殊功能寄存器:串行口控制寄存器SCON电源控制寄存器PCON20①SCON(98H,可位寻址)功能:串行通信的方式选择,接受和发送控制及串行口的中断标志;格式:SM0SM1SM2RENTB8RB8TIRI方式选择多机控制串行接收允许/禁止欲发的第九位收到的第九位发送中断标志位接收中断标志位21SM0SM1工作方式功能说明波特率00方式0同步移位寄存器fosc/1201方式18位UART可变10方式29位UARTfosc/64或fosc/3211方式39位UART可变SM0、SM1:串行口工作方式控制位。SM2:多机通信控制位。用于方式2或方式3中。22•当串行口以方式2或方式3接收时,如果SM2=1,只有当接收到的第9位数据(RB8)为“1”时,才将接收到的前8位数据送入SBUF,并置“1”RI,产生中断请求;当接收到的第9位数据(RB8)为“0”时,则将接收到的前8位数据丢弃。如果SM2=0,则不论第9位数据是“1”还是“0”,都将前8位数据送入SBUF中,并置“1”RI,产生中断请求。•方式1时,如果SM2=1,则只有收到停止位时才会激活RI。•方式0时,SM2必须为0。23REN:串行接收允许位。0---禁止接收,1---允许接收TB8:发送数据D8位,一般作为奇偶校验位。在方式2、3中,可以在多机通信中作为区分地址帧或数据帧的标志位,1为地址,0为数据。RB8:接收数据D8位,一般作为奇偶校验位。在方式2、3中,多机通信中还可根据RB8位的状态对接收数据进行某种控制。24TI:发送中断标志位。发送前必须用软件清零,发送过程中TI保持零电平;发送完一帧数据后,由硬件自动置“1”。RI:接收中断标志位。接收前必须用软件清零,接收过程中RI保持零电平;接收完一帧数据后由片内硬件自动置“1”。25RXD8051主机TXDTXDTXDRXDRXDRXD8051805180510#从机1#从机2#从机TXDSM2:多机通信控制位,仅用于方式2和方式3,此时,主机设置SM2=1,以发送第九位TB8为1作为地址帧寻找从机,以TB8为0作为数据帧进行通信。从机初始化时设置SM2=1,若接收到的第九位数据RB8=0,不置位RI,即不引起接收中断,亦既不接收数据帧,继续监听,如接收到的RB8=1,置位RI,引起接收中断,中断程序中判断所接收的地址帧和本机的地址是否匹配。若不匹配,维持SM2=1,继续监听,若符合,则清SM2=0,以便接收TB8=0的数据帧。26主/从多机通信的过程如下:1、使所有的从机的SM2=1,以便接收主机发来的地址。2、主机发出一帧地址信息,其中包括8位需要与之通信的从机地址,第9位为1。3、所有从机接收到地址帧后,各自将接收到的地址与本机地址相比较,对于地址相同的从机,使SM2位清0以接收主机随后发来的数据信息,对于地址不符合的从机,仍保持SM2=1的状态,对主机随后发来的数据不予理睬,直至发送新的地址帧。4、主机给已被寻址的从机发送控制指令和数据(数据帧的第9位为0)。5、确认数据传送结束后,从机把SM2重新置1,恢复初始状态。27SMODXXXXXXX②PCON(97H,不可位寻址)SMOD:波特率加倍位。在计算串行方式1、2、3的波特率时,SMOD=0——波特率不增倍;SMOD=1——波特率增大一倍。28§7.2串行口工作方式2学习内容波特率计算1工作方式29MCS-51单片机的串行通信有四种工作方式:1、工作方式0:移位寄存器方式SM0、SM1=00,同步通信;数据格式为8位,低位在前,高位在后;RXD为串行数据的发送端或接收端;TXD输出同步脉冲;每一个机器周期从RXD上发送或接收一位数据,波特率固定。一、串行口工作方式30应用:移位寄位器方式多用于接口的扩展。ABCP74LS164Q0Q7RXDTXD8051RXDTXD8051Q7CP74LS165D0D7输出方式输入方式通过外接串入并出移位寄存器扩展输出接口。通过外接并入串出移位寄存器扩展输入接口。312、工作方式1:8位异步通信接口方式SM0、SM1=01;RXD为接收端,TXD为发送端;每帧数据由10位构成:1个起始位“0”,8个数据位和1个停止位“1”;其中起始位和停止位在发送时是自动插入的;波特率可变,由T1的溢出率和SMOD决定。323、工作方式2/3:9位异步通信接口方式SM0、SM1=10/11;RXD为接收端,TXD为发送端;每帧数据由11位构成:1个起始位“0”,9个数据位和1个停止位“1”;其中起始位和停止位在发送时是自动插入的;方式2的波特率固定,方式3的波特率可变。33波特率发生器可以有两种选择:定时器T1作波特率发生器,改变计数初值就可以改变串行通信的速率,称为可变波特率;以内部时钟的分频器作波特率发生器,因内部时钟频率一定,称为固定波特率。二、波特率计算341、方式0和方式2:波特率固定方式0中,波特率为:fosc/12;方式2中,波特率为:注意:当SMOD=0时,波特率是fosc/64;当SMOD=1时,波特率是fosc/32。oscSMODf642二、波特率计算352、方式1和方式3:波特率可变注意:T1的溢出率为每秒溢出的次数,取决于T1的计数速率和设置的初值。实际应用中,T1作为波特率发生器时,常用方式2,即自动重载的8位定时器。TL1做计数用,TH1做初值寄存器。)256(123221322xfToscSMODSMOD溢出率=波特率=36设初值为x则每过(28-x)个机器周期,定时器溢出一次。溢出周期为:(28-x)Tcy=(256-x)×12/fosc溢出率是溢出周期的倒数:T1溢出率=fosc/(12×(256-x))根据给定的波特率,可以计算T1的计数初值x。波特率=12322256oscSMODfx37波特率(方式1、3)fosc=6Mfosc=12Mfosc=11.059MSMODT1方式初值SMODT1方式初值SMODT1方式初值62.5k12FFH19.2k12FDH9.6k02FDH4.8k12F3H02FAH2.4k12F3H12F3H02F4H1.2k12E6H02E6H02E8H60012CCH02CCH02D0H30002CCH0298H02A0H137.5121DH021DH022EH1100272H01FEEBH01FEFFH常用波特率一览表38[例7-2]:设51单片机串行口工作于方式1,晶振频率为12MHz,定时器T1工作于模式2作为波特率发生器,要求波特率为1200bit/s,SMOD=0,试计算T1的初值和波特率误差。答案:T1初值:x=256-2SMOD×fosc/(32×12×波特率)=256-26.04=230=E6H实际波特率=2SMOD×fosc/(32×12×(256-230))=1201.9b/s=1202bps误差:2bps39一、填空题1、波特率是指:。2、串行通信要求互相通信的两机必须保持波特率。3、串行通信按照数据传送方向可分为:、、3种制式。4、多机通信时,主机向从机发送的信息分为地址信息和数据信息,靠第9位可编程TB8标志来区分,当设置TB8=1时,表示将要发出的信息是;当设置TB8=0时,表示将要发出的信息是。5、多机通信开始时,一般都先由主机发送地址,各从机将收到的地址与本机地址比较,如果相同,则设置准备接收数据。习题406、从机为了只接收主机发送的地址帧,而对数据帧不予理睬,则应置。二、选择:1、串行通信特点为(),并行通信特点为()A、传送距离长,传送速度相对快;B、传送距离短,传送速度相对快;C、传送距离长,传送速度相对慢;D、传送距离短,传送速度相对慢;412、串口工作模式中模式0具有()()()属性;模式1具有()()()属性;模式2具有()()()属性;模式3具有()()()属性。A、异步通信方式;B、同步通信方式;C、帧格式10位;D、帧格式11位;E、帧格式8位;F、帧格式9位G、波特率固定为fosc/12;H、波特率为fosc/n(n=64或32)I、波特率为T1溢出率/n(n=32或16)三、简答:1、串行通信按照数据传送方向有哪几种方式?2、解释波特率的含义,串行通信对波特率有什么基本要求?3、什么叫多机通信?与双机通信有什么区别?424、简述多机通信原理及通信过程?四、判断对错1、串行通信数据中,一个字节的比特位发出的顺序是:高位在前,低位在后。()2、51系列单片机异步串行通信数据的起始位可以是高电平。()3、51系列单片机异步串行通信的发送方连续发送数据时可以不查询TI位状态。()4、51系列单片机异步串行通信的接收方连续接收数据时可以不查询RI位状态。()43五、计算1、设8031单片机串行口工作于方式1
本文标题:7章-51单片机串行口
链接地址:https://www.777doc.com/doc-6219005 .html