欢迎来到得力文库 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
得力文库 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    单片机不挂科-8-单片机串行通信.pdf

    • 资源ID:4238079       资源大小:807.59KB        全文页数:42页
    • 资源格式: PDF        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片机不挂科-8-单片机串行通信.pdf

    单片机串行通信 不挂科 单片机 第八讲 不挂科 3大模块2道题目 单片机 串行通信基础知识模块1 串行通信控制模块2 单片机 串行通信 8.单片机串行通信不挂科 单片机 串行数据传输模块3 串行通信基础知识 数据通信方式 串行通信 小节1 小节2 不挂科 单片机 1.串行通信基础知识8.单片机串行通信 串行通信基础知识 数据通信方式 串行通信 小节1 小节2 不挂科 单片机 1.串行通信基础知识8.单片机串行通信 数据通信方式 不挂科 单片机 1.数据通信方式1.串行通信基础知识8.单片机串行通信 数据通信方式可分为两大类:并行通信与串行通信。 并行通信: 一次传输8/16/32比特的数据。 如一次传输8比特的数据,需要8根数据线, 1根控制线,1根状态线,1根地线,共11根。 特点:速度快,适合近距离传输。 特点:硬件方便,接口简单, 适合距离远、速度要求不高的应用。 串行通信: 数据位一位一位地发送。计 算 机 计 算 机 串行通信示意图 计 算 机 计 算 机 并行通信示意图 数据通信方式 不挂科 单片机 1.数据通信方式1.串行通信基础知识8.单片机串行通信 串行通信: 按通信进行的过程可分为:单工、全双工、半双工三种。 单工:只容许数据由一方发、另一方收,为单向通讯。 全双工:容许数据同时双向收发。 发送器接收器 A站B站 单工通信 单工通信示意图 发送器接收器 A站B站 全双工通信 全双工通信示意图 接收器发送器 半双工形式:数据传输为双向,但任何时刻只能由其中一方发送数据,另一方接受数据。 发送器接收器 A站B站 半双工通信 半双工通信示意图 接收器发送器 串行通信基础知识 数据通信方式 串行通信 小节1 小节2 不挂科 单片机 1.串行通信基础知识8.单片机串行通信 串行通信的分类 不挂科 单片机 串行通信又可以分为两种:同步串行通信和异步串行通信两种。 2.串行通信1.串行通信基础知识8.单片机串行通信 先发送一个字符,作为同步字符,之后连续发送数据。数据之间不能有间隔,直到发送完毕。 用时钟实现发送端与接收端的同步,速度比异步通信快。 异步串行通信是以字符为单位的间歇传输形式。 异步串行通信在传送时按字符进行包装,因而需要在数据位之外增加起始位、奇偶校验位 和停止位,构成一个通信帧。 同步串行通信: 异步串行通信: 异步串行通信 不挂科 单片机 异步串行的帧格式如下: 2.串行通信1.串行通信基础知识8.单片机串行通信 起始位数据位(8位)奇偶校验位停止位 01 1 0 0 1 0 (8位)1/01 异步串行通信是以字符为单位的间歇传输形式。 异步串行通信在传送时按字符进行包装,因而需要在数据位之外增加起始位、奇偶校验位 和停止位,构成一个通信帧。 异步串行通信: 不挂科 单片机 2.串行通信1.串行通信基础知识8.单片机串行通信 异步串行通信 异步串行的帧格式如下: 起始位:在数据发送线上规定无数据时电平为1。当要发送数据时,首先发送一个低电平0, 表示数据传送开始。 数据位:真正要传送的数据,由于字符编码方式不同,可以是5位、6位等多位, 数据位是由低位开始,高位结束,即低位在前、高位在后。 奇偶校验位:数据发送完后,发送奇偶校验位,以检验数据传送的正确性。 停止位:表示数据传送的结束,可以是1位、1.5位或者是2位。高电平有效。 起始位数据位(8位)奇偶校验位停止位 串行传输速率 不挂科 单片机 2.串行通信1.串行通信基础知识8.单片机串行通信 传输速率有多种表示方法,如波特率、比特率等。 波特率(Baud Rate):波特率是每秒事件发生的数目或信号变化的次数。 1 波特 = 1 b/s(位/秒) 在单片机的串行数据传输中,事件和信号变化都反映在二进制位上,因此一般以波特率表示其速率。 单片机使用波特率作为串行通信传输速率的单位,每秒传送1个格式位/1波特,即: 在串行数据传输中,波特率除了表明数据传送速率外,还可以表示串行口中移位脉冲频率的高低。 因为串行数据发送和接收的速率时由移位脉冲决定的,波特率高表示移位脉冲频率高,串行数据 传输速度就快;反之,波特率低表示串行数据传输速度慢。 不挂科 单片机 2.串行通信控制8.单片机串行通信 串行通信控制 串行口结构小节1 串行通信工作方式小节3 串行控制寄存器小节2 不挂科 单片机 2.串行通信控制8.单片机串行通信 串行通信控制 串行口结构小节1 串行通信工作方式小节3 串行控制寄存器小节2 串行口结构 不挂科 单片机 1.串行口结构2.串行通信控制8.单片机串行通信 80C51的串行口,虽然是既能实现同步通信,又能实现异步通信的全双工串行口。 在单片机的串行数据通信中,最常用的是异步方式。 因此,常把实现异步通信的串行口称为通用异步接收器/发送器,写作UART。 80C51的串行口主要由发送寄存器,接收寄存器和移位寄存器等组成。 串行口结构 不挂科 单片机 1.串行口结构2.串行通信控制8.单片机串行通信 80C51的串行数据收发结构图如下图所示: 波 特 率 发 生 器 发送 SBUF (99H) 接收 SBUF (99H) 门 发送控制器 接收控制器 输入移位寄存器 串行 控制 寄存 器 (98H) 串行口中断+ TI RI 内 部 总 线 TXD RXD SBUF 不挂科 单片机 1.串行口结构2.串行通信控制8.单片机串行通信 发送寄存器/接收寄存器SBUF: 两个物理上独立的接收、发送缓冲器。它们占用同一个地址99H,可同时发送、接收数据。 发送缓冲器只能写入,不能读出;接收缓冲器只能读出,不能写入。 串行口的发送和接收都是以特殊功能寄存器SBUF的名义进行读或写操作: 对SBUF执行“写”命令时(MOV SBUF,A),SBUF指发送缓冲器; 对SBUF执行“读”命令时(MOV A,SBUF),SBUF指接收缓冲器,数据通过内部总线送至CPU; 双缓冲结构来保持最大传送速率。 对于发送缓冲器SBUF(TX),因为发送时CPU是主动的,不会发生重迭错误,因此不需要使用 对于接收缓冲器SBUF(RX),它是双缓冲结构。 在前一个字节被从SBUF读出之前,第二个字节开始被接收。 不挂科 单片机 2.串行通信控制8.单片机串行通信 串行通信控制 串行口结构小节1 串行通信工作方式小节3 串行控制寄存器小节2 串行控制寄存器 不挂科 单片机 2.串行控制寄存器2.串行通信控制8.单片机串行通信 80C51串行口通过控制寄存器、中断功能和设置波特率实现串行通信控制。 9FH9EH9DH9CH9BH9AH99H98H SM0SM1SM2RENTB8RB8TIRI 串行口控制寄存器SCON1 *fosc为振荡频率 SM1 SM0工作方式功能说明波特率 0 0工作方式08位同步移位寄存器fosc/12 0 1工作方式110位异步收发由定时器1控制(可变) 1 0工作方式211位异步收发fosc/32或fosc/64 1 1工作方式311位异步收发由定时器1控制(可变) SM0 SM1 串行口工作方式选择位。其状态组合对应的工作方式为: 串行口的控制寄存器 不挂科 单片机 2.串行控制寄存器2.串行通信控制8.单片机串行通信 9FH9EH9DH9CH9BH9AH99H98H SM0SM1SM2RENTB8RB8TIRI 串行口控制寄存器SCON1 SM0 SM1 串行口工作方式选择位。 SM2 多机通信控制位。 REN 允许接收位。REN位用于对串行数据接收进行允许控制。 REN=0,禁止接收;REN=1,允许接收。 TI 串行发送中断请求标志。软件查询时,TI可作为状态位使用。 在数据发送过程中,当最后一个数据位被发送完成后,TI由硬件置位; RI 串行接收中断请求标志。软件查询时,RI可作为状态位使用。 在数据接收过程中,当采样到最后一个数据位有效时,RI由硬件置位; 波特率控制寄存器 不挂科 单片机 2.串行控制寄存器2.串行通信控制8.单片机串行通信 D7/8BH8AH89H88H SMOD TR0IE1IT1IE0IT0 电源控制寄存器PCON 2 SMOD 波特率倍增位。复位时,SMOD=0。 电源控制寄存器PCON中只有一位SMOD与串行口工作有关,如下图: 在串行口方式1、方式2和方式3时,即当SMOD=1时,波特率提高一倍。 串行口的中断控制 不挂科 单片机 2.串行控制寄存器2.串行通信控制8.单片机串行通信 0AFH0AEH0ADH0ACH0ABH0AAH0A9H0A8H EA/ESET1EX1ET0EX0 中断允许控制寄存器IE:用户软件设置,寄存器地址为A8H。3 EA:中断允许总控制位 EA0 中断总禁止,禁止所有中断,即不响应任何中断请求。 EA1 中断总允许,总允许后中断的禁止或允许由各中断源的中断允许控制位进行设置。 ES:串行中断允许控制位 ES0 禁止串行中断 ES1 允许串行中断 不挂科 单片机 2.串行通信控制8.单片机串行通信 串行通信控制 串行口结构小节1 串行通信工作方式小节3 串行控制寄存器小节2 工作方式的选择 不挂科 单片机 3.串行通信工作方式2.串行通信控制8.单片机串行通信 SM1 SM0工作方式功能说明波特率 0 0工作方式08位同步移位寄存器fosc/12 0 1工作方式110位异步收发由定时器1控制(可变) 1 0工作方式211位异步收发fosc/32或fosc/64 1 1工作方式311位异步收发由定时器1控制(可变) 根据实际需要,80C51串行口可以通过设置串行口控制寄存器SCON设置为4种工作方式: 9FH9EH9DH9CH9BH9AH99H98H SM0SM1SM2RENTB8RB8TIRI 串行口控制寄存器SCON: SM0 SM1 串行口工作方式选择位。 串行口的4种工作方式 不挂科 单片机 3.串行通信工作方式2.串行通信控制8.单片机串行通信 SM1 SM0工作方式功能说明波特率 0 0工作方式08位同步移位寄存器fosc/12 0 1工作方式110位异步收发由定时器1控制(可变) 1 0工作方式211位异步收发fosc/32或fosc/64 1 1工作方式311位异步收发由定时器1控制(可变) 方式0: 以8位数据为一帧、不设起始位和停止位,先发送或接收最低位。其帧格式如下图: D0D1D2D3D7 方式1: 以10位数据为一帧、各设有一位起始位“0”和停止位“1”,中间为8位数据位,先发送或接收最低位。 其帧格式如图: D0D1D2D3D7 起始位 0 停止位 1 数据位 串行口的4种工作方式 不挂科 单片机 3.串行通信工作方式2.串行通信控制8.单片机串行通信 方式2和方式3: 以11位数据为一帧、各设有一位起始位“0”和停止位“1”,中间为8位数据位,先发送或接收最低位; 第9位为附加位,可作为奇偶校验位,由软件清0或置1,其帧格式如下图: D0D1D2D3D7 起始位 0 停止位 1 数据位 D8 附加位 SM1 SM0工作方式功能说明波特率 0 0工作方式08位同步移位寄存器fosc/12 0 1工作方式110位异步收发由定时器1控制(可变) 1 0工作方式211位异步收发fosc/32或fosc/64 1 1工作方式311位异步收发由定时器1控制(可变) 波特率设置 不挂科 单片机 3.串行通信工作方式2.串行通信控制8.单片机串行通信 方式0与方式2的波特率是固定的,为振荡频率fosc的12、32、64分频。 SM1 SM0工作方式功能说明波特率 0 0工作方式08位同步移位寄存器fosc/12 0 1工作方式110位异步收发由定时器1控制(可变) 1 0工作方式211位异步收发fosc/32或fosc/64 1 1工作方式311位异步收发由定时器1控制(可变) 方式1与方式3的波特率是可变的,由定时器T1的溢出率决定。 波特率 = fosc / 12方式0的波特率: 方式2的波特率:波特率 = 2SMOD fosc / 64 方式1和方式3的波特率:波特率 = ( 2SMOD / 32 ) ( T1溢出速率 ) 方式1与方式3的波特率设置 不挂科 单片机 3.串行通信工作方式2.串行通信控制8.单片机串行通信 具体地说,80C51是以定时器T1作为波特率发生器,仪器溢出脉冲产生串行口的移位脉冲。 因此,在方式1与方式3中,通过计算T1的计数初值即可实现波特率的设置。 溢出率为溢出周期的倒数,假定定时器的计数初值为X,则计数溢出周期为(假设为定时工作方式2): 那么,波特率为: 方式1和方式3的波特率:波特率 = ( 2SMOD / 32 ) ( T1溢出速率 ) 溢出周期 = 定时时间 = ( 256 - X ) 晶振周期 12 = ( 256 - X ) ( 12 / fosc ) 波特率 = ( 2SMOD / 32 ) ( T1溢出率 ) =( 2SMOD / 32 ) fosc / 12 ( 256 - X ) 根据上述公式,得计数初值的计算公式为: X = 256 - fosc ( 2SMOD ) / ( 384 波特率 ) 注意,当定时器T1作波特率发生器使用时,应选择自动加载初值的定时方式2。 不挂科 单片机 3.串行通信工作方式2.串行通信控制8.单片机串行通信 利用公式计算初值:解析8-1 80C51单片机晶振频率Fosc11.0592MHz,使用定时器1以方式2作为波特率发生器,波特率为2400波特,求初值。例题8-1 设置波特率控制位SMOD=0,那么: 2400 = 2SMOD 32 fosc 12 (256 X) = 1 32 11.0592 106 12 (256 X) 波特率 = ( 2SMOD / 32 ) ( T1溢出率 ) =( 2SMOD / 32 ) fosc / 12 ( 256 - X ) X = 256 11.0592 106 20 384 2400 X = 256 - fosc ( 2SMOD ) / ( 384 波特率 ) 解得 X = 244 = F4H ; 即(TH1)=(TL1)=F4H 。 不挂科 单片机 3.串行数据传输8.单片机串行通信 串行数据传输 数据收发程序设计小节2 数据传输理论小节1 不挂科 单片机 3.串行数据传输8.单片机串行通信 串行数据传输 数据传输理论小节1 数据收发程序设计小节2 双机通信 不挂科 单片机 1.数据传输理论8.单片机串行通信3.串行数据传输 双机通信是串行口UART的基本功能,常使用串行工作方式1。在通信之前,需要进行一些约定: 确定哪一方为发送方、哪一方为接收方; 事先约定波特率; 发送方每次从数据表中读取一个字节,写入串行发送缓冲器SBUF(TX),并由串行电路口自动插 入起始位和停止位等,装配成一个完整的数据帧进行发送。 发送过程中,SBUF(TX)中的最后一个数据位发送完毕后,TI标志置1,供CPU中断或者查询使 用,以便通过程序为发送下一个数据作准备,或者改变为接收方式等。 接收方当SBUF(RX)接收到8个数据位后,RI标志置1,供CPU以中断或者查询方式进行接 收数据的处理,或改变为发送方式等。 对发送方: 对接收方: 串行口的编程应用 不挂科 单片机 1.数据传输理论8.单片机串行通信3.串行数据传输 SIO: 串行口初始化1 MOV SCON,#控制状态字 MOV PCON,#80H / #00H MOV TMOD,#20H MOV TH1,#X MOV TL1,#X SETB TR1 SETB EA SETB ES ;确定工作方式以及设置TI=RI=0等 ;设置波特率是否加倍 ;设置定时器T1为波特率发生器,定时器、工作方式2 ;设置定时器T1计数初值,即设置波特率 ;启动定时器T1 ;允许串行中断 不挂科 单片机 8.单片机串行通信3.串行数据传输1.数据传输理论 TRAM: MOV A,R0;取数据 查询方式实现发送2 串行口的编程应用 MOV SBUF,A JBC TI,NEXTWAIT: SJMP WAIT INC R0 SJMP TRAM ;将数据放到SBUF中,发送一个字符 ;等待发送结束 NEXT:;准备下一次发送 不挂科 单片机 8.单片机串行通信3.串行数据传输1.数据传输理论 TRAM: MOV A,R0;取数据 MOV SBUF,A SJMP $ INC R0 RETI ;将数据放到SBUF中,先发送一个字符 ;其他工作 SINT:;中断服务程序 中断方式实现发送3 串行口的编程应用 ORG 0023H AJMP SINT MAIN: CLR TI ;串行中断入口 ;程序初始化 MOV A,R0;取数据 MOV SBUF,A;发送下一个字符 不挂科 单片机 8.单片机串行通信3.串行数据传输1.数据传输理论 查询方式实现接收4 串行口的编程应用 JBC RI,NEXTWAIT: SJMP WAIT INC R0 SJMP WAIT ;查询等待 NEXT: ;准备下一次接收 MOV A,SBUF MOV R0,A;保存数据 ;读取接收数据 不挂科 单片机 8.单片机串行通信3.串行数据传输1.数据传输理论 ;保存数据 SJMP $ INC R0 RETI ;其他工作 RINT:;清中断标志 中断方式实现接收5 串行口的编程应用 ORG 0023H AJMP RINT MAIN: CLR RI ;串行中断入口 ;程序初始化 MOV R0,A ;读取接收的数据MOV A,SBUF ;准备读取下一个字符 不挂科 单片机 3.串行数据传输8.单片机串行通信 串行数据传输 数据传输理论 数据收发程序设计 小节1 小节2 不挂科 单片机 8.单片机串行通信3.串行数据传输2.数据收发程序设计 解析8-2 例题8-2 甲机(发送机)的程序: 假定甲乙机以串行通信方式1进行数据通信,其波特率为1200。由甲机发送数据,待发送的数据存放在ROM 300H31FH单元中。乙机接收,接收到的数据依次存入内部RAM的50H单元的区域。 假设甲乙单片机的晶振频率为6MHz。 ORG 0030H MAIN:MOV PCON,#00H MOV SCON,#01000000B MOV TMOD,#00100000B MOV TH1,#243 MOV TL1,#243 SETB TR1 SETB EA SETB ES MOV DPTR,#0300H MOV R2,#1FH MOVC A,A+DPTR MOV SBUF,A SJMP $ ORG 0000H LJMP MAIN ORG 0023H LJMP SINT ;串行中断入口 ;波特率不加倍 ;串行工作方式1 ;定时器1工作方式2 ;设置初值 ;启动定时器1 ;开中断 ;从ROM中读取数据 ;共读取31个数据 ;读取数据 ;将数据送到SBUF,发送第一个数据 CLR A 不挂科 单片机 8.单片机串行通信3.串行数据传输2.数据收发程序设计 解析8-2 例题8-2 甲机(发送机)的程序: SINT: CLR TI DJNZ R2,RETE ;TI清0 ;依次读取内容 RETI RETE: CLR A INC DPTR MOVC A,A+DPTR MOV SBUF,A RETI END ;判断是否已经传输31个数据 假定甲乙机以串行通信方式1进行数据通信,其波特率为1200。由甲机发送数据,待发送的数据存放在ROM 300H31FH单元中。乙机接收,接收到的数据依次存入内部RAM的50H单元的区域。 假设甲乙单片机的晶振频率为6MHz。 ;发送下一个数据 不挂科 单片机 8.单片机串行通信3.串行数据传输2.数据收发程序设计 解析8-2 例题8-2 乙机(接收机)的程序: 假定甲乙机以串行通信方式1进行数据通信,其波特率为1200。由甲机发送数据,待发送的数据存放在ROM 300H31FH单元中。乙机接收,接收到的数据依次存入内部RAM的50H单元的区域。 假设甲乙单片机的晶振频率为6MHz。 ORG 0030H MAIN:MOV PCON,#00H MOV SCON,#01010000B MOV TMOD,#00100000B MOV TH1,#243 MOV TL1,#243 SETB TR1 SETB EA SETB ES ORG 0000H LJMP MAIN ORG 0023H LJMP REINT ;串行中断入口 ;波特率不加倍 ;串行工作方式1,允许接收 ;定时器1工作方式2 ;设置初值 ;启动定时器1 ;开中断 MOV R0,#50H MOV R2,#20H SJMP $ ;内部RAM的首地址 ;共读取32个数据 REINT: CLR RI DJNZ R2,LOOP RETI LOOP: CLR A MOV A,SBUF RETI MOV R0,A INC R0 END ;判断数据是否接受完毕 ;接收数据,存入累加器A ;数据存入内部RAM中 (初始化部分与发送机大致相同) 单片机串行通信 不挂科 单片机 第八讲

    注意事项

    本文(单片机不挂科-8-单片机串行通信.pdf)为本站会员(暗伤)主动上传,得力文库 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知得力文库 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于得利文库 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

    © 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

    黑龙江省互联网违法和不良信息举报
    举报电话:0468-3380021 邮箱:hgswwxb@163.com  

    收起
    展开