第六章-串行口(专)资料课件_第1页
第六章-串行口(专)资料课件_第2页
第六章-串行口(专)资料课件_第3页
第六章-串行口(专)资料课件_第4页
第六章-串行口(专)资料课件_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

第六章

串行接口及串行通信技术6.1通信的基本概念

80C51单片机内部有一个功能很强的全双工串行口,可同时接收和发送数据。此串行口能方便地与其他计算机或外部设备实现数据通信,也可用于输入/输出口的扩展。一、通信的基本方式

并行通信:8位或16位数据同时传送,速度快、传输线多、传输距离近。串行通信:数据按位传输,速度慢、传输线少、传输距离远。

一、通信的基本方式

二、串行通信的方向

单工:只能单方向传送数据半双工:同一时间只能作一个方向的传送全双工:双向同时收发数据7/26/20236异步传送方式:收、发设备时钟独立,以字符(帧)为单位传输

三、异步通信与同步通信三、异步通信与同步通信异步通信帧格式:数据按字符为单位传送,每帧数据含起始位(0)、数据位、校验位和停止位(1)等4部分组成。三、异步通信与同步通信同步传送方式:数据按块传送,数据块起始处发同步字符(SYN)。同步字符数据字符1数据字符2…数据字符n-1数据字符n校验字符校验字符7/26/20239奇偶校验

发送字符:数据位尾随1位奇偶校验位(1或0)。奇校验时,数据中“1”的个数与校验位“1”的个数之和应为奇数;偶校验时,数据中“1”的个数与校验位“1”的个数之和应为偶数。接收字符:对“1”的个数进行校验,若发现不一致,则说明传输数据过程中出现了差错。

四、串行通信的错误校验7/26/202310代码和校验

发送方将所发数据块求和(或各字节异或),产生的校验和字节附加到数据块的末尾。接收方在接收数据时要对数据块(除校验字节外)求和(或各字节异或),将所得的结果与收到的“校验和”进行比较,相符则无差错,否则就认为传送过程出现了差错。四、串行通信的错误校验7/26/202311常用波特率为:2400、4800、9600、14.4K、19.2K等传输距离随波特率的增加而减小。五、传输速率与传输距离在串行通信中,发送设备和接收设备之间除了采用相同的字符帧格式(异步通信)或相同的同步字符(同步通信)来协调同步工作外,两者之间发送数据的速度和接收数据的速度也必须相同,这样才能保证被传送数据的成功传送。波特率:每秒钟传送码元数目,单位:波特(Baud)波特率是串行通信的重要指标,对数据的成功传送至关重要。6.280C51的串行口

1、功能与结构:

MCS-51系列单片机内部有一个全双工的串行端口:P3.0(RXD)、P3.1(TXD),有4种工作方式。①接收、发送缓冲器SBUF:串行口有两个独立的接收、发送缓冲器:SBUF,占用同一地址(99H)。发送时,只写不读;接收时,只读不写;中断标志是RI/TI。80C51串行口的结构②串行口控制寄存器SCON:字节地址98H,可位寻址。

SCON格式如下:SM0SM1方式说明波特率000移位寄存器fosc/1201110位UART(8位数据)可变10211位UART(9位数据)fosc/64或fosc/3211311位UART(9位数据)可变串行口控制寄存器SCON:

SM0、SM1:串行口工作方式设置位

SM2:方式2和方式3的多机通讯控制位(方式0不用)

REN:串行接收允许位,

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

TB8:在方式2、3中,是要发送的第9位数据。

RB8:在方式2、3中,是要接收的第9位数据。(TB8和RB8在方式0中均不用)

TI:发送中断标志,须由软件清零。

RI:接收中断标志,须由软件清零。

PCON格式如下:(字节地址87H)SMOD:波特率倍增位,在串行通信时使用GF1:通用标志1GF0:通用标志0PD:掉电方式位,PD=1,则进入掉电方式IDL:待机方式位,IDL=1,则进入待机方式GF0IDLPDSMODGF1字节地址87H,无位地址。

