slide1 n.
Download
Skip this Video
Download Presentation
6.2 80C51 的串行口

Loading in 2 Seconds...

play fullscreen
1 / 45

6.2 80C51 的串行口 - PowerPoint PPT Presentation


  • 106 Views
  • Uploaded on

6.2 80C51 的串行口. 第 6 章 80C51 的串行接口. 本章内容:. 6.1 计算机串行通信基础. 6.3 单片机串行口应用举例. 学习目标 :. 单片机串行通信 I/O 接口的结构 串行通信控制寄存器 单片机串行通信的工作方式 以及串行通信应用。. 6.1.1 串行通信基本概念. 计算机 计算机. 通讯:信息交换. 计算机 外设. 应用:多机系统、计算机网络. 并 行通信. 方 式. 异 步通信方式 — 按 字符 传输. 串 行通信. 同 步通信方式 — 按 数据块 传输.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '6.2 80C51 的串行口' - wynter-castro


Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1
6.2 80C51的串行口

第6章 80C51的串行接口

本章内容:

6.1 计算机串行通信基础

6.3 单片机串行口应用举例

slide2
学习目标:
  • 单片机串行通信I/O接口的结构
  • 串行通信控制寄存器
  • 单片机串行通信的工作方式
  • 以及串行通信应用。
6 1 1
6.1.1 串行通信基本概念

计算机 计算机

通讯:信息交换

计算机 外设

应用:多机系统、计算机网络

并行通信

异步通信方式—按字符传输

串行通信

同步通信方式—按数据块传输

单工 半双工 全双工

slide4
并行通信:数据多位同时传送 P112

控制简单,传输速度快,传输线较多

slide5
串行通信:数据字节一位一位在一条传输线上逐个传送。 P113

传输线少,可利用电话网,但传送控制复杂。

slide6

异步通信:收、发设备使用各自时钟 P113。

字符之间是异步的,但同一字符内是同步的(各位间距均为”位间隔”的整数倍)

slide7
同步通信:发送方时钟与接收方时钟同步。既保持位同步,也保持字符同步。P114同步通信:发送方时钟与接收方时钟同步。既保持位同步,也保持字符同步。P114

外同步 自同步

保持位同步,也保持字符同步.

slide8

串行通信的传输方向 P115

单工 半双工 全双工

例如:广播 大哥大 手机

slide9

传输速率与传输距离p117

传输速率

比特率:每秒钟传输二进制代码的位数bps

波特率:每秒钟调制信号变化的次数,单位是:波特(Baud)。

例如:数据传送的速率为120个字符每秒,每个字符由1个起始位、8个数据位和1个停止位组成,则其传送波特率为:

10b×120/s=1200b/s=1200波特

传输距离与传输速率的关系:

传输距离随传输速率的增加而减小。

slide10

6.1.2 串行通信接口标准

  • RS-232C接口 P117

EIA(美国电子工业协会)1969年修订RS-232C标准,它定义了DTE与DCE间的物理接口标准。

slide11

机械特性 P117

使用25针连接器,连接器的尺寸及每个插针的排列位置都有明确的定义。(阳头)

  • 功能特性: P118 表6-1
  • 电气特性 P118

负逻辑,DC(-3~-15v)为1。 DC(+3~+15v)为0, DC(-3~+3v)为过渡区。

  • 过程特性

规定了信号间的时序关系。

slide12

远程通信连接

近程通信连接

rs232c ttl p119
RS232C电平与TTL电平转换 P119

分离元件电平转换电路

6 2 1 p122
6.2.1串行接口的结构 P122

主要由两个数据缓冲寄存器SBUF和一个输入移位寄存器,以及一个串行控制寄存器SCON(TI\RI)等组成。

SCON

A

slide17

6.2.2 80C51串行口的控制寄存器

设定工作方式、接收/发送控制以及设置状态标志

SCON(98H)

SM0 SM1 SM2 REN TB8 RB8 TI RI

  • SM0、SM1:工作方式设置位

0 0:移位寄存器 ,fosc/12

0 1:10位异步收发器(8位数据),波特率可变

1 0:11位异步收发器(9位数据),fosc/64或fosc/32

1 1:11位异步收发器(9位数据),波特率可变

slide18
SM2,多机通信控制位。
  • 主要用于方式2和方式3。对于接收机

