单片机的串行口

合集下载

单片机原理及应用第6章80C51单片机的串行口

单片机原理及应用第6章80C51单片机的串行口

单片机原理及应用第6章80C51单片机的串行口80C51单片机是一种基于哈佛架构的8位单片机,具有强大的串行口功能。

串行口是一种通信接口,可以通过单根线传输数据。

本章将介绍80C51单片机的串行口原理及其应用。

一、80C51单片机的串行口原理80C51单片机的串行口包含两个寄存器,分别是SBUF(串行缓冲器)和SCON(串行控制寄存器)。

SBUF寄存器用来存储待发送或接收到的数据,SCON寄存器用来配置和控制串行口的工作模式。

80C51单片机的串行口有两种工作模式:串行异步通信模式和串行同步通信模式。

1.串行异步通信模式串行异步通信是指通信双方的时钟频率不同步,通信的数据按照字符为单位进行传输,字符之间有起始位、数据位、校验位和停止位组成。

80C51单片机的串行口支持标准的RS-232通信协议和非标准通信协议。

在串行异步通信模式下,SCON寄存器需要配置为相应的工作模式。

首先,需要选择串行口的工作模式。

80C51单片机支持第9位,即扩展模式,可以用来检测通信错误。

其次,需要设置波特率。

波特率是指数据每秒传输的位数,用波特率发生器(Baud Rate Generator,BRGR)来控制。

然后,需要设置起始位、数据位和停止位的配置,包括数据长度(5位、6位、7位或8位)、停止位的个数(1位或2位)。

在发送数据时,将待发送的数据通过MOV指令传送到SBUF寄存器,单片机会自动将数据发送出去。

在接收数据时,需要检测RI(接收中断)标志位,如果RI为1,表示接收到数据,可以通过MOV指令将接收到的数据读取到用户定义的变量中。

2.串行同步通信模式串行同步通信是指通信双方的时钟频率同步,在数据传输时需要时钟信号同步。

80C51单片机的串行同步通信支持SPI(串行外设接口)和I2C(串行总线接口)两种协议。

在串行同步通信模式下,SCON寄存器需要配置为相应的工作模式。

首先,需要选择串行口的工作模式。

80C51单片机支持主从模式,可以作为主设备发送数据,也可以作为从设备接收数据。

51单片机串行通信接口

51单片机串行通信接口

工 作 方 式 选 择 位
多允 机许 通接 信收 控控 制制 位位
发 接发接 送 收送收 数 数中中 据 据断断 第 第标标 九 九志志 位位
北京交通大学
18
各位功能说明如下: SM0 SM1:串口工作方式选择位
00 方式0: 同步移位寄存器 波特率=主振频率/12
01 方式1: 8位异步,波特率可变
⑵在双机通信中,该位作为奇偶校验位; ⑶在多机通信中用来表示D7-D0是地址帧或数据帧
即:
D8=0:表示数据帧; D8=1:表示地址帧
北京交通大学
20位是接收到的第9位数据。 方式1,SM2=0,停止位。方式0,不用。
⑵在多机通信中是地址帧(RB8=1)和数据帧 (RB8=0)的标识位。
北京交通大学
34
方式2、3的区别是:波特率设置不同 方式2的波特率是固定的。即:
波特率=fosc/32或fosc/64 方式3的波特率是可变的。即:
波特率 2smod
fosc
32 12 (256 X )
X
256
fosc (2s mod ) 384 波特率
北京交通大学
35
表1 波特率与时间常数
第6章 串行通信接口
本章主要内容 • 串行数据通信基本原理 • MCS-51单片机串行口 • 串行口应用举例
北京交通大学
1
一、串行数据通信基本原理
计算机的两种方式数据传送:并行和串行
并行传送的特点:
各数据位同时传送,传送速度快、效率高。
但需要的数据线多,因此传送成本高。并行数据
传送的距离通常小于30米。
3.直到停止位到来之后把它送入到RB8中,并 置位RI,通知CPU从SBUF取走接收到的一个字符。

单片机串行口的工作原理

单片机串行口的工作原理

单片机串行口的工作原理一、引言单片机串行口是单片机与外部设备进行通信的一种重要方式。

它通过串行通信协议将数据从单片机发送到外部设备或从外部设备接收数据并传输到单片机。

本文将详细介绍单片机串行口的工作原理。

二、串行通信协议1. 串行通信概述串行通信是指在同一时间内,只有一个比特(bit)被传输的通信方式。

与之相对的是并行通信,它可以同时传输多个比特。

由于现代计算机系统中各种设备间需要大量数据交换,因此串行通信成为了广泛应用的一种通讯方式。

2. 常见的串行通信协议常见的串行通信协议有RS232、RS485、I2C和SPI等。

其中,RS232是最早广泛使用的标准,用于在计算机和调制解调器之间进行数据传输。

RS485则是一种多点连接的标准,适用于在远距离范围内进行数据传输。

I2C和SPI则主要用于芯片级别的短距离数据传输。

三、单片机串口硬件结构1. 串口芯片在单片机系统中,使用专门的UART(Universal Asynchronous Receiver/Transmitter)芯片来实现串口通信。

UART芯片包括发送和接收两个模块,可以将单片机的并行数据转换为串行数据进行传输,并将接收到的串行数据转换为单片机可以处理的并行数据。

