好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

单片机汇编6资料.ppt

25页
  • 卖家[上传人]:E****
  • 文档编号:99614856
  • 上传时间:2019-09-20
  • 文档格式:PPT
  • 文档大小:328KB
  • / 25 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 8051单片机的串行口,本节主要介绍串行通信概念及51系列单片机的串行口问题,将具体介绍以下内容:,51单片机串行口----串行口结构、串行口的控制寄存器、串行口的工作方式、应用举例串行通信基础----基本概念,串行通信基础,串行数据通信要解决两个关键技术问题,一个是数据传送,另一个是数据转换所谓数据传送就是指数据以什么形式进行传送所谓数据转换就是指单片机在接受数据时,如何把接收到的串行数据转化为并行数据,单片机在发送数据时,如何把并行数据转换为串行数据进行发送单片机的串行通信使用的是异步串行通信,所谓异步就是指发送端和接收端使用的不是同一个时钟异步串行通信通常以字符(或者字节)为单位组成字符帧传送 1、字符帧的帧格式 字符帧由四部分组成,分别是起始位、数据位、奇偶校验位、停止位1) 起始位:位于字符帧的开头,只占一位,始终位逻辑低电平,表示发送端开始发送一帧数据 2) 数据位:紧跟起始位后,可取5、6、7、8位,低位在前,高位在后3)奇偶校验位:占一位,用于对字符传送作正确性检查奇偶校验位是可选择的,共有三种可能,即奇偶校验、偶校验和无校验,由用户根据需要选定 4)停止位:末尾,为逻辑“1”高电平,可取1、1.5、2位,表示一帧字符传送完毕。

      2.数据传送速率 串行通信的速率用波特率来表示,所谓波特率就是指一秒钟传送数据位的个数每秒钟传送一个数据位就是1波特即:1波特=1bps(位/秒) 在串行通信中,数据位的发送和接收分别由发送时钟脉冲和接收时钟脉冲进行定时控制时钟频率高,则波特率高,通信速度就快;反之,时钟频率低,波特率就低,通信速度就慢8051单片机串行口的特殊功能寄存器,1. 串行口控制寄存器(SCON) SCON是MCS-51单片机的一个可位寻址的专用寄存器,用于串行数据通信的控制单元地址为98H,位地址为98H~9FH寄存器的内容及位地址表示如下:,SCON中各位说明如下: 1) SM0 、SM1——串行口工作方式选择位 其状态组合和对应工作方式为: SM0 SM1 工作方式 0 0 方式0 0 1 方式1 1 0 方式2 1 1 方式3,2) SM2——允许方式2、3的多机通信控制位 在方式2和3中,若SM2=1且接收到的第九位数据(RB8)为1,才将接收到的前8位数据送入接收缓冲寄存器SBUF中,并置位RI产生中断请求;否则丢弃前8位数据。

      若 SM2=0,则不论第九位数据(RB8)为1还是为0,都将前8位送入接收SBUF中,并产生中断请求 方式0时,SM2必须置0 3) REN——允许接收位 REN=0 禁止接收数据 REN=1 允许接收数据 4) TB8——发送第9位数据 在方式2、3时,TB8的内容是要发送的第9位数据,其值由用户通过软件来设置5) RB8——接收的第9位数据 在方式2、3时,RB8是接收的第9位数据 在方式1时,RB8是接收的停止位 在方式0时,不使用RB8 6) TI——发送中断标志位 在方式0时,发送完第8位数据后,该位由硬件置位 在其它方式下,于发送停止位之前,由硬件置位 TI=1表示帧发送结束,其状态既可供软件查询使用,也可请求中断TI由软件清“0” 7) RI——接收中断标志位 在方式0时,接收完第8位数据后,该位由硬件置位 在其它方式下,接收到停止位之前,该位硬件置位 RI=1表示帧接收结束,其状态既可供软件查询使用,也可请求中断 RI由软件清“0”2. 电源控制寄存器(PCON) PCON不可位寻址,字节地址为87H它主要是为CHMOS型单片机80C51的电源控制而设置的专用寄存器。

      其内容如下:,与串行通信有关的只有D7位(SMOD),该位为波特率倍增位,当SMOD=1时,串行口波特率增加一倍,当SMOD=0时,串行口波特率为设定值当系统复位时,SMOD=08051单片机串行通信工作方式,方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由T1的溢出率决定串行口的工作方式由SM0和SM1确定,编码和功能如下表所示,串行工作方式0 1. 数据发送 当数据写入SBUF后,数据从RXD端在移位脉冲(TXD)的 控制下,逐位移入74LS164,74LS164能完成数据的串并转换当8位数据全部移出后,TI由硬件置位,发生中断请求若CPU响应中断,则从0023H单元开始执行串行口中断服务程序,数据由74LS164并行输出其接口逻辑如下图所示2. 数据接收 要实现数据接收,必须首先把SCON中的允许接收位REN设置为1当REN设置为1时,数据就在移位脉冲的控制下,从RXD端输入当接收到8位数据时,置位接收中断标志位RI,发生中断请求其接口逻辑如下图所示由逻辑图可知,通过外接74LS165,串行口能够实现数据的并行输入串行工作方式1 方式1为10位为一帧的异步串行通信方式。

      其帧格式为1个起始位、8个数据位和1个停止位如下图所示1. 数据发送 数据写入SBUF后,开始发送,此时由硬件加入起始位和 停止位,构成一帧数据,由TXD串行输出输出一帧数据后,TXD保持在高电平状态下,并将TI置位,通知CPU可以进行下一个字符的发送2. 数据接收 当REN=1且接收到起始位后,在移位脉冲的控制下,把接收到的数据移入接收缓冲寄存器(SBUF)中,停止位到来后,把停止位送入RB8中,并置位RI,通知CPU接收到一个字符 3. 波特率的设定 工作在方式1时,其波特率是可变的,波特率的计算公式为:,其中,SMOD为PCON寄存器最高位的值,其值为1 或0当定时器1作波特率发生器使用时,选用工作方式2(即自动加载定时初值方式)选择方式2可以避免通过程序反复装入定时初值所引起的定时误差,使波特率更加稳定假定计数初值为X,则计数溢出周期为:,溢出率为溢出周期的倒数则波特率的计算公式为:,实际使用中,波特率是已知的因此需要根据波特率的计算公式求定时初值X用户只需要把定时初值设置到定时器1,就能得到所要求的波特率串行工作方式2 方式2为11位为一帧的异步串行通信方式其帧格式为1个起始位、9个数据位和1个停止位。

      如下图所示在方式2下,字符还是8个数据位,只不过增加了一个第9个数据位(D8),而且其功能由用户确定,是一个可编程位 在发送数据时,应先在SCON的TB8位中把第9个数据位的内容准备好这可使用如下指令完成: SETB TB8 ;TB8位置“1” CLR TB8 ;TB8位置“0”,发送数据(D0~D7)由MOV指令向SBUF写入,而D8位的内容则由硬件电路从TB 8中直接送到发送移位器的第九位,并以此来启动串行发送一个字符帧发送完毕后,将TI位置“1”,其他过程与方式1相同 方式2的接收过程也于方式1基本类似,所不同的只在第9数据位上,串行口把接收到的前8个数据位送入SBUF,而把第九数据位送入RB 方式2的波特率时固定的,而且有两种一种是晶振频率的三十二分之一;另一种是晶振频率的六十四分之一即fosc/32和fosc/64如用公式表示则为:,由此公式可知,当SMOD为0时,波特率为fosc/64,当SMOD为1时,波特率为fosc/32,串行工作方式3 方式3同方式2几乎完全一样,只不过方式3的波特率是可变的,有用户来确定其波特率的确定同方式1例1 已知8051的串行口采用方式1进行通信,晶振频率为11.0592MHz,选用定时器T1作为波特率发生器,T1工作于方式2,要求通信的波特率为9600,计算T1的初值。

      设Smod=0, 计算T1的初值如下: X = = 253 = FDH,,例2 利用8051串行口将片内40H~4FH单元中的数据发送出去,串行口工作于方式2,TB8作为奇偶位 在数据写入发送缓冲器之前,先将数据的奇偶位写入TB8,这样使第9位数据作为校验位编程如下: TRS: MOV SCON, #80H ;设置串行口工作方式2 MOV PCON, #80H ;波特率为fosc/32 MOV R0, #40H ;设置片内数据指针 MOV R2, #10H ;数据长度送R2 LOOP:MOV A, @R0 ;取数据送A MOV C, P ;奇偶位送TB8 MOV TB8, C MOV SBUF, A ;启动发送 WAIT:JBC TI, CONT ;判发送完标志 SJMP WAIT CONT:INC R0 DJNZ R2, LOOP ;发送16个数据,例3 编写一个8051串行口工作方式2的接收程序,核对校 验位,并进行接收正确和错误的判断和处理 REV: MOV SCON, #90H ;设置工作方式2,允许接收 LOOP:JBC RI, READ ;等待接收数据并清0 RI SJMP LOOP READ:MOV A, SBUF ;读入一帧数据 JB PSW.0, ONE ;判接收端奇偶位 JB RB8, ERR ;判发送端奇偶位 SJMP RIGHT ONE: JNB RB8, ERR RIGHT: . ;接收正确处理 ERR: . ;接收出错处理,。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.