SM2=0,收到RB8(0或1)既可使收到的数据进入SBUF,并激活RI。

SM2=1,收到的RB8=0时,收到的信息丢弃,不激活RI ;若收到的RB8=1时,收到的数据进入SBUF,并激活RI,进而在中断服务中将数据从SBUF读走。

  • 方式0时,SM2必须是0。
  • 方式1时,SM2=1时,只有接收到有效停止位时,RI才激活。
  • REN,允许串行接收位。

置REN=1,启动串口接收过程

置REN=0,则禁止串口接收

slide19
TB8,在方式2、3中,是发送数据的第9位
  • 数据的奇偶校验位
  • 地址帧/数据帧的标志位
  • RB8,在方式2、3中,是接收到数据的第9位
  • 奇偶校验位
  • 地址帧/数据帧的标志位。

方式1时,若SM2=0,则RB8是接收到的停止位。

slide20

TI,发送中断标志位。

  • 方式0时,串行发送第8位数据结束时
  • 其它方式,串行发送停止位的开始时

硬件使TI置1,发中断申请。必须在中断服务程序中用软件将其清0。

  • RI,接收中断标志位。
  • 方式0时,串行接收第8位数据结束时
  • 其它方式,串行接收停止位的中间时

硬件使RI置1,发中断申请。必须在中断服务程序中用软件将其清0。

slide21
PCON: P123

PCON(97H)

SMOD

  • SMOD,波特率倍增位。

在方式1、2、3时,波特率与SMOD有关:

SMOD=1时,波特率提高一倍。复位时SMOD=0。

6 2 3 80c51
6.2.3 80C51串行口的工作方式
  • 1.方式0_ 8位数据 P124
  • 串行接口工作方式0为同步移位寄存器方式,多用于I/O口的扩展,其波特率是固定的,为fosc/12。TXD引脚输出同步移位脉冲,RXD引脚串行输入/输出。

方式0接收和发送电路

slide23
方式0掌握:
  • 1、8位数据,波特率为F0SC/12
  • 2、低位在前,高位在后
  • 3、TI,再发送数据,软件清0,CLR TI
  • 4、RI,再接收数据,软件清0,CLR RI
  • 5、同步通信,无起始位和停止位
slide24
2.方式1_ 10位数据 P125
  • 在方式l时,串行口被设置为波特率可变的8位异步通信接口。发送/接收1帧数据为10位,其中1位起始位、8位数据位(先低位后高位)和

10位数据的异步通信。帧格式如图所示.

slide25
方式1掌握:
  • 1、一帧为10位信息,1位起始(0),8位数据,1位停止(1)
  • 2、波特率=P127
  • 3、异步通信
  • 4、接收时,RB8里是停止位,数据位在SBUF(SM2=0)
slide26
3.方式2_ 11位数据 P126
  • 串行口工作为方式2时,被定义为9位异步通信接口。发送/接收1帧数据为11位,其中1位起始位、8位数据位、1位控制/校验位和1位停止位。控制/校验位为第9位数据。
  • 4.方式3_ 11位数据
  • 方式3为波特率可变的11位异步通信方式,除了波特率有所区别之外,其余同方式2。

11位数据的异步通信

slide27
工作方式掌握:
  • 1、几中工作方式波特率不同,P127
  • 2、传送的位数不同,方式0是8位(数据位),方式1是10(8位数据——SBUF,1个起始、1位停止——RB8),方式2和方式3都是11位(8位数据,1位控制/校验位——RB8、TB8,1位起始和1位停止位)
  • 3、方式0是同步,方式1、2、3是异步
slide28
5、波特率的计算

方式0、2的波特率是固定的,而方式1、3的波特率是可变的,由定时器T1的溢出率来决定。

方式0波特率 = fosc/12

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

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

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

K为定时器T1的位数。

slide29
6.3 单片机串行口应用举例
  • 点对点的通信
  • 硬件连接

6.3.1 单片机与单片机的通信P128

slide30
串行口初始化具体步骤:
  • 确定T1的工作方式(编程TMOD寄存器);
  • 计算T1的初值,装载TH1、TL1;
  • 启动T1(编程TCON中的TR1位);
  • 确定串行口控制(编程SCON寄存器);

串行口在中断方式工作时,还要进行中断设置(编程IE、IP寄存器)。

