东北电力大学单片机课件第8章_第1页
东北电力大学单片机课件第8章_第2页
东北电力大学单片机课件第8章_第3页
东北电力大学单片机课件第8章_第4页
东北电力大学单片机课件第8章_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《单片机原理及应用》授课专业:机械09级授课学时:72学时1§8.1串行通信的基本概念§8.2MCS-51的串行口§8.3串行口工作方式及波特率设置第八章MCS-51串行接口

2§8.1串行通信的基本概念一、通信的两种基本方式二、串行通信的分类三、波特率四、串行通信的制式3一、通信的两种基本方式1、通信:是计算机与外界的信息交换。2、基本方式:两种并行通信:所传送数据的各位同时发送或接收,信息传输线的位数与数据的位数相等。特点:速度快,适合近距离传输,如计算机并口,打印机。但占用数据线多,线路复杂;成本高。串行通信:所传送数据的各位按顺序一位一位地发送或接收,先传送低位后送高位。 特点:线路简单,只要一对传输线就可以实现通信;成本低;适合远距离通信。但传输速度慢。45二、串行通信的分类按照串行数据的时钟控制方式,串行通信可分为同步通信和异步通信。1、异步通信:接收器和发射器有各自的时钟,它们的工作非同步,异步通信用一帧来表示一个字符,一帧信息包括起始位、数据位、奇偶校验位和停止位四部分,其格式为:…P1D0D1D2D3D4D5D6D7P10第n个字符(一帧)n-1n+10D0…起始位数据位(5~8位)校验位停止位62、同步通信:接收器和发射器由同一时钟源控制。同步传输方式去掉了异步传输的起始位和停止位,只在传输数据块时先送出一个同步标志即可。注:同步传输方式比异步传输方式速度快,但它必须用一个时钟来协调收发器的工作,所以它的硬件设备复杂。7三、波特率在串行通信中有个重要的指标叫波特率(又称比特数),它被定义为每秒钟所传送的二进制数码的位数,以位/秒(bps)为单位。波特率反映了串行通信的速率。在异步通信中,波特率为每秒传送的字符数和每个字符的位数的乘积。例如:数据传送的速率为120字符/秒,而每个字符又包含10位二进制数(1位起始位、7位数据位、1位奇偶校验位、1位停止位),则波特率为:

120字符/秒×10位/字符=1200位/秒=1200bps。于是每一位的传送时间为波特率的倒数:T=1/1200=0.833ms。一般异步通信的波特率在50~9600bps之间,而同步通信的波特率可达56000bps或更高。

8四、串行通信的制式在串行通信中,根据数据在两个站点之间的传送方向可以分:单工、半双工、全双工三种制式。1.单工制式:一端是发送端,另外一端是接收端:

2.半双工制式:每端口有一个发送器和一个接收器,通过开关连接在线路上,数据可以双向传送,但不能同时发送和接收.

要通过换向器转换方向。9

3.全双工制式:通信双方用两个独立的收发器单独连接,可以同时发送和接收数据,因而提高了速度。

10§8.2MCS-51的串行口

MSC-51单片机内有一个功能很强的全双工串行口,可同时接收和发送数据。接收、发送数据均可工作在查询方式或中断方式,能方便地与其他计算机或外设实现双机、多机通信。

一、MCS-51串行口结构

11二、串行口数据缓冲器SBUFSBUF是两个物理上独立的接收、发送寄存器。接收SBUF:用于存放接收到的数据,只能读出、不能写入。发送SBUF:用于存放欲发送的数据,只能写入,不能读出。串行口可同时发送和接收数据。两个缓冲器公用一个地址99H(不可位寻址),通过对SBUF的读/写指令来区别是对接收缓冲器还是发送缓冲器进行操作。CPU读SBUF时MOVA,SBUF,就是读取接收SBUF的内容;写SBUF时MOVSBUF,A,就是修改发送SBUF的内容,同时启动数据串行发送。12三、串行口的控制寄存器