2. 串口引脚在单片机中,通常有两个引脚用于串口通信,分别为TX(发送)和RX(接收)。

这些引脚通过芯片内部的寄存器进行控制,以实现对串口的配置和控制。

3. 波特率发生器波特率是指在单位时间内传输的比特数。

在单片机中,使用波特率发生器来控制UART芯片的工作频率,从而实现不同波特率下的数据传输。

四、单片机串口软件实现1. 串口初始化在使用单片机进行串口通信之前,需要先对串口进行初始化。

这包括设置波特率、校验位、停止位等参数,并启动UART芯片以使其准备好接收或发送数据。

2. 串口发送当需要向外部设备发送数据时,在单片机中可以通过向TX引脚写入相应的比特序列来实现。

在发送前需要检查TX缓冲区是否为空,并等待直到缓冲区为空后再进行下一次传输。

单片机原理及应用串行口

单片机原理及应用串行口

单片机原理及应用串行口单片机是一种集成电路芯片,具有处理器核心、内存、定时器/计数器、输入/输出口等功能。

它采用单一芯片封装,具有体积小、功耗低、性价比高等优点,广泛应用于嵌入式系统、电子设备控制等领域。

串行口是单片机的一种重要接口,它通过串行通信协议实现与外部设备的数据交换。

串行口的主要特点是一次只能传输一个比特的数据,传输速率相对较慢,但传输距离较远,能够满足长距离数据传输的需求。

串行口的应用非常广泛,下面将从基本原理、工作方式和应用场景三个方面进行详细介绍。

1. 基本原理串行口基于串行通信协议,通过发送和接收两个引脚来实现与外部设备的数据交换。

串行口的发送和接收部分需要配合串行通信协议进行设置,包括数据位数、停止位数、奇偶校验位等。

2. 工作方式串行口的工作方式一般分为同步和异步两种模式。

同步模式中,数据传输的速率由外部计时器控制,发送和接收双方需要在同一时钟脉冲上进行数据传输;异步模式中,数据传输的速率由波特率发生器控制,发送和接收双方根据起始位和停止位进行数据传输。

3. 应用场景串行口广泛应用于各种嵌入式系统和电子设备控制中,以下是几个典型的应用场景:(1) 通信设备串行口可用于实现与计算机之间的数据交换,如通过串口与计算机进行数据通信、调试和程序下载等。

同时,串行口还可以与无线模块或蓝牙模块等外部设备配合,实现远程无线通信。

(2) 外设控制串行口可以控制各种外部设备,如继电器、数码管、液晶显示屏等。

通过串行口发送指令或数据,控制外部设备的状态和显示。

(3) 传感器数据采集串行口可以接收和解析各种传感器的数据,如温度传感器、湿度传感器、光照传感器等。

通过串行通信协议,将传感器采集到的数据发送给单片机进行处理和存储。

(4) 工业控制串行口广泛应用于工业领域的数据采集和控制系统中。

通过串行口,可以实现与各种传感器、执行器的数据交换和控制,如温湿度检测系统、智能电表系统等。

(5) 仪器仪表串行口可以连接到各种仪器仪表上,实现数据的采集和控制。

串行口工作方式2、3及应用举例

串行口工作方式2、3及应用举例

二■方式2. 3的应用
▼主从式多机通信:
▼该通信系统中,每个从机有不同的地址;主机与各从机之间能实现 双向通信,而各从机之间不能直接通信,只能通过主机才能通信。
二■方式2. 3的应用
主从式多机通信过程: ▼初始化时令主机的SM2=0,所有从机的SM2=REN = 1; ▼主机在TB8=1时向所有从机发送n号从机的地址; ▼所有从机都收到该地址帧,只有n号从机修改本机的SM2=0 ; ▼主机在TB8=0时发送数据帧,但只有n号从机能够接收到数据信息。 ▼主机与n号从机之间的数据通信完成后,n号从机应重新设定SM2 = 1, 以便等待下一次通信。
-PS.T.'T! D
-
1
R国Pg円
再机
19_ ;:EL1
15_ 5_
PSEN ALE

FAL1 EL2 RST
31 卩UFN
fete
ALE
LED-RED _EA
ponton PO.t'ftDI
PQ3 时
D3 PO.^ftDi PO-S^DS PO.&P.D 6 PO.TJP.D T
P2DPS P2.1.-P3 P22'Ain
例:由三个单片机组成主从式多机通信系统,其中A为主机,B、C为从机。
硬件连接图为:
要求实现: A机的按键按第一次,A机的LED灯亮1秒,同时 A机的两个数码管分别显示〃0”和“A”;
按第二次,B机的LED灯亮1秒,同时A机的两个 4 R1
数码管分别显示“1”和“b”;
zu R2
按第三次,C机的LED灯亮1秒,同时A机的两个
单片机的串行口 -串行口方式2、3及应用
杨凌雪教授河南理工大学
—■方式2. 3的功能特点

51单片机串行口的工作方式