slide31

多机通信 P131

  • 硬件连接
  • 主从系统
  • 在实际系统中,常采用RS-485标准进行数据传输。
slide32

6.3.2 单片机与PC机的通信

应用系统设计中,单片机与PC机可以方便地组合成分布式控制系统。主计算机监督管理各子系统分机的运行状况。其特点是灵活性好、可靠性高。

slide33

DOS环境下,要实现通信只要直接对微机接口芯片8250进行口地址操作即可DOS环境下,要实现通信只要直接对微机接口芯片8250进行口地址操作即可

  • WINDOWS环境下,不允许用户直接操作串口地址。可以调用API函数,但较为复杂。使用 VB通信控件(Mscomm)很容易完成通信任务

VB简明易用,实用性强。它具备基本的串行通信能力:即通过串行口发送和接收数据。

slide34

MSComm控件主要属性如下:

CommPort:设置并返回通信端口号;

Settings: 以字符串的方式设置并返回波特率、奇偶校验、数据位、停止位;

PortOpen:设置并返回端口的状态,也可以打开和关闭端口;

Input: 从接收缓冲区返回字符和删除字符;

Output: 向传输缓冲区写一个字符。

slide35

单片机程序清单如下:

ORG 3000H

MAIN:MOV TMOD,#20H ;在11.0592MHz下,串行口波特率

MOV TH1,#0FDH ;9600bps,方式3

MOV TL1,#0FDH

MOV PCON,#00H

SETB TR1

MOV SCON,#0D8H

LOOP:JBC RI,RECEIVE ;接收到数据后立即发出去

SJMP LOOP

RECEIVE:MOV A,SBUF

MOV SBUF,A

SEND:JBC TI,SENDEND

SJMP SEND

SENDEND:SJMP LOOP

slide36
6.4 单片机串行口的应用
  • 6.4.1 串行口扩展显示器
  • 【例6-4-1】用8位串入并出移位寄存器74HC164扩展显示器。
dis0 8
功能:把数据从显示缓冲区送到数码管。入口;将要显示的数放在以DIS0为首的8个单元中。出口:把预置的数输出以更新原有的显示。功能:把数据从显示缓冲区送到数码管。入口;将要显示的数放在以DIS0为首的8个单元中。出口:把预置的数输出以更新原有的显示。

MOV R2,#08H ;显示8个数码管

MOV R0,#DIS7 ;显示缓冲区未地址送入R0

DL0:MOV A,@R0 ;取要显示数作查表偏移量

MOV DPTR,#TAB ;指向字形表首

MOVC A,@A+DPTR;查表得字形码

MOV SBUF,A ;发送显示

DL1: JNB T1,DL1 ;等待发送完一帧

CLR T1 ;清中断标志,准备继续发送

DEC R0 ;更新显示单元

DJNZ R2,DL0 ;重复显示所有数码管

TAB:DB 0C0H,0F9H,0A4H,0B0H,99H;0,1,2,3,4,

DB 92H,82H,0F8H,80H,90H;5,6,7,8,9,

DB 88H,83H,0C6H,0A1H,86H;A,B,C,D,E,

DB 8EH,0BFH,8CH,0FFH;F,-,P,暗

6 4 2
6.4.2 串行口扩展的键盘
  • 在方式0下,串行口作同步移位寄存器用,以8位数据为一帧,先发送或接收最低位,每个机器周期发送或接收一位,故其波特率是固定的,为fosc/12。串行数据由RXD(P3.0)端输入或输出。
slide39

CJNE R1,#08,LP1 SJMP RCVIN1:MOV A,R0 ADD A,A JMP @A+DPTR TAB:AJMP OPR0 AJMP OPR1 … AJMP OPR7OPR0:… LJMP STARTOPR7:…LJMP STARTEND

  • ORG 0100H
  • START:MOV R7,#20
  • MOV R0,#50H
  • MOV DPTR,#TAB
  • RCVI:MOV SCON,#10H
  • JNB RI,$
  • CLR RI
  • MOV A,SBUF
  • MOV R0,#0
  • MOV R1,#0
  • LP1:RRC A
  • JNC N1
  • INC R0
  • INC R1
6 4 3