其中与串行接口有关的只有D7位③电源控制寄存器PCON

a、待机方式

待机方式的进入:用指令使IDL=1。待机方式的状态特点:

CPU停止工作,与CPU有关的各种寄存器状态保留;时钟仍提供给中断逻辑、串行口和定时器/计数器;单片机消耗的电流从24mA降为5mA;待机方式的退出:中断或复位。b、掉电保护方式掉电方式的进入:用指令使PD=1。掉电方式的状态特点:

片内振荡器停止工作,单片机所有功能全部停止;片内RAM及SFR中的内容被保留;电源电压可由5V降至2V,耗电仅2μA;掉电方式的退出:硬件复位。2、串行口的四种工作方式

SM0SMl工作方式方式简单描述波特率000移位寄存器I/O振荡频率/1201110位UART可变10211位UART振荡频率/32或振荡频率/6411311位UART可变方式08位移位寄存器输入/输出方式串行数据通过RXD端入、出,低位在前TXD端输出同步移位脉冲,波特率为fosc/12方式0主要用于I/O口的扩展方式110位异步通信方式:1个起始位(0)、8个数据位(低位在前)、1个停止位(1)TXD端发送数据,RXD端接收数据方式1波特率可变:波特率=2SMOD/32×(T1的溢出率)溢出率:每秒钟溢出的次数,定时时间的倒数。

方式2、311位异步通信方式:1个起始位(0)、8个数据位(低位在前)、1个附加的第9位和1个停止位(1)

TXD端发送数据,RXD端接收数据方式2只有两种波特率:fosc/32或fosc/64。(2SMOD/64×fosc)。方式3波特率可变:波特率=2SMOD/32×(T1的溢出率)

7/26/202323波特率的选择波特率要选择标称值,为了减小波特率计算误差,晶振频率要选为11.0592MHz。方式1和方式3波特率与TH1初值的对应关系:(T1为定时方式2,晶振频率为11.0592MHz)波特率/(b/s)19.2k9600480024001200TH1初值FDHFDHFAHF4HE8HSMOD100003、多机通信主从式多机通信系统如下图。利用SM2控制位实现

主机TXDRXDTXDRXDRXDRXDTXDTXD从机2从机1从机n3、多机通信

RB8=1引起中断(地址)

SM2=1RB8=0不引起中断(数据)接收

RB8=1 SM2=0 均引起中断

RB8=0主从多机建立通信的过程如下:①事先所有的从机SM2位置1,等待接收主机发来的地址。②主机发出一帧地址信息,其中8位是需要与之通信的从机地址,第9附加位为1。③所有从机收到此信息后,均引起中断,各从机在中断程序中将收到的地址与本机地址对比,地址相符的从机置SM2位为0,地址不符的从机保持SM2=1的状态不变。④主机给选中的从机发送控制命令或数据(数据帧的第九位为0),此时只有被选中的从机能通过中断与主机建立联系,未选中的从机不引起中断。⑤主机若需和另外从机建立联系时,再次发地址帧信息(第9附加位为1),所有从机均引起中断,按上述过程将选中新的从机建立联系。6.3串行口应用举例6.3.1工作方式0的应用串行口工作方式0主要用于扩展并行I/O口,扩展成并行输出口时,需要外接一片8位串行输入并行输出的同步移位寄存器74HC164或CD4094。扩展成并行输入口时,需要外接一片或几片并行输入串行输出的同步移位寄存器74HC165或CD4014。

数据的串行输出或输入可采用中断方式,也可采用查询标志位TI、RI的方法,在移位初始化时,要进行相应的设置。7/26/2023296.3.2工作方式1的应用

串行方式1主要用于异步双机通信,波特率由定时器T1产生。