51单片机串行口的工作方式
☞再比如要显示“3” 须令a b c d g 为“0” 电平,e f h为“1”电平。
hgfedcba
a
fg b
e
c
dh
共阳极
累加器 A hgfedcba
0C0H = “0”
0B0H = “3”
例:利用串行口工作方式0扩展出8位并行I/O 口,驱动共阳LED数码管显示0—9。
VCC TxD RxD
☞方式2的波特率 = fosc 2SMOD/64 即: fosc 1/32 或 fosc 1/64 两种
☞奇偶校验是检验串行通信双方传输的数据正确与 否的一个措施,并不能保证通信数据的传输一定正 确。
换言之:如果奇偶校验发生错误,表明数据传输 一定出错了;如果奇偶校验没有出错,绝不等于数 据传输完全正确。
☞ REN:串行口接收允许位。 REN=1 允许接收
☞ TB8,RB8,TI,RI等位由运行中间的情况 决定,可先写成 “0”
三、工作方式2: 9位UART(1+8+1+1位)两种波特率
☞由于波特率固定,常用于单片机间通讯。 数据由8+1位组成,通常附加的一位 (TB8/RB8)用于“奇偶校验”。
☞ 溢出率:T1溢出的频繁程度 即:T1溢出一次所需时间的倒数。
☞ 波特率 =
2SMOD fosc 32 12(2n - X)
其中:X 是定时器初值
☞ 初值 X = 2n -
2SMOD fosc 32 波特率 12
常用波特率和T1初值查表
☞表格有多种, 晶振也不止一种
串口波特率 (方式1,3)
74LS164
hgfedcba
A B
CLK
CLR
74LS164

单片机 串行口精讲

单片机 串行口精讲
19
方式0接收时序 图7-7 方式 接收时序
20
(2)方式 接收应用举例 )方式0接收应用举例 为串行口外接两片 图7-8为串行口外接两片 位并行输入串行输出的寄存器 为串行口外接两片8位并行输入串行输出的寄存器 74LS165扩展两个 位并行输入口的电路。 扩展两个8位并行输入口的电路。 扩展两个 位并行输入口的电路 端由高到低跳变时, 当74LS165的S/ L 端由高到低跳变时,并行输入端的数 的 据被置入寄存器;当S/ L = 1,且时钟禁止端(第15脚)为 据被置入寄存器; , 时钟禁止端( 脚 低电平时 允许 低电平时,允许TXD(P3.1)串行移位脉冲输入,这时在 ( )串行移位脉冲输入, 移位脉冲作用下,数据由右向左方向移动, 串行方式进 移位脉冲作用下,数据由右向左方向移动,以串行方式进 入串行口的接收缓冲器中。 入串行口的接收缓冲器中。
11
SCON的所有位都可进行位操作清“0”或置“1”。 的所有位都可进行位操作清“ ”或置“ ” 的所有位都可进行位操作清 7.1.2 特殊功能寄存器 特殊功能寄存器PCON 字节地址为 所示。 字节地址为87H,不能位寻址。格式如图7-3所示。 ,不能位寻址。格式如图 所示
图7-3
特殊功能寄存器PCON的格式 特殊功能寄存器 的格式
方式0的帧格式 图7-4 方式 的帧格式
14
1.方式0发送 .方式 发送 (1)方式 发送过程 )方式0发送过程 当CPU执行一条将数据写入发送缓冲器 写入发送缓冲器SBUF的指令 的指令时, 写入发送缓冲器 的指令 产生一个正脉冲,串行口开始把SBUF中的8位数据以 产生一个正脉冲 fosc/12的固定波特率 的固定波特率从RXD引脚串行输出,低位在先, TXD TXD引脚输出同步移位脉冲,发送完8位数据,中断标志 发送完8位数据 发送完 位数据, 所示。 位TI置“1”。 发送时序如图7-5所示 置 ” 所示

单片机串行口几种工作方式的波特率

单片机串行口几种工作方式的波特率

单片机串行口几种工作方式的波特率单片机串行口是单片机与外部设备进行通信的重要接口之一。

在串行口通信中,波特率是一个关键参数。

波特率是指每秒钟传送的波特数量,用于衡量数据的传输速率。

单片机串行口的波特率通常选择常见的标准波特率,例如9600、19200、38400等。

单片机串行口的工作方式有多种,下面将详细介绍几种不同的工作方式下的波特率设置。

1. 同步串行口同步串行口是指在传输数据时,发送端和接收端通过一个时钟信号来同步数据的传输。

在同步串行口中,波特率的设置是固定的,因为发送端和接收端需要以相同的波特率来同步数据传输。

常见的同步串行口波特率包括115200、230400等。

2. 异步串行口异步串行口是指在传输数据时,发送端和接收端通过起始位、停止位来进行数据的同步。

在异步串行口中,波特率的设置是非常重要的,因为发送端和接收端需要以相同的波特率来正确解析数据。

常见的异步串行口波特率包括9600、19200、38400等。

3. 高速串行口随着单片机技术的进步和应用的广泛,对串行口的传输速率要求也越来越高。

高速串行口通常指的是波特率在1Mbps及以上的串行口。

高速串行口通常应用于需要大量数据传输的场景,例如高速数据采集、图像传输等。

4. 自适应波特率有些情况下,单片机需要与多种速率不同的设备通信,这就需要单片机具备自适应波特率的能力。

自适应波特率指的是单片机可以根据外部设备的对应波特率来自动调整自身的波特率。

这种方式可以极大地提高单片机的通信灵活性和适用性。

