第六章串行口及应用_第1页
第六章串行口及应用_第2页
第六章串行口及应用_第3页
第六章串行口及应用_第4页
第六章串行口及应用_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、第六章第六章 单片机的串行口及应用单片机的串行口及应用 6.1 单片机串行通信工作方式单片机串行通信工作方式 6.2 多机通信多机通信 6.3 应用举例应用举例 6.1 单片机串行通信工作方式单片机串行通信工作方式 51单片机具有一个双全工的串行通讯口,该串口可同时发送、接收串行数据。发送数据通过串行数据发送缓冲器进行,发送缓冲器只能写入不能读出;接收数据通过接收数据缓冲器进行,接收缓冲器只能读出不能写入。发送和接收数据缓冲器共用一个寄存器SBUF(99H)。6.1.1 串行口控制寄存器串行口控制寄存器1.SCON(98H)1.SCON(98H)串行口工作方式与状态控制寄存器串行口工作方式与状

2、态控制寄存器对SCON可进行字节操作,也可按位进行操作。SCON寄存器各位的功能如下:SCONSM0SM1SM2RENTB8RB8TIR1位地址9FH9EH9DH9CH9BH9AH99H98H(3) REN:串行接收允许位。 (2) SM2:在方式2和方式3中多机通信的控制位。(1)SM0、SM1:串行口工作方式选择位,可构成四种工作方式,见表6-1。(4) TB8:在方式2或方式3中,是将要发送的第九位数据,由软件置位或清零,它可作为数据奇偶校验位,也可在多机通信中作为地址帧或数据帧的标志位使用。(5) RB8:在方式2或方式3中,是已接收到的第九位数据,可作为奇偶校验位。(6) TI:发送

3、中断标志位。(7) RI:接收中断标志位,方式0中,在接收完第八位数据时由硬件置位。表表6-1 SM0 SM1工作方式功能波特率0 00 11 01 1方式0方式1方式2方式3移位寄存器方式8位数据UART9位数据UART9位数据UARTfosc/12可变fosc/64可变2.PCON(87H)电源控制寄存器电源控制寄存器SMOD:为0时串行口的波特率由SCON的内容决定;为1时串行口工作于方式1、2、3时,串行口的波特率加倍。PCONSMODGF0GF1PDIDL位地址8EH8DH8CH8BH8AH89H88H87H6.1.2 串行口的工作方式串行口的工作方式1方式0:移位寄存器方式 在方式

4、0下,串行口是作为同步移位寄存器使用的,数据的输入、输出均通过RXD引脚,TXD脚以fosc/12的频率输出同步移位脉冲 。串行传送数据8位为一帧(没有起始、停止、奇偶校验位)。由RXD(P3.0)端输出或输入,低位在前,高位在后。TXD(P3.1)端输出同步移位脉冲,可以作为外部扩展的移位寄存器的移位时钟,因而串行口方式0常用于扩展外部并行I/O口。fsoc12串行口方式0发送数据时序图串行口方式0接收数据时序图2工作方式1 在方式1下,串行口为8位UART方式,发送数据从TXD输出,接收数据从RXD输入,串口的波特率由定时器1的溢出率及PCON中的SMOD位的取值决定。发送或接收一帧信息中

5、,除8位数据移位外,还包含一个起始位(0)和一个停止位(1),其波特率是可变的。 串行口方式1发送数据时序图串行口方式1接收数据时序图3工作方式2、3 当串行口工作于方式2、3时,串行口为9位UART方式,发送数据从TXD输出,接收数据从RXD输入,方式2与方式3的区别在于方式2的波特率是固定的,而方式3的波特率是可调的。一帧信息包含一个起始位“0”,八个数据位,一个可编程第九数据位和一个停止位“1”。其中可编程位是SCON中的TB8位,在八个数据位之后,可作奇偶校验位或地址/数据帧的标志位使用,由使用者确定。6.1.3 串行通信波特率串行通信波特率2.方式1、3下的串行通信波特率1.方式0下