51单片机串行口是一个可编程接口,有两个特殊功能寄存器:串行口控制寄存器SCON电源控制寄存器PCON1、SCON(98H,可位寻址)串行通信的方式选择,接受和发送控制及串行口的中断标志均由专用寄存器SCON控制和指示,其格式如下:SM0SM1SM2RENTB8RB8TIRI方式选择多机控制串行接收允许/禁止欲发的第九位收到的第九位发送中断有/无接收中断有/无13SM0SM1工作方式功能说明波特率00方式0同步移位寄存器fosc/1201方式18位UART可变10方式29位UARTfosc/64或fosc/3211方式39位UART可变SM0、SM1:

串行口工作方式控制位。SM2:多机通信控制位。用于方式2或方式3中。14当串行口以方式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。15REN:串行接收允许位。

0---禁止接收,1---允许接收TB8:

发送数据D8位,在方式2、3中,TB8是要发送的第9位数据。一般作为奇偶校验位,也可以在多机通信中作为区分地址帧或数据帧的标志位,1为地址,0为数据。方式0不使用TB8。RB8:接收数据D8位,在方式2、3中,RB8是接受到的第9位数据,故可根据RB8位的状态对接收数据进行某种控制。如奇偶校验,或多机通信中地址的识别或数据的接收,1为地址,0为数据。方式1中,若SM2=0,RB8中存放的是接收到的停止位。方式0不使用RB8。16TI:

发送中断标志位。发送前必须用软件清零,发送过程中TI保持零电平,发送完一帧数据后,由硬件自动置“1”,如果再发送,必须用软件再清零。RI:

接收中断标志位。接收前,必须用软件清零,接收过程中RI保持零电平,接收完一帧数据后由片内硬件自动置“1”。如果再接收必须用软件清零。17SM2:多机通信控制位,仅用于方式2和方式3,此时,主机设置SM2=1,以发送第九位TB8为1作为地址帧寻找从机,以TB8为0作为数据帧进行通信。从机初始化时设置SM2=1,若接收到的第九位数据RB8=0,不置位RI,即不引起接收中断,亦既不接收数据帧,继续监听,如接收到的RB8=1,置位RI,引起接收中断,中断程序中判断所接收的地址帧和本机的地址是否匹配。若不匹配,维持SM2=1,继续监听,若符合,则清SM2=0,以便接收TB8=0的数据帧。18主/从多机通信的过程如下:1、使所有的从机的SM2=1,以便接收主机发来的地址。2、主机发出一帧地址信息,其中包括8位需要与之通信的从机地址,第9位为1。3、所有从机接收到地址帧后,各自将接收到的地址与本机地址相比较,对于地址相同的从机,使SM2位清0以接收主机随后发来的数据信息,对于地址不符合的从机,仍保持SM2=1的状态,对主机随后发来的数据不予理睬,直至发送新的地址帧。4、主机给已被寻址的从机发送控制指令和数据(数据帧的第9位为0)。5、确认数据传送结束后,从机把SM2重新置1,恢复初始状态。19SMODXXXXXXX2、PCON(97H,不可位寻址)

PCON的格式如下图所示,串行通信只用其中的最高位SMOD。SMOD:波特率加倍位。在计算串行方式1、2、3的波特率时,

SMOD=0——波特率不增倍;SMOD=1——波特率增大一倍。

20§8.3串行口工作方式及波特率设置一、根据串行通信数据格式和波特率的不同,51系列单片机的串行通信有四种工作方式:1、工作方式0:移位寄存器方式,SM0、SM1=00,同步通信方式0的数据格式为8位,低位在前,高位在后。RXD为串行数据的发送端或接收端,TXD输出同步脉冲,每一个机器周期从RXD上发送或接收一位数据。波特率固定为fosc/12(fosc为单片机晶振频率)。21注意:移位寄位器方式多用于接口的扩展,当用单片机构成系统时,往往感到并行口不够用,此时可通过外接串入并出移位寄存器扩展输出接口;通过外接并入串出移位寄存器扩展输入接口。ABCP74LS164Q0Q7

RXDTXD8051

RXDTXD8051Q7CP74LS165D0D7

