单片机技术与实践教案chap8名师优质课赛课一等奖市公开课获奖课件_第1页
单片机技术与实践教案chap8名师优质课赛课一等奖市公开课获奖课件_第2页
单片机技术与实践教案chap8名师优质课赛课一等奖市公开课获奖课件_第3页
单片机技术与实践教案chap8名师优质课赛课一等奖市公开课获奖课件_第4页
单片机技术与实践教案chap8名师优质课赛课一等奖市公开课获奖课件_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

本章分为三节,主要介绍:

6.280C51串行口6.1计算机串行通信基础6.3单片机串行口应用举例第1页6.1计算机串行通信基础

伴随多微机系统广泛应用和计算机网络技术普及,计算机通信功效愈来愈显得主要。计算机通信是指计算机与外部设备或计算机与计算机之间信息交换。通信有并行通信和串行通信两种方式。在多微机系统以及当代测控系统中信息交换多采取串行通信方式。第2页计算机通信是将计算机技术和通信技术相结合,完成计算机与外部设备或计算机与计算机之间信息交换。能够分为两大类:并行通信与串行通信。并行通信通常是将数据字节各位用多条数据线同时进行传送。并行通信控制简单、传输速度快;因为传输线较多,长距离传送时成本高且接收方各位同时接收存在困难。

接收设备发送设备问询8位同时传送并行数据第3页串行通信是将数据字节分成一位一位形式在一条传输线上逐一地传送。串行通信特点:传输线少,长距离传送时成本低,且能够利用电话网等现成设备,但数据传送控制比并行通信复杂。

接收设备发送设备8位顺次传送D7D0第4页最经典串行式数据传输是RS232C,比如个人计算机中Com1、Com2就属于RS232C。即使个人计算机中输入/输出接口,逐步被新一代USB\网卡所取代,但USB\网卡也属于串行式数据传输。串行式数据传输媒介:铜导线、光纤、电波(无线传输)等。第5页二、串行通信传输方向1、单工单工是指数据传输仅能沿一个方向,不能实现反向传输(一条线只能有一个用途)。2、半双工半双工是指数据传输能够沿两个方向,但需要分时进行(一条线可输入亦可输出,分时处理)。3、全双工全双工是指数据能够同时进行双向传输(二条线可同时双向传输)。

单工半双工全双工第6页五、传输速率与传输距离

1、传输速率比特率是每秒钟传输二进制代码位数,单位是:位/秒(bps)。如每秒钟传送240个字符,而每个字符格式包含10位(1个起始位、1个停顿位、8个数据位),这时比特率为:

10位×240个/秒=2400bps波特率表示每秒钟调制信号改变次数,单位是:波特(Baud)。波特率和比特率不总是相同,对于将数字信号1或0直接用两种不一样电压表示所谓基带传输,比特率和波特率是相同。所以,我们也经惯用波特率表示数据传输速率。第7页2、传输距离与传输速率关系串行接口或终端直接传送串行信息位流最大距离与传输速率及传输线电气特征相关。当传输线使用每0.3m(约1英尺)有50PF电容非平衡屏蔽双绞线时,传输距离随传输速率增加而减小。当比特率超出1000bps时,最大传输距离快速下降,如9600bps时最大距离下降到只有76m(约250英尺)。第8页6.1.2串行通信接口标准

一、RS-232C接口

RS-232C是EIA(美国电子工业协会)1969年修订RS-232C标准。RS-232C定义了数据终端设备(DTE)与数据通信设备(DCE)之间物理接口标准。1、机械特征RS-232C接口要求使用25针连接器,连接器尺寸及每个插针排列位置都有明确定义。(阳头)第9页2、功效特征第10页4、过程特征过程特征要求了信号之间时序关系,方便正确地接收和发送数据

。远程通信连接第11页近程通信连接第12页6.280C51串行口

有两个物理上独立接收、发送缓冲器SBUF,它们占用同一地址99H;接收器是双缓冲结构;发送缓冲器,因为发送时CPU是主动,不会产生重合错误。

6.2.180C51串行口结构

第13页

SCON是一个8位、可位寻址特殊功效存放器,其功效是用以设定串行口工作方式、接收/发送控制以及设置状态标志:

6.2.280C51串行口控制存放器

