您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第八章串行通讯(修改)
1第八章MCS-51单片机串行通信1、串行通信的基础知识。2、串行通信接口的结构和工作方式,串行通信接口的应用和编程。本章主要内容《单片机原理及应用》8.2MCS-51的串行接口8.1串行通信的基础知识2掌握单片机串行口的结构和工作方式。学习目的了解串行通信的通信方式。掌握串行口初始化程序及串行通信程序的编写。38.1串行通信的基础知识并行数据传送串行数据传送原理各数据位同时传送数据位按位顺序进行优点传送速度快、效率高最少只需一根传输线即可完成:成本低缺点数据位数→传输线根数:成本高速度慢应用传送距离<30米,用于计算机内部几米~几千公里,用于计算机与外设之间一、串行通信基本原理并行数据传送同步串行异步(用于单片机中)41、同步通信以一串字符为一个传送单位,字符间不加标识位,在一串字符开始用同步字符标识,硬件要求高,通讯双方须严格同步。二、串行通信的基本方式2、异步通信以字符为传送单位用起始位和停止位标识每个字符的开始和结束字符,间隔不固定,只需字符传送时同步即可。异步通信字符帧格式D0D1D2D3D4D5D6D7停止位起始位52.波特率的规定1.字符格式异步通信的双方需要两项约定:例:要求每秒传送120个字符,每帧为10位。解:波特率=120×10=1200位/秒,每位0.83ms数据位传输率=120×8=960位/秒一帧字符位数的规定:数据位,校验位,起始位和停止位。波特率:每秒钟传送二进制数的位数6三、串行接口功能(1)发送器:并串数据格式转换,添加标识位和校验位,一帧发送结束,设置结束标志,申请中断。(2)接收器:串并数据格式转换,检查错误,去掉标识位,保存有效数据,设置接收结束标志,申请中断。(3)控制器:接收编程命令和控制参数,设置工作方式:同步/异步、字符格式、波特率、校验方式、数据位与同步时钟比例等。73、全双工通讯:可同时进行发送和接收。(1条或2条数据线,双向)发送器接收器地线数据线发送接收器接收发送器地线数据线四、串行数据传送方向1、单工通讯:数据单向传送。(1条数据线,单向)2、半双工通讯:数据可分时双向传送。(2条数据线,双向)发送接收器接收发送器地线数据线返回81个全双工串行口,可同时发送和接收数据有4种工作方式波特率由软件设置,通过片内定时/计数器产生接收、发送均可工作在查询方式或中断方式8.2MCS-51单片机的串行接口一、串行口的功能结构9MCS-51串行口结构RITI门SBUF发送控制器波特率发生器A接收控制器或门串行口中断移位寄存器SBUFRXDTXD110二、串行接口控制寄存器1.数据缓冲器SBUF2.节电控制寄存器PCONSMOD(PCON.7):波特率加倍控制位。SMOD=1,波特率加倍;SMOD=0,则不加倍。发送SBUF和接收SBUF共用一个地址99H。1)发送SBUF存放待发送的8位数据,写入SBUF将同时启动发送。发送指令:2)接收SBUF存放已接收成功的8位数据,供CPU读取。读取串行口接收数据指令:MOVSBUF,AMOVA,SBUF11SM0、SM1:选择串行口4种工作方式。SM2:多机控制位,用于多机通讯。REN:允许接收控制位,REN=1,允许接收;REN=0,禁止接收。TB8:发送的第9位数据位,可用作校验位和地址/数据标识位。RB8:接收的第9位数据位或停止位。TI:发送中断标志,发送一帧结束,TI=1,必须软件清零;RI:接收中断标志,接收一帧结束,RI=1,必须软件清零。SM0SM1SM2RENTB8RB8TIRI3.串行口控制/状态寄存器SCON(98H)12三、串行口的工作方式(1)方式0(SM0SM1=00)--同步移位寄存器方式用于扩展并行I/O接口特点1.一帧8位,无起始位和停止位。2.RXD:数据输入/输出端。TXD:同步脉冲输出端,每个脉冲对应一个数据位。3.波特率B=fosc/12(固定)如:fosc=12MHz,B=1MHz,每位数据占1s。4.发送过程:写入SBUF,启动发送,MOVSBUF,A一帧发送结束,TI=1。接收过程:REN=1且RI=0,启动接收,MOVA,SBUF一帧接收完毕,RI=1。13(2)方式1(SM0SM1=01)--8位数据异步通信方式1.一帧10位:8位数据位,1个起始位(0),1个停止位(1)。2.RXD:接收数据端TXD:发送数据端。3.波特率:用T1作为波特率发生器,B=(2SMOD/32)×T1溢出率。(可变波特率)4.发送:写入SBUF,同时启动发送,一帧发送结束,TI=1。接收:REN=1,允许接收。接收完一帧,若RI=0且停止位为1(或SM2=0),将接收数据装入SBUF,停止位装入RB8,并使RI=1;否则丢弃接收数据,不置位RI。特点14(3)方式2、3(SM0SM1=10OR11)9位数据异步通讯方式1.一帧为11位:9位数据位,1个起始位(0),1个停止位(1)。第9位数据位在TB8/RB8中,常用作校验位和多机通讯标识位。2.RXD:接收数据端TXD:发送数据端。3.波特率:方式2:B=(2SMOD/64)×fosc。(固定波特率)方式3:B=(2SMOD/32)×T1溢出率。(可变波特率)4.发送:先装入TB8,写入SBUF并启动发送,发送结束,TI=1接收:REN=1,允许接收。接收完一帧,若RI=0且第9位为1(或SM2=0),将接收数据装入接收SBUF,第9位装入RB8,使RI=1;否则丢弃接收数据,不置位RI。特点154种方式比较方式波特率传送位数发送端接收端用途01/12fosc(固定)8(数据)RXDRXD接移位寄存器,扩充并口12SMOD/32T1溢出率(固定)10(起始位、8位数据位、停止位)TXDRXD单机通讯22SMOD/64fosc(固定)11(第9位为1:地址;为0:数据)TXDRXD多机通讯32SMOD/32T1溢出率(可变)11位(同方式2)TXDRXD多机通讯16四、串行口的应用MOVSCON,#控制状态字;写方式字且TI=RI=0MOVPCON,#80H(或#00H);波特率加倍(不加倍)(MOVTMOD,#20H(方式2);T1作波特率发生器MOVTH1,#X;选定波特率MOVTL1,#XSETBTR1;启动T1SETBEA;开串行口中断SETBES1、串行口初始化编程格式172、串行口在方式0的应用串行口通过接口74LS164实现:串行→并行的数据转换(显示器接口);通过接口74LS165实现:并行→串行的数据转换。80C51RXDTXD74LS164...波特率为fosc/12的同步移位脉冲+5V共阳极Q7Q1Q0D(0)74LS164...Q7Q1Q0D(1)74LS164...Q7Q1Q0D(7)(7)(0)(1).........数据低→高串入并出80C51RXDTXD74LS165...QHS/LCLK(2)数据低→高并入串出P1.0SIN74LS165...QHS/LCLK(1)用于接移位寄存器扩充并口。183、串行口在方式1、2、3的应用共同点:均用于异步通信不同点:1)字符帧格式方式1:10位异步通信,不可以用于多机通信方式2、3:11位异步通信,可以用于多机通信2)波特率方式1、3:有MCS-51内部定时计数器决定(波特率可变)方式2:由主脉冲频率决定(波特率固定)19根据Fosc和SMOD,确定T1的初值C:(一般T1用方式2)T1初始值计算公式:定时器初始化公式20公式推导BfCCCfCfBCftfCtfTTCTTBoscSMODoscSMODoscSMODoscoscoscSMOD38422:)2(384212)2(32212)2(1,12)2(12,Tt211322888888解出则:溢出率故:为计数脉冲周期:的溢出周期:的溢出率;波特率21全双工串行通信连接图设有如图甲、乙两台单片机,以工作方式2、全双工串行通信、每帧为11位、可程控的第9位数据位用于奇偶校验的补偶位。编出能实现如下功能的程序:例9.122甲机:每发送1帧信息,乙机对接收的数据进行奇偶校验,若正确,则向甲机发出“数据发送正确”的信息(00H),甲机接收到该回答信号后再发送下1字节;若奇偶校验错,则乙机发出“数据发送不正确”的信息(AAH)给甲机,要求甲机再次发送原数据,直至发送正确。甲机发送128个字节后就停止发送。23甲机中断服务程序INTSE1:JBRI,LOOP1CLRTISJMPENDT1LOOP1:CLRRIMOVA,SBUFCJNEA,#0,LOOP2INCDPTRMOVXA,@DPTRMOVC,PMOVTB8,CMOVSUBF,ADJNZR0,ENDT1CLRESENDT1:RETILOOP2:MOVXA,@DPTRMOVC,PMOVTB8,CMOVSBUF,ASJMPENDT1甲机主程序ORG2000HLJMPMAINTORG0023HLJMPINTSE1ORG2100HMAINT:MOVPCON,#80HMOVSCON,#90HMOVDPTR,#ADDR1MOVR0,#80HSETBEASETBESMOVXA,@DPTRMOVC,PMOVTB8,CMOVSUBF,AHALT1:SJMPHALT124乙机:接收甲机发送来的数据并进行奇偶校验,与此同时发出相应的回答信息(即00H或AAH),直到接收完128个字节为止。25乙机主程序ORG2000HLJMPMAINRORG0023HLJMPINTSE2ORG2100HMAINR:MOVPCON,#80HMOVSCON,#90HMOVDPTR,#ADDR2MOVR0,#80HSETBEASETBESHALT2:SJMPHALT2乙机中断服务程序INTSE2:JNBRI,LOOP6CLRRIMOVA,SBUFMOVC,PJCLOOP4ORLC,RB8JCLOOP5LOOP3:MOVX@DPTR,AMOVA,#0MOVSBUF,AINCDPTRDJNZR0,ENDT2CLRESENDT2:RETILOOP4:ANLC,RB8JCLOOP3LOOP5:MOVA,#AAHMOVSBUF,ASJMPENDT2LOOP6:CLRTISJMPENDT2261、异步通信方式的字符帧格式;2、不同工作方式下串行口波特率的计算;3、串行口发送和接收程序的编写。主要内容本章小结1、串行通信的基本原理、通信方式和数据的传送方向;2、串行通信接口的结构、工作原理和工作方式;3、串行通信接口的应用编程。重、难点271、例1中,若要求采用查询方式实现数据的串行发送和接收,该如何编程?2、单片机如何与PC机实现通信?思考题
本文标题:第八章串行通讯(修改)
链接地址:https://www.777doc.com/doc-4077132 .html