串行口信号发送流程:设置波特率置串口方式(SCON)清中断标志TI发送数据送SBUF等待TI为1(查询方式或中断方式)清TI,重复发送数据常用波特率及误差晶振频率/MHz波特率/HzSMODTH1初值实际波特率误差12.0096001F9H89237%12.0048000F9H44607%12.0024000F3H24040.16%12.0012000E6H12020.16%11.0592192001FDH19200011.059296000FDH9600011.059248000EAH4800011.059224000F4H2400011.059212000E8H12000

[例]:利用串行口方式1实现一个数据块的传送,数据块存在内部RAM的60H~6FH中,波特率选为2400,并形成和校验数据一起发送。

串行口工作为方式1,且处于发送的单工模式,则SCON控制字为40H。方式1的波特率由T1产生,设T1工作于方式2自动重装初值模式,晶振频率为11.0592MHz时,计数初值为F4H。用于和校验的算术和存放在70H中,并在数据块的末尾传送出去。通过上面的分析,采用查询法传送数据块的子程序如下:

MOV TMOD,#20H;设置T1为工作方式2MOV TL1,#0F4H ;给T1送初值

MOV TH1,#0F4H SETB TR1MOV SCON,#40H ;设置串行口为工作方式1MOV R0,#60H;数据块首址送R0MOV R1,#10H;数据块长度送R1MOV 70H,#00H

DWFP:MOVA,@R0MOVSBUF,A ;发送数据

ADDA,70H ;对和校验求和

MOV70H,AJNB TI,$ ;未发送完等待

CLR TI

INC R0 DJNZ R1,DWFPMOVA,70HMOV SBUF,A ;发送和校验

JNB TI,$CLR TIRET6.3.3工作方式2与工作方式3的应用

方式2和方式3都是11位异步通信方式,所不同处仅在于波特率。方式2的波特率只有固定的两种,而方式3的波特率则可由用户设定。

[例]利用串行口方式2编制一发送程序,将片内RAM中60H~6FH单元的数据串行发送出去,第九数据位TB8作奇偶校验位。根据要求,将串行口设置为方式2、单工发送,则SCON控制字为80H。波特率选为fosc/64。采用中断方式发送的主程序和中断程序如下:

ORG 0000H AJMP ZCX1 ;转主程序

NOP0RG0023H ;串行中断程序

INCR0 ;被发送数据地址增1MOVA,@R0 ;取出待发数据

MOV C,PSW.0 ;将奇偶位送TB8MOV TB8,C MOV SBUF,A ;发送数据

DJNZ R1,CSJS ;判断是否发送完

CLR ES ;发送完关中断CSJS:CLRTI ;清中断标志

RETINOPORG 0100H ;主程序ZCX1:MOVSP,#20H ;置堆栈指针

MOV SCON,#80H ;串行口设置为方式2MOV PCON,#00H ;波特率选为fosc/64MOV R0,#60H;数据块首址送R0

MOVR1,#0FH;数据块长度送R1SETB EA ;开总中断

SETB ES ;开串行口中断

MOV A,@R0;取出待发数据

MOV C,P;将奇偶位送TB8MOV TB8,CMOV SBUF,A;发送数据

SJMP $ ;等待中断

串行口信号接收流程:设置波特率置串口方式(SCON)置REN=1,清中断标志RI等待RI为1(查询方式或中断方式)从SBUF取数据清RI,重复接收数据

[例]:试编制串行口在方式3下接收数据块的程序。设单片机晶振为11.0592MHZ,波特率为2400b/s,接收数据存在片内RAM的40H起始单元的一段区间内,数据块长度由发送方先发送过来(不超过允许值),每接收一个数据都核对其奇偶校验位,正确存储数据,否则给出出错标志。根据要求,设T1工作于方式2,当SMOD=0时,T1计数初值为F4H。采用查询法编制的程序如下:

START:MOVTMOD,#20H;置T1工作于方式2MOVTH1,#0F4H

温馨提示

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

评论

0/150

提交评论