RITIRB8TB8RENSM2SM1SM001234567字节地址98H存放器SCON第14页SM0SM1方式说明波特率000移位存放器Fosc/1201110位异步收发器(8位)可变10211位异步收发器(9位)Fosc/(64or32)11311位异步收发器(9位)可变RITIRB8TB8RENSM2SM1SM001234567字节地址98H存放器SCON51系列串行端口控制存放器中各位说明

1、SM0与SM1用于设置串行端口工作方式

第15页2、SM2:多机通信控制使能位。在方式0时:SM2必须是0。在方式1时:若SM2=1,则只有接收到有效停顿位时,RI才置1。在方式2或方式3时:当接收机SM2=1时能够利用收到第9位数据RB8来控制是否激活RI(RB8=0时不激活RI;RB8=1时收到数据进入SBUF,并激活RI,进而在中止服务中将数据从SBUF读走)。当SM2=0时,不论收到RB8为0和1,均能够使收到数据进入SBUF,并激活RI(即此时RB8不含有控制RI激活功效)。经过控制SM2,能够实现多机通信。第16页●REN:若软件置REN=0,则禁止接收。若软件置REN=1,则开启串行口接收数据;RITIRB8TB8RENSM2SM1SM001234567字节地址98H存放器SCON51系列串行端口控制存放器中各位说明

3、REN允许串行接收位●TB8:在以方式2、3传送数据时,本位为第9位传送位,可用软件来设置或去除。

在双机通信时,普通作为奇偶校验位使用;在多机通信中用来表示主机发送是地址帧还是数据帧。若TB8=1为地址帧,TB8=0为数据帧。4、TB8发送第9位数据第17页●RB8:

在方式0时,本位无作用在方式1时,若SM2=0,则本位是停顿位。在方式2或方式3中,是接收到数据第九位。作为奇偶校验位或地址帧/数据帧标志位。RITIRB8TB8RENSM2SM1SM001234567字节地址98H存放器SCON51系列串行端口控制存放器中各位说明

5、RB8接收到第9位数据第18页●TI:在方式0时,当串行发送完成第8位数据传送时,则本位自动设置为1,并产生TI中止。在方式1、2、3时,若完成串行发送停顿位传送时,则本位由内部硬件使TI自动置1,向CPU发中止申请。

在中止服务程序中,必须用软件将其清0,取消此中止申请。RITIRB8TB8RENSM2SM1SM001234567字节地址98H存放器SCON51系列串行端口控制存放器中各位说明

6、TI传送中止标志位第19页●RI:在方式0时,当串行接收第8位数据结束时,本位自动设置1,并产生RI中止。在方式1、2、3时,若完成接收到串行接收停顿位时,由内部硬件使RI自动置1,向CPU发中止申请。也必须在中止服务程序中,用软件将其清0,取消此中止申请。RITIRB8TB8RENSM2SM1SM001234567字节地址98H存放器SCON51系列串行端口控制存放器中各位说明

7、RI接收中止标志位第20页PCON中只有一位SMOD与串行口工作相关

SMOD(PCON.7)波特率倍增位。在串行口方式1、方式2、方式3时,波特率与SMOD相关,当SMOD=1时,波特率提升一倍。复位时,SMOD=0。-------SMODD0D1D2D3D4D5D6D7字节地址87H存放器PCON电源控制存放器PCON

没有位寻址功效第21页

6.2.380C51串行口工作方式

一、方式0

方式0时,串行口为同时移位存放器输入输出方式。主要用于扩展并行输入或输出口。数据由RXD(P3.0)引脚输入或输出,同时移位脉冲由TXD(P3.1)引脚输出。发送和接收均为8位数据,低位在先,高位在后。波特率固定为fosc/12。

1、方式0输出第22页

2、方式0输入方式0接收和发送电路第23页

二、方式1

方式1是10位数据异步通信口。TXD为数据发送引脚,RXD为数据接收引脚,传送一帧数据格式如图所表示。其中1位起始位,8位数据位,1位停顿位。

1、方式1输出第24页

