单片机第6章
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
RDSB:
3、 串行工作方式2
方式2是一帧11位的串行通信方式,即1个起始位, 8个数据位,1个可编程位TB8/RB8和1个停止位, 其帧 格式为:
起始 D0 D1 D2 D3 D4 D5 D6 D7 TB8/RB8 停止
可编程位TB8/RB8既可作奇偶校验位用,也可作 控制位(多机通信)用,其功能由用户确定。 数据发送和接收与方式1基本相同,区别在于方式2 把发送/接收到的第9位内容送入TB8/RB8。 波特率:方式2波特率固定,即fosc/32和fosc/64。 如用公式表示则为: 波特率=2SMOD
⑴ 数据发送
串行口作为并行输出口使用时,要有“串入并出” 的移位寄存器配合。
在移位时钟脉冲(TXD)的控制下,数据从串行口RXD 端逐位移入74HC164 SA、SB端。当8位数据全部移出后, SCON寄存器的TI位被自动置1。其后74HC164的内容即可 并行输出。74HC164 CLR为清0端,输出时CLR必须为1, 否则74HC164 Q0~Q7输出为0。
T1初值
2SMOD = 256 - 32
×
fosc
12 ×波特率
⑷ 应用举例 【例6-3】设甲乙机以串行方式1 进行数据传送, fosc=11.0592MHz,波特率为1200b/s。甲机发送的 16个数据存在内RAM 40H~4FH单元中,乙机接收后 存在内RAM 50H为首地址的区域中。 解: 串行方式1波特率取决于T1溢出率(设SMOD=0), 计算T1定时初值: T1初值
二、串行通信波特率
波特率bps(bit per second)定义: 每秒传输数据的位数,即:
1波特 = 1位/秒(1bps)
波特率的倒数即为每位传输所需的时间。 相互通信的甲乙双方必须具有相同的波特 率,否则无法成功地完成串行数据通信。
三、串行通信的制式
串行通信按照数据传送方向可分为三种制 式:
解:编程如下:
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,0Leabharlann Baidu0H,0F8H,0FCH,0FEH;从左向右依次点亮, 每次增加一个,直至全部点亮;
乙机接收子程序:
RXDB:
MOV
MOV MOV CLR SETB MOV MOV CLR MOV MOV SETB JNB CLR MOV MOV INC DJNZ RET
TMOD,#20H
TL1,#0E8H TH1,#0E8H ET1 TR1 SCON,#40H PCON,#00H ES R0,#50H R2,#16 REN RI,$ RI A,SBUF @R0,A R0 R2,RDSB
全双工制式是指通信双方均设有发送器和 接收器,并且信道划分为发送信道和接收信道, 因此全双工制式可实现甲乙双方同时发送和接 收数据,发送时能接收,接收时也能发送。
四、串行通信的校验
1、奇偶校验
2、累加和校验
3、循环冗余码校验 (Cyclic Redundancy Check,简称CRC)
§6-2
2、 同步通信
同步通信依靠同步字符保持通信同步。
同步通信是由1~2个同步字符和多字节 数据位组成,同步字符作为起始位以触发同 步时钟开始发送或接收数据;多字节数据之 间不允许有空隙,每位占用的时间相等;空 闲位需发送同步字符。
同步通信传输速度较快,但要求有准确 的时钟来实现收发双方的严格同步,对硬件 要求较高,适用于成批数据传送。
⑵ 数据接收
接收时,在REN=1前提下,当采样到RXD从1向0跳变状态 时,就认定为已接收到起始位。随后在移位脉冲的控制下, 将串行接收数据移入SBUF中。一帧数据接收完毕,将SCON中 的RI置1,表示可以从SBUF取走接收到的一个字符。
⑶ 波特率
方式1波特率可变,由定时/计数器T1的计 数溢出率来决定。 波特率 = 2SMOD×(T1溢出率)/ 32 其中SMOD为PCON寄存器中最高位的值, SMOD=1表示波特率倍增。 在实际应用时,通常是先确定波特率,后 根据波特率求T1定时初值,因此上式又可写为:
80C51串行口
80C51系列单片机有一个全双工 的串行口,这个口既可以用于网络通 信,也可以实现串行异步通信,还可 以作为同步移位寄存器使用。
一、串行口特殊功能寄存器
1、串行数据缓冲器SBUF
在逻辑上只有一个,既表示发送寄存器,又表示接收寄 存器,具有同一个单元地址99H,用同一寄存器名SBUF。 在物理上有两个,一个是发送缓冲寄存器,另一个是接 收缓冲寄存器。 发送时,只需将发送数据输入SBUF,CPU将自动启动和 完成串行数据的发送; 接收时,CPU将自动把接收到的数据存入SBUF,用户只 需从SBUF中读出接收数据。
接收 允许
发送 第9位
接收 第9位
发送 中断
接收 中断
① ② ③ ④ ⑤ ⑥ ⑦
SM1 —— 串行口工作方式选择位。 —— 多机通信控制位。 —— 允许接收控制位。REN=1,允许接收。 —— 方式2和方式3中要发送的第9位数据。 —— 方式2和方式3中要接收的第9位数据。 —— 发送中断标志。 —— 接收中断标志。
⑶ 波特率
方式0 波特率固定,为单片机晶振频率的十二分之一。
⑷ 应用举例
【例6-1】电路如图所示,试编制程序按下列顺序要求每隔 0.5秒循环操作。
① 8个发光二极管全部点亮; ② 从左向右依次暗灭,每次减少一个,直至全灭; ③ 从左向右依次点亮, 每次亮一个; ④ 从右向左依次点亮, 每次亮一个; ⑤ 从左向右依次点亮, 每次增加一个, 直至全 部点亮; ⑥ 返回从②不断循环。
3、电源控制寄存器PCON
PCON 位名称 D7 SMOD D6 — D5 — D4 — D3 D2 D1 PD D0 IDL GF1 GF0
SMOD=1,串行口波特率加倍。PCON寄存器不能进行位寻址。
二、串行工作方式
80C51串行通信共有4种工作方式,由串行控制寄存器SCON 中SM0 SM1决定。
2、串行工作方式1
方式1是一帧10位的异步串行通信方式,包括1个起始 位,8个数据位和一个停止位。 其帧格式为: 起始 D0 D1 D2 D3 D4 D5 D6 D7 停止
⑴ 数据发送
发送时只要将数据写入SBUF,在串行口由硬件自动加入 起始位和停止位,构成一个完整的帧格式。然后在移位脉冲 的作用下,由TXD端串行输出。一帧数据发送完毕,将SCON 中的TI置1。
1、串行工作方式0(同步移位寄存器工作方式)
以RXD(P3.0)端作为数据移位的输入/输出端, 以TXD(P3.1)端输出移位脉冲。 移位数据的发送和接收以8位为一帧,不设起始位和停止 位,无论输入/输出,均低位在前高位在后。 其帧格式为:
•••
D0
D1
D2
D3
D4
D5
D6
D7
•••
方式0可将串行输入输出数据转换成并行输入输出数据。
20 11059200 = 256 - 32 × 12×1200
= 232 = E8H
甲机发送子程序:
TXDA: MOV MOV MOV CLR SETB MOV MOV CLR MOV MOV TRSA: MOV MOV JNB CLR INC DJNZ RET TMOD,#20H TL1,#0E8H TH1,#0E8H ET1 TR1 SCON,#40H PCON,#00H ES R0,#40H R2,#16 A,@R0 SBUF,A TI,$ TI R0 R2,TRSA ;置T1定时器工作方式2 ;置T1计数初值 ;置T1计数重装值 ;禁止T1中断 ;T1启动 ;置串行方式1,禁止接收 ;置SMOD=0(SMOD不能位操作) ;禁止串行中断 ;置发送数据区首地址 ;置发送数据长度 ;读一个数据 ;发送 ;等待一帧数据发送完毕 ;清发送中断标志 ;指向下一字节单元 ;判16个数据发完否?未完继续 ;
╳
fosc/64
【例6-4】 设计一个串行方式2发送子程序 (SMOD=1),将片内RAM 50H~5FH中的数据串行 发送,第9数据位作为奇偶校验位。接到接收方 核对正确的回复信号(用FFH表示)后,再发送 下一字节数据,否则再重发一遍。
;置T1定时器工作方式2
;置T1计数初值 ;置T1计数重装值 ;禁止T1中断 ;T1启动 ;置串行方式1,禁止接收 ;置SMOD=0(SMOD不能位操作) ;禁止串行中断 ;置接收数据区首地址 ;置接收数据长度 ;启动接收 ;等待一帧数据接收完毕 ;清接收中断标志 ;读接收数据 ;存接收数据 ;指向下一数据存储单元 ;判16个数据接收完否?未完继续 ;
§6-1
串行通信概述
一、异步通信和同步通信
串行通信按同步方式可分为异步通信和同步通信。
1、异步通信
异步通信依靠起始位、停止位保持通信同步。 异步通信数据传送按帧传输,一帧数据包含 起始位、数据位、校验位和停止位。 异步通信对硬件要求较低,实现起来比较简 单、灵活,适用于数据的随机发送/接收,但因 每个字节都要建立一次同步,即每个字符都要 额外附加两位,所以工作速度较低,在单片机 中主要采用异步通信方式。
2、串行控制寄存器SCON
SCON 位名称 位地址 功能 D7 SM0 9FH D6 SM1 9EH D5 SM2 9DH D4 REN 9CH D3 TB8 9BH D2 RB8 9AH D1 TI 99H D0 RI 98H
工作方式 选择 SM0 SM2 REN TB8 RB8 TI RI
多机通信 控制
第6章
机械工业出版社同名教材 配套电子教案
第6章 串行通信
本章要点
异步通信和同步通信 串行通信波特率 串行通信的制式 串行通信的校验 串行口特殊功能寄存器 串行工作方式
计算机与外界信息交换称为通信。
通信的基本方式可分为并行通信和串行通信:
并行通信是数据的各位同时发送或同时接收; 串行通信是数据的各位依次逐位发送或接收。 并行通信优点:传送速度快 缺点:不便长距离传送 串行通信优点:便于长距离传送 缺点:传送速度较慢
【例】电路如图所 示,试编制程序 输入K1~K8状态 数据,并存入内 RAM 40H。
解:编程如下: KIN: MOV SCON,#00H;串行口方式0 CLR ES ;禁止串行中断 CLR P1.0 ;锁存并行输入数据 SETB P1.0 ;允许串行移位操作 SETB REN ;允许并启动接收(TXD发送移位脉冲) JNB RI,$ ;等待接收完毕 MOV 40H,SBUF ;存入K1~K8状态数据 RET ;
(2) 数据接收
串行口作为并行输入口使用时,要有“并入串出” 的移位寄存器配合。
74HC165 S/L端为移位/置入端,当S/L=0时,从Q0~ Q7并行置入数据,当S/L=1时,允许从QH端移出数据。在 80C51串行控制寄存器SCON中的REN=1时,TXD端发出移位 时钟脉冲,从RXD端串行输入8位数据。当接收到第8位数 据D7后,置位中断标志RI,表示一帧数据接收完成。
1、单工制式(Simplex)
单工制式是指甲乙双方通信时只能单向传 送数据,发送方和接收方固定。
2、半双工制式(Half Duplex)
半双工制式是指通信双方都具有发送器 和接收器,既可发送也可接收,但不能同时 接收和发送,发送时不能接收,接收时不能 发送。
3、全双工制式(Full Duplex)