MCS-51单片机串行口课件.pptVIP

  1. 1、本文档共78页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MCS-51单片机串行口课件

单片机原理及应用 (C语言版) 第7章 MCS-51单片机串行口;第7章 MCS-51单片机串行口 ;本章要点 本章主要讲述MCS-51单片机串行口的结构、工作原理以及应用。 主要内容包括串行通信基本知识、MCS-51单片机串行口结构、串行口工作方式以及单片机与PC机通信的接口电路。;7.1 串行通信基本知识;7.1.1 数据通信 ;7.1.1 数据通信; 1.异步通信 异步通信中,传送的数据可以是一个字符代码或一个字节数据,数据以帧的形式一帧一帧传送。 ; 2.同步通信 在同步通信中,每一数据块发送开始时,先发送一个或两个同步字符,使发送与接收取得同步,然后再顺序发送数据。数据块的各个字符间取消起始位和停止位,所以通信速度得以提高 。;7.1.3 波特率;7.1.4 通信方向;7.1.4 通信方向;7.1.5 串行通信接口种类;7.2 串行口结构及控制;7.2.1 MCS-51串行口结构;7.2.2 与串行口有关的特殊功能寄存器;SM0和SM1(SCON.7、SCON.6):串行口工作方式选择位。 ;TB8(SCON.3):发送数据的第9位。 RB8(SCON.2):接收数据的第9位。 TI(SCON.1):发送中断标志。 RI(SCON.0):接收中断标志。; 2.电源控制寄存器PCON 电源控制寄存器PCON (地址为87H)中只有SMOD位与串行口工作有关。 ;7.2.3 波特率设计; 2.方式2的波特率 接收与发送的移位时钟由振荡频率fosc的第二节拍P2时钟(fosc/2)给出,所以,方式2波特率取决于PCON中SMOD位的值:当SMOD=0时,波特率为fosc的1/64;若SMOD=1,则波特率为fosc的1/32。即 方式2的波特率= 2SMOD×fosc/64; 3.方式1和方式3的波特率 (1)T1作波特率发生器 在最典型应用中,定时器T1选用定时器模式2,此时n=8,设定时器的初值为X: 于是, X=256 -; (2)T2作波特率发生器 在增强型单片机中,还可以使用T2作为波特率发生器。当寄存器T2CON的位TCLK=1和(或)RCLK=1时,允许串行口从T2获得发送和(或)接收的波特率。 串行口方式1、3的波特率=T2溢出率/16 定时器2作波特率发生器时,计数在每个状态周期递增。这样: 方式1、3的波特率=; 主要内容 7.3.1 串行口方式0 7.3.2 串行口方式1 7.3.3 串行口方式2和方式3;7.3.1 串行口方式0;7.3.1 串行口方式0;7.3.2 串行口方式1;7.3.3 串行口方式2和方式3;7.4 串行口应用举例;7.4.1 同步方式应用;7.4.1 同步方式应用; 解:数据的输入输出通过RXD接收和发送,移位时钟通过TXD送出,74HC164用于串/并转换,74HC165用于并/串转换。 C语言程序清单: #includereg52.h sbit P1_0=P1^0; sbit P1_1=P1^1; unsigned char data1; void main() { SCON=0x10; //串行口方式0,允许接收 ES=1; EA=1; //允许串行口中断; P1_0=0; //关闭并行输出 P1_1=1; //并行置入数据 P1_1=0; //开始串行移位 SBUF=0; //送入串行数据 while(1); //等待中断 } void s_srv() interrupt 4 //中断服务程序 { if(TI) //发送中断 { TI=0; P1_0=1; //打开并行输出 }; else //接收中断 { RI=0; data1=SBUF; //读取接收的数据 P1_0=0; //关闭并行输出 SBUF=~data1; //送入串行数据 P1_1=1; //为接收下一次 P1_1=0; //数据做准备 } } 汇编语言程序清单: ORG 0000H SJMP MAIN ORG 23H SJMP S_SRV ;串行口中断服务程序;MAIN: MOV SCON,#10H ;串行口方式0初始化 SETB ES SETB EA MOV A,#0 CLR P1.0 ;关闭并行输出 MOV SBUF,A ;开始串行输出 SETB P1.1 CLR

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档