80C51单片微机的串行口原理及应用(m)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

串行通信的基本特征是数据逐位顺序进行传送 串行通信的格式及约定(如:同步方式、通讯 速率、数据块格式、信号电平……等)不同,形成 了多种串行通信的协议与接口标准。 常见的有: ☞通用异步收发器(UART)——本课程介绍的串口 ☞通用串行总线(USB) ☞I2C总线 ☞CAN总线 ☞SPI总线 ☞RS-485,RS-232C,RS422A标准……等等
D7 D6 D5 D4 D3 D2 D1 D0
SD7
SD6
SD5
SD4
SD3
SD2
SD1
SD0
☞读SBUF(MOV A,SBUF)访问接收SBUF ☞写SBUF(MOV SBUF,A)访问发送SBUF
7.3 串行口的工作方式
7.3.1 串行口方式0---同步移位寄存器方式
SM0=0、SM1=0。同步移位寄器方式。 · 数据传输波特率固定为(1/12)fosc。
当定时/计数器T1用作波特率发生器时,通常 选用工作方式2----自动重装(TH1=TL1=初值X)。
(1)用定时器T1(方式0)产生波特率
无自动重装载,为精确计算溢出率,一般可把中断服务 程序的机器周期数计算在内,比如T1工作于方式0:
式中:TC——13位计数器初值; X—— 中断服务程序的机器周期数,在中断服务程序中
二、串行通信的制式
串行通信按照数据传送方向可分为三种制式:
1、单工制式(Simplex)
单工制式是指甲乙双方通信时只能单向传 送数据,发送方和接收方固定。
2、半双工制式(Half Duplex)
半双工制式是指通信双方都具有发送器 和接收器,既可发送也可接收,但不能同时 接收和发送,发送时不能接收,接收时不能 发送。
2、 同步通信
同步通信依靠同步字符保持通信同步。 同步通信是由1~2个同步字符和多字节数 据位组成,同步字符作为起始位以触发同步时 钟开始发送或接收数据;多字节数据之间不允 许有空隙,每位占用的时间相等;空闲位需发 送同步字符。
同步通信传输速度较快,但要求有准确的 时钟来实现收发双方的严格同步,对硬件要求 较高,适用于成批数据传送。
时钟信号TXCLOCK和RXCLOCK;
输入移位寄存器将外部的串行数据转换为并行数据; 输出移位寄存器将内部的并行数据转换为串行数据; 串行中断标志(RI和TI)。
7.2.2 80C51串行口控制
⒈ 串行口状态控制寄存器 SCON
SCON D7 D6 D5 D4 D3 D2 D1 D0
位名称
位地址 功能
▲ 发送或接收一帧信息为 11位: 1位起始位 (0)、8 位 数据位(低位在前) 、1位可编程位和1位停止位(l)。
起始 D0 D1 D2 D3 D4 D5 D6 D7 TB8/RB8 停止
方式2波特率:
波特率=(2SMOD /64) ╳
fosc
方式3波特率与方式1相同
7.4 多处理机通信方式
SM2:多处理机通信位。
PD
IDL
PCON寄存器不能进行位寻址。 复位后,SMOD=0 ☞ SMOD:在串行口工作方式 1、2、3 中,是波特
率加倍位
=1 时,波特率加倍 =0 时,波特率不加倍。 (在PCON中只有这一个位与串口有关)
⒊ 串行数据寄存器SBUF
物理上是两个8位寄存器: 发送数据寄存器 接收数据寄存器 同一个地址99H
四、 波特率(BAUD RATE)
串行通信的传送速率用于说明数据传送的快慢.
“波特率”表示每秒种传输离散信号事件的个数, 或每秒信号电平的变化次数,单位为band(波特)。 “比特率”是指每秒传送二进制数据的位数,单位 为比特/秒,记作bits/s或b/s或bps。
在二进制的情况下,波特率与比特率数值相等
方式1时,若SM2=l,只有接收到有效的停止位,接 收中断RI才置1。
方式2和方式3时,
●SM2=1,则只有当接收到的第9位数据RB8为1时, 才将接收到的前8位数据送入缓冲器SBUF中,并把RI置1、同 时向CPU申请中断;如果接收到的第9位数据RB8为0,RI置0, 将接收到的前8位数据丢弃。 ●SM2=0时,则不论接收到的笫9位数据是0或1,都 将前8位数据装入SBUF中,并申请中断。
同步移位寄存器输入/输出,波特率固定为fosc/12 8位UART;波特率可变(T1溢出率/n,n=32或16)
9位UART,波特率固定为fosc/n,(n=64或32) 9位UART,波特率可变(T1溢出率/n,n=32或16)
⑵SM2 :允许方式2、3中的多处理机通信位。
方式0时,SM2=0。
实验五
定时器
P1.0、P1.1接两个发光管,INT0接一启动按 键,启动后两个发光管一亮一灭,亮灭时间 为1s,再按按键停止发光管。
51单片机IO端口操作的一个有趣现象:我想实现P1.1端
口跟随P1.4端口同步输出,都是驱动LED,P1.4端口使
用定时器定时翻转,主循环程序随时判断P1.4状态,同 步驱动P1.1。程序如下:
SM0
9FH
SM1
9EH
SM2
9DH 多机通信 控制
REN
9CH 接收 允许
TB8
9BH 发送 第9 位
RB8
9AH 接收 第9 位
TI
99H 发送 中断
RI
98H 接收 中断
工作方式 选择
⑴ SM0、SM1:串行口工作方式选择位。
SM0 SM1 工作方式 功能说明
0 0
1 1
0 1
0 1
0 1
2 3
※ 多机通信方式
※ 串行口的应用
7.1 串行数据通信概述
计算机与外界信息交换称为通信。 一、传送方式: 通信的基本方式: 并行通信是数据的各位同时发送或同时接收; 串行通信是数据的各位依次逐位发送或接收。 并行通信优点:传送速度快 缺点:不便长距离传送 串行通信优点:便于长距离传送 缺点:传送速度较慢
能将数据收到接收SBUF和RB8,而且置位RI的
条件是:RI=0 + SM2=0
SM2=1 且接收到的停止位= 1 。
指令:MOV A,SBUF
7.3.3 串行口方式2和3 9位UART
SM0=1、SM1=0,选择方式2; SM1=1、SM0=1,选择方式3。 ▲ 由TXD引脚发送数据。 ▲ 由RXD引脚接收数据。
位地址
位功能
8FH
TF1
8EH
TR1
8DH
TF0
8CH
TR0
8BH
IE1
8AH
IT1
89H
IE0
88H
IT0
2. TMOD
D7 D6 T1 D5 M1 D4 M0 D3 D2 T0 D1 M1 D0 M0
GATE C/T
GATE C/T
第七章
80C51单片微机的串行口 原理及应用
本章内容: ※ 串行数据通信概述 ※ 80C51串行口及控制 ※ 串行口的工作方式
FLAG BIT 00H CPL FLAG MOV C,FLAG MOV OUT,C
看来没问题,可是下载到单片机中, 只见OUT闪烁,LED根本不动,奇 怪??
MOV C,FLAG
串行通信
图6–2 方式0时,定时器/计数器T0、T1的逻辑结构图
定时器/计数器T0、T1 的控制寄存器
1.TCON
· 由RXD引脚输入或输出数据,
· 由TXD引脚输出同步移位时钟。
· 接收/发送的是8位数据,传输时低位在前。 帧格式
•••
D0
D1
D2
D3
D4
D5
D6
D7
•••
⑴发送
条件:TI=0
指令:MOV SBUF,A RXD引脚:输出数据; TXD引脚:输出移位脉冲 完成一帧数据发送,TI置1
☞ 注意:软件清TI标志
D0
。。。。。。
方式1或方式3
19200
11.0592
1
FDH
串行口编程:
初始化:(包括接收方和发送方)
如果选用工作方式1/3,应该根据波特率计算定时
器/计数器T1的计数初值,并对T1初始化。 设定串行口工作方式, 设置SCON。 设置PCON中SMOD位。 发送/接收:用查询或中断方式进行。
7.5.2 方式0的编程和应用
⑵接收
条件:REN=1 且RI=0
指令:MOV A, SBUF 完成一帧数据接收,RI置1
☞ 注意:软件清RI标志
7.3.2 串行口方式1----8位Uwk.baidu.comRT
SM0=0、SM1=l。
▲ 数据传输波特率由T1或T2的溢出率决定。
▲ 由 TXD引脚发送数据。
▲ 由 RXD引脚接收数据。
起始 D0 D1 D2 D3 D4 D5 D6 D7 停止
重新对定时器置数。
(2) T1工作于方式1:
T1工作于方式2: 波特率 fosc(M SMOD bit/s Hz) 1200 11.0592 0 方式1或方式3 串口工作方式 方式1或方式3 方式1或方式3 方式l或方式3 2400 4800 9600 11.0592 11.0592 11.0592 0 0 0 Tl方式2定时初 值 E8H F4H FAH FDH
3、全双工制式(Full Duplex)
全双工制式是指通信双方均设有发送器和 接收器,并且信道划分为发送信道和接收信道, 因此全双工制式可实现甲乙双方同时发送和接 收数据,发送时能接收,接收时也能发送。
三、异步通信和同步通信
1、异步通信
异步通信依靠起始位、停止位保持通信同步。 异步通信数据传送按帧传输,一帧数据包含 起始位、数据位、校验位和停止位。 异步通信对硬件要求较低,实现起来比较简 单,适用于数据的随机发送/接收,但因每个字 符都要额外附加两位,所以工作速度较低,在 单片机中主要采用异步通信方式。
1. 数据输出(发送)(SMO=0,SM1=0)
MOV SBUF,A-->数据从RXD端在移位脉冲(TXD)的 控
制下,逐位移入74LS164,74LS164能完成数据的串并转换。
当8位数据全部移出后,TI由硬件置位,发生中断请求。 若CPU响应中断,则从0023H单元开始执行串行口中断服务程 序,数据由74LS164并行输出。其接口逻辑如下图所示。
方式2或方式3接收时,若SM2=1,只有当接收到的第 9位 数据RB8为1时,才将数据送入接收缓冲器 SBUF,并使RI置 1 ,申请中断,否则数据将丢失;若 SM2 = 0 ,则无论第 9 位 数据RB8是1还是0,都能将数据装入SBUF,并且发中断。
RI=RB8+SM2
主机欲与某从机通信:先向所有从机发出所选从机的地址, 从机地址符合后,再发送命令或数据。 主机 初始化: SM2=0 发地址/TB8=1 从机 SM2=1,允许中断 所有从机都能接收地址,
不是本机地址则维持SM2=1,
是本机地址,则置SM2=0 发数据/TB8=0 只有SM2=0的从机可接收, 其它不能接收
7.5串行口的应用
7.5.1串行口的波特率发生器及波特率计算
方式0:波特率=fosc/12。
2 SMOD f osc 方式2: 波 特 率 64
方式1和3: 波特率 = 2SMOD fosc 32 12(2n - X)
7.2
7.2.1
80C51串行口及控制
80C51串行口结构
80C51 中的串行口是一个全双工的异步串行通信接口, 它可作 UART (通用异步接收和发送器)用,也可作同步移 位寄存器用。
8XC552中就增加了具有I2C总线功能的串行口。
⒈ 波特率发生器
一般由T1(T2) 提供串行口的时钟信号。
⒉ 串行口内部 ⑴ 串行数据缓冲寄存器SBUF(两个) ⑵ 串行口控制寄存器SCON ⑶ 串行数据输入/输出引脚—RXD/TXD ⑷ 串行口控制逻辑
☞ 接收/发送数据,无论是否采用中断方式工作,每
接收/发送一个数据都必须用指令对 RI/TI 清0,以 备下一次收/发。
⒉ 电源控制及波特率选择寄存器 PCON
最高位SMOD与串行口控制有关,其它位与低功 耗工作方式有关。
D7 D6 D5 D4 D3 D2 D1 D0
SMOD


WLF
GF1
GF0
串行通信常用的标准波特率在RS-232C标准中已有规定, 如波特率为600、1200、2400、4800、9600、19200等等。 若数据传送速率为120字符符/s,而每一个字符帧已规定为10 个数据位,则传输速率为120×10=1200bit/s,即波特率为 1200, 每一位数据传送的时间为波特率的倒数T=1÷1200=0.833ms
波特率 = (2SMOD / 32)×(T1溢出率) 2SMOD fosc 波特率 = 32 12(2n - X)
初值 X = 2n -
2SMOD fosc
32 波特率 12
⑴发送:
MOV SBUF,A
⑵接收
当 REN = 1 且 RI=0 后,若在 RXD 引脚上检测
到一个1到0的跳变,立即启动一次接收。
相关文档
最新文档