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取走接收到的一个字符。
51单片机模拟spi串行接口程序

{
unsigned char BitCounter;
for(BitCounter=8; BiCounter!=0; BitCounter--)
{ CLK=0;
DataI=0; // write
if(val&0x80) DataI=1;
val<<=1;
CLK=1;
if(DataO)val|=1; // read
}
CLK=0;
return val;
}
sbit CLK= P1^5;
sbit DataI=P1^7;
sbiபைடு நூலகம் DataO=P1^6;
#define SD_Disable() CS=1 //片选关
#define SD_Enable() CS=0 //片选开
val<<=1;
CLK=1;
if(DataO)val|=1; // read
}
CLK=0;
return val;
}
sbit CLK= P1^5;
sbit DataI=P1^7;
sbit DataO=P1^6;
#define SD_Disable() CS=1 //片选关
#define SD_Enable() CS=0 //片选开
unsigned char SPI_TransferByte(unsigned char val)
{
unsigned char BitCounter;
for(BitCounter=8; BiCounter!=0; BitCounter--)
{ CLK=0;
AT89C51单片机与PC机串行通信的接口实现

AT89C51单片机与PC机串行通信的接口实现[摘要] 本文介绍了AT89C51单片机与PC机采用RS232C标准进行串行通信的接口实现。
在接口中采用MAX232作电平转换电路,简单的通信协议,PC 机用VB编程,AT89C51单片机采用中断收发方式。
文章给出了相应通信接口电路与程序。
[关键词] 通信协议RS232C 通信接口电路通信接口程序AT89C51是一种带4K字节可编程可擦除只读存储器(FLASH FPEROM)和128字节的存取数据存储器(RAM)的低电压,高性能CMOS8位微处理器。
采用了ATMEL公司的高密度、不容易丢失存储技术,与MCS-51系列的单片机兼容。
具有集成程度高、系统结构简单、价格低廉等优点被广泛应用到控制领域中。
但是在复杂的数据处理、良好的人机交互等方面不能满足需要,常采用PC 机与AT89C51单片机进行通信,AT89C51单片机(下位机)实时采集数据传送给PC机(上位机)处理,然后接收PC机处理的结果,并进行相应的控制的方式来弥补。
本文介绍单片机与PC机进行串行通信的一种接口实现。
一、接口电路的设计(一)接口逻辑电平的转换在PC机系统大都装有异步通信适配器,为标准的RS-232C接口。
RS-232C 为负逻辑,用+3V~+15V表示逻辑“0”, 用-3V~-15V表示逻辑“1”。
AT89C51单片机采用正逻辑TTL电平0和+5V.所以AT89C51与PC机通信时必须进行电平转换。
转换的方法有多种。
常采用MAXIM公司生产的专用的双向电平转换集成电路MAX232。
MAX232引脚排列与外围电路如图1所示。
图1MAX引脚及外围接口图(二)通信接口电路本文采用可靠性高的MAX232作电平转换芯片,选择其中一对发送器与接收器,PC机的串行口与MAX232的电平端口相连,MAX232的逻辑电平端口与单片机的串行口相连,接口电路如图2所示。
图2PC机与AT89C51通信接口图二、通信接口程序(一)通信协议PC机与AT89C51进行通信必须有一定的通信协议,本文采用简单的通信协议。
51单片机-串行口ppt课件

为发送时CPU是主动的,不会产生重叠错误。
最新课件
21
8.2.2 80C51串行口的控制寄存器
SCON 是一个特殊功能寄存器,用以设定串行口的工 作方式、接收/发送控制以及设置状态标志:
SM0和SM1为工作方式选择位,可选择四种工作方式:
最新课件
22
●SM2,多机通信控制位,主要用于方式2和方式3。 当接收机的SM2=1时可以利用收到的RB8来控制是否 激活RI(RB8=0时不激活RI,收到的信息丢弃; RB8=1时收到的数据进入SBUF,并激活RI,进而在 中断服务中将数据从SBUF读走)。当SM2=0时,不 论收到的RB8为0和1,均可以使收到的数据进入 SBUF,并激活RI(即此时RB8不具有控制RI激活的 功能)。通过控制SM2,可以实现多机通信。
起 空始 闲位
一个字符帧 数据位
校停 验止 位位
空 下一字符 闲 起始位
LSB
MSB
异步通信的特点:不要求收发双方时钟的
严格一致,实现容易,设备开销较小,但 每个字符要附加2~3位用于起止位,各帧 之间还有间隔,因此传输效率不高。
最新课件
9
2、同步通信
同步通信时要建立发送方时钟对接收方时钟的直接控制, 使双方达到完全同步。此时,传输数据的位之间的距离均 为“位间隔”的整数倍,同时传送的字符间不留间隙,即 保持位同步关系,也保持字符同步关系。发送方对接收方 的同步可以通过两种方法实现。
波特率=2SMOD/32×T1的溢出率 = 2SMOD × fosc/[ 32 × 12×(2K-初值)]
最新课件
19
回目录 上页 下页
3、传输距离与传输速率的关系
串行接口或终端直接传送串行信息位流的
51单片机串口工作方式0和1解析

RXD
7.1.1 串行口控制寄存器SCON b7 b6 b5 b4 b3 b2 b1 TI b0 RI
SM0 SM1 SM2 REN TB8 RB8
9FH 9EH 9DH 9CH 9BH 9AH 99H 98H
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 的差异
寄存器 SCON、PCON、SBUF
寄存器 IE、IP
• MCS-51 单片机串Fra bibliotek接口工作方式 方式 0 方式 2 方式 1 方式 3
有两个数据缓冲寄存器 SBUF,一个输入移位寄存器,一个 串行控制寄存器SCON和一个特殊功能寄存器PCON等组成。 8 位SBUF是全双工串行接口寄存器, 它是特殊功能寄存器, 地址为 99H,不可位寻址;串行输出时为发送数据缓冲器,发送
时钟振荡频率为6MHz或12 MHz时,产生的比特率偏差较大, 故用到串口通信时通常选用11.0592MHZ晶体振荡器。
串行口的结构
• MCS-51 单片机串行接口的硬件
P3.0 位的第二功能 —— 收端 RXD P3.1 位的第二功能 —— 发端 TXD
• MCS-51 单片机串行接口的控制
比特率 比特率
= /12
P.110
=
/32 计1次 计3次 计3次 计6次 计12次 计24次
=
/12/计次/16
MCS51的串行口PPT

6.1.2 特殊功能寄存器PCON
字节地址为87H,没有位寻址功能。
SMOD:波特率选择位。 例如:方式1旳波特率旳计算公式为: 方式1波特率=(2SMOD/32)×定时器T1旳溢出率
图6-14 流水灯显示电路图
ORG 0000H LJMP MAIN ORG 2023H MAIN: MOV SCON,#00H ;置串行口工作方式0 MOV A,#80H :最高位灯先亮 CLR P1.1 ;关闭并行输出(避象传播过程中,各 LED旳“暗红”现象) OUT0: MOV SBUF,A ;开始串行输出 OUT1: JNB TI,OUT1 ;输出完否? CLR TI ;完了,清TI标志,以备下次发送 SETB P1.1 ;打开并行口输出 ACALL DELAY ;延时一段时间 RR A ;循环右移 CLR P1.1;关闭并行输出 SJMP OUT0;循环 DELAY: …………;延时子程序,不再反复
假如SM2=0,则不论第9位数据是“1”还是“0”,都 将 前8位数据送入SBUF中,并置“1” RI,产生 中断祈求。
在方式1时,假如SM2=1,则只有收到停止位时才会激 活RI。
在方式0时,SM2必须为0。
(3)REN——允许串行接受位
由软件置“1”或清“0”。
REN=1 允许串行口接受数据。 REN=0 禁止串行口接受数据。 (4)TB8——发送旳第9位数据 方式2和3时,TB8是要发送旳第9位数据,可作为奇偶 校验位使用,也可作为地址帧或数据帧旳标志。 =1为地址帧, =0为数据帧 (5)RB8——接受到旳第9位数据 方式2和3时,RB8存储接受到旳第9位数据。在方式1 ,假如SM2=0,RB8是接受到旳停止位。在方式0, 不使用RB8。 (6)TI——发送中断标志位
51单片机三线串行总线的虚拟接口设计

的时序 和运行状 态 ,在单片机 上构建 模拟 的 串行 口,亦 即严 格遵循 数据传输 时序设 计数据 传输子 程序 ,设计 时常用 到软
件延时方法 ,一 定要精确设计延 时时间 [ 2 1 。三线串行总线器件
一
般使 用时钟信 号线 、数据 I / O线 和片选/ 复位线 进行 半双工
是 常用的三线 串行总线器件 ,它们 都使 用时钟信 号线、数据 I / O线和片选/ 复位线进行半双工 同步 串行数据传输 ,但
数 据 传 输 时 序 各 不 相 同 ,在 单 片机 上 它 们 的 虚 拟 串行 接 口需 分 别 独 立 设 计 ,设 计 时要 严 格 遵 循 器 件 的 数 据 传 输 时 序。
用于单片机 的 C N和 U B标准 串行 总线 l A S l l ,另外 还 出现了一 些专用非标 准的三线 串行总线 。5 1系列单片 机的 串行 系统扩 展通常采用串行 同步传输方式 ,用几个 并行 I / O口虚拟 串行 口
() X1 2 3 、X :振 荡 源 ,外 接 3 . 8 Hz 2并行 扩展 和 串行 扩展 ,串行扩 展 占用 I 口少 、电路简单 ,从而能有效缩小硬件体 积 、降低功 / 0 耗 ,近 年来 得到 了广泛 应用 。除 了早 期传 统 的 U R A T串行 口 以外 ,后 来陆续出现了 IC、S I - R 2 P 、1WI E等标 准串行总线和
关键词 : 单片机 ;串行 总线 ; 拟接 口 ; S 3 2; L 5 1C T C 4 C 虚 D 1 0 T C 6 5 P; L 5 9 P
Vit a n e f c sg fTh e - i e S ra si M ir c n r l rUn t r u l t r a e De i n o r e W r e i l I Bu n 5 c o o t o l i 1 e
MCS-51单片机串行通信

9.1 串行通信概述
• ④停止位 表示发送一个数据的结束,用高电平表示,占1 位、1.5 位或2 位。 • 线路空闲时,线路处于逻辑“1”等待状态,即空闲位为1。 空闲位是异步通信特征之一。异步通信中数据传送格式如 图9.1 所示。 • 图9.1 异步通信数据帧格式
图9.1 异步通信数据帧格式
9.1 串行通信概述
9.1 串行通信概述
• 3.波特率 • 波特率是数据传递的速率,指每秒传送二进制数据的位数, 单位为位/秒(bit/s)。 • 例9.1 假设微型打印机最快的传送速率为30 字符/秒,每 个字符为10 位,计算波特率。 • 解: • 波特率=10 b/字符×30字符/s=300 b/s • 每一位代码的传送时间Td 为波特率的倒数: • Td=1/300=3.3 ms • 异步通信的波特率一般在50~19 200 b/s 之间,常用于 计算机到终端机和打印机之间的通信、直通电报以及无线 电通信的数据发送等。
异步10位收发 异步11位收发 异步11位收发
9.2 串行口结构与工作原理
• SM2:多机通信控制位。 • a.用于方式2和方式3。若SM2=1,则允许多机通信。 多机通信协议规定,若第9位数据(RB8)为1,则表明本帧 数据为地址帧。否则,若第9位数据(RB8)为0,则表明本 帧数据为数据帧。 • 当一个8051(主机)与多个8051(从机)进行通信时,令所有 从机的SM2都置1。主机要与某个从机通信,首先发送一 个与该从机相一致的地址帧(每个从机的地址必须惟一), 且第9位为1,所有从机接收到数据后,将第9位送入RB8 中。 • 若RB8=1,说明是地址帧,将数据装入SBUF,且置RI =1,即中断所有从机,若从机判断出该地址帧数据与本 机号(地址)一致,则置SM2=0,准备接收主机发来的数 据。其他从机仍然保持SM2=1。
第7章AT89S51单片机的串行口

PCONSMOD — — — GF1 GF0 PD IDL
GF1,GF0:用户可自行定义使用的通用标志位 GF1: General purpose Flag bit. GF0 :General purpose Fபைடு நூலகம்ag bit.
PD:掉电方式控制位 Power Down bit. =0:常规工作方式. =1:进入掉电方式:振荡器停振片内RAM和SRF的
例如:120字符/秒,1个字符10位, 波特率为:120×10=1200bps 平均每一位传送占用时间:Td=1/1200=0.833ms
常用的波特率有:(离散) 19200/9600/4800/2400/1200/600/300/150/100
/50, 还有10M/100M
7.1.1 与串行通信有关的寄存器
TB8:在串行工作方式2和方式3中,是要发送的第9位数据。 The 9th bit that will be transmitted in modes 2&3. Set/Cleared
by software 多机通信中: TB8=0 表示发送的是数据;
TB8=1 表示发送的是地址.
RB8:在串行工作方式2和方式3中,是收到的第9位数据.该数据来自发
REN:串行口接收允许控制位 Set/Cleared by software to Enable/Disable reception
=1 允许接收; (SETB REN) =0 禁止接收.
系统复位后,REN=0,不允许接受
SM0 SM1 SM2 REN TB8 RB8 TI RI
模式选择 多机通讯位 允许接收位 发送、接收第9位 发送、接收标志
1
1
3 Split timer mode (Timer 0) TL0 is an 8-bit Timer/Counter controlled by the
实验四 串行通信实验

实验四 串行通信实验一、实验目的1.了解51单片机串行口的结构、串行通讯的原理。
2.掌握51单片机与PC 机之间通讯的方法。
3. 学习系统应用程序的设计和调试二、实验设备PC 机一台 、 实验教学板一块。
三、实验原理51单片机的串行接口是全双工的,它能做异步接收器/发送器(UART ),也能做同步移位寄存器使用。
在做UART 使用时,相关的寄存器有SBUF 、SCON 、和PCON 中的波特率倍增位SMOD 。
SBUF 是数据发送缓冲器和接收缓冲器,逻辑上用同一个地址,物理上是分开的,用读写操作来选择。
SCON 是串行口控制寄存器,用于设定串行口的工作方式;保存方式2和方式3的第9位数据;存放发送、接收的中断标志。
在串行通讯的方式1和方式3中,通信的波特率是可以设置的,满足下式:2/132SMOD=⨯波特率(定时器计数器的溢出率)PC 机的串行通讯口是借助通用异步接收发送器8250(或16C550等)实现的,可使用comdebug.exe 等提供了有关串行口的收、发操作窗口的软件实现通讯。
PC 机的串行通讯采用RS232电平,因此要求单片机的实验板也要配置RS232接口,解决逻辑电平的配接。
如果通讯距离较远,则要配接调制解调器。
四、实验内容1, 自发自收用一根短路线,将实验板中RS232插口的RXD 和TXD 两个插孔短路。
然后编程设定串行口为工作方式1,传送55H 和0AAH 两个数据。
实验要求:程序采用查询方式。
每传送、接收一个数据,做一次检查,看是否正确,若两次都正确,则在显示器上显示“GOOD”,若不正确,则不显示,并要重新传送。
2, 单片机与PC 机的通信先使用通讯电缆将单片机的RS232接口与PC 机的COM1口连接,PC 机起动并运行comdebug.exe 软件,窗口上设置波特率为1200,8位数据、一个停止位。
单片机端也采用工作方式1,波特率为1200,完成单片机与PC 机的通信。
51单片机的2个串口分别通信的方法

51单片机的2个串口资源分别通信的方法当使用51单片机的2个串口资源进行通信时,比如用一个串口与PLC的串口使用RS485协议通信,一个串口通过蓝牙模块和另一个单片机无线通信时,该如何处理呢?传统的51单片机只有1个串口资源,只能采用分时复用的方法。
STC的15系列增强版51单片机具有多个串口资源,本文将描述如何使用IAP15W4K58S单片机用一个串口资源与PLC的RS485有线通信,另一个串口资源与Arduino单片机通过蓝牙模块无线通信,该通讯连接过程中PLC作为主机,IAP15W4K58S作为中间机,Arduino单片机作为最低层级。
工作过程是按下启动按键,PLC发信息给IAP15W4K58S单片机发高速脉冲控制步进电机驱动的机械臂运动取走货物,当货物取走后,IAP15W4K58S单片机通过蓝牙模块通知Arduino单片机控制的小车将新货物运送过来。
连接结构示意图如下图所示。
本例程使用的单片机型号为:IAP15W4K58S,该单片机有4个采用UART 工作方式的全双工异步串行通信接口(分别为串口1、串口2、串口3和串口4),每个串行口由2个数据缓冲器、1个移位寄存器、1个串行控制寄存器和1个波特率发生器等组成。
本项目使用串行口1和串行口2。
串行口1的两个缓冲器共用寄存器SBUF (99H),串行口2的两个缓冲器共用寄存器S2BUF(9BH)。
10位(1起始位,8位数据位,1停止位)可变波特率(9600)。
串口1对应的硬件部分是TxD和RxD,串行口2对应硬件部分是TxD2和RxD2。
串口1选择引脚P3.0(RxD)和P3.1(TxD),串口2选择引脚P1.0(RxD)和P1.1(TxD)。
串口1既可以选择T1作为波特率发生器,也可以选择T2作为波特率发生器。
本文串口1提供2个选择(T1和T2),串口2只能选择T2作波特率发生器。
但是当串口1和串口2的波特率相同时,可以共用T2作为波特率发器,当T2工作在1T模式时,串行口1的波特率=SYSclk/(65536-[RL_TH2,RL_TL2])/4,SYSclk表示系统时钟频率,[RL_TH2,RL_TL2]表示T2H,T2L的定时初值设置值。
51单片机串行通信原理

51单片机串行通信原理串行通信是指在信息传输时,数据位逐个进行传输的方式。
51单片机串行通信是指在51单片机中,使用串行通信协议进行数据传输。
1.串行传输方式:串行通信中,数据位按照顺序逐个传输。
每个数据位传输结束后,发送端或接收端会发送一个时钟信号来同步数据的传输。
2.通信协议:串行通信需要定义一种通信协议,用于规定数据传输的格式和规则。
常用的串行通信协议包括UART(通用异步收发传输)协议、SPI(串行外设接口)协议和I2C(串行双线制)协议等。
3.UART串行通信协议:UART协议是一种异步串行通信协议,常用于单片机与外部设备(如计算机、模块等)之间的通信。
UART使用一对传输线(分别为传输线和接收线)进行数据的传输,通过起始位、数据位、校验位和停止位等进行数据的解析和传输。
4.SPI串行通信协议:SPI协议是一种同步串行通信协议,常用于单片机与外部设备之间的通信。
SPI使用四根传输线(分别为传输线、接收线、时钟线和片选线)进行数据的传输,通过时钟信号同步数据的传输。
SPI协议具有母-从的结构,单片机可以作为主设备控制从设备的操作。
5.I2C串行通信协议:I2C协议是一种双线制串行通信协议,常用于单片机与外部设备之间的通信。
I2C使用两条传输线(分别为传输线和接收线)进行数据的传输,通过时钟信号同步数据的传输。
I2C协议具有多主-多从的结构,多个设备可以共享同一条数据线。
6.数据传输流程:在串行通信过程中,发送端会将数据位逐个传输到接收端。
接收端接收到数据位后,对数据进行解析和处理。
在UART协议中,通信开始时发送端会发送起始位,然后发送数据位,接收端解析数据位后,可以进行校验,最后发送停止位。
在SPI和I2C协议中,发送端通过时钟信号同步数据的传输,并通过片选线或地址来选择接收端。
以上就是51单片机串行通信的原理,通过串行通信可以有效地进行数据传输和设备间的通信。
单片机实验报告串行口

SBUF=P1;
while(TI==0); TI=0; }
} (2)单片机接受代码 #include<reg51.h> void main() {
SCON=0X50; TMOD=0X20; TH1=0XFD; TL1=0XFD; PCON=0X00; TR1=பைடு நூலகம்; while(1) {
MCS-51 单片机内部集成有一个 UART,用于全双工方式的串行通信,可以发送、接 收数据。它有两个相互独立的接收、发送缓冲器,这两个缓冲器同名(SBUF),共用一 个地址号(99H),发送缓冲器只能写入,不能读出,接收缓冲器只能读出,不能写入。 要发送的字节数据直接写入发送缓冲器,SBUF=a;当 UART 接收到数据后,CPU 从接收 缓冲器中读取数据,a=SBUF;串行接口内部有两个移位寄存器,一个用于串行发送,一 个用于串行接收。定时器 T1 作为波特率发生器,波特率发生器的溢出信号做接收或发 送移位寄存器的移位时钟。TI 和 RI 分别发送完数据和接收完数据的中断标志,用来向 CPU 发中断请求。
5、 在单片机接收到 0x55 时返回一个 0x41,在 PC 机一端,以接收到 0x41 完成,波特 率 2400。 程序设计流程图
(1)代码 #include<reg51.h> void main() { SCON=0x40; TMOD=0x20; TH1=0xFD; TL1=0xFD; PCON=0x00; TR1=1; while(1) {
start:while(RI==0); RI=0; if(SBUF!='U') goto start;
MCS-51单片机的串行口及串行通信技术

MCS-51单⽚机的串⾏⼝及串⾏通信技术数据通信的基本概念串⾏通信有单⼯通信、半双⼯通信和全双⼯通信3种⽅式。
单⼯通信:数据只能单⽅向地从⼀端向另⼀端传送。
例如,⽬前的有线电视节⽬,只能单⽅向传送。
半双⼯通信:数据可以双向传送,但任⼀时刻只能向⼀个⽅向传送。
也就是说,半双⼯通信可以分时双向传送数据。
例如,⽬前的某些对讲机,任⼀时刻只能⼀⽅讲,另⼀⽅听。
全双⼯通信:数据可同时向两个⽅向传送。
全双⼯通信效率最⾼,适⽤于计算机之间的通信。
此外,通信双⽅要正确地进⾏数据传输,需要解决何时开始传输,何时结束传输,以及数据传输速率等问题,即解决数据同步问题。
实现数据同步,通常有两种⽅式,⼀种是异步通信,另⼀种是同步通信。
异步通信在异步通信中,数据⼀帧⼀帧地传送。
每⼀帧由⼀个字符代码组成,⼀个字符代码由起始位、数据位、奇偶校验位和停⽌位4部分组成。
每⼀帧的数据格式如图7-1所⽰。
⼀个串⾏帧的开始是⼀个起始位“0”,然后是5〜8位数据(规定低位数据在前,⾼位数据在后),接着是奇偶校验位(此位可省略),最后是停⽌位“1”。
起始位起始位"0”占⽤⼀位,⽤来通知接收设备,开始接收字符。
通信线在不传送字符时,⼀直保持为“1”。
接收端不断检测线路状态,当测到⼀个“0”电平时,就知道发来⼀个新字符,马上进⾏接收。
起始位还被⽤作同步接收端的时钟,以保证以后的接收能正确进⾏。
数据位数据位是要传送的数据,可以是5位、6位或更多。
当数据位是5位时,数据位为D0〜D4;当数据位是6位时,数据位为D0〜D5;当数据位是8位时,数据位为D0〜D7。
奇偶校验位奇偶校验位只占⼀位,其数据位为D8。
当传送数据不进⾏奇偶校验时,可以省略此位。
此位也可⽤于确定该帧字符所代表的信息类型,“1"表明传送的是地址帧,“0”表明传送的是数据帧。
停⽌位停⽌位⽤来表⽰字符的结束,停⽌位可以是1位、1.5位或2位。
停⽌位必须是⾼电平。
接收端接收到停⽌位后,就知道此字符传送完毕。
51单片机与PC机串行通信接口的设计

标 准接 口 的 实现 及 电平 转换
一
能较 多的控 制 中就 难 以 满 足要 求
因 此 实现上 位 机 通 信是 必须 解 决 的主要 问题 之一
、
需要 将 单片 机 的数据 送 到上 一级 的 微机 与 下位 机 单 片机
。
机有 两 个 标准 的 机 的 串行 通 信 是 由 的 信 电
,
串行 口
勺个
同 步传送 是 一 种 连续传 送 数据 的方 式
。
在通 信 开 始 以后
。 。
,
发送 端 连续
,
发 送字 符
,
接 收端 也连 续接 收 字符
,
,
履
三
、
口 口
陌
月 节目 目
口
直 到通 信 告一 段落
同 步 传送 时
字
很
渭困 困
品
悠
符 与字 符之 间没 有 间 隙
也 不用 起 始位 和 停 止位
,
。
与此 相应有 异步通 信和 同步通
需要 进 行逻
硬 件 电 路 的实现 单片 机与 机 之 间进行 硬件 电 路 的
,
信 两种 方式
对 信 息 的 逻辑 定义 与
通 信过 程 实 现部 分 介 绍 了如 何 在
辑电 平转 换 计 算机与外 界的 数据传 送大 多是 串行 的
几 米到几 千公里 一
其 传送 的 距离可 以 从
输 出 电平 所需 的 士
最 多只 需一 对传输 线 即可 实现通 信
,
成本低 但速 度 慢
,
其 通信
压
的技 术指 标
的 电源
为 串行 通 信带 来 了
51单片机_片内外设

MOV A,#0FFH;0FFH送累加器A
MOV P0,A MOV A,P0 ;向P0口“写1” ;从P0口输入数据到A
结构图
片内外设
2)P0口的总线方式(系统使用外存储器时)
控制电路的“控制”=1,此时与门打开,MUX接 向“地址/数据”信号。在这种情况下,输出极的 两个FET都处于正常的工作状态 。 访问外部存储器的指令movx、movc ,就是使用 P0口来输出外部存储器的低八位地址和输入、输 出存储器的数据。 在进行单片机的硬件系统的设计中,如果使用了外 部存储器(或使用movx指令来访问外部接口电路) 时,P0口成为整个系统的地址/数据复用总线。换 句话说,P0口不能再作为通用的I/O端口的形式直 接与外部连接。
通用io端口多用途端口p3x引脚替代输出功能读引脚内部总线vcc替代输入功能片内外设并行端口在使用时应注意的几个问题并行端口在使用时应注意的几个问题拉电流拉电流还是还是灌电流灌电流与大电流负载的连与大电流负载的连接接我们以美国我们以美国atmelatmel公司生产的公司生产的at89c51at89c51为例使用灌电流的方式使用灌电流的方式与电流较大的负载直接与电流较大的负载直接连接时连接时端口可以吸收约端口可以吸收约20ma20ma的电流而保证端的电流而保证端口电平不高于口电平不高于045v045v见右上图
ES
中断请求 寄存器
中断矢量
返回
片内外设
2.1中断允许寄存器IE(0A8H)
EA X X ES ET1 EX1 ET0 EX0
EA:总允许位。EA=0:禁止一切中断;EA=1中断开放。 ES: 串行口中断允许位。ES=1:允许RI、TI引发中断; ES=0:禁止中断。 ET1、ET0:定时器T1、T0允许位。ET=1允许,=0禁止。 EX1、EX0:外中断 int1、int0允许位。EX =1允许,=0 禁止。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0
0
机
D4
机
1
1(
0 0
D5 D6 D7
0
或 外
0
设
)
1
1
控制或选通
状态
计
计
算
算
机
机
(
或 外 设
)
(a) 并行通信
(b) 串行通信
2020/2/28
1
2
第7章 51单片机串行接口
根据信息传送的方向,串行通信可以分为单工、半双 工和全双工
A
B
A
B
A
B
s
s
(a) 单工
(b) 半双工
(c) 全双工
2020/2/28
位数,单位为bps。 ቤተ መጻሕፍቲ ባይዱ 传输速度往往又可用每秒传送多少个字节来表示
(Bps)。 • 它与波特率的关系为:
波特率(bps)=一个字符的二进制位数×字符/秒(Bps)
2020/2/28
1
8
第7章 51单片机串行接口
7.2 51单片机串行口的功能与结构
7.2.1 串行口的功能
• 51单片机具有一个全双工的串行异步通信接口,可 以同时发送和接收数据。
2020/2/28
1
10
7.2.3 串行口控制寄存器SCON
第7章 51单片机串行接口
SCON D7
D6
D5
D4
D3
D2
D1
D0
98H SM0 SM1 SM2 REN TB8 RB8 TI
RI
SM0、SM1:串行口工作方式选择位
SM0 0 0 1 1
SM1 0 1 0 1
方式 方式0 方式1 方式2 方式3
内
发送
部
SBUF
总
线
门 TXD(P3.1)
发送控制器
波 特 率 发 生 器
串
串行口中断
TI
行 口
+
控
制
RI
寄
存
器
接收控制器
接收 SBUF
输入移位寄存器
RXD(P3.0)
串行口数据寄存器 (SBUF),串行口控制寄存器SCON、电源控制寄存器 PCON以及定时/计数器和中断系统中的特殊功能寄存器组成。
• 有四种工作方式:方式0、方式1、方式2和方式3。 • 方式0为同步移位寄存器方式,一般用于外接移位
寄存器芯片扩展I/O接口。 • 方式1为8位的异步通信方式,通常用于双机通信。 • 方式2和方式3为9位的异步通信方式,通常用于多
机通信
2020/2/28
1
9
7.2.2 串行口的结构
第7章 51单片机串行接口
第 n 个字符
第 n+1 个字符
D0 D1 D2 D3 D4 D5 D6 D7
D0 D1 D2
1 1 0 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 1 1 1 0 0/1 0/1 0/1 ……
空闲位 起始位
数据位
奇偶校验位
空闲位
停止位
下一个起始位
特点: 一次传送的位数比较少,对发送时钟和接收时钟的同 步性要求相对不高,线路简单。 传送速度较慢。
第7章 51单片机串行接口
7.3.2 方式1---- 8位异步通信方式
TXD:发送数据端 RXD:接收数据端。 数据格式: 1位起始位(0),SBUF中8位数据位(低位 在前)和1位停止位(1)。 波特率: 2SMOD×(T1的溢出率)/32
(1)发送 条件:TI=0 操作:MOV SBUF,A 结果:发送完毕,TI置“1”。
1
11
第7章 51单片机串行接口
• 7.2.4 电源控制寄存器PCON
PCON D7
D6
D5
D4
D3
D2
D1
D0
87H SMOD X
X
X
GF1 GF0 PD IDL
SMOD:波特率加倍位。当SMOD位为1,则串行口方式1、方 式2、方式3的波特率加倍。
GF1、GF0:通用标志位。由软件置位或复位 PD:掉电方式位。当PD=1时,进入掉电方式。
主要章节
第7章 51单片机串行接口
• 7.1 通信的基本概念 • 7.2 51单片机串行口的功能与结构 • 7.3 串行口的工作方式 • 7.4 串行口的应用
2020/2/28
1
1
7.1 通信的基本概念
第7章 51单片机串行接口
• 7.1.1 并行通信和串行通信
D0
0
0
计
D1
计
1
1
D2
算0
0算
D3
2020/2/28
1
6
第7章 51单片机串行接口
• 2. 串行同步通信方式
同步字符1 同步字符2
数据块
校验字符1 校验字符2
特点: 一次连续传送多个字符,传送的位数多,对发送时 钟和接收时钟同步性要求很高,控制线路复杂 传送速度快。
2020/2/28
1
7
第7章 51单片机串行接口
• 7.1.4 波特率 • 波特率是指串行通信中,单位时间传送的二进制
。 IDL:待机方式位。当IDL=1时,进入待机方式
2020/2/28
1
12
第7章 51单片机串行接口
7.3 串行口的工作方式
7.3.1 方式0----移位寄存器方式
方式0通常用来外接移位寄存器,用作扩展I/O口。 RXD:串行数据 TXD:同步时钟。 数据格式:低位在前,高位在后,长度8位,在SBUF中。 波特率:fosc /12。
功能 移位寄存器方式 8位异步通信方式 9位异步通信方式 9位异步通信方式
波特率
fosc/12 可变 fosc/32或fosc/64 可变
SM2:多机通信控制位。 TB8:发送数据的第9位。 TI:发送中断标志位。
REN:接收允许控制位。 RB8:接收数据的第9位。 RI:接收中断标志位。
2020/2/28
(1)发送
条件:TI=0 操作:MOV SBUF,A 结果:发送完毕,TI置“1”。
第7章 51单片机串行接口
(2)接收
条件:RI=0 操作:REN(SCON.4)置“1” 结果:8位数据接收数据缓冲器SBUF中,同时,RI置 “1” ,向CPU申请中断。 用户处理:MOV A,SBUF
1
3
7.1.2 串行通信的基本过程 • 1. 发送过程
发送时钟 数据线
第7章 51单片机串行接口
0
1
1
0
0
1
10
2020/2/28
1
4
第7章 51单片机串行接口
• 2. 接收过程
接收时钟
数据线
0
1
1
0
0
1
10
2020/2/28
1
5
7.1.3 串行通信的通信方式
第7章 51单片机串行接口
• 1. 串行异步通信方式
第7章 51单片机串行接口
(2)接收
条件:RI=0,REN(SCON.4)置“1”。 结果:8位数据接收数据缓冲器SBUF中,同时,RI置 “1” ,向CPU申请中断。 用户处理:MOV A,SBUF
7.3.3 方式2和方式3
第7章 51单片机串行接口
TXD:发送数据端 RXD:接收数据端 数据格式: 1位起始位(0),SBUF中8位数据位(低位 在前)第9位TB8和1位停止位(1) 波特率: 2SMOD×(T1的溢出率)/32