版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 第八章第八章 单片机串行数据通信单片机串行数据通信 8.1 8.1 串行通信的基础知识串行通信的基础知识 串行数据通信要解决两个关键技术问题,一个是数据传送,另一个是数据转换。所谓数据传送就是指数据以什么形式进行传送。所谓数据转换就是指单片机在接受数据时,如何把接收到的串行数据转化为并行数据,单片机在发送数据时,如何把并行数据转换为串行数据进行发送。8.1.1 数据传送 单片机的串行通信使用的是异步串行通信,所谓异步就是指发送端和接收端使用的不是同一个时钟。异步串行通信通常以字符(或者字节)为单位组成字符帧传送。字符帧由发送端一帧一帧地传送,接收端通过传输线一帧一帧地接收。 1. 字符帧的帧
2、格式 字符帧由四部分组成,分别是起始位、数据位、奇偶校验位、停止位。如图8.1所示: 1) 起始位:位于字符帧的开头,只占一位,始终位逻辑低电平,表示发送端开始发送一帧数据。 2) 数据位:紧跟起始位后,可取5、6、7、8位,低位在前,高位在后。3)奇偶校验位:占一位,用于对字符传送作正确性检查,因此奇偶校验位是可选择的,共有三种可能,即奇偶校验、偶校验和无校验,由用户根据需要选定。4)停止位:末尾,为逻辑“1”高电平,可取1、1.5、2位,表示一帧字符传送完毕。起始位数据位(0)数据位(1)数据位(n1)奇偶位停止位停止位起始位一帧数据图8.1 字符帧格式 2. 传送的速率 串行通信的速率用
3、波特率来表示,所谓波特率就是指一秒钟传送数据位的个数。每秒钟传送一个数据位就是1波特。即:1波特1bps(位/秒) 。 在串行通信中,数据位的发送和接收分别由发送时钟脉冲和接收时钟脉冲进行定时控制。时钟频率高,则波特率高,通信速度就快;反之,时钟频率低,波特率就低,通信速度就慢。8.1.2 数据转换 串行接口电路为用户提供了两个串行口缓冲寄存器(SBUF),一个称为发送缓存器,它的用途是接收片内总线送来的数据,即发送缓冲器只能写不能读。发送缓冲器中的数据通过TXD引脚向外传送。另一个称为接收缓冲器,它的用途是向片内总线发送数据,即接收缓冲器只能读不能写。接收缓冲器通过RXD引脚接收数据。因为这
4、两个缓冲器一个只能写,一个只能读,所以共用一个地址99H。串行接口电路如图8.2所示。移位时钟发送SBUF接收SBUF输入移位寄存器单片机内部总线TXD串行输出RXD串行输入RI(接收中断)TI(发送中断图8.2 MCS-51串行口寄存器结构 8.2 MCS-51单片机串行通信的控制寄存器单片机串行通信的控制寄存器1. 串行口控制寄存器(SCON) SCON是MCS-51单片机的一个可位寻址的专用寄存器,用于串行数据通信的控制。单元地址为98H,位地址为98H9FH。寄存器的内容及位地址表示如下: 位地址 9FH 9EH9DH9CH 9BH9AH 99H98H位符号 SM0 SM1SM2REN
5、TB8RB8TIRI各位的说明如下:1) SM0 、SM1串行口工作方式选择位 其状态组合和对应工作方式为: SM0 SM1 工作方式 0 0 方式0 0 1 方式1 1 0 方式2 1 1 方式32) sM2允许方式2、3的多机通信控制位 在方式2和3中,若SM21且接收到的第九位数据(RB8)为1,才将接收到的前8位数据送入接收SBUF 中,并置位RI产生中断请求;否则丢弃前8位数据。若 SM20,则不论第九位数据(RB8)为1还是为0,都将 前8位送入接收SBUF中,并产生中断请求。 方式0时,SM2必须置0。3) REN允许接收位 REN0 禁止接收数据 REN1 允许接收数据4) T
6、B8发送数据位8 在方式2、3时,TB8的内容是要发送的第9位数据,其值由用户通过软件来设置。5) RB8接收数据位8 在方式2、3时,RB8是接收的第9位数据。 在方式1时,RB8是接收的停止位 在方式0时,不使用RB86) TI发送中断标志位 在方式0时,发送完第8位数据后,该位由硬件置位。 在其它方式下,于发送停止位之前,由硬件置位。 因此,TI1表示帧发送结束,其状态既可供软件查询使用,也可请求中断。 TI由软件清“0”。7) RI接收中断标志位 在方式0时,接收完第8位数据后,该位由硬件置位。 在其它方式下,于接收到停止位之前,该位由硬件置位。 因此,RI1表示帧接收结束,其状态既可
7、供软件查询使用, 也可请求中断。 RI由软件清“0”。2. 电源控制寄存器(PCON) PCON不可位寻址,字节地址为87H。它主要是为CHMOS型单片机80C51的电源控制而设置的专用寄存器。其内容如下: 与串行通信有关的只有D7位(SMOD),该位为波特率倍增位,当SMOD=1时,串行口波特率增加一倍,当SMOD=0时,串行口波特率为设定值。当系统复位时,SMOD=0。 位序D7D6D5D4D3D2D1D0位符号SMOD/GF1GF0PDIDL8.3 MCS-51单片机串行通信工作方式 串行口的工作方式由SM0和SM1确定,编码和功能如表8-1所示。 方式0和方式2的波特率是固定的,而方式
8、1和方式3的波特率是可变的,由T1的溢出率决定。SM0 SM1方式功能说明波特率0 0方式0移位寄存器方式fosc/120 1方式18位UART可变1 0方式29位UARTfosc/64 或者fosc/321 1方式39位UART可变表8-1 串行口工作方式8.3.1 串行工作方式01. 数据输出(发送) 当数据写入SBUF后,数据从RXD端在移位脉冲(TXD)的 控制下,逐位移入74LS164,74LS164能完成数据的串并转换。当8位数据全部移出后,TI由硬件置位,发生中断请求。若CPU响应中断,则从0023H单元开始执行串行口中断服务程序,数据由74LS164并行输出。其接口逻辑如图8.
9、3所示。RXDTXD0D7D。CLK74LS1648051STB0 . 1PAB图8.3接口逻辑2. 数据输入(接收) 要实现接收数据,必须首先把SCON中的允许接收位REN设置为1。当REN设置为1时,数据就在移位脉冲的控制下,从RXD端输入。当接收到8位数据时,置位接收中断标志位RI,发生中断请求。其接口逻辑如图8.4所示。由逻辑图可知,通过外接74LS165,串行口能够实现数据的并行输入。RXDTXD0D7D.CLK74LS1658051STB0 . 1PQ图8.4 外接移位寄存器输入 【例8-1】使用74LS164的并行输出端接8支发光二极管,利用它的串入并出功能,把发光二极管从左到右
10、依次点亮,并反复循环。假定发光二极管为共阴极接法。RXDTXD0D7D.CLK74LS1648051AB。STB0.1P图8.5 电路设计 解:电路如图8.5。软件部分如下: ORG0000H LJMPMAIN ORG1000HMAIN:MOVSCON,#00H ;串行口工作在方式0 CLRES ;禁止串行中断 MOVA, #80H ;发光二极管从左边亮起DELR:CLRP1.0 ;关闭并行输出 MOVSBUF, A ;串行输出WAINT:JNBTI, WAIT ;状态查询 SETBP1.0 ;开启并行输出 ACALL DELAY ;调用延时子程序 CLRTI ;清发送中断标志 RRA ;发光
11、右移 AJMPDELR ;继续 EDN 8.3.2 串行工作方式1 方式1为10位为一帧的异步串行通信方式。其帧格式为1个起始位、8个数据位和1个停止位。如图8.6所示。起始位0D1D2D3D4D5D6D7D停止位图8.6 方式1的帧格式1. 数据输出(发送) 数据写入SBUF后,开始发送,此时由硬件加入起始位和 停止位,构成一帧数据,由TXD串行输出。输出一帧数据后,TXD保持在高电平状态下,并将TI置位,通知CPU可以进行下一个字符的发送。2. 数据输入(接收) 当REN=1且接收到起始位后,在移位脉冲的控制下,把接收到的数据移入接收缓冲寄存器(SBUF)中,停止位到来后,把停止位送入RB
12、8中,并置位RI,通知CPU接收到一个字符。3. 波特率的设定 工作在方式1时,其波特率是可变的,波特率的计算公式为:的溢出率)定时器波特率1(322SMOD 其中,SMOD为PCON寄存器最高位的值,其值为1 或0。 当定时器1作波特率发生器使用时,选用工作方式2(即自动加载定时初值方式)。选择方式2可以避免通过程序反复装入定时初值所引起的定时误差,使波特率更加稳定。假定计数初值为X,则计数溢出周期为: )X256(fosc12 溢出率为溢出周期的倒数。则波特率的计算公式为: )X256(12fosc322SMOD波特率 实际使用中,波特率是已知的。因此需要根据波特率的计算公式求定时初值X。
13、用户只需要把定时初值设置到定时器1,就能得到所要求的波特率。 4. 应用举例(用方式1实现双机串行通信)(1)通信双方的硬件连接 作为应用系统首先要研究通信双方如何连接。一种办法是把两片8051的串行口直接相连,一片8051的TXD与另一片的RXD相连,RXD与另一片的TXD相连,地与地连通。由于8051串行口的输出是TTL电平,两片相连所允许的距离极短。(2)通信双方的软件约定 为实现双机通信,我们规定如下: 假定A机为发送机,B机为接收机。 当A机发送时,先送一个“AA”信号,B机收到后回答一个“BB” 信号,表示同意接收。 当A机接收到“BB”后,开始发送数据,每发送一次求一次“检 查和
14、”,假定数据块长16个字节,起始地址为30H,一个数据块发送完后再发出“检查和”。 B机接收的数据并转存到数据区,起始地址也为30H,同时每接收一次也计算一次“检查和”,当一个数据块收齐后,再接收A机发来的“检查和”,并将它与B机的“检查和”进行比较。若两者相等,说明接收正确,B机回答一个00;若两者不相等,说明接收不正确,B机回答一个FF,请求重发。 A机收到00的答复后,结束发送。若收到的答复非0,则重新将数据发送一次。 双方均以1200波特的速率传送。假设晶振频率为6MHz ,计算定时器1的计数初值: H2F02431325612003841106256x6 为使波特率不倍增,设定PCO
15、N寄存器的SMOD=0,则 PCON00H .(3)基本的通信程序 设计程序框图如图8.7所示。指针初始化检查和清零设置串行口工作方式发请求发送信号B机允许发送?发送一个数据字节求检查和发送检查和B机接收正确码?返回设置波特率启动定时器T1数据块发送完?向A机发应答信号设置串行口工作方式等待A机联络信号A机请求发送吗?指针初始化检查和清零设置波特率启动定时器T1NNNA机通信程序接收一个数据字节求检查和数据块收齐吗?接收A机检查和并比较B机检查和返回接收正确吗?发出错误标志B机通信程序NNN图8.7 双机通信程序结构图 根据结构图设计出下述通信程序:A机通信程序:机通信程序:ASTART:MO
16、V TMOD,#20H ;设定定时器1工作方式2 MOV TL1,#0F2H ;设定计数初值 MOV TH1,#0F2H ;计数重装值 MOV PCON,#00H ;波特率不倍增 SETB TR1 ;启动T1 MOV SCON,#50H;设置串行口方式1ATT1: MOV SBUF, #0AAH;发送“AA”AWAIT1: JBC TI, ARR1 ;等待一帧发送完 SJMP AWAIT1ARR1: JBC RI,ARR2 ;等待应答信号 SJMP ARR1 ARR2: MOVA, SBUF XRLA,#0BBH JNZATT1 ;判断是否是应答信号“00”ATT2: MOVR0, #30H
17、MOVR7,#10 MOVR6,#00HATT3: MOVSBUF, R0 MOVA,R6 ADDA,R0 MOVR6,A INCR0AWAIT2: JBCTI,ATT4 SJMPAWAIT2 ;发送有效数据ATT4: DJNZR7, ATT3 ;判断是否传送完毕 MOVSBUF, R6AWAIT3: JBCTI, ARR3 SJMPAWAIT3 ;等待ARR3: JBCRI, ARR4 SJMPARR3 ;等待ARR4: MOVA, SBUF JNZATT2AEND: RETB机通信程序:机通信程序:BSTART: MOVTMOD, #20H;设定定时器1工作方式2 MOVTH1,#0F2H
18、 ;设定计数初值 MOVTL1,#0F2H ;计数重装值 MOVPCON,#00H ;波特率不倍增 SETBTR1 MOVSCON,#50HBRR1: JBC RI,BRR2 SJMP BRR1 ;等待BRR2: MOV A,SBUF ;把接收到的数据送入A XRL A,#0AAH ;判断接收到数据是否是“AA” JNZ BRR1 ;如果不是继续等待BTT11: MOVSBUF,0BBH ;发送应答信号BWAIT1: JBCTI, BRR3 ;等待 SJMPBWAIT1BRR3: MOVR0,#30H ;接收有效数据 MOVR7,#10 MOVR6,#00HBRR4: JBCRI,BRR5 SJMPBRR4 BRR6: MOV A, SBUF XRL A,R6 JZ BEND MOV SBUF,#0FFHBWAIT3:JBC TI, BRR3 SJMP BWAIT3BEND:MOV SBUF, #00H
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教版八年级物理上册《第四章光现象》章末检测卷带答案
- 教案-市场营销学
- 酶解法提高药用植物次生代谢物
- 新沪科版数学八年级上册同步练习(全册分章节)含答案
- 最经典净水厂施工组织设计
- 能源大数据分析理论与实践 课件 12.电力大数据分析
- 高一化学成长训练:第一单元化学反应速率与反应限度
- 第4课《孙权劝学》课件-2024-2025学年统编版语文七年级下册
- 2024高中地理第二章区域生态环境建设第2节森林的开发和保护-以亚马孙热带雨林为例精练含解析新人教必修3
- 2024高中语文精读课文二第5课2达尔文:兴趣与恒心是科学发现的动力二作业含解析新人教版选修中外传记蚜
- 推动架机械加工工序卡片
- 重庆市綦江区篆塘镇白坪村建筑用砂岩矿采矿权评估报告
- 甘肃社火100首歌词
- 行政查房情况记录表
- GB/T 2315-2000电力金具标称破坏载荷系列及连接型式尺寸
- 腹主动脉瘤的护理查房
- 内部往来转账通知单
- 星级酒店每日防火巡查记录本
- 中石化erp系统操作手册
- 部编人教版历史七年级下册教学计划及进度表
- 高中化学必修1思维导图(Word版zj)
评论
0/150
提交评论