在实际应用中,程序员需要根据具体的通信需求选择合适的波特率,并在程序中进行相应的设置和配置。

还需要注意波特率的选取要与外部设备相匹配,以确保数据的正确传输和解析。

通过上述对单片机串行口几种工作方式的波特率的介绍,我们可以更好地理解单片机串行口通信中波特率的重要性以及不同工作方式下的波特率设置方法。

在实际应用中,合理选择和设置波特率将有利于提高通信的可靠性和稳定性。

单片机串行口及应用特百度

单片机串行口及应用特百度

单片机串行口及应用特百度单片机串行口是指单片机上的一组用于串行通信的接口。

串行通信是一种逐位传输数据的通信方式,相对于并行通信来说,占用的引脚数目较少,适用于资源有限的场合。

单片机串行口通常包括多个引脚,其中包括发送引脚(Tx),接收引脚(Rx)和时钟引脚(Clk)等。

单片机串行口的应用十分广泛,主要涉及以下几个方面:1. 与计算机通信:单片机通过串行口与计算机之间可以进行数据的传输与通信,可以用于单片机与PC进行数据的互传和控制。

在这种应用中,通过合理编程可以实现数据的双向传输,包括数据的发送和接收。

2. 控制外设:单片机可以通过串行口与外部设备进行通信和控制。

比如,单片机可以通过串行口与LCD液晶显示屏通信,控制其显示内容;通过串行口与电机驱动芯片通信,控制电机的转动;通过串行口与温湿度传感器通信,获取环境温湿度信息等。

3. 数据采集与传输:单片机可以通过串行口与各种传感器进行通信,实时采集传感器产生的数据,并通过串行口传输给其他设备进行处理。

比如,可以通过串行口与光电传感器通信,实时采集光照强度并传输给其他设备进行处理;通过串行口与压力传感器通信,实时采集压力数值并传输给其他设备进行处理。

4. 远程控制:单片机可以通过串行口与远程设备进行通信,实现对远程设备的控制。

比如,通过串行口与无线模块通信,实现对远程设备的远程开关控制;通过串行口与蓝牙模块通信,实现对蓝牙设备的远程控制等。

需要注意的是,由于单片机串行口的通信速率相对较低,一般只适合低速数据传输,对于高速数据传输,通常需要使用其他接口,如USB、以太网等。

单片机串行口在物联网、智能家居、工业控制、嵌入式系统等领域有着广泛的应用。

通过串行口的使用,可以实现信息的传输、设备的控制和数据的采集,提高系统的灵活性和可控性。

同时,单片机串行口的应用也需要深入了解串行通信的原理和相关编程知识,以保证通信的稳定和可靠性。

单片机的串行口及应用

单片机的串行口及应用

起 始
D0
D1
D2
D3
D4
D5
D6
D7
停 止
16
第六章 8051单片机的串行口应用
与门
或门
⑴发送:方式1时,发送的工作原理图如上图所示。 D将1写入 数据写 计数器 数据为0 TXD输 D0发 移位寄存 SBUF 溢出 发送为0 出0 送 器9位 TI置 发送第9 清除发 D1发 计数器第16 位 送信号 位1 送 次溢出 17
⑴发送
8位数据写 入SBUF TI置位 撤消 发送 选通D触发 器置1 零检测 器为 0 发送启动 8位数据 移位输出
第9位向 左均为 0
14
左边补0
第六章 8051单片机的串行口应用
⑵接收
当REN=1 且RI为零
启动 接收
1111 1110 写入移位 寄存器
清除接 收信号
15
RXD引脚 接收一位 信号 移位寄存器 的内容送入 SBUF
并行输出, 最高位
清除端,低 电平输出全 为0
时钟输入
24
第六章 8051单片机的串行口应用 例6-1 在单片机的串行口外接一个串入并出8位移位寄存器 74LS164 ,实现串口到并口的转换。数据从RXD端输出,移位脉冲 从TXD端输出。执行如下程序后LED指示灯轮流点亮。
时钟输入端
串行输入端
25
第六章 8051单片机的串行口应用 6.3 串行口应用举例 6.3.1 串口/并口转换 例: 使用74LS164的并行输出接8只发光二极管,利用它的 串入并出功能,把发光二极管从左向右依次点亮,并不断循环 之。
并行输出端
串行输入端
时钟输入端
22
串行输入并行输 出的移位寄存器

80C51系列单片机有一个全双工的串行口

80C51系列单片机有一个全双工的串行口