2、方式1输入用软件置REN为1时,接收器以所选择波特率16倍速率采样RXD引脚电平,检测到RXD引脚输入电平发生负跳变时,则说明起始位有效,将其移入输入移位存放器,并开始接收这一帧信息其余位。接收过程中,数据从输入移位存放器右边移入,起始位移至输入移位存放器最左边时,控制电路进行最终一次移位。当RI=0,且SM2=0(或接收到停顿位为1)时,将接收到9位数据前8位数据装入接收SBUF,第9位(停顿位)进入RB8,并置RI=1,向CPU请求中止。第25页

三、方式2和方式3

方式2或方式3时为11位数据异步通信口。TXD为数据发送引脚,RXD为数据接收引脚。方式2和方式3时起始位1位,数据9位(含1位附加第9位,发送时为SCON中TB8,接收时为RB8),停顿位1位,一帧数据为11位。方式2波特率固定为晶振频率1/64或1/32,方式3波特率由定时器T1溢出率决定。

第26页

1、方式2和方式3输出发送开始时,先把起始位0输出到TXD引脚,然后发送移位存放器输出位(D0)到TXD引脚。每一个移位脉冲都使输出移位存放器各位右移一位,并由TXD引脚输出。第一次移位时,停顿位“1”移入输出移位存放器第9位上,以后每次移位,左边都移入0。当停顿位移至输出位时,左边其余位全为0,检测电路检测到这一条件时,使控制电路进行最终一次移位,并置TI=1,向CPU请求中止。第27页

2、方式2和方式3输入接收时,数据从右边移入输入移位存放器,在起始位0移到最左边时,控制电路进行最终一次移位。当RI=0,且SM2=0(或接收到第9位数据为1)时,接收到数据装入接收缓冲器SBUF和RB8(接收数据第9位),置RI=1,向CPU请求中止。假如条件不满足,则数据丢失,且不置位RI,继续搜索RXD引脚负跳变。第28页四、波特率计算在串行通信中,收发双方对发送或接收数据速率要有约定。经过软件可对单片机串行口编程为四种工作方式,其中方式0和方式2波特率是固定,而方式1和方式3波特率是可变,由定时器T1溢出率来决定。串行口四种工作方式对应三种波特率。因为输入移位时钟起源不一样,所以,各种方式波特率计算公式也不相同。方式0波特率

=fosc/12方式2波特率

=(2SMOD/64)·fosc方式1波特率

=(2SMOD/32)·(T1溢出率)方式3波特率

=(2SMOD/32)·(T1溢出率)第29页当T1作为波特率发生器时,最经典使用方法是使T1工作在自动再装入8位定时器方式(即方式2,且TCONTR1=1,以开启定时器)。这时溢出率取决于TH1中计数值。

T1溢出率=fosc/{12×[256-(TH1)]}

在单片机应用中,惯用晶振频率为:12MHz和11.0592MHz。所以,选取波特率也相对固定。惯用串行口波特率以及各参数关系如表所表示。第30页串行口工作之前,应对其进行初始化,主要是设置产生波特率定时器1、串行口控制和中止控制。详细步骤以下:1、确定T1工作方式(编程TMOD存放器);2、计算T1初值,装载TH1、TL1;3、开启T1(编程TCON中TR1位);4、确定串行口控制(编程SCON存放器);5、串行口在中止方式工作时,要进行中止设置(编程IE、IP存放器)。第31页6.3单片机串行口应用举例

在计算机分布式测控系统中,经常要利用串行通信方式进行数据传输。80C51单片机串行口为计算机间通信提供了极为便利条件。利用单片机串行口还能够方便地扩展键盘和显示器,对于简单应用非常便利。这里仅介绍单片机串并转换、串行口在通信方面应用,关于键盘和显示器扩展将在另一章介绍。第32页6.3.1串并转换1、74164是种串行转并行IC时钟脉冲引脚数据输入引脚数据输出引脚第33页6.3.1串并转换2、74165是种并行转串行IC时钟脉冲引脚数据输出引脚数据输入引脚数据加载与移位控制引脚

1号引脚为数据加载与移位控制引脚,当此引脚为低态时,并行输入引脚状态将全部被加载。当此引脚为高态时,可随时钟脉冲进行移位式串行输出。

