单片机第十章串行口_第1页
单片机第十章串行口_第2页
单片机第十章串行口_第3页
单片机第十章串行口_第4页
单片机第十章串行口_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

单片机第十章串行口1第一页,共三十六页,2022年,8月28日二.串行通讯的字符格式:1.异步通讯:传送方向……..1数据0……..1数据0……..1数据0

停止位起始位停止位起始位停止位起始位若干空闲位数据中信息的两种状态分别以mark和space标志,其中:

mark译为”标号”,对应逻辑1的状态。

Space译为”空格”,对应逻辑0的状态。

2第二页,共三十六页,2022年,8月28日每一幀数据均以0开始,以1终止,中间传送的数据位可以是5位,7位,8位均可,中间有若干空闲位,空闲时一般处于1的状态。异步通讯比较灵活,实现起来比较简单

2.同步通讯:选用一个同步字符,例如0010010发送过去,约定同时开始同步传送。

传送方向数据数据数据数据同步字符

数据之间没有间隔,可连续发送。3第三页,共三十六页,2022年,8月28日比较:同步传送效率比异步高。如果传送200个字节加一各同步字符,则辅助数据只佔0.5%若用异步传送到200个字节则至少有400位辅助数据,其数量可观。三.异步串行通讯的信号格式:

1.近程通讯RS232

TXD甲机

RXD

GND1488148914891488RXD乙机TXDGNDTTLTTLTTLTTLRS2324第四页,共三十六页,2022年,8月28日近程通讯采用数字信号直接传送方式:计算机内部的数据信号是TTL电平标准,而通信线上的数据信号是RS-232电平标准。尽管电平标准不同,但数据信号的波形和频率并没有改变,近程串行通讯只需用传输线把两端接口电路直接连接起来即可实现。RS-232和TTL电平标准的逻辑值规定为:

RS-232标准TTL标准逻辑1(mark)-3~-25V2~5V(高电平额定值3V)逻辑0(space)+3+25V0~0.8V(低电平额定值0.2V)5第五页,共三十六页,2022年,8月28日2.远程通讯在远程通讯中,应使用专用通信电缆,出于经济的考虑,通常使用电话线作为传输线,如图:计算机MODEMMODEM计算机数字信号数字信号RS-232标准RS-232标准模拟信号电话线地地6第六页,共三十六页,2022年,8月28日远距离直接传送数字信号,信号会发生畸变,为此要把数字信号转变为模拟信号再进行传送,通常使用频率调制法,即以不同频率的载波信号代表数字信号的两种不同电平状态,这种数据传送方式称为频带传送方式。通常为:

mark:1270HZ或2225HZspace:1070HZ或2025HZ在串行通信发送端有调制器,用以把电平信号调制为频率信号,而在接收端有解调器,用以把频率信号解调为电平信号。通常串行通信两端均具有发送接收功能,因此均应设置调制器和解调器,二者合二为一为调制解调器,即MODEM。

7第七页,共三十六页,2022年,8月28日四.串行通讯的数据通路形式:1.

单工形式数据单向传送,只需一条传输线。

2.

半双工形式数据传送是双向,但不可同时进行。传输线可用一条,也可用两条。

3.

全双工形式数据传送是双向,且可同时发送接收。需两条传输线。ABABAB8第八页,共三十六页,2022年,8月28日五.串行通讯的传送速率:用每秒传送数据的位数衡量,称波特率(baudrate)

以波特为单位1波特=1bit/s(位/秒)

例如电传打字机传送速率为每秒10个字符,每个字符11位,则波特率为:

11位/字符×10字符/秒=110位/秒即110波特

传送一位需时间:1/110秒≈9.1ms

MCS-51系列单片机具有一个全双工的串行口,它在不同的工作方式中可同步或异步发送或接收数据。其波特率范围:以6MHZ晶振为例、为0.24波特~31250波特

9第九页,共三十六页,2022年,8月28日

第二节8031单片机串行口的控制及工作方式

串行口的接收端为P3.0(10脚)称RXD,发送端为P3.1(11脚)称TXD。一.

8031串行口的控制寄存器:1.串行口控制寄存器SCON字节地址98H可位寻址。

SM0SM1SM2RENTB8

RB8TIRI

00:方式0接收中断标志

01:方式1发送中断标志

10:方式21:允许接收接收到的第9位

11:方式30:禁止接收待发送的第9位10第十页,共三十六页,2022年,8月28日例:使串行口方式1发送

MOVSCON,#40H01000000

方式1禁止接收2.PCON字节地址87HD7SMOD

只有最高位D7位有定义,SMOD称波特率选择位。SMOD为1时比为0时波特率高一倍。3.

串行通道数据寄存器SBUF

它是两个9位移位寄存器,一个是发送缓冲器,只写不读,另一个是接收缓冲器,只读不写,它们共用一个地址99H

