- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8篇章 AT89S51单片机的串行口.ppt
第8章 AT89S51单片机的 串行口;*; 异步通信和同步通信;*;概述:
可编程的全双工异步串行口
管脚:TXD(P3.1)、RXD(P3.0)
可同时发送、接收数据
四种工作方式,帧格式有8位、10位、11位
波特率(Baud rate)可设置
波特率(比特率):每秒钟传送二进制数的位
数,单位b/s。;8.1 串行口的结构;*;8.1.2 电源控制及波特率选择寄存器PCON
;8.2 串行口的4种工作方式
8.2.1 方式0
同步移位寄存器输入/输出方式。该方式并不用于两个AT89S51单片机之间的异步串行通信,而是用于串行口外接移位寄存器,扩展并行I/O口。
8位数据为一帧,无起始位和停止位,先发送或接收最低位。波特率为fosc/12。帧格式如图8-4。
图8-4 方式0的帧格式
;1.方式0输出
(1)方式0输出的工作原理
当执行一条将数据写入发送缓冲器SBUF指令时,产生一个正脉冲,串行口开始把SBUF中的8位数据以fosc/12的固定波特率从RXD引脚串行输出,低位在先,TXD引脚输出同步移位脉冲,发送完8位数据,中断标志位TI置“1”。 发送时序如图8-5。
;
图7-5 方式0发送时序
;(2)方式0输出的应用
典型应用是外扩串行输入/并行输出的同步移位寄存器74LS164,实现并行输出端口的扩展。
图8-6为串行口工作在方式0,通过74LS164的输出来控制8个外接LED发光二极管亮灭的接口电路。当串行口被设置在方式0输出时,串行数据由RXD端(P3.0)送出,移位脉冲由TXD端(P3.1)送出。在移位脉冲的作用下,串行口发送缓冲器的数据逐位地从RXD端串行地移入74LS164中。 ;*; 【例8-1】如图8-6所示,编写程序控制8个发光二极管轮流点亮。
图中74LS164的CLK端为同步脉冲输入端,CLR为控制端,当CLR=0时,允许串行数据从A和B端输入但是8位并行输出端关闭;当CLR=1时,A和B输入端关闭,但是允许74LS164中的8位数据并行输出。当8位串行数据发送完毕后,引起中断,在中断服务程序中,单片机通过串行口输出下一个8位数据。
采用中断方式的参考程序如下。 ;#include reg51.h
#include stdio.h
sbit P1_0=0x90;
unsigned char nSendByte;
void delay(unsigned int i)
{
int j;
for(;i0;i--)
for(j=0;j125;j++);
}
main( )
{
SCON=0x00; /* 设置串行口为方式0*/
EA=1; /* 全局中断允许 */
ES=1; /* 允许串行口中断 */
nSendByte=1;
SBUF=nSendByte; //启动串口发送
P1_0=0; // 允许串口向164串行发送数据
while(1);
};void Serial_Port( ) interrupt 4 using 0
{
TI=0;
P1_0=1;
nSendByte=1;
if(nSendByte==0) nSendByte =1;
SBUF=nSendByte;
delay(500);
P1_0=0;
};2.方式0输入
(1)方式0输入工作原理
方式0接收,REN为允许接收控制位,REN=0,禁止接收;REN?=?1,允许接收。
当向SCON寄存器写入控制字(设置为方式0,并使REN位置“1”,同时RI?=?0)时,产生一个正脉冲,串行口开始接收数据。
引脚RXD为数据输入端,TXD为移位脉冲信号输出端,接收器以fosc/12的固定波特率采样RXD引脚的数据信息,当接收完8位数据时,中断标志RI置“1”,表示一帧数据接收完毕,通知CPU读取该数据,并执行RI=0指令,准备接收下一帧数据,时序如图8-7。
;图7-7 方式0接收时序;*;*;#include reg51.h
sbit P1_1=0x91;
void delay(unsigned int i)
{
int j;
for(;i0;i--) for(j=0;j125;j++);
}
void main( )
{
SCON=0x10; /* 串行口初始化为方式0*/
while(1)
{
P1_1=0;
P1_1=1;
while(RI==0);
RI=0;
P
您可能关注的文档
最近下载
- (正版) GB 50367-2013 混凝土结构加固设计规范.docx VIP
- (2025春)人教版二年级数学上册全册教案.doc
- 小学课程表word模板可编辑a4纸打印.docx VIP
- 栽培小能手.ppt VIP
- 2025年CCAA国家注册审核员考试(认证通用基础)历年参考题库含答案详解(5卷).docx VIP
- 14.2+血管与心脏+第2课时(教学课件)生物苏科版2024八年级上册.pptx VIP
- MSDSFORsilicondioxide白碳黑英文安全技术说明书.pdf VIP
- 15J401 钢梯-标准图集.docx VIP
- 药剂学(第9版)ER 9-1 第九章液体制剂的单元操作(课件).pptx VIP
- 土地复垦方案编制规程通则.doc VIP
文档评论(0)