ch8 8051内部资源的C编程.ppt

  1. 1、本文档共78页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ch8 8051内部资源的C编程

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 2008/04/12 第8章 8051内部资源的C编程 2、串行口工作方式 1 串行口为波特率可调的8位通用异步串行通信口。发送或接收一帧信息,包括1位起始位0,8位数据位和1位停止位1。其帧格式如图所示。 方式1工作时: 发送端自动添加一个起始位和一个停止位; 接收端自动去掉一个起始位和一个停止位。 2008/04/12 第8章 8051内部资源的C编程 (1)方式1输出 发送时,数据从TXD端输出,当数据写入发送缓冲器SBUF后,启动发送器发送。当发送完一帧数据后,停止工作,置中断标志TI为1。 (2) 方式1输入 接收时,由REN置1,允许接收,串行口采样RXD,当采样由1到0跳变时,确认是起始位“0”,开始接收一帧数据。 当RI=0时,若停止位为1或SM2=0,停止位进入RB8位,此时置中断标志RI;否则信息将丢失。 所以,方式1接收时,应先用软件清除RI或SM2标志。 2008/04/12 第8章 8051内部资源的C编程 (a) 发送时序图 (b) 接收时序图 采样 RXD 输入数据 D0 D1 D2 D3 D4 D5 D6 D7 停止位 起始位 RI 检测负跳变,说明起始位有效 写入 SBUF TXD 数据输出 TI D0 D1 D2 D3 D4 D5 D6 D7 停止位 起始位 2008/04/12 第8章 8051内部资源的C编程 3、串行口工作方式2 方式2下,串行口为9位UART。发送或接收一帧数据包括1位起始位0,8位数据位,1位可编程位(TB8/RB8)(用于奇偶校验)和1位停止位。其帧格式如图所示。 2008/04/12 第8章 8051内部资源的C编程 (1)方式2的输出 写SBUF的指令,除了将8位数据送入SBUF外,同时还将TB8装入发送移位寄存器的第9位,并通知发送控制器进行一次发送。 发送时,先根据通信协议由软件设置TB8,然后用指令将要发送的数据写入SBUF,启动发送器。 在送完一帧信息后,TI被自动置1,在发送下一帧信息之前,TI必须由中断服务程序或查询程序清0。 2008/04/12 第8章 8051内部资源的C编程 当REN=1时,允许串行口接收数据。数据由RXD端输入,接收11位的信息。当接收器采样到RXD端的负跳变,并判断起始位有效后,开始接收一帧信息。 (2)方式2的输入 当接收器接收到第9位数据后,若同时满足以下两个条件:在1. RI=0;2. SM2=0,或接收到的第9位数据为1条件下,则接收数据有效,8位数据送入SBUF,第9位送入RB8,并置RI=1。若不满足上述两个条件,则信息丢失。 2008/04/12 第8章 8051内部资源的C编程 方式3为波特率可变的11位UART通信方式,除了波特率以外,方式3和方式2完全相同。 4、串行口工作方式3 2008/04/12 第8章 8051内部资源的C编程 8.3.2 串行口的初始化 1、串行口的波特率 波特率为每秒钟传送二进制数码的位数,也叫比特数,单位为b/s,即位/秒。 波特率用于表征数据传输的速度,波特率越高,数据传输速度越快。 (1)方式0波特率 在方式0中,波特率为时钟频率的1/12,即fosc/12,固定不变。 (2) 方式2波特率 在方式2中,波特率取决于PCON中的SMOD值, 当SMOD=0时,波特率为fosc/64; 当SMOD=1时,波特率为fosc/32. 2008/04/12 第8章 8051内部资源的C编程 波特率=2SMOD ? ( T1的溢出率 ) /32 在方式1和方式3下,波特率由定时器1的溢出率和SMOD共同决定。 (3) 方式1和方式3的波特率 溢出率:T1溢出的频繁程度 即:T1溢出一次所需时间的倒数。 当定时器T1做波特率发生器使用时,通常是工作在模式2,即自动重装载的8位定时器,此时TL1作计数用,自动重装载的值在TH1内。设计数的预置值(初始值)为X,那么每过256-X个机器周期,定时器溢出一次。为了避免因溢出而产生不必要的中断,此时应禁止T1中断。(程序中无需ET1=1) 2008/04/12 第8章 8051

文档评论(0)

jgx3536 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档