chap6MCS-51串行口

上传人:lx****y 文档编号:243009680 上传时间:2024-09-13 格式:PPT 页数:38 大小:154.50KB
返回 下载 相关 举报
chap6MCS-51串行口_第1页
第1页 / 共38页
chap6MCS-51串行口_第2页
第2页 / 共38页
chap6MCS-51串行口_第3页
第3页 / 共38页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,6.2 MCS-51串行口,6.2.0,串行通信基本知识,串行通信是指数据一位一位地按顺序传送的通信方式;,串行通信的突出优点是只需一根传输线,可大大降低硬件成本,特别适合远距离通信。,串行通信的缺点是传输速度较低;,串行通信每秒钟内能发送或接收的二进制位数称为波特率。若发送一位时间为,t,,,则波特率为,1/t,。,MCS-51,单片机内部有一个全双工串行接口,只能接收或只能发送的称为单工串行口;,既可接收又可发送,但不能同时进行的称为半双工;,能,同时,接收和发送的串行口称之为全双工串行口。,1,6.2.1 串行通信的两种基本方式,1. 异步传送方式,在异步传送方式中,字符的发送是随机进行的。因此,对于接收方来说就有一个如何判断有字符来,何时是一个新的字符开始的问题。,在异步通信时,对传送字符必须规定一定的格式。,2,一个字符在异步传送中又称为一帧数据,,一帧数据由四部分组成:,起始位、数据位、奇偶校验位和停止位。,起始位:为逻辑“,0,”,信号,占用一位,用来通知接收设备,一个新的字符开始了。,数据位:紧跟着起始位的是,5,8,位数据,数据的最低位,LSB,。,异步传送规定低位在前,高位在后。,奇偶位,:,紧跟在数据最高位,MSB,之后,占用一位,奇偶校验时,根据协议置“,1,”,或“,0,”,。,停止位:为逻辑“,1”,信号,可占用一位,也可占用两位。接收端收到停止位时,表示一帧数据结束。同时为接收下一帧数据作好准备,只要再收到一个逻辑“,0”,就是一个新字符的开始。,3,在同步通信时,在数据块开始就有,1,2,个同步字符,SYNC,来指示,一旦检测到同步字符,下面就是按顺序传送的数据块。由于数据传送时无起始位和停止位等附加位,故传送速度较高。同步传送的波特率与时钟频率是一致的。但硬件上要插入同步字符或相应的检测手段,这种方式对硬件要求较高。,2.,同步传送方式(略),4,6.2.2 MCS-51,串行口结构,1.,数据缓冲器,SBUF,串行口中有两个物理空间上各自独立的发送缓冲器和接收缓冲器。,两个缓冲器公用一个地址,99H,,,发送缓冲器只写不读,接收缓冲器只读不写。,接收缓冲器是双缓冲的,以避免在接收下一帧数据之前,,CPU,未能及时响应接收器中断,没有把上一帧数据读走而产生两帧数据重叠问题。,5,2.,串行口控制寄存器,SCON,位地址,98H,9FH,。格式如下:,SCON(,98H,) SM0,SM1,SM2 REN,TB8,RB8 TI,RI,D,0,D,7,SM0,、,SM1,:串行口方式选择位,SM2,:允许方式,2,和方式,3,多机通信控制位,REN,:允许接收控制位,TB8,:在方式,2,和方式,3,中要发送的第,9,位数据,RB8,:在方式和方式中是接收到的第,9,位数据,TI,:发送中断标志,RI,:接收中断标志,系统复位时,SCON=00000000B,6,SM0,、,SM1,:,串行口方式选择位,SM0,SM1,方式,功,能,说,明,0,0,0,移位寄存器方式(用于,I/O,扩展),0,1,1,8,位,UART,,波特率可变(,T1,溢出率,/n,),1,0,2,9,位,UART,,波特率为,fosc/64,或,fosc/32,1,1,3,9,位,UART,,波特率可变(,T1,溢出,/n,),SM2,:,允许方式,2,和方式,3,多机通信控制位。,在方式,2,或方式,3,中:,如,SM2=1,,,则接收到的第,9,位数据(,RB8,),为“,1,”,时,置位接收中断标志,RI,(,RI=1,);,如,SM2=0,,则,RB8,无论为何值,均置位,RI,。,在方式,1,时,,如,SM2=1,,,则只有在接收到有效停止位时才置位,RI,,,若没有接收到有效停止位,则,RI,清“,0,”,。,在方式,0,中,,SM2,应为“,0,”,。,7,REN,:,允许接收控制位。由软件置“,1,”时,允许接收,置“,0,”时,禁止接收。,TB8,:,在方式,2,和方式,3,中要发送的第,9,位数据。需要时由软件置位或复位。,RB8,:,在方式和方式中是接收到的第,9,位数据。在方式,1,时,如,SM2=0,,,RB8,是接收到的停止位。在方式,0,中,不使用,RB8,。,TI,:,发送中断标志。在方式,0,串行发送第位结束时由硬件置“,1,”,或在其它方式中串行发送停止位的开始时置“,1,”。必须由软件清“,0,”。,RI,:,接收中断标志。在方式,0,接收到第,8,位结束时由硬件置“,1,”,或其它方式接收到停止位的中间时置“,1,”。必须由软件清“,0,”。,8,3.,特殊功能寄存器,PCON,其字节地址,97H,,,没有位寻址功能。,与串行口有关的只有,PCON,的最高位。,SMOD,:,波特率选择位。当,SMOD=1,时,波特率加倍。,PCON,(97H),SMOD,D0,D7,书上给出的地址87H是错误的,应当是97H,系统复位时,PCON=0,0000B,9,6.2.3 串行口工作方式,1.,方式,0 (,移位寄存器方式,),(0)概述:,方式,0,为移位寄存器输入,/,输出方式,可外接移位寄存器扩展,I/O,口,也可接同步输入,/,输出设备。,按方式,0,工作时 ,波特率是固定的,为,fosc/12,。,无论是输入还是输出,数据的传送均通过引脚,RXD,(,P3.0,),端,移位同步脉冲由,TXD,(,P3.1,),输出。,发送,/,接收一帧数据为,8,位二进制数,低位(,LSB,),在先,高位(,MSB,),在后。,10,(,1,)方式,0,发送,在方式,0,状态,当一个数据写入发送缓冲器,SBUF,(99H),时,串行口即将,8,位数据以振荡频率的十二分之一的波特率,将数据从,RXD,端串行移位输出;,TXD,端输出移位同步信号;,8,位数据发送完时,中断标志,TI,置“,1,”,。,(,2,)方式,0,接收,当串行口定义为方式,0,并置“,1,”,REN,后,便启动串行口接收数据;,RXD,为数据输入端,,TXD,为同步移位信号输出端,当接收器接收满,8,位数据时,置“,1,”,中断标志,RI,。,11,串入并出,并入串出,12,补充:用74LS164扩展串行口,74LS164是串行移位寄存器,常用于串、并转换。,引脚说明:,A,、,B,(,1,、,2,),串行数据输入,通常并联在一起使用;,CLK,(,8,),时钟脉冲引脚,时钟的上升沿移位锁存;,MR,(,9,),清,0,所有输出端;,Q0Q7,锁存输出端;,用74LS164通过串并转换扩展输出电路,具有节约端口、灵活方便的特点。,13,补充示例:用74LS164扩展LED数码管显示电路,14,补充示例 显示子程序设计,要求:,显示的内容是,0F,的,16,进制数,;,显示缓冲区在片内,RAM,从,48H,开始的连续,6,个存储单元,;,用标志位,F0,表示是否显示小数点,:,F0=1,显示小数点,F0=0,不显示小数点,15,;显示子程序,影响ACC、R0、4EH、4FH单元,LEDD:MOV 4EH,#6;初始化字循环计数器,MOV R0,#48H;初始化显示缓冲区指针,MOV DPTR,#DTAB;8段数码管的段码转换表的首地址,LEDD1:MOV A,R0;取1个显示码,MOVC A,A+DPTR;查表转换,JNB F0,LEDD3;显示小数点吗?,CLR ACC.7;置小数点段,LEDD3:MOV 4FH,#08H;初始化位循环计数器,LEDD2:RRC A;左移1位于C标志位,MOV P3.0,C;C送串行口的数据引脚,CLR P3.1;在CLK时钟脚,SETB P3.1;送1个负脉冲,DJNZ 4FH,LEDD2;循环移位,INC R0;显示缓冲区指针加 1,DJNZ 4EH,LEDD1;显示下一个字,RET,DTAB: DB 0C0H,0F9FH,0A4H,0B0H,99H,92H,82H,0F8H ;07的段码,DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH ;8F的段码,MOVSCON,#0,MOVSBUF,A,JNBTI ,$,16,2.,方式,1,串行口定义为方式,1,时,传送一帧数据为,10,位,:,其中,1,位起始位,( 0 ),、,8,位数据位(先低位后高位)、,1,位停止位,( 1 ),。,方式,1,的波特率可变,波特率,=2,SMOD,/32,(,T1,的溢出率)。,(,1,)方式,1,发送,CPU,执行一条写入发送数据缓冲,SBUF,的指令(例如,,MOV SBUF,,,A,),数据字节写入,SBUF,后,便启动串行口发送器发送。,方式,1,开始发送时,先把起始位,(0),输出到,TXD,,,一位时间后,数据在移位脉冲的作用下由,TXD,端输出,最后送出停止位,(1),一个字节发送结束。,当发送完数据后,中断标志,TI,置“”。,17,(,2,)方式,1,接收,在,REN,置“,1,”,后,就允许接收器接收。方式,1,接收时,数据从,RXD,端输入。,接收器以波特率,16,倍的速率采样,RXD,端的电平。当采样到,RXD,引脚上“,1,”,到“,0,”,的跳变时启动接收器接收并复位内部的,16,分频计数器以便实现同步。,计数器的,16,个状态把一位的时间分成,16,等份,在每位时间的第,7,、,8,和,9,计数状态,位检测器采样,RXD,的值,接收的值是,3,次采样中取至少二次相同的值(用,3,取,2,举手表决),以排除噪声干扰。,若起始位接收到的值不是“,0,”,,则起始位无效,复位接收电路。在检测到起始位有效时,则移入输入移位寄存器,开始接收本帧其余数据信息。,当,RI=0,,,同时接收到停止位为“,1,”,(或,SM2=0,),时,停止位进入,RB8,,,置“,1,”,中断标志,RI,。,若以上二个条件任一条件不满足,所有接收信息将丢失,因此中断标志,RI,必须在中断服务程序中由用户清“,0,”,。通常串行口以方式,1,工作时,,SM2,置为“,0,”,。,18,3.,方式,2,串行口定义为方式,2,时,串行口被定义为,9,位异步通信接口;,传送一帧信息为,11,位,其中,1,位起始位、,8,位数据位、,1,位附加(可程控为“,1,”,或“,0,”,的)的第,9,位数据位、,1,位停止位。,方式,2,的波特率是固定的,波特率为,2,SMOD,/64,fosc,。,(,1,),方式,2,发送,在方式发送时,数据由,TXD,端输出。,附加的第,9,位数据是,SCON,中的,TB8,,,可由软件置位或清零,作多机通信中的地址、数据标志,也可作数据的奇偶校验位。,CPU,执行一条写入发送缓冲器指令(例如,MOV SBUF,,,A,),,就启动发送器发送。,发送完一帧信息,置“,1,”,TI,中断标志。,19,(,2,)方式,2,接收,REN,被置“,1,”,以后,接收器开始以波特率,16,倍的速率采样,RXD,电平,检测到,RXD,端由高到低的负跳变时,启动接收器接收,复位内部,16,分频计数器,以实现同步。,当采样到,RXD,端从“,1”,到“,0”,的跳变,并确认起始位有效后,则开始接收本帧其余信息。接收完一帧信息后,在,RI=0,,,SM2=0,(或,SM2=1,接收到的第,9,位数据为“,1”,)时,,8,位数据装入接收缓冲器,第,9,位数据装入,SCON,中的,RB8,,,并置“,1”,中断标志,RI,,,若不满足上述二个条件,接收到的信息将丢失。,20,4.,方式,3,串行口被定义为方式时,为波特率可变的位异步通信方式。除了波特率外,方式与方式类同。,方式波特率,=2,SMOD,/32,(,T1,溢出率)。,21,6.2.4,波特率的设计,根据串行口的四种工作方式可知:,(,1,)方式,0,为移位寄存器方式,波特率是固定的;,方式,0,波特率,fosc/12,;,(,2,)方式,2,为,9,位,UART,,波特率有两种选择;,方式,2,波特率,= fosc,2,SMOD,/64,。,波特率仅与,PCON,中,SMOD,的值有关:,当,SMOD = 0,时,波特率为,fosc/64,;,当,SMOD = 1,时,波特率为,fosc/32,。,22,(,3,)方式,1,和方式,3,的波特率可变,,由定时器,T1,的溢出速率控制。,波特率,=,(,T1,溢出率,),2,SMOD,/32,。,其中,当,SMOD = 0,时,波特率为,(,T1,溢出率,),1/32,当,SMOD = 1,时,,波特率,=,(,T1,溢出率,),1/16,从以上分析可知,在串行口工作在方式,1,和方式,3,时,其波特率的变化与,T1,的溢出率有关。,23,(,4,)定时器,T1,作波特率发生器,当,C/T= 0,时,,T1,被选择为定时器方式。,T1,溢出率,= fosc/12,(,2,K,初值,),计数速度为,fosc/12,,即每个机器周期计数一次。,在串行通信时,定时器,T1,作波特率发生器,经常采用,8,位自动装载方式(方式,2,),这样不但操作方便,也可避免重装时间常数带来的定时误差。,T1,作波特率发生器时,,T0,可使用定时器方式,3,,这时,T1,作波特率发生器,定时器,T0,可拆为两个,8,位定时,/,计数器用。,波特率,= 2,SMOD,/32,(T1,溢出率,) = 2,SMOD,fosc/ 32,12(2,K,初值,),24,波特率,串行口方式,1.3,情况,Fosc/MHz,SMOD,定,时,器,1,C/T,模,式,重,装,载,值,62.5K,12,1,0,2,FFH,19.2K,11.059,1,0,2,FDH,9.6K,11.059,0,0,2,FDH,4.8K,11.059,0,0,2,FAH,2.4K,11.059,0,0,2,F4H,1.2K,11.059,0,0,2,E8H,137.5K,11.986,0,0,2,1DH,110,6,0,0,2,72H,110,12,0,0,1,FEEBH,表6-4 定时器1产生的常用波特率,25,例,6-7,把内部,RAM 40H,5FH,单元中的,ASCII,码,在最高位,D7,加上奇偶校验位后由甲机发送到乙机,波特率为,1.2K,,晶振,fosc = 11.059MHz,。,(,1,)设置甲机为串行方式,1,发送状态,,SCON,40H,;乙机为串行方式,1,接收状态,,SCON,50H,。,SCON,(,2,)甲乙机用定时器,T1,工作在方式,2,波特率发生器,波特率为,1.2K,,当,fosc = 11.059MHz,时,查表,6-4,重装初值为,E8H,。定时器,T1,方式字,TMOD,20H,。,TMOD,26,甲机软件编程:,MOVTMOD,#20H;定时器T1为方式2,MOVTL1,#0E8H;,MOVTH1,#0E8H;赋初值,SETBTR1;启动T1,MOVSCON,#40H;串行口方式1,MOVR0,#40H;R0作指针,MOVR1,#32;发送32个字节,NEXT:MOVA,R0;取ASCII码,LCALLSOUT;转发送子程序,INCR0;修改指针,DJNZR1,NEXT;未发送完则继续,SOUT:MOV C,P;,CPLC;,MOVAcc.7,C;插入奇校验位,MOVSBUF,A;发送,JNBTI,$;等发送中断标志,CLRTI;允许再发送,RET,27,乙机软件:,(设乙机接收到的32个字节存放在60H7FH单元中),MOVTMOD,#20H;,MOVTL1,#0E8H;,MOVTH1,#0E8H;,SETBTR1;,MOVR0,#60H;ASCII码首址指针,MOVR1,#32;接收32个字节,NEXT:LCALLSIN;转接收子程序,JNCERR;若“1”的个数为偶则出错,MOVR0,A;接收的字符存入缓冲区,DJNZR1,NEXT;未完则继续,SIN:MOVSCON,#50H;启动串行口接收,JNBRI,$;等接收中断标志,MOVA,SBUF;接收数据送A,MOVC,P;C(P),ANLA,#7FH;甩掉奇偶位,RET,ERR: ,28,例 利用MCS8051得串行口实现单片机之间的多 机通讯,采用主从式结构构成多机系统,减轻主机的工作负担,构成廉价的分布式多机系统。,主机与从机可以双向通信,从机之间只有通过主机才能通信。,如图,6-16,串行口工作于方式,2,或方式,3,时,,数据帧的第,9,位是可编程位,可利用程控,TB8,的状态来灵活改变数据帧的第,9,位:,当接收机的,SM2=1,时仅接收地址,只有接收到的,RB8=1,,,才能置位,RI,,,接收数据才有效;,当接收机,SM2=0,时,可以与主机进行双向通讯,无论收到的,RB8,是“,0,”,还是“,1,”,都能置位,RI,,,接收到的数据有效。利用这种特点可高效率地实现多机通信。,29,TXD RXD,8051,0#,从机,TXD RXD,8051,1#,从机,TXD RXD,8051,n,#,从机,TXD,RXD,8051,主机,图,6-16,主从式结构的多机系统,30,联络协议设计,主机协议,主机通过发送地址与从机建立联系;,地址帧以第九位为“,1”,来标识,数据帧以第九位为“,0”,来标识;,主机发送地址后等待从机回应相同的地址,当接收到回应地址即可开始数据的传送;,传输协议可以自己定义;,31,从机协议,所有从机在没有与主机建立起联系之前均处于,SM2,置“,1,”,的地址接收状态,这样,在没有与主机建立起联系之前,每台从机只接受地址帧,。,从机接收到地址后,判断当前主机发送的地址是否是本机的地址。是,则以相同的地址回应,并将,SM2,置“,0,”,,,等待数据的接收;若不是本机的地址则丢弃不予理睬。,传输协议可以自己定义。,32,从机,保持SM2=1接收主机数据信号,第9位=0,不能激活RI,数据无效,中断服务程序中识别地址信号是否与本从机地址号相同,设置方式2或方式3,置SM2=1,N,Y,置SM2=0,接收主机数据信号(第9位=0)可置RI=1,数据接收有效,接收主机地址帧,(第9位为1时RI=1产生中断),发送从机地址信号,设置方式2或方式3,发送数据信号,.,.,.,置TB8=0,置TB8=1,主机,.,.,.,33,6-1 MCS-51,系列单片机内部有几个定时,/,计数器?它们由哪些面向用户的特殊功能寄存器组成?,6-3,定时,/,计数器方式寄存器,TMOD,各位有何控制功能,?,6-4,定时,/,计数器控制寄存器,TCON,的各位有何意义,?,6-6,为什么要对定时,/,计数器初始化?初始化的步骤是什么,?,6-8 在晶振主频为12MHz时,定时最长时间是多少?若要定时1分钟,最简洁的方法是什么?试画出硬件连线图并编程。,习题与实验,34,6-10,何谓单工串行口、半双工串行口、全双工串行口,?,6-12 MCS-51,单片机串行口由哪些面向用户的特殊功能寄存器组成?它们各有什么作用,?,6-13 MCS-51,单片机串行口有几种工作方式?如何选择与设定,?,6-14 MCS-51,单片机串行口的四种工作方式各自的功能是什么?如何应用,?,6-15,试述串行口方式,0,和方式,1,发送与接收的工作过程。,35,6-16,哪些特殊功能寄存器与,MCS-51,中断系统有关?各具有什么功能,?,6-19 MCS-51,有几个中断优先级?如何设置之?当两级中断时,,MCS-51,内部如何管理中断嵌套,?,6-21 MCS-51,中断响应的条件是什么?当某中断暂时受阻时,,CPU,是否放弃该中断请求,?,6-22,试述中断响应的过程,?,6-23,外部中断有几种触发方式?如何选择?,MCS-51,中断系统对外部中断信号有何要求,?,6-25 MCS-51的中断处理程序能否存放在64K程序存贮器的任意区域?如何实现?,36,6-29,试编写一段中断的初始化程序,使之允许、,T0,、串行口中断,且使,T0,中断为高优先级中断。,6-30 在MCS-51中断系统中,有几个中断请求标志位?请指出相应标志的代号、位地址?并说明它们在什么情况下被置位和复位?哪些中断标志可以随着中断被响应而自动清除,哪些中断需要用户来清除?清除的方法是什么?,6-31 阅读T0、T1初始化程序,回答问题,。,37,(实验),6-7,在晶振主频为,12MHz,时,要求,P1.0,输出周期为,1ms,对称方波;要求,P1.1,输出周期为,2ms,不对称方波,占空比为,1,3,(高电平短,低电平长),试用定时器方式,1,编程。,实验要求:,编程在5103H实验箱上实现题目的要求,并用实验箱自身的逻辑示波器观察。,38,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!