80C51系列单片机有一个全双工的串行口
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
⑶ 波特率
方式0 波特率固定,为单片机晶振频率的十二分之一。
⑷ 应用举例
【例6-1】电路如图所示,试编制程序按下列顺序要求每隔 0.5秒循环操作。
1) 8个发光二极管全部点亮;
2) 从左向右依次暗灭,每次减少一个,直至全灭;
3) 从左向右依次点亮, 每次亮一个; 。 4) 从右向左依次点亮, 每次亮一个; 5) 从左向右依次点亮, 每次增加一个, 直至全 部点亮; 6) 返回从2)不断循环
解:编程如下:
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;从左向右依次点亮, 每次增加一个,直至全部点亮;
3、电源控制寄存器PCON
PCON 位名称 D2 GF0 D1 PD D0 IDL
SMOD=1,串行口波特率加倍。PCON寄存器不能进行位寻址。
二、串行工作方式
80C51串行通信共有4种工作方式,由串行控制寄存器SCON中SM0 SM1决定。 1、串行工作方式0(同步移位寄存器工作方式) 以RXD(P3.0)端作为数据移位的输入/输出端, 以TXD(P3.1)端输出移位脉冲。 移位数据的发送和接收以8位为一帧,不设起始位和停止位,无论输入/输出, 均低位在前高位在后。 其帧格式为:
工作方式 多机通信 接收 发送 选择 控制 允许 第9位 SM1 —— 串行口工作方式选择位。 —— 多机通信控制位。 —— 允许接收控制位。REN=1,允许接收。 —— 方式2和方式3中要发送的第9位数据。 —— 方式2和方式3中要接收的第9位数据。 —— 发送中断标志。 —— 接收中断标志。 D7 SMOD D6 — D5 — D4 — D3 GF1
2、串行控制寄存器SCON
SCON 位名称 位地址 功能 1) 2) 3) 4) 5) 6) 7) SM0 SM2 REN 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 接收 中断
(2) 数据接收
串行口作为并行输入口使用时,要有“并入串出” 的移位寄存器配合。
74HC165 S/L 端为移位 / 置入端,当 S/L=0 时,从 Q0 ~ Q7并行置入数据,当S/L=1时,允许从QH端移出数据。在 80C51串行控制寄存器SCON中的REN=1时,TXD端发出移位 时钟脉冲,从RXD端串行输入8位数据。当接收到第8位数 据D7后,置位中断标志RI,表示一帧数据接收完成。
2、串行工作方式1
方式1是一帧10位的异步串行通信方式,包括1个起始位,8个数据 位和一个停止位。 其帧格式为: 起始 D0 D1 D2 D3 D4 D5 D6 D7 停止
⑴ 数据发送 发送时只要将数据写入SBUF,在串行口由硬件自动加入起始位和停 止位,构成一个完整的帧格式。然后在移位脉冲的作用下,由 TXD 端串 行输出。一帧数据发送完毕,将SCON中的TI置1。 ⑵ 数据接收 接收时,在REN=1前提下,当采样到RXD从1向0跳变状态时,就认定 为已接收到起始位。随后在移位脉冲的控制下,将串行接收数据移入 SBUF 中。一帧数据接收完毕,将 SCON 中的 RI 置 1 ,表示可以从 SBUF 取走 接收到的一个字符。
【例】电路如图所示,试 编制程序输入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 ;
§6-2
80C51串行口
80C51系列单片机有一个全双工的串行口,这个口既可以用 于网络通信,也可以实现串行异步通信,还可以作为同步移位寄存 器使用。
一、串行口特殊功能寄存器
1、串行数据缓冲器SBUF 在逻辑上只有一个,既表示发送寄存器,又表示接收寄存器,具有同一 个单元地址99H,用同一寄存器名SBUF。 在物理上有两个,一个是发送缓冲寄存器,另一个是接收缓冲寄存 器。 发送时,只需将发送数据输入SBUF,CPU将自动启动和完成串行数据的发 送; 接收时,CPU将自动把接收到的数据存入SBUF,用户只需从SBUF中读出接 收数据。
•••
D0
D1
D2
D3
D4
D5
D6
D7
Байду номын сангаас
•••
方式0可将串行输入输出数据转换成并行输入输出数据。
⑴ 数据发送 串行口作为并行输出口使用时,要有“串入并出”移位寄存 器配合。
在移位时钟脉冲(TXD)的控制下,数据从串行口RXD端逐位移 入74HC164 SA、SB端。当8位数据全部移出后,SCON寄存器的TI位被 自动置1。其后74HC164的内容即可并行输出。74HC164 CLR为清0端, 输出时CLR必须为1,否则74HC164 Q0~Q7输出为0。