6、的串行通信波特率在方式0下,串行通信的波特率是固定的,其波特率为fosc/12。在方式1、3下,串行通信的波特率是可变的,其值由定时器T1的溢出率及SMOD取值决定。)1(322的溢出率定时器波特率SMOD定时器1的溢出率为:T1的溢出率=单位时间内T1的溢出次数 =T1的溢出次数/秒当定时器1采用8位自动再装入时间常数的定时方式2时,T1的溢出率可由下式给出:溢出率= fosc/12*(256-N)波特率32122256OSCSMODfN例6-1 当fosc=6MHz,波特率=1200bit/s时,取SMOD=0,定时器1工作于方式2,计算时间常数。HFN324312001232106256

7、63.方式2下的串行通信波特率在方式2下,串行通信的波特率是固定的,其波特率为642OSCSMODf波特率返回6.2 多机通讯多机通讯 当单片机的串行口工作于方式2或方式3,可用TB8及SM2控制地址信息或数据信号的发送与接收,实现多机通讯。 主从多机通信原理图实现主从多机串行通信的通信的工作方式 主机在发送数据之前应先发送一地址信息(TB8=1)到串行通讯总线上,从机在初始化时使REN=1,SM2=1,当接收到地址信号时所有的从机均产生串行口接收中断,在中断服务程序中,把接受到的地址信号与本机地址编码进行比较,若相等,则复位SM2使SM2=0,若不相等则使SM2=1。当主机发送数据信息时(T

8、B8=0),只有SM2=0的从机能够产生接收中断,从而接收主机发出的数据信号,而SM2=1的那些从机在主机发送数据信号时则不产生接收中断。这样就可进行主从式多机串行通讯。 见主从多机通信原理图,设从机的地址为1、2、3,则主机向从机发送数据的控制程序以及从机接收串行数据的控制程序如下: 主机初始化程序:ORG0000HLJMPMAINORG0023HLJMPINTSE1MAIN:MOVSP,#30H MOVSCON,#0C0H;主机串行口工作于方式3SETBES;允许串行口中断SETBEA SETBTB8;发送地址信息MOVDPTR,#Saddres;指向传送数据地址MOVR7,#Snumbe

9、r;传送数据个数送R7MOVA,#SN;从机地址送SBUFMOVSBUF,ASJMP主机串行口中断服务程序:INTSE1: CLRTI;清除中断标志CLRTB8MOVXA,DPTRMOVSBUF,AINCDPTRDJNZR7,IEND;数据未发送完继续发送CLRES;发送完,禁止串行中断IEND:RETI 从机初始化程序:ORG0000HLJMPMAIN1ORG0023HLJMPINTSE2MAIN1:MOVSP,#30H MOVSCON,#0D0H;从机串行口工作于方式3,REN=1允许接收 SETBES;允许串行口中断SETBEASETBSM2;从机接收到地址信息后允许接收数据 MOVDP

10、TR,#S2addres;指向接收串行数据地址SJMP从机串行口中断服务程序:INTSE1: CLR RI;清除中断标志JNBSM2,INDATA;SM2=0转数据接收MOVA,SBUF;SM2=1判断从机地址#SN与接收到地址是否一致CJNEA,#SN,INSEND;地址不一致,禁止接受数据中断CLRSM2;从机地址#SN与接收到地址一致,SM2=0准备接SJMPINSEND ;收数据INDATA: MOVA,SBUF;接收数据MOVXDPTR,AINCDPTRINSEND: RETI实现主从多机通信的注意事项:1.应保证参与通讯双方的波特率相同 。2.在使用串行通讯前应对串行通讯进行初始化 。3.在串行通讯中,若需要进行奇偶校验可选择工作方式2、3,用TB8传送被发送数据的奇偶特征位,在接收过程中用RB8接收发送数据的奇偶特征位。 4.当进行多机通讯时,TB8是发送地址/数据的控制位,TB8=1发送的为地址信息,TB8=0发送的为数据信息,RB8接收地址/数据控制位,当SM2=1时,只有RB8接收到1,才能使RI=1申请中断。 返回6.3 应用举例应用举例 例6-1:已知=6MHz,串行口以1200波特率向外部设备发送ASCII字符,遇到回车符结束发送。先计算波特率常数N,取SMOD=0,则常数N可由下式计算: 243120012321

温馨提示

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

评论

0/150

提交评论