【例6】编程把甲机片内RAM50H~5FH单元中的数据块从串行口输出。定义在方式3下发送,TB8作奇偶校验位。采用定时器1方式2作波特率发生器,波特率为1200波特,fosc=11.0592MHz,预置值TH1=0E8H。【例6】编程把甲机片内RAM50H~5FH单元中的数据块从串行口输出。定义在方式3下发送,TB8作奇偶校验位。采用定时器1方式2作波特率发生器,波特率为1200波特,fosc=11.0592MHz,预置值TH1=0E8H。

6.4.3 双机通信

编程使乙机从甲机接收16个字节数据块,并存入片外3000H~300FH单元。接收过程中要求判奇偶校验标志RB8。若出错则置F0标志为1,若正确则置F0标志为0,然后返回。

slide41
发送子程序如下:
  • MOV TMOD,#20H ;设置定时器1为方式2
  • MOV TL1,#0E8H ;设预置值
  • MOV TH1,#0E8H
  • SETB TRI ;启动定时器1
  • MOV SCON,#0C0H ;设置串行口为方式3
  • MOV PCON,#00H ;SMOD=0
  • MOV R0,#50H ;设数据块指针
  • MOV R7,#10H ;设数据长度10H
  • TRS:MOV A,@R0;取数据送至A
  • MOV C,P
  • MOV TB8,C ;奇偶位P送至TB8
  • MOV SBUF,A 启动发送
  • WAIT:JNB TI,$ ;判1帧是否发送完
  • CLR TI
  • INC R0 ;更新数据单元
  • DJNZ R7,TRS ;循环发送至结束
slide42
接收子程序编程如下:
  • MOV TMOD,#20H ;设置定时器1为方式2
  • MOV TL1,#0E8H ;设预置值
  • MOV TH1,#0E8H
  • SETB TR1 ;启动定时器1
  • MOV SCON,#0C0H ;设置串行口为方式3
  • MOV PCON3,#00H ;SMOD=0
  • MOV DPTR,#3000H ;设置数据块指针
  • MOV R7,#10H ;设数据块长度
  • SETB REN ;允许接收
  • WAIT:JNB RI,$ ;判1帧是否接收完
  • CLR RI
slide43
MOV A,SBUF ;读入1帧数据
  • JNB PSW.0,PZ ;奇偶位P为0则跳转
  • JNB RB8,ERR ;P=l,RB8=0则出错
  • SJMP YES ;二者全为1则正确
  • PZ:JB RB8,ERR ;P=0,RB8=l则出错
  • YES:MOVX @DPTR,A ;正确,存放数据
  • INC DPTR ;修改地址指针
  • DJNZ R7,WAIT ;判断数据块接收完否
  • CLR PSW.5 ;接收正确且接收完清F0标志
  • RET ;返回
  • ERR:SETB PSW.5 ;出错则置F0标志为“l”
  • RET ;返回
02 50h 5fh 02 ram30h 3fh
例:主机向02号从机发送50H~5FH中的数据;02号从机将接收到的数据放到内RAM30H ~3FH单元中。
  • 主机程序:
  • ORG 0030H
  • MAIN:MOV SCON,#98H
  • M1: MOV SBUF,#02H
  • L1: JNB TI,$
  • CLR TI
  • JNB RI,$
  • MOV A,SUBF
  • XRL A,#02H
  • JZ RHT
  • AJMP M1
  • RHT :CLR TB8
  • MOV R0,#50H
  • M1: MOV R7,#10H
  • L3: MOV A,@R0
  • MOV SBUF,A
  • JNB TI,$
  • CLR TI
  • INC R0
  • DJNZ R7,L3
  • AJMP MAIN
  • END
slide45

SR3 :JNB RI,$

  • CLR RI
  • JNB TB8,RHT
  • SETB SM2
  • SJMP SR1
  • RHT: MOV A,SBUF
  • MOV @R0 , A
  • INC R0
  • DJNZ R6,SR3
  • AJMP SI
  • END
  • 从机程序:
  • ORG 0030H
  • MAIN: MOV R0,#30H
  • MOV R6,#10H
  • SI: MOV SCON,#0B0H
  • SR1: JNB RI,$
  • CLR RI
  • SR2: MOV A,SUBF
  • XRL A,#02H
  • JNZ SR1
  • CLR SM2
  • MOV SBUF,#02H
  • JNB TI,$
  • CLR TI