11第十一页,共三十六页,2022年,8月28日二.串行口的四种工作方式:1.方式0移位寄存器输入输出方式,同步发送接收8位数据,每个机器周期移一位。如图:DSADSBCP74LS164Q0Q7

RXDTXD8031

RXDTXD8031Q7CP74LS165D0D7

输出方式输入方式12第十二页,共三十六页,2022年,8月28日方式0输出的基本指令:

MOVSCON,#00H;SM0=SM1=0,选方式0

MOVA,#nnH;取待输出数据nnHCLRTI;清发送中断标志

MOVSBUF,A;对SBUF写入即启动发送,TXD端每个机器周期发出一个移位脉冲,数据即从RXD端输出一位,74LS164的CP端每接收TXD端一个移位脉冲,数据右移一次,输出时以并行方式出现。WAIT:JNBTI,WAIT;发送一个字节后TI=1

标志一帧数据发送完毕

CLRTI;清发送中断标志,准备发送下一字节13第十三页,共三十六页,2022年,8月28日方式0输入:当REN=1,接收中断标志RI=0,则启动接收,移位脉冲仍从TXD端输出,数据从RXD端输入,当一个字节数据输入完毕时,置1接收中断标志RI。

2.方式1异步通讯。发送或接收一帧数据为10位,其格式是:

18位数据0

SCON中SM0,SM1为01则选方式114第十四页,共三十六页,2022年,8月28日发送过程:①

启动发送:执行一条访问SBUF的指令即启动发送,且同时1装入第9位。②

发送一位的时间:由选定的波特率决定。③

发送过程:首先起始位0从TXD脚发出,且第9位写入1,然后每个移位脉冲将SBUF中数据右移一位,从TXD输出,空位由0填充。发送结束后,置位发送中断标志TI,申请中断。15第十五页,共三十六页,2022年,8月28日接收过程:当REN=1,且接收中断标志RI=0时,允许接收。①

判断起始位:以选定波特率的16倍速率采样RXD端,当连续三次采样中有两次是0时,则确认为起始位0,此时开始一帧数据的接收。②

开始接收:1FFH写入移位寄存器,每个位移脉冲左移一位,一帧数据接收完后置1接收中断标志,申请中断。移位脉冲的频率由选定波特率决定。③

判断保留数据的条件保留数据的条件是:RI=0、SM2=0或者RI=0、停止位为1,符合两组条件其中之一则将数据保留在SBUF中,并置位接收中断标志RI。若不符合保留数据的条件,则将收到的数据丢弃,重新检测RXD端以备下次接收。16第十六页,共三十六页,2022年,8月28日3.方式2.异步发送或接收一帧数据为11位,其格式为:

1第9位8位数据0

发送与接收操作同方式1,注意保留数据的两组条件为:RI=0、SM2=0或者RI=0、第9位数据为1

4.方式3与方式2相同的是异步接收发送一帧数据是11位,但波特率与方式2不同。

注:所有方式当发送或接收一帧数据置1TI和RI中断标志后,必须软件清0,以备下一帧数据的发送或接收。17第十七页,共三十六页,2022年,8月28日三.SCON中的TB8、RB8第9位数据的用法举例在数据通讯中,由于传输距离较远,数据信号在传输过程中可能发生畸变,从而引起误码,为了保证传输质量,除了硬件上采取措施之外,软件可采取排错措施,例如可用第9位数据作为奇偶检验。例:

发送端发送一个字节数据及奇偶位:MOVSCON,#80H;选串行口方式2,传送11位数据MOVA,#DATA;待发送8位数据送A,注意此时A的内容将影响PSW中的奇偶标志P,即PSW.0MOVC,PSW.0;奇偶标志送C,奇为1、偶为0MOVTB8,C;奇偶标志送TB8,待发送的第9位MOVSBUF,A;启动一次发送共11位数据LOOP:JBCTI,NEXT;TI=1时,一帧数据发完,清TI转下SJMPLOOP…………….NEXT:…18第十八页,共三十六页,2022年,8月28日接收端将收到的数据用奇偶校验位进行核对排错:

MOVSCON,#90H;选方式2,10010000,REN==1,允许接收

LOOP:JBCRI,RIV;等待接收完毕

SJMPLOOPRIV:MOVA,SBUF;接收完一帧数据取出送A

此时收到的数据将影响PSW中奇偶位PSW.0JBPSW.0,ONE;为奇跳下

JBRB8,ERR;接收到的数据为偶,而第9位为1,出错

SJMPLD;接收正确

ONE:JNBRB8,ERR;接收到的第9位不为1,出错

LD:……………;接收正确

ERR:…………….;接收出错处理,可通知对方重发

19第十九页,共三十六页,2022年,8月28日