解:编程如下:
LIGHT:MOV SCON,#00H ;串行口方式0 CLR ES ;禁止串行中断 MOV DPTR,#TAB ;置发光二极管亮暗控制字表首址 LP1: MOV R7,#0 ;置顺序编号0 LP2: MOV A,R7 ;读顺序编号 MOVC A,@A+DPTR ;读控制字 CLR P1.0 ;关闭并行输出 MOV SBUF,A ;启动串行发送 JNB TI,$ ;等待发送完毕 CLR TI ;清发送中断标志 SETB P1.0 ;开启并行输出 LCALL DLY500ms ;调用延时0.5秒子程序(参阅例4-13) INC R7 ;指向下一控制字 CJNE R7,#30,LP2 ;判循环操作完否?未完继续 SJMP LP1 ;顺序编号0~29依次操作完毕,从0开始重新循环 TAB: DB 0FFH,7FH,3FH,1FH,0FH,07H,03H,01H,00H;从左向右依次暗灭, 每次减少一个,直至全灭; DB 80H,40H,20H,10H,08H,04H,02H,01H;从左向右依次点亮,每次亮一个 DB 02H,04H,08H,10H,20H,40H,80H;从右向左依次点亮,每次亮一个 DB 0C0H,0E0H,0F0H,0F8H,0FCH,0FEH;从左向右依次点亮, 每次增加一个,直至全部点亮;
(2) 数据接收
串行口作为并行输入口使用时,要有“并入串出” 的移位寄存器配合。
74HC165 S/L 端为移位 / 置入端,当 S/L=0 时,从 Q0 ~ Q7并行置入数据,当S/L=1时,允许从QH端移出数据。在 80C51串行控制寄存器SCON中的REN=1时,TXD端发出移位 时钟脉冲,从RXD端串行输入8位数据。当接收到第8位数 据D7后,置位中断标志RI,表示一帧数据接收完成。

单片机串行口实验报告实验总结

单片机串行口实验报告实验总结

单片机串行口实验报告实验总结一、实验目的本实验旨在让学生了解单片机串行口的基本原理和应用,掌握单片机串行口的编程方法,培养学生动手实践和解决问题的能力。

二、实验器材1. STC89C52单片机开发板2. 电脑串口线3. 电脑终端仿真软件Tera Term三、实验原理串行口是单片机与外部设备进行通信的重要接口之一。

串行口通信是指将数据一个位一个地传输,每个数据位之间有一个时钟脉冲来同步传输。

常见的串行通信协议有RS232、RS485、SPI等。

本实验主要涉及到RS232协议。

四、实验内容1. 实现单片机向电脑发送数据并显示。

2. 实现电脑向单片机发送数据并控制LED灯闪烁。

五、实验步骤1. 连接STC89C52单片机开发板和电脑,使用Tera Term打开串口终端。

2. 编写程序,设置单片机的串行口通信参数(波特率、数据位数、停止位数等),并利用SendData函数向电脑发送数据。

3. 在Tera Term中设置相应的串口参数,并打开“local echo”选项,以便观察单片机发送的数据。

4. 编写程序,接收电脑发送的数据,并根据接收到的数据控制LED灯闪烁。

5. 在Tera Term中输入相应的命令,向单片机发送数据,观察LED灯的闪烁情况。

六、实验结果1. 实现了单片机向电脑发送数据并显示。

2. 实现了电脑向单片机发送数据并控制LED灯闪烁。

七、实验总结本实验使我对串行口通信有了更深入的理解,掌握了单片机串行口编程方法。

同时也锻炼了我的动手能力和解决问题的能力。

在实验过程中还需要注意串口参数设置和通信协议选择等问题,加深了我对这些知识点的理解。

单片机-实验三-串行口通信实验

单片机-实验三-串行口通信实验

实验三串行口通信实验一、实验目的1、掌握单片机串行口的工作原理及工作方式;2、掌握单片机串行口波特率的设置方法;3、掌握单片机串行口查询方式程序的设计方法。

二、实验内容及要求1、单片机的串行口经RS-232 电平变换后和PC 机相连;2、单片机系统的晶振频率选择11.0592MHz,串行口设置为9600bps、无校验位、8 位数据位、1 位停止位(简记为N81)模式;3、单片机采用查询方式收发数据,将PC 机送来的除回车/换行之外的数据加1 后送回。

三、实验设备硬件:PC 机,nKDE-51 单片机实验教学系统;软件:Keil C51 集成开发环境,FlashMagic 单片机程序烧写软件。

四、实验原理及步骤MCS-51 串行口的结构、原理及各种工作方式参阅教材相关内容。

本实验使用串行口工作方式1,通过定时器1(T1)产生波特率时钟,通过查询串行口收发中断标志RI 和TI 来判断单片机串行口数据收发的状态。

步骤如下:1、创建新项目:Project—New Project—命名、存储—CPU类型(philips P89C52X2)2、创建新程序:编译程序—完成后保存为“.c”格式3、添加程序:Target1—Source Group—add……(程序)4、检测程序:Project—Build Target5、选择烧录程序的方式(右键点target1--opption):output—Creat Execulate:Dubug Information Browse、Creat HexDebug 右侧选择use “Keil Monitor-51 Driver”6、选择程序执行点:在Debug程序烧路后,在开始执行的程序断点上鼠标右键—Set Program Counter7、Go执行五、实验过程1. 电路连接PC 机串行口为RS-232 标准的串行接口,用-15V~-5V 表示1,+5V~+15V 表示0,而单片机的串行口为TTL 电平,+5V 表示1,0V 表示0,因此单片机的串行口不能直接和PC 机的串行口相连,必须经过电平变换才能和PC 机通信。

单片机原理及应用第07章串行口

单片机原理及应用第07章串行口

单片机原理及应用第07章串行口在单片机中,串行口是一种常见的通信接口。

串行口允许单片机与外部设备通过串行通信进行数据的传输和接收。

它常用于与计算机、显示器、键盘、传感器等设备进行数据交互。

串行口一般有两个主要的部分:发送器和接收器。

