80C51系列单片机有一个全双工的串行口

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2、串行控制寄存器SCON 串行控制寄存器SCON
SCON 位名称 位地址 功能 1) 2) 3) 4) 5) 6) 7) SM0 SM0 SM2 SM2 REN TB8 TB8 RB8 TI RI D7 SM0 9FH D6 SM1 9EH D5 SM2 9DH D4 REN 9CH D3 TB8 9BH D2 RB8 9AH 接收 第9位 D1 TI 99H 发送 中断 D0 RI 98H 接收 中断
T1初值 T1初值 = 256 -
2SMOD 32
×
fosc 12 ×波特率
⑷ 应用举例
设甲乙机以串行方式1进行数据传送,fosc=11 0592MHz 11. MHz, 【例6-3】设甲乙机以串行方式1进行数据传送,fosc=11.0592MHz,波特 率为1200b/s。甲机发送的16个数据存在内RAM 40H 1200b/s 16个数据存在内 FH单元中 单元中, 率为1200b/s。甲机发送的16个数据存在内RAM 40H~4FH单元中,乙机接 收后存在内RAM 50H为首地址的区域中。 收后存在内RAM 50H为首地址的区域中。 解: 串行方式1波特率取决于T 溢出率( SMOD=0),计算T 定时初值: 串行方式1波特率取决于T1溢出率(设SMOD=0),计算T1定时初值: 计算
解:编程如下: 编程如下:
LIGHT: SCON,#00 00H 串行口方式0 LIGHT:MOV SCON,#00H ;串行口方式0 CLR ES ;禁止串行中断 MOV DPTR,#TAB ;置发光二极管亮暗控制字表首址 置顺序编号0 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 ;开启并行输出 调用延时0.5秒子程序(参阅例4 0.5秒子程序 LCALL DLY500ms ;调用延时0.5秒子程序(参阅例4-13) INC R7 ;指向下一控制字 判循环操作完否? CJNE R7,#30,LP2 ;判循环操作完否?未完继续 顺序编号0 29依次操作完毕 依次操作完毕, SJMP LP1 ;顺序编号0~29依次操作完毕,从0开始重新循环 TAB: FFH,7FH,3FH,1FH,0FH,07H,03H,01H,00 从左向右依次暗灭, 07H,03H,01H,00H TAB: DB 0FFH,7FH,3FH,1FH,0FH,07H,03H,01H,00H;从左向右依次暗灭, 每次减少一个,直至全灭; 每次减少一个,直至全灭; 80H,40H,20H,10H,08H,04H,02H,01H 从左向右依次点亮, H,40H,20H,10H,08H,04H,02H,01 DB 80H,40H,20H,10H,08H,04H,02H,01H;从左向右依次点亮,每次亮一个 02H,04H,08H,10H,20H,40H,80H 从右向左依次点亮, H,04H,08H,10H,20H,40H,80 DB 02H,04H,08H,10H,20H,40H,80H;从右向左依次点亮,每次亮一个 H,0 H,0 H,0 H,0FCH,0FEH;从左向右依次点亮, DB 0C0H,0E0H,0F0H,0F8H,0FCH,0FEH;从左向右依次点亮, 每次增加一个,直至全部点亮; 每次增加一个,直至全部点亮;
2、串行工作方式1 串行工作方式1
方式1是一帧10位的异步串行通信方式,包括1个起始位,8个数据 方式1是一帧10位的异步串行通信方式,包括1个起始位, 10位的异步串行通信方式 位和一个停止位。 位和一个停止位。 其帧格式为: 其帧格式为: 起始 D0 D1 D2 D3 D4 D5 D6 D7 停止
§6-2
80C51串行口 80C51串行口
80C51系列单片机有一个全双工的串行口 系列单片机有一个全双工的串行口, 80C51系列单片机有一个全双工的串行口,这个口既可以用 于网络通信,也可以实现串行异步通信, 于网络通信,也可以实现串行异步通信,还可以作为同步移位寄存 器使用。 器使用。
一、串行口特殊功能寄存器
•••
D0
D1
D2
D3
D4
D5
D6
D7
•••
方式0可将串行输入输出数据转换成并行输入输出数据。 方式0可将串行输入输出数据转换成并行输入输出数据。
⑴ 数据发送 串行口作为并行输出口使用时,要有“串入并出” 串行口作为并行输出口使用时,要有“串入并出”移位寄存 器配合。 器配合。
在移位时钟脉冲(TXD)的控制下,数据从串行口RXD端逐位移 在移位时钟脉冲(TXD)的控制下,数据从串行口RXD端逐位移 RXD SA、SB端 位数据全部移出后,SCON寄存器的TI位被 寄存器的TI 入74HC164 SA、SB端。当8位数据全部移出后,SCON寄存器的TI位被 自动置1 其后74HC164的内容即可并行输出。 74HC164的内容即可并行输出 CLR为清 为清0 自动置1。其后74HC164的内容即可并行输出。74HC164 CLR为清0端, 输出时CLR必须为1 否则74HC164 Q0~Q7输出为 CLR必须为 输出为0 输出时CLR必须为1,否则74HC164 Q0~Q7输出为0。
⑶ 波特率
方式0 波特率固定,为单片机晶振频率的十二分之一。 方式0 波特率固定,为单片机晶振频率的十二分之一。
⑷ 应用举例
【例6-1】电路如图所示,试编制程序按下列顺序要求每隔 电路如图所示, 0.5秒循环操作 秒循环操作。 0.5秒循环操作。
1) 8个发光二极管全部点亮; ) 个发光二极管全部点亮 个发光二极管全部点亮; 2) 从左向右依次暗灭,每次减少一个,直至全灭; ) 从左向右依次暗灭,每次减少一个,直至全灭; 3) 从左向右依次点亮, ) 从左向右依次点亮, 每次亮一个; 每次亮一个; 。 从右向左依次点亮, 4) 从右向左依次点亮, ) 每次亮一个; 每次亮一个; 5) 从左向右依次点亮, ) 从左向右依次点亮, 每次增加一个, 直至全 每次增加一个, 部点亮; 部点亮; 6) 返 数据接收
串行口作为并行输入口使用时,要有“并入串出” 串行口作为并行输入口使用时 , 要有 “ 并入串出 ” 的移位寄存器配合。 的移位寄存器配合。
74HC165 S/L端为移位 置入端, S/L=0 端为移位/ 74HC165 S/L 端为移位 / 置入端 , 当 S/L=0 时 , 从 Q0 ~ HC 并行置入数据, S/L=1 允许从Q 端移出数据。 Q7并行置入数据,当S/L=1时,允许从QH端移出数据。在 80C51串行控制寄存器SCON中的REN=1 串行控制寄存器SCON中的REN= TXD端发出移位 80C51串行控制寄存器SCON中的REN=1时,TXD端发出移位 时钟脉冲, RXD端串行输入 位数据。当接收到第8 端串行输入8 时钟脉冲,从RXD端串行输入8位数据。当接收到第8位数 置位中断标志RI 表示一帧数据接收完成。 RI, 据D7后,置位中断标志RI,表示一帧数据接收完成。
工作方式 多机通信 接收 发送 选择 控制 允许 第9位 SM1 串行口工作方式选择位。 SM1 —— 串行口工作方式选择位。 多机通信控制位。 —— 多机通信控制位。 允许接收控制位。REN=1,允许接收。 —— 允许接收控制位。REN=1,允许接收。 方式2和方式3中要发送的第9位数据。 —— 方式2和方式3中要发送的第9位数据。 方式2和方式3中要接收的第9位数据。 —— 方式2和方式3中要接收的第9位数据。 发送中断标志。 —— 发送中断标志。 接收中断标志。 —— 接收中断标志。 D7 SMOD D6 — D5 — D4 — D3 GF1
⑶ 波特率
方式1波特率可变,由定时/计数器T1的计数溢出率来决定。 方式1波特率可变,由定时/计数器T1的计数溢出率来决定。 T1的计数溢出率来决定
T1溢出率 溢出率) 波特率 = 2SMOD×(T1溢出率)/ 32 其中SMOD为PCON寄存器中最高位的值,SMOD=1表示波特率倍 其中SMOD为PCON寄存器中最高位的值,SMOD=1表示波特率倍 SMOD 寄存器中最高位的值 增。 在实际应用时,通常是先确定波特率,后根据波特率求T 在实际应用时 , 通常是先确定波特率 , 后根据波特率求 T1 时初值,因此上式又可写为: 定时初值,因此上式又可写为:
1、串行数据缓冲器SBUF 串行数据缓冲器SBUF 在逻辑上只有一个,既表示发送寄存器,又表示接收寄存器,具有同一 逻辑上只有一个,既表示发送寄存器,又表示接收寄存器, 只有一个 个单元地址99H 99H, 同一寄存器名SBUF SBUF。 个单元地址99H,用同一寄存器名SBUF。 在物理上有两个,一个是发送缓冲寄存器,另一个是接收缓冲寄存 物理上有两个,一个是发送缓冲寄存器, 器。 发送时,只需将发送数据输入SBUF CPU将自动启动和完成串行数据的发 SBUF, 发送时,只需将发送数据输入SBUF,CPU将自动启动和完成串行数据的发 送; 接收时,CPU将自动把接收到的数据存入SBUF,用户只需从SBUF 将自动把接收到的数据存入SBUF SBUF中读出接 接收时,CPU将自动把接收到的数据存入SBUF,用户只需从SBUF中读出接 收数据。 收数据。
⑴ 数据发送 发送时只要将数据写入SBUF,在串行口由硬件自动加入起始位和停 发送时只要将数据写入SBUF, SBUF 止位,构成一个完整的帧格式。然后在移位脉冲的作用下,由 TXD端串 止位, 构成一个完整的帧格式。 然后在移位脉冲的作用下, TXD端串 行输出。一帧数据发送完毕,将SCON中的TI置1。 行输出。一帧数据发送完毕, SCON中的TI置 中的TI ⑵ 数据接收 接收时, REN=1前提下,当采样到RXD RXD从 跳变状态时, 接收时,在REN=1前提下,当采样到RXD从1向0跳变状态时,就认定 为已接收到起始位。 随后在移位脉冲的控制下, 串行接收 数据移入 接收数据 为已接收到起始位 。 随后在移位脉冲的控制下 , 将 串行 接收 数据 移入 SBUF中 一帧数据接收完毕, SCON中的RI置 接收完毕 中的RI 表示可以从SBUF SBUF取走 SBUF 中 。 一帧数据 接收 完毕 , 将 SCON 中的 RI 置 1 , 表示可以从 SBUF 取走 接收到的一个字符。 接收到的一个字符。
3、电源控制寄存器PCON 电源控制寄存器PCON
PCON 位名称 D2 GF0 D1 PD D0 IDL
SMOD=1,串行口波特率加倍。PCON寄存器不能进行位寻址。 SMOD=1,串行口波特率加倍。PCON寄存器不能进行位寻址。 寄存器不能进行位寻址
二、串行工作方式
80C51串行通信共有4种工作方式,由串行控制寄存器SCON中 SM1决定 决定。 80C51串行通信共有4种工作方式,由串行控制寄存器SCON中SM0 SM1决定。 串行通信共有 SCON 1、串行工作方式0(同步移位寄存器工作方式) 串行工作方式0 同步移位寄存器工作方式) RXD(P3.0)端作为数据移位的输入/输出端, 以RXD(P3.0)端作为数据移位的输入/输出端, TXD(P3.1)端输出移位脉冲。 以TXD(P3.1)端输出移位脉冲。 移位数据的发送和接收以8位为一帧,不设起始位和停止位,无论输入/输出, 移位数据的发送和接收以8位为一帧,不设起始位和停止位,无论输入/输出, 均低位在前高位在后。 均低位在前高位在后。 其帧格式为: 其帧格式为:
【例】电路如图所示,试 电路如图所示, 编制程序输入K1 K8状 K1~ 编制程序输入K1~K8状 态数据,并存入内RAM 态数据,并存入内RAM 40H。 40H。
解:编程如下: 编程如下: KIN: SCON,#00 串行口方式0 00H KIN: MOV SCON,#00H;串行口方式0 CLR ES ;禁止串行中断 CLR P1.0 ;锁存并行输入数据 SETB P1.0 ;允许串行移位操作 允许并启动接收(TXD发送移位脉冲 发送移位脉冲) SETB REN ;允许并启动接收(TXD发送移位脉冲) RI,$ JNB RI,$ ;等待接收完毕 40H,SBUF 存入K MOV 40H,SBUF ;存入K1~K8状态数据 RET ;
相关文档
最新文档