输出方式输入方式22方式0发送:数据写入SBUF后,单片机会立即自动启动发送:TXD引脚每隔一个机器周期发出一个移位脉冲;SBUF中的数据在移位脉冲下从RXD引脚串行输出,低位在先;当SBUF中的数据全部移出后,单片机自动将TI置1;要再次发送数据必须清除TI。方式0接收:当REN=1,以及接收中断标志RI=0,则启动接收,移位脉冲仍从TXD端输出,数据从RXD端输入,当一个字节数据输入完毕时,接收中断标志RI置1。23注意:方式0下,SCON中的TB8、RB8位没有用到,发送或接收完8位数据由硬件置“1”TI或RI,CPU响应中断。TI或RI须由用户软件清“0”,可用如下指令:

CLRTI或CLRRI 方式0时,SM2位必须为0。242、工作方式1:8位异步通信接口方式,SM0、SM1=01RXD为接收端,TXD为发送端。每帧数据由1个起始位“0”,8个数据位和1个停止位“1”,共10位构成。其中起始位和停止位在发送时是自动插入的。波特率可变,由T1的溢出率和SMOD决定为:25方式1发送:①启动发送:执行一条写SBUF指令即启动发送。②发送一位的时间:由选定的波特率决定。③发送过程:在每个移位脉冲下先起始位0、然后将SBUF中8位数据(低位在前)、停止位1从TXD脚发出。发送结束后,置位发送中断标志TI,申请中断。方式1接收:

REN=1且RI=0时,允许接收。①起始位判断:以选定波特率的16倍速率采样RXD端:当连续三次采样中(第7、8、9个脉冲时采样)有两次是1时,则起始位无效,复位接收电路。当连续三次采样中有两次是0时,确认为起始位,此时开始接收本帧其他各位数据。26②

数据接收:每来一个移位脉冲,RXD引脚移入一位数据,一帧数据接收完后,RI置1可申请中断。移位脉冲的频率由选定波特率决定。③

数据保留条件RI=0、SM2=0RI=0、SM2=1、停止位为1符合以上两组条件的则将数据保留在SBUF中,停止位装入RB8并置位RI,向CPU申请中断。RI=0、SM2=1、停止位为0,RI=1符号以上两组条件的则将收到的数据丢弃,重新检测RXD端准备下次接收。273、工作方式2/3:9位异步通信接口方式,SM0、SM1=10/11RXD为接收端,TXD为发送端。每帧数据由1个起始位“0”,9个数据位和1个停止位“1”,共11位构成。其中起始位和停止位在发送时是自动插入的。方式2的波特率固定为:方式3的波特率可变:28注意:方式2/3发送与接收操作同方式1,所不同的仅是对第9位数据的处理上。发送时,第9位数据由SCON中的TB8位提供。接收时,保留数据条件为:RI=0、SM2=0RI=0、SM2=1、接收到的第9位数据为1符合以上两组条件的则将前8位数据保留在SBUF中,第9位数据装入RB8并置位RI,向CPU申请中断。方式2和方式3的区别仅在波特率不同,方式2的固定,方式3的可变。29二、波特率波特率发生器可以有两种选择:定时器T1作波特率发生器,改变计数初值就可以改变串行通信的速率,称为可变波特率。以内部时钟的分频器作波特率发生器,因内部时钟频率一定,称为固定波特率1、方式0和方式2:波特率固定方式0中,波特率为:fosc/12;方式2中,波特率为:注意:当SMOD=0时,波特率是fosc/64;当SMOD=1时,波特率是fosc/32。302、方式1和方式3:波特率可变注意:T1的溢出率为每秒溢出的次数,取决于T1的计数速率和设置的初值。实际应用中,T1作为波特率发生器时,常用方式2,即自动重载的8位定时器。TL1做计数用,TH1做初值寄存器。31设初值为x则每过256-x个机器周期,定时器溢出一次。溢出周期为:(256-x)Tcy=(256-x)×12/fosc,溢出率是溢出周期的倒数。根据给定的波特率,可以计算T1的计数初值x。32波特率(方式1、3)fosc=6Mfosc=12Mfosc=11.059MSMODT1方式初值SMODT1方式初值SMODT1方式初值62.5k

12FFH

19.2k

12FDH9.6k

02FDH4.8k

12F3H02FAH2.4k12F3H12F3H02F4H1.2k12E6H02E6H02E8H60012CCH02CCH02D0H30002CCH0298H02A0H137.5121DH021DH022EH1100272H01FEEBH01FEFFH常用波特率一览表33shiftMOVA,SBUF串行数据CPUCPU