发送器负责将单片机内部的数据转换成串行数据,并通过一个引脚发送出去。

接收器负责将从外部设备接收到的串行数据转换成单片机内部的数据,供单片机进一步处理。

串行口的应用非常广泛。

以下是串行口在一些常见应用中的使用方式:1.与计算机通信:单片机可以通过串行口与计算机进行数据交互。

这种应用广泛用于传感器数据的采集、控制命令的发送等场景。

通过串行口,单片机可以将采集到的数据传输给计算机进行分析和处理,或者接收计算机发送的控制命令实现特定功能。

2.与显示器通信:串行口可以用来控制液晶显示器(LCD)。

通过发送特定的指令和数据,单片机可以控制液晶显示器显示不同的字符、图形或者动画。

这种应用广泛用于嵌入式系统中的人机交互界面,如数码相机、手机等设备。

3.与键盘通信:通过串行口,单片机可以接收来自键盘的按键数据。

这种应用广泛用于嵌入式系统中的输入设备,如电脑键盘、数字键盘等。

通过接收键盘的按键数据,单片机可以进行相应的操作,如控制电机、显示字符等。

4.与传感器通信:单片机可以通过串行口与各种传感器进行通信。

传感器可以是温度传感器、湿度传感器、光敏传感器等。

通过串行口,单片机可以获取传感器采集到的数据,并进行相应的处理和控制。

总之,串口是一种非常常见并且实用的通信接口,在单片机中得到了广泛应用。

它不仅可以实现单片机与外部设备之间数据的传输和接收,还可以用于控制和监测各种设备。

通过串口的使用,单片机可以更加灵活和方便地与外部设备进行通信,从而实现更多样化、智能化的应用。

AT89C51单片机的串行口

AT89C51单片机的串行口

图7-3 (1)SMOD—波特率选择位
例如:方式1的波特率的计算公式为:
方式1波特率=(2SMOD/32)×定时器T1的溢出率
也称SMOD位为波特率倍增位。
(2)GF1、GF0—通用标志位 这两个标志位可供用户使用,可用软件置1或清0。两个标志位
用户应充分利用。 (3)PD—掉电方式位 若PD=1,单片机进入掉电工作方式。
(4)IDL—待机方式位 IDL=1,单片机进入待机工作方式。
7.2 串行口的4种工作方式 7.2.1 方式0 同步移位寄存器方式,常用于外接移位寄存器,以扩展并行I/O
口。 8位数据为一帧,不设起始位和停止位,先发送或接收最低位。
波特率固定为fosc/12。
帧格式如下:
1.方式0发送 当CPU执行一条将数据写入发送缓冲器SBUF的指令时,产生一个
响。若fosc=12MHz,波特率为fosc/12即1Mb/s。 (2)方式2波特率=(2SMOD/64)×fosc
若fosc=12MHz: SMOD=0 波特率=187.5kb/s; SMOD=1 波特率=375kb/s
(3)方式1或方式3时,波特率为: 波特率=(2SMOD/64)×T1的溢出率
图7-1 控制寄存器共两个:特殊功能寄存器SCON和PCON。 7.1.1 串行口控制寄存器SCON 字节地址98H,可位寻址,格式如图7-2所示。
图7-2
(1)SM0、SM1——串行口4种工作方式的选择位
表7-1 串行口的4种工作方式
SM0 SM1 方式
功能说明
0 0 0 同步移位寄存器方式(用于扩展I/O口)
RETI
;中断返回
2.方式2接收
SM0、SM1=10,且REN=1。数据由RXD端输入,接收11位信息。当 位检测到RXD从1到0的负跳变,并判断起始位有效后,开始收 一帧信息。在接收器完第9位数据后,需满足两个条件,才能 将接收到的数据送入SBUF。

80C51串行接口

80C51串行接口

80C51单片机的串口是一个能进行全双工异步通信或同步移位寄存器,具有4种工作方式的可编程接口。

其帧格式可为8位、10位或11位,并可以设置多种不同的波特率。

通过引脚RXD(P3.0串行数据接收引脚)和引脚TXD(P3.1 串行数据发送引脚)与外界进行通信。

80C51单片机串行口是由发送缓冲寄存器SBUF、发送控制器、发送控制门、接收缓冲寄存器SBUF、接收控制寄存器、移位寄存器和中断等部分组成。

1.SBUF在逻辑上,SBUF只有一个,既表示发送寄存器,又表示接收寄存器。

具有同一个单元地址99H。

在物理上,SBUF有两个,一个是发送寄存器,另一个是接收寄存器。

接收器是双缓冲结构;发送缓冲器,因为发送时CPU是主动的,不会产生重叠错误。

2.控制寄存器与串行通信有关的控制寄存器共有三个。

(1)串行控制寄存器SCONSCON是80C51的一个可位寻址的专用寄存器,用于串行数据通信的控制。

单元地址98H,位地址9FH-98H。

寄存器及位地址表示如下:当方式0时,接收完第8位数据后,该位由硬件置位。

在其它方式下,当接收到停止位时,该位由硬件置位。

因此RI=1,表示帧接收结束,其状态既可供软件查询使用,也可以请求中断。

RI位由软件清0。

(2)电源控制寄存器PCONPCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器。

单元地址为87H。

