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单片机支持主从模式,可以作为主设备发送数据,也可以作为从设备接收数据。
2.3 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 单片机的串行口,首先得知道串行通信的概念。
简单来说,串行通信就是数据一位一位地依次传输,相比并行通信,它只需要较少的数据线,这在很多场景下能大大减少硬件成本和布线难度。
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 的波特率加倍。
串行通信工作方式
在RI=0的条件下,用指令置REN=1即可开始串行接收。TXD端输出移位脉冲,数据依次 由低到高以fosc/12波特率经RXD端接收到SBUF中,一帧数据接收完成后硬件置接收中断标 志位RI为1。若要再次接收一帧数据,应该用指令MOV A,SBUF将上一帧数据取走,并用指 令将RI清零。用方式0通信时,多用查询方式。
1.2 串行工作方式1
方式1是一帧10位的异步串行通信方式,包括1个起始位,8个数据 位和一个停止位。波特率可变,由定时器/计数器T1的溢出率和SMOD (PCON.7)决定。其帧格式如下:
起始 D0 D1 D2 D3 D4 D5 D6 D7 停止
1、 数据发送
发送时只要将数据写入SBUF,在串行口由硬件自动加入起始位和停 止位,构成一个完整的帧格式。然后在移位脉冲的作用下,由TXD端串 行输出。一帧数据发送完毕后硬件自动置TI=1。再次发送数据前,用指 令将TI清零。
单片机原理与应用
串行通信工作方式
80C51串行通信共有4种工作方式,由串行控制寄存器SCON 中SM0 SM1决定。
1.1 串行工作方式0(同步移位寄存器工作方式)
以RXD(P3.0)端作为数据移位的输入/输出端, 以TXD(P3.1)端输出移位脉冲。 移位数据的发送和接收以8位为一帧,不设起始位和停止位,无论输入 /输出,均低位在前高位在后。 其帧格式为:
1.3 串行工作方式2
串行接口工作方式2为9位异步通信接口,传送一帧数据有11位。1位起 始位(低电平信号),8位数据位(先低位后高位),1位可编程位,1位停止位 (高电平信号)。其格式如下:
起始位
数据位
0
D0
D1
D2
D3
D4
D5 D6
单片机基础_80C51
5. 串行I/O口 目前高档 8 位单片机均设置了全双工串行 I/O 口,用以 实现与某些终端设备进行串行通信,或者和一些特殊功能 的器件相连接的能力,甚至用多个单片机相连构成多机系 统。随着应用的拓宽,有些型号的单片机内部还包含有二 个串行I/O口。 6. 定时器/计数器
3. 控制线:共4根。
· RST(VPD:备用电源引入端,当电源发生故障,电源降到下限值时, 备用电源经此端向内部 RAM提供电压,以保护内部RAM中的数据不 丢失)——复位输入信号,高电平有效。在振荡器工作时,在RST上 作用两个机器周期以上的高电平,将器件复位。 ·/EA(Vpp:编程电压,具体电压值视芯片而定)——片外程序存储 器访问允许信号,低电平有效。/EA=1,选择片内程序存储器(80C51 为4KB,80C52为8KB) ;/EA=0,则程序存储器全部在片外而不管片 内是否有程序存储器。 使用80C31时,必须接地,使用8751编程时,施加 21V的编程电 压。 · ALE(PROG:编程脉冲)——地址锁存允许信号,输出。 在访问片外存储器或 I/O 时,用于锁存低八位地址,以实现低八 位地址与数据的隔离。即使不访问外部存储器,ALE端仍以固定的频 率输出脉冲信号(此频率是振荡器频率的1/6)。在访问外部数据存储器 时,出现一个ALE脉冲。
在单片机中,常把寄存器(如工作寄存器、特殊功能 寄存器、堆栈等)在逻辑上划分在片内 RAM 空间中,所 以可将单片机内部 RAM 看成是寄存器堆,有利于提高运 行速度。
当内部 RAM 容量不够时,还可通过串行总线或并行 总线外扩数据存储器。
4. 并行I/O口
单片机往往提供了许多功能强、使用灵活的并行输入 /输出引脚,用于检测与控制。有些I/O引脚还具有多种功 能,比如可以作为数据总线的数据线、地址总线的地址线、 控制总线的控制线等。单片机 I/O 引脚的驱动能力也逐渐 增大,甚至可以直接驱动外扩的LED显示器。
80C51串行口通信
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串行通信接口
发送时,只需将发送数据输入SBUF,CPU将自动启动和完成串行数据的发送; 接收时,CPU将自动把接收到的数据存入SBUF,用户只需从SBUF中读出接收数据。
2、串行控制寄存器SCON
SCON
D7
D6
位名称
SM0 SM1
位地址
9FH 9EH
3、电源控制寄存器PCON
PCON 位名称
D7
D6 D5 D4 D3
D2
D1
D0
SMOD — — — GF1 GF0 PD IDL
SMOD=1,串行口波特率加倍。PCON寄存器不能进行位寻址。
SM0、SM1:串行口工作方式选择位。用于选择四种工作方式
SM0
SM1
方式
0
0
方式0
0
1
方式1
1
0
方式2
1
单片机原理与应用
80C51串行通信接口
80C51系列单片机有一个全双工的串行口,这个口既可以 用于网络通信,也可以实现串行异步通信,还可以作为同步移位 寄存器使用。
串行口特殊功能寄存器
1、串行数据缓冲器SBUF
在逻辑上只有一个,既表示发送寄存器,又表示接收寄存器,具有 同一个单元地址99H,用同一寄存器名SBUF。
1
方式3
功能 移位寄存器方式 8位异步通信方式 9位异步通信方式 9位异步通信方式
波特率 fosc/12 可变 fosc/32或fosc/64 可变
单片机原理与应用
功能
工作方式 选择
D5 SM2 9DH
多机通信控 制
D4 REN 9CH
接收 允许
D3
第八章 80C51并行口和串行口
这种类型的指令有:
MOV A,P1
MOV direct,P1
;A←P1
;direct←P1
在执行读锁存器的指令时,CPU首先完成将锁存器的值通过 缓冲器BUF2读入内部,进行修改,然后重新写到锁存器中去, 这就是“读一修改一写”指令。 这种类型的指令包含所有的口的逻辑操作( ANL 、 ORL 、 XRL)和位操作(JBC、CPL、MOV、SETB、CLR等)指令。 ⑶ P1口的多功能线 在80C52中, P1. 0和P1. 1口线是多功能的,即除作一般双 向I/O口线之外,这两根口线还具有下列功能: P1.0—定时器/计数器2的外部输入端T2; P1.1—定时器/计数器2的外部控制端T2EX。
P1口的工作过程分析如下: P1.i位作输出口用时:CPU输出0时,D=0,Q=0,Q=l, 晶体管Q0导通,A点被下拉为低电平,即输出0;CPU输出1时, D=l,Q=1,Q=0,晶体管Q0截止, A点被上拉为高电平, 即输出l。
⒉ P1口的特点 输出锁存器,输出时没有条件; 输入缓冲,输入时有条件,即需要先将该口设为输入状态, 先输出1; P1.i位作输入口用时:先向P1.i位输出高电平,使A点提 升为高电平,此操作称为设置 P1.i为输入线。若外设输入为 1 时 A点为高电平,由 BUFI 读入总线后 B点也为高电平;若外设 输入为0时A点为低电平,由BUF1读入总线后B点也为低电平。 工作过程中无高阻悬浮状态,也就是该口不是输入态就是 输出态。 具有这种特性的口不属于“真正”的双向口,而被称为 “准”双向口。
⒉ P3口的功能
P3口是一个多功能口。 ⑴可作I/O口使用,为准双向口。 既可以字节操作,也可以位操作;既可以 8 位口操作,也可 以逐位定义口线为输入线或输出线;既可以读引脚,也可以读 锁存器,实现“读一修改一输出”操作。 ⑵ 可以作为替代功能的输入、输出。 替代输入功能:
第6章80C51单片机的串行口
2(3)
TXD
发送数据(串行输出)
DTE→DCE
3(2)
RXD
接收数据(串行输入)
DTE←DCE
4(7)
RTS
请求发送
DTE→DCE
5(8)
CTS
允许发送
DTE←DCE
6(6)
DSR
DCE就绪(数据建立就绪)
DTE←DCE
7(5)
SGND
信号接地
8(1)
DCD
载波检测
DTE←DCE
RB8
TI
RI
字节地址:98H
SM0
SM1
方 式
说 明
波特率
0
0
0
移位寄存器
fosc/12
0
1
1
10位UART(8位数据)
可变
1
0
2
11位UART(9位数据)
fosc/64或fosc/32
1
1
3
11位UART(9位数据)
可变
SM2:多机通信控制位
SM2=1时,接收机处于地址帧筛选状态。若RB8=1,该地址帧信息可进入SBUF,并使RI为1,进而在中断服务中再进行地址号比较;若RB8=0,该帧不是地址帧,应丢掉,且保持RI=0。
传输距离与传输速率的关系
传输距离随波特率的增加而减小。
6.1.2 串行通信接口标准
RS-232C定义的是DTE与DCE间的接口标准。
机械特性
DB-25(阳头)连接器
DB-9(阳头)连接器
阳头通常用于计算机侧,阴头用于连接线侧
功能特性
插针序号
信号名称
功能
信号方向
单片机习题和试题库之四 问答题
7. MCS-51单片机系统中,外接程序存储器和数据存储器公用16位地址线和8位数据线,为什么不会发生冲突?
8. 若异步通信按方式2传送,每分钟传送3000个字符,其波特率是多少?
9. 中断响应的条件是什么?
10. MCS-51单片机系统中,外接程序存储器和数据存储器公用16位地址线和8位数据线,为什么不会发生冲突?
14.指令如下:
MOV A,R4 ;
在程序状态字PSW中 ⑴ RS1=0,RS0=0; ⑵ RS1=1,RS0=0
两种情况下,上述指令执行结果有何不同?
15.MCS-51 单片机堆栈有何特点?若SP=60H,PC=2000H,标号LABEL所在的地址为3000H,问执行长调用指令LCALL LABEL后,堆栈指针和堆栈的内容发生什么变化?PC的值等于什么?
3456,623,105
57. 写出下列字符的ASCII码
A 9 * = !
58. 设机器字长为8位,求下列数值的二、十六进制原码、反码、和补码
+0,-0,+33,-33,+127,-127,+75,-75;
59. 已知X=+59,Y=+78用八位机器数补码运算求X+Y=?,X-Y=?并判别溢出情况?
82.用74373输入(P2.0片选),74377输出(P2.1片选),试画出与80C51的连接电路,并编制程序,从373依次读入8个数据,取反后,从377输出。
83.51系列单片机具有几个中断源,分别是如何定义的?其中哪些中断源可以被定义为高优先级中断,如何定义?
84.各中断源对应的中断服务程序的入口地址是否能任意设定?
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,表示一帧数据接收完成。
单片机原理及应用-第四章80C51单片机的功能
对两个操作数执行逻辑异或操作, 并将结果存放在目标地址中。
03
02
OR
对两个操作数执行逻辑或操作,并 将结果存放在目标地址中。
NOT
对操作数执行逻辑非操作,并将结 果存放在目标地址中。
04
控制转移指令
JMP
无条件跳转到指定地址。
JC/JNC
当进位标志位为1或0时,跳转 到指定地址。
JZ/JE
06
80C51单片机的串行通信 接口
串行通信的基本概念
串行通信
通过一条数据线,按照位顺序传输数据,实现数 据的发送和接收。
异步通信
数据传输速率不固定,发送器和接收器使用各自 的时钟。
同步通信
数据传输速率固定,发送器和接收器使用同一时 钟源。
80C51单片机的串行口结构及控制寄存器
要点一
串行口结构
算术运算指令
ADD
将两个操作数相加,并将结果存放在 目标地址中。
SUB
从源地址中减去目标地址中的值,并 将结果存放在源地址中。
MUL
将两个操作数相乘,并将结果存放在 目标地址中。
DIV
将源地址中的值除以目标地址中的值, 并将商存放在源地址中,余数存放在 累加器中。
逻辑运算指令
01
AND
对两个操作数执行逻辑与操作,并 将结果存放在目标地址中。
80C51单片机的应用领域
工业控制
80C51单片机在工业控制领域应用广泛, 如电机控制、自动化生产线控制等。
通信设备
80C51单片机在通信设备领域应用广 泛,如调制解调器、路由器、交换机
等。
智能仪表
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位为一帧,不设起始位和停止位,低位在前高位在后。
80C51的串行口
1、方式2和方式3输出
写入SBUF TXD TI(中断标志) 起始
D0 D1 D2 D3 D4 D5 D6 D7 TB8
停止位
①发送开始时,先把起始位0输出到TXD引脚,然后发 送移位寄存器的输出位(D0)到TXD引脚。每一个 移位脉冲都使输出移位寄存器的各位右移一位,并 由TXD引脚输出。 ②第一次移位时,停止位“1”移入输出移位寄存器的 第9位上 ,以后每次移位,左边都移入0。当停止位 移至输出位时,左边其余位全为0,检测电路检测到 这一条件时,使控制电路进行最后一次移位,并置 TI=1,向CPU请求中断。
3、过程特性 过程特性规定了信号之间的时序关系, 以便正确地接收和发送数据 。
TXD 计 算 机 RXD RTS DSR M O D E M
电话线
M O D E M
TXD RXD RTS DSR 计 算 机
远程通 信连接
TXD 计 RXD 算 机 甲
TXD RXD 计 算 机 乙
计 算 机 甲
TXD RXD 4 5 6 20
6.1.2 串行通信接口标准
一、RS-232C接口 RS-232C是EIA(美国电子工业协会)1969年修订RS232C标准。RS-232C定义了数据终端设备(DTE)与 数据通信设备(DCE)之间的物理接口标准。 1、机械特性 RS-232C接口规定使用25针连接器,连接器的尺寸及每 个插针的排列位置都有明确的定义。(阳头)
空 闲 起 始 位 D0 LSB 1帧共10位 数据位8位 D7 MSB 停 止 位 空 闲
1、方式1输出
写入SBUF TXD TI(中断标志) 起始
D0 D1 D2 D3 D4 D5 D6 D7
停止位
2、方式1输入
(完整版)第六章80C51的串行口习题及答案
第六章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 的中断方式的数据接收程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
起始位:1位 数据位:8位 停止位:1位
2016/10/18
28
串行发送:(写SBUF启动发送过程)
写入SBUF TXD TI(中断标志) 起始
D0 D1 D2 D3 D4 D5 D6 D7
停止位
串行接收:(置REN=1启动接收过程)
RXD 位采样脉冲 RI(中断标志) 起始
D0 D1 D2 D3 D4 D5 D6 D7
特点:传送控制简单、速度快,但传输线较多,成本高。
2016/10/18 3
串行通信
发送 设备
0 1 1 0 1 1 0 1 D7 D6 D5 D4 D3 D2 D1 D0 TXD
时钟
接收 设备
数据线
0 1 0 1 1 0 1 1 D0 D1 D2 D3 D4 D5 D6 D7
D1 D0
0 1
D2(1)
1个全双工串口:通信或接口扩展
6.2.1 80C51串行口的结构
99H
SBUF 写SBUF TH1 TL1 发送控制器 1 T1溢出率 读SBUF ÷2 0 SMOD ÷16 接收控制器
TXD 控制门 TI 去中断逻辑
≥1
RI RXD
SBUF 99H
移位寄存器
接收发送缓冲器逻辑同名、物理分开;接收双缓冲。
2016/10/18
34
6.3 80C51单片机的串行口应用
6.3.1 利用单片机串口的并行I/O扩展
P1.1 P1.0
F 0 E 1 D 2 C 3 B 4 A 5 9 6 8 7 QA QB QC QD QE QF QG QH CP
74LS164
B QA QB QC QD QE QF QG QH QA QB QC QD QE QF QG QH
说 移位寄存器
明
波特率 fosc/12 可变 可变
10位UART(8位数据) 11位UART(9位数据)
21
11位UART(9位数据) fosc/64或fosc/32
SM2:多机通信控制位
SM2=1时,接收机处于地址帧筛选状态。若RB8= 1,该地址帧信息可进入SBUF,并使RI为1,进 而在中断服务中再进行地址号比较;若RB8=0, 该帧不是地址帧,应丢掉,且保持RI=0。 SM2=0时,接收机处于地址帧筛选被禁止状态。 不论收到的RB8为0或1,均可以使收到的信息进 入SBUF,并使RI=1。此时的RB8通常为校验位。
TXD(移位脉冲)
RXD 80C51 TXD
P1.0
Q
74LS165
CP S/L INH GND
S/L负脉冲将并行数 据装入,高电平时启 动单片机进行数据输 入。
2016/10/18
27
方式1:10位帧,用于双机通信
空 闲 起 始 位 D0 LSB 1帧共10位 数据位8位 D7 MSB 停 止 位 空 闲
REN:串行接收使能位,软件置1时,启动接收过程
2016/10/18 22
TB8:多机方式发送的第9位
多机方式的地址/数据帧标志。也可作为奇偶校验位。
RB8:多机方式接收的第9位
多机方式的地址/数据帧标志。也可作为奇偶校验位。
TI:发送中断标志位,要由软件清0 RI:接收中断标志位,要由软件清0
2016/10/18 23
传输距离随波特率的增加而减小。
2016/10/18 11
6.1.2
串行通信接口标准
RS-232C定义的是DTE与DCE间的接口标准。
机械特性
1 13 1 5
14
25
6
9
DB-25(阳头)连接器
DB-9(阳头)连接器
阳头通常用于计算机侧,阴头用于连接线侧
2016/10/18
12
功能特性
插针序号 1 2( 3) 3( 2) 4( 7) 5( 8) 6( 6) 7( 5) 8( 1) 20(4) 22(9) RI 信号名称 PGND TXD RXD RTS CTS DSR SGND DCD DTR 保护接地 发送数据(串行输出) 接收数据(串行输入) 请求发送 允许发送 DCE就绪(数据建立就绪) 信号接地 载波检测 振铃指示 DTE←DCE DTE←DCE DTE就绪(数据终端准备就绪) DTE→DCE DTE→DCE DTE←DCE DTE→DCE DTE←DCE DTE←DCE 功能 信号方向
方式0波特率= fosc/12 方式2波特率=(2SMOD/64)* fosc
可变波特率:
方式1波特率=(2SMOD/32)*(T1溢出率) 方式3波特率=(2SMOD/32)*(T1溢出率) T1 溢出率 = fosc /{12×[256 -(TH1)]}
32
2016/10/18
波特率的选择
波特率要选择标称值,由于TH1的初值是整数,为了 减小波特率计算误差,晶振频率要选为11.0592MHz。
2016/10/18
13
电气特性
RS-232C采用负逻辑电平,规定(-3~-25V)为逻辑“1”, (+3~+25V)为逻辑“0”。-3V~+3V是未定义的过渡区。 试比较:
V
+5 1 2 0.8 0 0
0 1 0 1
V
+25 +3 -3
0 1 0 1
0
t
t
1
-25 RS232电平
TTL电平
电平转换电路(如MAX232)。
传输速率
比特率:每秒钟传送的信息量。单位:位/秒(bps) 波特率:每秒钟传送码元数目,单位:波特(Baud) 基带传输(每个码元带有“1”或“0”这1 bit信息, 传码率与传信率相同),波特率和比特率是相同的。 常用波特率为:2400、4800、 9600、14.4K、19.2K等
传输距离与传输速率的关系
2016/10/18
25
数据输出:
写入SBUF RXD(数据) TXD(移位脉冲) TI(中断标志) TCY
D0
D1
D2
D3
D4
D5
D6
D7
RXD 80C51 TXD
P1.0
A B CP
74LS164
CR GND
CLR用于对74LS164清0
2016/10/18
26
数据输入:
REN=1 RI=0 RXD(数据输入) D0 D1 D2 D3 D4 D5 D6 D7
TXD RXD 计 算 机 甲
TXD RXD 计 算 机 乙
无联络线方式
联络线短接(伪连接)方式
2016/10/18
17
RS-232C电平与TTL电平转换驱动电路
早期常用MC1488、MC1489
近期常用MAXM232:
片内带有自升压电路 仅需+5V电源 内含2个发送器,2个接收器
2016/10/18
电源控制寄存器PCON
7 6 5 4 3 2 1 0
PCON
SMOD
字节地址:97H
SMOD:波特率倍增位。在串行口方式1、方式2、方式3 时,波特率与 SMOD 有关,当 SMOD=1 时,波特率提高一倍。 复位时,SMOD=0。
2016/10/18
24
6.2.3
80C51串行口的工作方式
方式0:同步移位寄存器,用于扩展并行口 RXD:输入或输出引脚 TXD:移位脉冲输出 接收和方式都是8位 波特率固定为:fosc/12
特点
易于实现 效率不高
同步通信(发、收时钟直接连接,效率高。板内元件间的SPI接口)
2016/10/18 6
串行通信的传输方向
单工
发送 接收
半双工
发送
时间1
接收
接收
时间2
发送
全双工
发送 接收 发 送 接收
80C51有1个全双工串行口
2016/10/18
7
信号的调制与解调
RS-232C RS-232C
80C51
RXD
A A B
TXD P1.2
&
CP
a b c d e f g dp a b c d e f g dp
+5V
74LS164
300Ω× 2
A B CP
74LS164
串口无通信需 求时!
2016/10/18
35
6.3.2 单片机与单片机间的通信
硬件连接
近程连接 (直连)
TXD RXD 80C51 GND RXD TXD 80C51 GND
RXD
T0 T1 T2 T3 T4 T5 T6 T7
特点:传送控制复杂、速度慢,传输线少,成本低
2016/10/18 4
6.1.1
串行通信的基本概念
异步通信与同步通信
异步通信
以“0”作为起始 以“1”作为停止 各帧间隔时间任意
发送 设备
10100100 0
TXD
接收 设备
1 11100110
RXD
D0 D1 D2 D3 D4 D5 D6 D7 TB8
停止位
串行接收:(置REN=1启动接收过程)
RXD 位采样脉冲 RI(中断标志) 起始
D0 D1 D2 D3 D4 D5 D6 D7 RB8
停止位
2016/10/18
31
6.2.4
80C51波特率确定与初始化步骤
波特率的确定 波特率的计算 固定波特率:
18
采用RS-232C接口存在的问题
传输距离短、速率低
通常不超过15米,速率20Kbps
有电平偏移
RS-232收发共地,地电流会使电平偏移出现逻辑错误。
抗干扰能力差
RS-232常用单端输入,易混入干扰。(故用大摆幅)