SBUFSBUFshiftMOVSBUF,A并行数据并行数据甲方(发送)乙方(接收)

甲方发送时,CPU执行指令MOVSBUF,A启动了发送过程,数据并行送入SBUF

,在发送时钟shift的控制下由低位到高位一位一位发送,乙方在接收时钟shift的控制下由低位到高位顺序进入移位寄存器SBUF

,甲方一帧数据发送完毕,置位发送中断标志TI,该位可作为查询标志(或引起中断)。三、串行通信的传送过程用下面简图说明34乙方一帧数据到齐即接收缓冲器满,置位接收中断标志RI,该位可作为查询标志(或引起接收中断),通过MOVA,SBUFCPU将这帧数据并行读入。由上述可知:甲、乙方的移位时钟频率应相同,即应具有相同的波特率,否则会造成数据丢失。发送方是先发数据再查标志,接收方是先查标志再收数据。注意:CPU通过指令和SBUF并行交换数据,并不能控制数据的串行移位,它只能查询标志位来确定数据的移位是否完成。35一、填空题1、波特率是指:

。2、串行通信要求互相通信的两机必须保持

波特率。3、串行通信按照数据传送方向可分为:

3种制式。4、多机通信时,主机向从机发送的信息分为地址信息和数据信息,靠第9位可编程TB8标志来区分,当设置TB8=1时,表示将要发出的信息是

;当设置TB8=0时,表示将要发出的信息是

。5、多机通信开始时,一般都先由主机发送地址,各从机将收到的地址与本机地址比较,如果相同,则设置

准备接收数据。习题366、从机为了只接收主机发送的地址帧,而对数据帧不予理睬,则应置

。二、选择:1、串行通信特点为(),并行通信特点为()A、传送距离长,传送速度相对快;B、传送距离短,传送速度相对快;C、传送距离长,传送速度相对慢;D、传送距离短,传送速度相对慢;372、串口工作模式中模式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、什么叫多机通信?与双机通信有什么区别?384、简述多机通信原理及通信过程?四、判断对错1、串行通信数据中,一个字节的比特位发出的顺序是:高位在前,低位在后。()2、51系列单片机异步串行通信数据的起始位可以是高电平。()3、51系列单片机异步串行通信的发送方连续发送数据时可以不查询TI位状态。()4、51系列单片机异步串行通信的接收方连续接收数据时可以不查询RI位状态。()39五、计算1、设8031单片机串行口工作于方式1,晶振频率为12MHz,定时器T1工作于模式2作为波特率发生器,要求波特率为1200b/s,SMOD=0,试计算T1的时间常数和波特率误差。2、51系列单片机的串行口工作在模式3,晶振11.0592MHz,要求波特率选择2400b/s,确定定时器T1的初值及专用寄存器PCON中SMOD的状态。40一、填空题1、波特率是指:每秒传输的数据位数。2、串行通信要求互相通信的两机必须保持相同的波特率。3、串行通信按照数据传送方向可分为:单工、半双工、全双工3种制式。4、多机通信时,主机向从机发送的信息分为地址信息和数据信息,靠第9位可编程TB8标志来区分,当设置TB8=1时,表示将要发出的信息是

地址

;当设置TB8=0时,表示将要发出的信息是

数据

。5、多机通信开始时,一般都先由主机发送地址,各从机将收到的地址与本机地址比较,如果相同,则设置

SM2=0,准备接收数据。答案416、从机为了只接收主机发送的地址帧,而对数据帧不予理睬,则应置SM2=1。二、选择:1、串行通信特点为(C),并行通信特点为(B)A、传送距离长,传送速度相对快;B、传送距离短,传送速度相对快;C、传送距离长,传送速度相对慢;D、传送距离短,传送速度相对慢;422、串口工作模式中模式0具有(B)(E)(G)属性;模式1具有(A)(C)(I)属性;模式2具有(A)(D)(H)属性;模式3具有(A)(D)(I)属性。A、异步通信方式;B、同步通信方式C、帧格式10位;D、帧格式11位;E、帧格式8位;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论