四.用SCON中的SM2实现多机通讯在方式2和方式3中,当接收到一帧数据时,只有符合下列条件之一数据才会被保留,否则将被丢弃:①RI=0②RI=0SM2=0第九位数据为11.多机通讯时约定主机发出地址信息时第9位为1,而数据信息第9位为0,且初始化时使SM2=12.主机先向各从机发出地址信息,此时由于地址信息第9位为1,各从机接收到的信息均符合第②组条件而被接收保存,各从机即将收到的地址信息与自己的地址相比较,如果与本机地址相符则使SM2=020第二十页,共三十六页,2022年,8月28日3.随后主机向各从机发出数据,第9位为0,各从机收到后均不符合条件②,只有地址相符的从机由于SM2=0符合条件①而保存接收到的数据信息,其余各从机均将数据信息丢弃,这就实现了点对点的多机通讯。第三节波特率的制定方法一.方式0:以下以B代表波特率,以f代表晶振频率方式0的波特率固定为晶振频率的1/12

例如6M晶振,则B=6M/12=0.5M位/秒=0.5×106波特传送一位所需时间是:2微秒注:方式0波特率只与晶振频率f有关,f愈大传送速度愈快。

21第二十一页,共三十六页,2022年,8月28日二.方式2:

B=f×2SMOD/64其中SMOD是PCON的最高位,可为0或1,以f=6M为例:当SMOD=0B=6M×20/64=93750波特当SMOD=1B=6M×21/64=187500波特注:方式2波特率与晶振频率和SMOD有关,一经选定晶振频率,波特率只有两种可选择。22第二十二页,共三十六页,2022年,8月28日三.方式1和方式3:

B=T1溢出率×2SMOD/32

什么是溢出率?溢出率即定时器每秒溢出的次数。由于定时器工作于不同的工作方式时,具有不同的计数器位数,(13位、16位、8位),装入不同的初始常数,因此溢出率也不同。下面从溢出周期(隔多长时间溢出一次)来推出溢出率:23第二十三页,共三十六页,2022年,8月28日溢出周期:T=TC+TI

式中:TC

为定时器的定时间隔

TC=(2N-Z)×机器周期其中Z是定时器的初始常数N当定时器选择方式0、1、2时分别为13、16、8机器周期为12/f

24第二十四页,共三十六页,2022年,8月28日TI为本次定时结束到下次启动定时的时间,它包括:a:转入中断入口的硬件子程序所需的3个机器周期b:中断服务程序中重装时间常数又返回所需时间,一般为6个机器周期TI=9×12/f所以,溢出周期为:T=TC+TI

=(2N-Z)×12/f+9×12/f

=(2N-Z+9)×12/ff溢出率=1/T=(2N-Z+9)×1225第二十五页,共三十六页,2022年,8月28日

需要说明的是上述公式是对定时器方式0和1而言,对于定时器方式2则由于可自动重装时间常数而省去了转入中断服务重装时间常数所需的9个机器周期,即TI=0因此定时器方式2时溢出率为:

f溢出率=(2N-Z)×12

26第二十六页,共三十六页,2022年,8月28日

综上分析,串行口方式1和方式3的波特率计算公式为:T1工作于方式0和方式1时

B=f×2SMODN=13或16①(2N-Z+9)×1232

T1工作于方式2时

B=f×2SMODN=8②(2N–Z)×1232

27第二十七页,共三十六页,2022年,8月28日由①式以f=6M为例T1方式0:当SMOD=0、Z=0时获得最小波特率:

B=1.905≈2波特当SMOD=1、Z=1FFFH时获得最大波特率:

B=3125波特T1方式1:波特率范围为0.24~3125波特由②式,T1方式2:波特率范围为61~31250波特

28第二十八页,共三十六页,2022年,8月28日例编一程序,设置8031串行口可发送接收一帧数据为11位,其波特率选定125波特。设晶振频率为6MHZ分析:

1.方式2和方式3可发送接收11位数据。若选方式2B=f×2SMOD/64=6×106×2SMOD/64当SMOD=0时B=93750波特当SMOD=1时B=187500波特均不可满足125波特,因此只能选方式3SCON:

11010000

方式3允许接收D0H29第二十九页,共三十六页,2022年,8月28日2.设置计算波特率:选T1方式2,其波特率范围为61~31250波特可满足125波特。T1工作于方式2时

B=f×2SMOD

选SMOD=1

(2N–Z)×1232

则:B=6×106×21=125解之得Z=6

(28–Z)×1232

30第三十页,共三十六页,2022年,8月28日程序如下:

ORG0000HAJMPMAINORG0023HAJMPPPT0MAIN:MOVSP,#60HMOVSCON,#0D0H;串行口方式3,允许接收

MOVPCON,#80H;SMOD=1MOVTMOD,#00100000B;T1方式2定时

MOVTL1,#06H;设置波特率125波特

MOVTH1,#06HSETBEA;允许CPU中断

SETBES;允许串行口中断

SETBTR1;启动T1发出波特率

……………….

温馨提示

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

评论

0/150

提交评论