15号引脚为时钟脉冲禁止引脚,当此引脚为高态时,输出引脚不随时钟脉冲而改变。当此引脚为低态时,输出引脚随时钟脉冲进行改变移位式串行输出第34页试验1:移位式数据串行输入串行数据源是利用74165将指拔开关DIPSW状态转换成串行数据而由P3.2输入,状态将由此反应到P0口所接LED上。第35页6.3.1单片机与单片机通信

一、点对点通信

1、硬件连接

第36页二、应用程序

第37页

设1号机是发送方,2号机是接收方。当1号机发送时,先发送一个“E1”联络信号,2号机收到后回答一个“E2”应答信号,表示同意接收。当1号机收到应答信号“E2”后,开始发送数据,每发送一个数据字节都要计算“校验和”,假定数据块长度为16个字节,起始地址为40H,一个数据块发送完成后马上发送“校验和”。2号机接收数据并转存到数据缓冲区,起始地址也为40H,每接收到一个数据字节便计算一次“校验和”,当收到一个数据块后,再接收1号机发来“校验和”,并将它与2号机求出校验和进行比较。若二者相等,说明接收正确,2号机回答00H;若二者不相等,说明接收不正确,2号机回答0FFH,请求重发。1号机接到00H后结束发送。若收到回复非零,则重新发送数据一次。双方约定采取串行口方式1进行通信,一帧信息为10位,其中有1个起始位、8个数据位和一个停顿位;波特率为2400波特,T1工作在定时器方式2,振荡频率选取11.0592MHZ,查表可得TH1=TL1=0F4H,PCON存放器SMOD位为0。

第38页发送程序清单以下:

ASTART:CLREAMOVTMOD,#20H;定时器1置为方式2MOVTH1,#0F4H;装载定时器初值,波特率2400MOVTL1,#0F4HMOVPCON,#00HSETBTR1;开启定时器

MOVSCON,#50H;设定串口方式1,且准备接收应答信号

ALOOP1:MOVSBUF,#0E1H;发联络信号

JNBTI,$;等候一帧发送完成

CLRTI;允许再发送

JNBRI,$;等候2号机应答信号

CLRRI;允许再接收

MOVA,SBUF;2号机应答后,读至AXRLA,#0E2H;判断2号机是否准备完成

JNZALOOP1;2号机未准备好,继续联络

ALOOP2:MOVR0,#40H;2号机准备好,设定数据块地址指针初值

MOVR7,#10H;设定数据块长度初值

MOVR6,#00H;清校验和单元第39页

ALOOP3:MOVSBUF,@R0;发送一个数据字节

MOVA,R6ADDA,@R0;求校验和

MOVR6,A;保留校验和

INCR0JNBTI,$CLRTIDJNZR7,ALOOP3;整个数据块是否发送完成

MOVSBUF,R6;发送校验和

JNBTI,$CLRTIJNBRI,$;等候2号机应答信号

CLRRIMOVA,SBUF;2号机应答,读至AJNZALOOP2;2号机应答“错误”,转重新发送

RET;2号机应答“正确”,返回第40页接收程序清单以下:BSTART:CLREAMOVTMOD,#20HMOVTH1,#0F4HMOVTL1,#0F4HMOVPCON,#00HSETBTR1MOVSCON,#50H;设定串口方式1,且准备接收

BLOOP1:JNBRI,$;等候1号机联络信号

CLRRIMOVA,SBUF;收到1号机信号

XRLA,#0E1H;判是否为1号机联络信号

JNZBLOOP1;不是1号机联络信号,再等候

MOVSBUF,#0E2H;是1号机联络信号,发应答信号

JNBTI,$CLRTIMOVR0,#40H;设定数据块地址指针初值

MOVR7,#10H;设定数据块长度初值

MOVR6,#00H;清校验和单元第41页BLOOP2:JNBRI,$CLRRIMOVA,SBUFMOV@R0,A;接收数据转储

INCR0ADDA,R6;求校验和

MOVR6,ADJNZR7,BLOOP2;判数据块是否接收完成

JNBRI,$;完成,接收1号机发来校验和

CLRRIMOVA,SBUFXRLA,R6;比较校验和

JZEND1;校验和相等,跳至发正确标志

MOVSBUF,#0FFH;校验和不相等,发错误标志

JNBTI,$;转重新接收

CLRTIEND1:MOVSBUF

温馨提示

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

评论

0/150

提交评论