80C51单片机的串行口
- 格式:ppt
- 大小:3.42 MB
- 文档页数:46
单片机原理及应用第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单片机支持主从模式,可以作为主设备发送数据,也可以作为从设备接收数据。
80C51单片机的并行端口结构80C51共有4个8位的并行I/O口,分别记作P0、P1、P2、P3。
被归入专用寄存器。
I/O端口有串行和并行之分,串行I/O端口一次只能传送一位二进制信息,并行I/O端口一次能传送一组二进制信息。
(1)并行I/O口的功能①PO口:电路中包括一个数据输出锁存器和两个三态数据输入缓存器,另外还有一个数据输出的驱动和控制电路。
这两组端口用来作为CPU与外部数据存储器、外部程序存储器和I/O扩展口的总线接口,而不像P1、P3直接用做输出口。
P0.0~P0.7,P0口是8位双向I/O口,P0.i引脚可以是P0.0到P0.7的任何一位,即在P0口有8个与上图相同的电路组成。
该8位都是漏极开路(漏极开路即高阻状态,适用于输入/输出,其可独立输入/输出低电平和高阻状态)输出,每个引脚可以驱动8个LS型TTL负载且内部没有上拉电阻,执行输出功能时外部必须接上拉电阻(10K 即可)。
若要执行输入功能,必须先输出高电平方能读取该端口所连接的外部数据;若在访问外部存储器(RAM、ROM)和扩展的I/O口时,P0可作为地址总线(A0~A7)和数据总线(D0~D7),分时进行工作。
在指令的前半周期,P0口作为地址总线的低8位,在指令的后半周期为8位的数据总线。
P1口的各个单元:输入缓冲器:在P0口中,有两个三态的缓冲器,三态门有三个状态,即在其输出端可以是高电平、低电平和高阻状态(或称为禁止状态)。
上面一个是读锁存器的缓冲器,也就是说,要读取D锁存器输出端Q的数据,那就得使读锁存器的这个缓冲器的三态控制端(上图中标号为…读锁存器‟端)有效。
要读取P0.i引脚上的数据,也要使标号为…读引脚‟的这个三态缓冲器的控制端有效,引脚上的数据才会传输到我们单片机的内部数据总线上。
D锁存器:存储器中可以存放电荷,加一个小的存储器的单元,并在它的面前加一个开关,要让这一位输出时,就把开关打开,信号就进入存储器的单元,然后马上关闭开关,这一位的状态就被保存下来,直到下一次命令让它把开关再打开为止,这就是锁存器。
80C51单片机的串行口在单片机的世界里,80C51 单片机凭借其稳定性和广泛的应用一直占据着重要的地位。
而串行口作为 80C51 单片机的重要通信接口,发挥着至关重要的作用。
要理解 80C51 单片机的串行口,首先得知道串行通信的概念。
简单来说,串行通信就是数据一位一位地依次传输,相比并行通信,它只需要较少的数据线,这在很多场景下能大大减少硬件成本和布线难度。
80C51 单片机的串行口有 4 种工作方式,分别是方式 0、方式 1、方式 2 和方式 3。
方式 0 是同步移位寄存器输入/输出方式。
在这种方式下,数据以 8 位为一帧,低位在前,高位在后,没有起始位和停止位。
它通常用于扩展并行 I/O 口,例如外接串入并出的移位寄存器 74LS164 或并入串出的移位寄存器 74LS165。
方式 1 是 8 位异步通信方式,波特率可变。
这是最常用的串行通信方式之一。
一帧数据由 1 位起始位(低电平)、8 位数据位(低位在前)和 1 位停止位(高电平)组成。
发送和接收都是通过专门的寄存器来实现的。
方式 2 是 9 位异步通信方式,波特率固定。
一帧数据由 1 位起始位、8 位数据位、1 位可编程的第 9 位数据和 1 位停止位组成。
这种方式常用于多机通信,第 9 位数据可以作为地址/数据的标识位。
方式 3 与方式 2 类似,也是 9 位异步通信方式,但波特率可变。
串行口的波特率是一个非常关键的概念。
波特率决定了数据传输的速度。
在 80C51 单片机中,方式 0 和方式 2 的波特率是固定的,而方式 1 和方式 3 的波特率则是由定时器 T1 的溢出率来决定的。
通过设置定时器 T1 的工作方式和初值,可以得到不同的波特率,以适应不同的通信需求。
在实际应用中,要使用 80C51 单片机的串行口进行通信,还需要对相关的寄存器进行配置。
比如,串行控制寄存器 SCON 用于设置串行口的工作方式、接收/发送控制等;电源控制寄存器 PCON 中的 SMOD 位用于控制方式 1、2、3 的波特率加倍。
80C51串行口通信80C51串行口的结构TXD 是80C51单片机的P3.1口RXD 是80C51单片机的P3.0口T1 溢出率是定时器1 的溢出率 SMOD是发送速率倍频的 16分频T1每溢出一次发送一位,里面复杂咱们不管,每次发送完后TI申请中断,就是串口每次发送完一个字节去申请一个中断,每接受完一个字节它也要申请一次中断。
接受完了通过移位寄存器SBUF 取走。
发送也用SBUF .单片机上有两个物理上独立的接受,发送缓冲器SBUF,它们占用同一地址99H;接受器是双缓冲结构;发送缓冲器,因为发送时CPU是主动的,不会产生重叠错误。
解释下这句话意思:物理上独立的但是地址相同,但是具体内部构造咱们不去了解它。
2个寄存器一个负责发一个负责收,接受是双缓冲的结构。
如果去取数据A=SBUF ; 发送数据SBUF =A; 就是说SBUF =A 就把A发出去了。
A= SBUF 就是把 SBUF的值给取出来给了A。
单片机的串口就是这么简单。
主要要搞好中断和比特率。
80C51串行口的控制寄存器SCON是一个特殊功能寄存器,用以设定串行口的工作方式、接受/发送控制以及设置状态标志;有此图课看出地址诶98H 能对8整除所以可以进行位操作。
●SMO 和SM1为工作方式选择位,可选择四种工作方式:如下图串行口有4种工作方式。
0 、1、2、3。
f方式0 可以看出是移位寄存器就是一位一位移位了,波特率是固定的晶振除以12Fosc(oscillator 振荡器),方式1 是10位异步收发器(8位数据),波特率可变。
一下 2、3类同。
我们主要掌握方式1就OK。
用的最多的也是方式1。
波特率用软件控制,设置多少就多少。
由于选择方式1所以SMO SM1就是 01 。
●SM2,多机通信控制位,主要用于方式2和方式3。
当接收机的SM2=1时可以利用收到的RB8来控制是否激活RI(RB8=0时不激活RI,收到的信息丢弃;RB8=1时收到的数据进入SBUF,并激活RI,进而在中断服务中将数据从SBUF读走)。
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位为一帧,不设起始位和停止位,低位在前高位在后。
第六章80C51的串行口习题及答案1、80C51单片机串行口有几种工作方式?如何选择?简述其特点?答:80C51单片机串行口有4种工作方式。
各方式的特点:方式0:串行口为同步移位寄存器的输入输出方式。
主要用于扩展并行输入或输出口。
波特率固定为晶振频率的1/12。
方式1:为10位数据异步通信口。
波特率可变。
方式2或方式3:为11位数据的异步通信口。
方式2波特率固定,相对于固定的晶振频率只有两种波特率。
方式3波特率可变。
使用时,根据需要和各方式的特点配合选择。
2、串行通信的接口标准有哪几种?答:串行通信接口标准有:1.RS_232C接口;2.RS_422A接口;3. RS_485接口。
3、在串行通信中,通信速率与传输距离之间的关系如何?答:在串行通信中,传输距离与传输速率的关系:当传输线使用每0.3m (约1ft)有50pF电容的非平衡屏蔽双绞线时,传输距离随传输速率的增加而减小。
5、利用单片机串行口扩展24个发光二极管和8个按键,要求画出电路图并编写程序,使24个发光二极管按照不同的顺序发光(发光的时间间隔为1s)o 答:实现电路图如下:扩展I/O 口时使用方式0,波特率固定,实现程序如下:BOOT:CLR EAMOV SCON,#10HCLR P1.0 ;关闭I0 扩展口CLR P1.1CLR P1.2CLR P1.3 ;对键盘扩展芯片165 使能MAIN: SETB P1.0 ;对第一个扩展IO 口芯片使能ACALL DISPLAYCLR P1.0SETB P1.1 ;第一个扩展IO 口顺序显示完毕,对第二个扩展IO 芯片使能ACALL DISPLAYCLR P1.1SETB P1.2ACALL DISPLAYCLR P1.2SJMP MAIN ;循环显示DISPLAY: MOV A,#00000001b ;从第一个开始MOV R4,#8 ;送显示长度LOOP:MOV SBUF, ACALL DELAY1SDJNZ R4, LOOPRETEND6、编制图6.30 的中断方式的数据接收程序。