其内容如下:在HMOS的单片机中,该寄存器中除最高位之外,其它位都是虚设的。

最高位(SMOD)是串行口波特率的倍增位,当SMOD=1时串行口波特率加倍。

系统复位时,SMOD=0。

PCON寄存器不能进行位寻址,因此表中写了“位序”而不是“位地址”。

7.2.2 80C51单片机串行通信工作方式1.串行工作方式0在方式0下,串行口是作为同步移位寄存器使用。

这时以RXD(P3.0)端作为数据移位的入口和出口,而由TXD(P3.1)端提供移位脉冲。

移位数据的发送和接收以8位为一帧,不设起始位和停止位,低位在前高位在后。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
终止位、8个数据位),则这时的波特率为:10×120位/秒
=1200波特(bps).每一位代码的传送时间Td=1/ 1200=0.833ms • 波特率是衡量传输通道频宽的指标,它和传送数据的速率并不一 致。例如上例中,因为除掉起始位和终止位,每一个数据实际只 占8位,所以数据位的传送速率为:8×120=960位/秒 • 异步通讯的传送速度在50~19200波特之间。常用于计算机到终 端机和打印机之间的通信、直通电报以及无线电通讯的数据发送 等。
REN :串行接收使能位,软件置 1 时,启动接 收过程
TB8:多机方式发送的第9位
多机方式的地址/数据帧标志。也可作为奇偶 校验位
RB8:多机方式接收的第9位
多机方式的地址/数据帧标志。也可作为奇偶校验位
TI:发送中断标志位,要由软件清0 RI:接收中断标志位,要由软件清0
方式2和方式3:11位帧,用于多机通信
SM2 —— 多机通信控制位(方式2和3) • SM2 = 0,无多机通信
• SM2 = 1,允许多机通信
REN —— 串行口接收数据控制
• REN = 1,允许串行口接收数据 • REN = 0,禁止串行口接收数据 • 由软件置位或清
• TB8 —— 发送串行输出数据的第 9
双机通信时它可作奇偶校验位;在多机通信中可作为 区别地址帧或数据帧的标识位。
• SM2=1时,接收机处于地址帧筛选状态。若 RB8=1,该地址帧信息可进入SBUF,并 使RI为1,进而在中断服务中再进行地址号 比较;若RB8=0,该帧不是地址帧,应丢掉, 且保持RI=0。 SM2=0时,接收机处于地址帧筛选被禁止状 态。不论收到的RB8为0或1,均可以使收 到的信息进入SBUF,并使RI=1。此时的 RB8通常为校验位。
SMOD=0
装载SBUF 输入移位寄存器
RI
• 8051通过引脚RXD(P3.0,串行口数据接收端)和引 脚TXD(P3.1,串行口数据发送端)与外界进行通信。 • 图中有两个物理上独立的接收、发送缓冲器SBUF, 它们占有同一个地址99H,可同时发送、接收数据。 发送缓冲器只能写入,不能读出;接收缓冲器只能 读出不能写入。 • 串行发送与接收的速率与移位时钟同步。8051用定 时器T1作为串行通信的波特率,T1溢出率经2分频 (或不分频)又经16分频作为串行发送或接收的移 位脉冲。移位脉冲的速率即是波特率。 • 串行口的发送和接收都是以特殊功能寄存器SUBF的 名义进行读或写的,当向SUBF发“写”命令时(执 行MOV SBUF, A 指令)即是向发送缓冲器SBUF装 载并开始由TXD引脚向外发送的一帧数据,发送完 便使发送中断标志位TI=1
8.2单片机串行口的结构与工作原理
• 51系列单片机的串行口是什么? 串行口是一个可编程的全双工串行通信接口,通过软件编程,它可以作通用 异步接收和发送器UART用,也可以作同步移位寄存器用。 • 串行口结构框图:(Pg157)
8
发送SBUF(99H)

