51单片机的串行接口

合集下载

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串行接口程序

51单片机模拟spi串行接口程序
unsigned char SPI_TransferByte(unsigned char val)
{
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;

51单片机基本结构详解

51单片机基本结构详解

51单片机基本结构详解51单片机(也称为8051单片机)是一种8位微控制器,由Intel公司于1980年代推出。

它是目前市场上最广泛使用的低成本单片机之一,被广泛应用于各个领域,包括家电、工业控制、仪器仪表等。

本文将详细介绍51单片机的基本结构。

一、51单片机的总体结构51单片机的总体结构主要分为五个部分,包括中央处理器(CPU)、存储器、IO口、定时器/计数器以及串行通信接口。

1. 中央处理器(CPU)51单片机中心的核心是一个8位的CPU,负责执行指令集中的操作。

它包括一个累加器(Accumulator)用于存放运算结果,以及一组寄存器用于存放操作数和地址。

2. 存储器51单片机的存储器主要包括内部RAM和内部ROM。

内部RAM用于存放程序和数据,容量通常较小,而内部ROM则用于存储不变的程序指令。

3. IO口51单片机提供了多个通用IO口,用于与外部设备进行数据交互。

这些IO口既可以作为输入口用于接收外部信号,也可以作为输出口用于发送信号控制外部设备。

4. 定时器/计数器51单片机内置的定时器/计数器模块可用于产生精确的时间延时和计数应用。

它能够协助实现各种时间相关的功能,如PWM输出、测速和脉冲计数等。

5. 串行通信接口51单片机的串行通信接口可用于与其他设备进行数据的串行传输。

常见的串行通信协议包括UART、SPI和I2C等。

二、51单片机的工作原理51单片机的工作原理可以概括为以下几个步骤:1. 程序存储器中的指令被复制到内部RAM中。

2. CPU从内部RAM中取出指令并执行。

3. 根据指令的要求,CPU可能会与IO口、定时器/计数器或串行通信接口进行数据交互。

4. 执行完指令后,CPU将结果存回内部RAM或IO口。

三、51单片机的应用领域51单片机由于其成本低、技术成熟、易于开发和应用广泛等优点,被广泛应用于各个领域。

1. 家电控制51单片机可以用于家电控制,如空调、洗衣机、电视机等。

AT89C51单片机与PC机串行通信的接口实现

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课件

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解析

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

MCS51的串行口PPT
其他工作方式,串行接受到停止位时,该位置“1”。 RI=1,表达一帧数据接受完毕,并申请中断, CPU从 接受SBUF取走数据。该位状态也可软件查询。RI必 须由软件清“0”。
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——发送中断标志位

MCS-51单片机串行通信

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。

实验四 串行通信实验

实验四  串行通信实验

实验四 串行通信实验一、实验目的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个串口资源分别通信的方法当使用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单片机串行通信是指在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单片机串行通信的原理,通过串行通信可以有效地进行数据传输和设备间的通信。

51单片机期末复习题库

51单片机期末复习题库

51单片机期末复习题库一、选择题1. 51单片机的内部总线宽度是多少位?A. 4位B. 8位C. 16位D. 32位答案:B2. 51单片机的外部数据存储器空间有多大?A. 64KBB. 128KBC. 256KBD. 512KB答案:A3. 51单片机的定时器/计数器有几个?A. 1个B. 2个C. 3个D. 4个答案:B4. 51单片机的中断源有几个?A. 4个B. 5个C. 6个D. 7个答案:B5. 51单片机的串行通信接口是哪种类型?A. SPIB. I2CC. UARTD. USB答案:C二、填空题6. 51单片机的CPU主要由______、______、______和______组成。

答案:指令寄存器、程序计数器、累加器、状态寄存器7. 51单片机的I/O口具有______功能。

答案:双向数据传输8. 51单片机的定时器/计数器可以用于______和______。

答案:定时、计数9. 51单片机的中断系统可以提高______的响应速度。

答案:系统10. 51单片机的串行通信接口可以实现______通信。

答案:异步三、简答题11. 简述51单片机的中断优先级是如何设置的?答案:51单片机的中断优先级是通过设置IP寄存器中的优先级位来实现的。

IP寄存器的高四位用于设置外部中断的优先级,低四位用于设置定时器中断的优先级。

优先级位的设置决定了中断响应的先后顺序。

12. 描述51单片机的外部中断是如何触发的?答案:51单片机的外部中断是通过外部信号触发的。

当外部中断引脚接收到一个下降沿或上升沿信号时(取决于设置),如果外部中断允许位被设置,中断就会触发。

中断服务程序将被执行,处理中断请求。

四、计算题13. 如果51单片机的系统时钟频率为12MHz,计算定时器0的定时周期。

答案:定时器0的定时周期为12MHz / 12 = 1MHz。

如果定时器0被设置为16位定时器,那么它的定时周期为1MHz * 2^16 = 1s。

MCS-51单片机的串行口及串行通信技术

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单片机与PC机串行通信接口的设计
,
标 准接 口 的 实现 及 电平 转换

能较 多的控 制 中就 难 以 满 足要 求
因 此 实现上 位 机 通 信是 必须 解 决 的主要 问题 之一

需要 将 单片 机 的数据 送 到上 一级 的 微机 与 下位 机 单 片机

机有 两 个 标准 的 机 的 串行 通 信 是 由 的 信 电
,
串行 口
勺个
同 步传送 是 一 种 连续传 送 数据 的方 式

在通 信 开 始 以后
。 。
,
发送 端 连续
,
发 送字 符
,
接 收端 也连 续接 收 字符
,
,



口 口

月 节目 目

直 到通 信 告一 段落
同 步 传送 时


渭困 困


符 与字 符之 间没 有 间 隙
也 不用 起 始位 和 停 止位
,

与此 相应有 异步通 信和 同步通
需要 进 行逻
硬 件 电 路 的实现 单片 机与 机 之 间进行 硬件 电 路 的
,
信 两种 方式
对 信 息 的 逻辑 定义 与
通 信过 程 实 现部 分 介 绍 了如 何 在
辑电 平转 换 计 算机与外 界的 数据传 送大 多是 串行 的
几 米到几 千公里 一
其 传送 的 距离可 以 从
输 出 电平 所需 的 士
最 多只 需一 对传输 线 即可 实现通 信
,
成本低 但速 度 慢
,
其 通信

的技 术指 标
的 电源
为 串行 通 信带 来 了

51单片机_片内外设

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 禁止。

MCS-51单片机应用教程 第4章

MCS-51单片机应用教程 第4章

3. 方式1或方式3的波特率 在这两种方式下,串行口波特率是由定时器的溢出率 决定的,因而波特率是可变的。波特率的公式为:
2SMOD 波特率= 定时器T1溢出率 32
定时器T1的溢出率计算公式为: f osc 1 定时器T 1 溢出率= K ( ) 12 2 -初值
式中: K为定时器T1的位数;若定时器T1方式0,则 K=13;若定时器T1方式1,则K=l6;若定时器T1方 式2或方式3,则K=8。
2. 串行口控制寄存器SCON SCON是可以进行位寻址ห้องสมุดไป่ตู้8位控制寄存器,地址 为98H。SCON的各位的定义和功能如下:
SCON.7 SM0
.6 SM1
.5
.4
.3
.2 RB8
.1 TI
SCON.0 RI
SM2 REN TB8
SM0、SM1: 串行口工作方式选择位(内容见 4.2.2节)。 SM2: 多机通信控制位。具体用法见4.3.3节。 REN: 串行接收允许位。由软件置位或清除。软 件置1时,串行口允许接收,清零后禁止接收。 TB8: 在方式2和方式3中是发送的第9位数据。 RB8: 在方式2和方式3中是接收的第9位数据。 TI: 发送中断标志位。发送结束时由硬件置位。 该位必须用软件清零。 RI: 接收中断标志位。结束接收时由硬件置位。 该位必须用软件清零。
2. 同步方式 将一大批数据分成几个数据块,数据块之间用同步 字符予以隔开,而传输的各位二进制码之间都没有 间隔,所以同步方式是按数据块传送数据的,一次 可以传送完一大批数据。 同步方式中,每一位数据占用的传输时间都是相等 的,接收机的接收时钟应该和发送机的发送时钟以 及传送的码元同步。图4-2(b)中给出了典型的数据 格式。与图4-2(a)相比,同步通信方式的数据格式 中没有两帧之间的空闲时间,也没有一帧之内的识 别标志位。显然这种方式可以大大提高通信速度, 常用于高速计算机的大容量数据通信。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

51单片机的串行接口
串行接口的一般概念
单片机与外界进行信息交换称之为通讯。

8051单片机的通讯方式有两种:
并行通讯:数据的各位同时发送或接收。

串行通讯:数据一位一位顺序发送或接收。

参看下图:
串行通讯的方式
异步通讯:它用一个起始位表示字符的开始,用停止位表示字符的结束。

其每帧的格式如下:
在一帧格式中,先是一个起始位0,然后是8个数据位,规定低位在前,高位在后,接下来是奇偶校验位(可以省略),最后是停止位1。

用这种格式表示字符,则字符可以一个接一个地传送。

在异步通讯中,CPU与外设之间必须有两项规定,即字符格式和波特率。

字符格式的规定是双方能够在对同一种0和1的串理解成同一种意义。

原则上字符格式可以由通讯的双方自由制定,但从通用、方便的角度出发,一般还是使用一些标准为好,如采用ASCII标准。

波特率即数据传送的速率,其定义是每秒钟传送的二进制数的位数。

例如,数据传送的速率是120字符/s,而每个字符如上述规定包含10数位,则传送波特率为1200波特。

同步通讯:在同步通讯中,每个字符要用起始位和停止位作为字符开始和结束的标志,占用了时间;所以在数据块传递时,为了提高速度,常去掉这些标志,采用同步传送。

由于数据块传递开始要用同步字符来指示,同时要求由时钟来实现发送端与接收端之间的同步,故硬件较复杂。

通讯方向:在串行通讯中,把通讯接口只能发送或接收的单向传送方法叫单工传送;而把数据在甲乙两机之间的双向传递,称之为双工传送。

在双工传送方式中又分为半双工传送和全双工传送。

半双工传送是两机之间不能同时进行发送和接收,任一时该,只能发或者只能收信息。

2.8051单片机的串行接口结构
8051串行接口是一个可编程的全双工串行通讯接口。

它可用作异步通讯方式(UART),与串行传送信息的外部设备相连接,或用于通过标准异步通讯协议进行全双工的8051多机系统也可以通过同步方式,使用TTL或CMOS 移位寄存器来扩充I/O口。

8051单片机通过引脚RXD(P3.0,串行数据接收端)和引脚TXD(P3.1,串行数据发送端)与外界通讯。

SBUF是串行口缓冲寄存器,包括发送寄存器和接收寄存器。

它们有相同名字和地址空间,但不会出现冲突,因为它们两个一个只能被CPU读出数据,一个只能被CPU写入数据。

串行口的控制与状态寄存器
串行口控制寄存器SCON
它用于定义串行口的工作方式及实施接收和发送控制。

字节地址为98H,其各位定义如下表:
SM0、SM1:串行口工作方式选择位,其定义如下:
其中fosc 为晶振频率
SM2:多机通讯控制位。

在方式0时,SM2一定要等于0。

在方式1中,当(SM2)=1则只有接收到有效停止位时,RI 才置1。

在方式2或方式3当(SM2)=1且接收到的第九位数据RB8=0时,RI 才置1。

REN :接收允许控制位。

由软件置位以允许接收,又由软件清0来禁止接收。

TB8: 是要发送数据的第9位。

在方式2或方式3中,要发送的第9位数据,根据需要由软件置1或清0。

例如,可约定作为奇偶校验位,或在多机通讯中作为区别地址帧或数据帧的标志位。

RB8:接收到的数据的第9位。

在方式0中不使用RB8。

在方式1中,若(SM2)=0,RB8为接收到的停止位。

在方式2或方式3中,RB8为接收到的第9位数据。

TI : 发送中断标志。

在方式0中,第8位发送结束时,由硬件置位。

在其它方式的发送停止位前,由硬件置位。

TI 置位既表示一帧信息发送结束,同时也是申请中断,可根据需要,用软件查询的方法获得数据已发送完毕的信息,或用中断的方式来发送下一个数据。

TI 必须用软件清0。

RI : 接收中断标志位。

在方式0,当接收完第8位数据后,由硬件置位。

在其它方式中,在接收到停止位的中间时刻由硬件置位(例外情况见于SM2的说明)。

RI 置位表示一帧数据接收完毕,可用查询的方法获知或者用中断的方法获知。

RI 也必须用软件清0。

特殊功能寄存器PCON
PCON 是为了在CHMOS 的80C51单片机上实现电源控制而附加的。

其中最高位是SMOD 。

串行口的工作方式
8051单片机的全双工串行口可编程为4种工作方式,现分述如下:
方式0为移位寄存器输入/输出方式。

可外接移位寄存器以扩展I/O 口,也可以外接同步输入/输出设备。

8位串行数据者是从RXD 输入或输出,TXD 用来输出同步脉冲。

输出串行数据从RXD 引脚输出,TXD 引脚输出移位脉冲。

CPU 将数据写入发送寄存器时,立即启动发送,将8位数据以fos/12的固定波特率从RXD 输出,低位在前,高位在后。

发送完一帧数据后,发送中断标志
TI 由硬件置位。

输入 当串行口以方式0接收时,先置位允许接收控制位REN 。

此时,RXD 为串行数据输入端,TXD 仍为同步脉冲移位输出端。

当(RI )=0和(REN )=1同时满足时,开始接收。

当接收到第8位数据时,将数据移入接收寄存器,并由硬件置位RI 。

下面两图分别是方式0扩展输出和输入的接线图。

方式1
为波特率可变的10位异步通讯接口方式。

发送或接收一帧信息,包括1个起始位0,8个数据位和1个停止位1。

输出当CPU执行一条指令将数据写入发送缓冲SBUF时,就启动发送。

串行数据从TXD引脚输出,发送完一帧数据后,就由硬件置位TI。

输入在(REN)=1时,串行口采样RXD引脚,当采样到1至0的跳变时,确认是开始位0,就开始接收一帧数据。

只有当(RI)=0且停止位为1或者(SM2)=0时,停止位才进入RB8,8位数据才能进入接收寄存器,并由硬件置位中断标志RI;否则信息丢失。

所以在方式1接收时,应先用软件清零RI和SM2标志。

方式2
方式月为固定波特率的11位UART方式。

它比方式1增加了一位可程控为1或0的第9位数据。

输出: 发送的串行数据由TXD端输出一帧信息为11位,附加的第9位来自SCON寄存器的TB8位,用软件置位或复位。

它可作为多机通讯中地址/数据信息的标志位,也可以作为数据的奇偶校验位。

当CPU执行一条数据写入SUBF的指令时,就启动发送器发送。

发送一帧信息后,置位中断标志TI。

输入: 在(REN)=1时,串行口采样RXD引脚,当采样到1至0的跳变时,确认是开始位0,就开始接收一帧数据。

在接收到附加的第9位数据后,当(RI)=0或者(SM2)=0时,第9位数据才进入RB8,8位数据才能进入接收寄存器,并由硬件置位中断标志RI;否则信息丢失。

且不置位RI。

再过一位时间后,不管上述条件时否满足,接收电路即行复位,并重新检测RXD上从1到0的跳变。

工作方式3
方式3为波特率可变的11位UART方式。

除波特率外,其余与方式2相同。

波特率选择
如前所述,在串行通讯中,收发双方的数据传送率(波特率)要有一定的约定。

在8051串行口的四种工作方式中,方式0和2的波特率是固定的,而方式1和3的波特率是可变的,由定时器T1的溢出率控制。

方式0
方式0的波特率固定为主振频率的1/12。

方式2
方式2的波特率由PCON中的选择位SMOD来决定,可由下式表示:
波特率=2的SMOD次方除以64再乘一个fosc,也就是当SMOD=1时,波特率为1/32fosc,当SMOD=0时,波特率为1/64fosc
3.方式1和方式3
定时器T1作为波特率发生器,其公式如下:
波特率=定时器T1溢出率
T1溢出率= T1计数率/产生溢出所需的周期数
式中T1计数率取决于它工作在定时器状态还是计数器状态。

当工作于定时器状态时,T1计数率为fosc/12;当工作于计数器状态时,T1计数率为外部输入频率,此频率应小于fosc/24。

产生溢出所需周期与定时器T1的工作方式、T1的预置值有关。

定时器T1工作于方式0:溢出所需周期数=8192-x
定时器T1工作于方式1:溢出所需周期数=65536-x
定时器T1工作于方式2:溢出所需周期数=256-x
因为方式2为自动重装入初值的8位定时器/计数器模式,所以用它来做波特率发生器最恰当。

当时钟频率选用11.0592MHZ时,取易获得标准的波特率,所以很多单片机系统选用这个看起来“怪”的晶振就是这个道理。

下表列出了定时器T1工作于方式2常用波特率及初值。

相关文档
最新文档