TXD(P3.1) 串 寄 行 存 控 器 制 SCON (98H)
串行口的应用
串行口初始化编程格式:
SIO:MOV SCON,#控制状态字 ;写方式字且 TI=RI=0 ( MOV PCON,#80H ) ;波特率加倍 ( MOV TMOD,#20H ) ;T1作波特率发生器 ( MOV TH1,#X ) ;选定波特率 ( MOV TL1,#X ) ( SETB TR1) ( SETB EA) ;开串行口中断 ( SETB ES)
串行口的结构
MCS-51 单片机串行接口的硬件
P3.0 位的第二功能 —— 收端 RXD P3.1 位的第二功能 —— 发端 TXD
MCS-51 单片机串行接口的控制
寄存器 SCON、PCON、SBUF 寄存器 IE、IP
串行口控制寄存器SCON
SM0、SM1 —— 串行接口工作方式定义位 • SM0、SM1 = 00 —— 方式 0,8位同步移位寄存器 • SM0、SM1 = 01 —— 方式 1,10 位异步接收发送 • SM0、SM1 = 10 —— 方式 2,11 位异步接收发送 • SM0、SM1 = 11 —— 方式 3,11 位异步接收发送 注意: 方式 0 的特点,方式 2、方式 3 的差异
多机通信
• 多个MCS-51单片机可以利用串行口进行多机通信。在 多机通信中要保证主机与所选择的从机实现可靠地通信, 必须保证串行口具有识别功能。 • 控制寄存器SCON的SM2位就是为满足这一条而设置 的多机通信控制位。 • 原理:在串行口以方式2(或方式3)接收时,若SM2=1, 表示置多机通信功能位,此时可能出现两种情况: 接 收到的第9位数据为1时,数据才装入SBUF,并置中断 标志RI=1,向CPU发出中断请求。 接收到的第9位数 据为0时,则不产生中断标志,信息抛弃 • 若SM2=0,则接收到的第9位数据不论为0还是1,都 产生RI=1中断标志,接收到的数据装入SBUF。(104)
电源控制寄存器PCON
SMOD :波特率倍增位。在串行口方式 1 、方式 2 、 方式3时,波特率与SMOD有关,当SMOD=1时,波特 率提高一倍。复位时,SMOD=0。
1帧共11位 空 闲 起 始 位 D0 LSB 数据位9位 D7 MSB 停 止 位 空 闲
RB8/TB8
起始位:1位 数据位:9位 停止位:1位 (104)
2.80C51串行口的控制寄存器
串行口控制寄存器SCON
计算波特率
方式0为固定波特率:B=fosc/12 方式2可选两种波特率: B=(2SMOD /64)×fosc 方式1、3为可变波特率,用T1作波特率发生器。 B=(2SMOD/32)×T1溢出率 T1为方式2的时间常数: X = 28 - t/T 溢出时间: t= (28 -X)T = (28 -X)×12/ fosc T1溢出率=1/t= fosc /[12×(2n -X)] 波特率B=(2SMOD /32)×fosc/[12×(28-X)] 串行口方式1、3,根据波特率选择T1工作方式,计算时间常数。 T1选方式2: TH1= X = 28 - fosc/12×2SMOD/(32×B) T1选方式1用于低波特率,需考虑T1重装时间常数时间。 也可选工作方式3。
例:主机向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
内 部 中 断 总 线
定时器T1
发送控制器 分 频 器Βιβλιοθήκη TIRI1
中断
Fosc/2 波特率发生器
接收控制器
8
接收SBUF(99H)
输入移位寄存器
RXD(P3.0)
波特率
• 什么是波特率? • 波特率,即数据传送率,表示每秒钟传送二进制代码的位数,它 的单位是位/秒. • 波特率对于CPU与外界的通信是很重要的:假设数据传送率是 120字符/秒,而每个字符格式包含十个代码(一个起始位、一个
器 T1 接收控制器 RI
TXD
SBUF
移位寄存器
RXD
串行口内部结构示意简图
移位时钟
T1 fosc
1 12
TXD(P3.1) 1/16 发送SBUF(99H)
写SBUF 内部BUS
SMOD=1
TH1 TL1
读SBUF 接收SBUF(99H)
T1溢出率 1/2 PXD(P3.0)
1 12 1 2
1/16
(1)主、从机均初始化为方式2或方式3,置SM2
=1,允许中断。 (2)主机置TB8=1,发送要寻址的从机地址。 (3)所有从机均接收主机发送的地址,并进行地 址比较。 (4)被寻址的从机确认地址后,置本机。SM2= 0,向主机 返回地址,供主机核对。 (5)核对无误后,主机向被寻址的从机发送命令, 通知从机接收或发送数据。 (6)通信只能在主、从机之间进行,两个从机之 间的通信需通过主机作中介。 (7)本次通信结束后,主、从机重置SM2=1, 主机可再对其他从机寻址。
特殊功能寄存器
• 串行数据传送速率控制寄存器 —— PCON
地址:
SMOD = 0,定义波特率不 SMOD = 1,定义波特率加 注:PCON 寄存器的地址为87H, 仅 b7 位有用,不可位寻址 ANL PCON,#7FH:对SMOD位清 ORL PCON,#80H:对SMOD位置
TDL:等待方式 PD:掉电方式 GF1、 GF2通用标志位
• 接收器是双缓冲结构,在前面一字节被从接收缓冲器 SBUF读出之前,第二字节即开始被接收(串行输入 至移位寄存器)但是,在第二字节接收完毕而前一字 节CPU未读取时,会丢失前一字节。 • 在满足串行口接收中断标志位RI(SCON.0)=0的条件 下,置允许接收位REN(SCON.4)=1就会启动接收一 帧数据进入输入移位寄存器,并装载到接收SBUF中, 同时使RI=1.当发读SBUF命令时(执行MOV A , SBUF指令),即是有接收缓冲器(SBUF)取出信息 通过8051内部总线送CPU. • 对于发送缓冲器,因为发送时CPU是主动的,不会 产生重叠错误,一般不需要用双缓冲器结构来保持最 大传送速率。
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
• • • • • • • • • • • • • •
从机程序: SR3 :JNB RI,$ ORG 0030H CLR RI MAIN: MOV R0,#30H MOV R6,#10H JNB TB8,RHT SI: MOV SCON,#0B0H SETB SM2 SR1: JNB RI,$ SJMP SR1 CLR RI RHT: MOV A,SBUF SR2: MOV A,SUBF MOV @R0 , A XRL A,#02H INC R0 JNZ SR1 CLR SM2 DJNZ R6,SR3 MOV SBUF,#02H AJMP SI JNB TI,$ END CLR TI
相关文档
最新文档