ImageVerifierCode 换一换
格式:DOC , 页数:17 ,大小:473KB ,
资源ID:3118689      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-3118689.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第7单 串行通信2.doc)为本站会员(hw****26)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

第7单 串行通信2.doc

1、二方式 1: 8 位数据异步通讯方式1. 设定为 10 位异步通信方式:1 个起始位(“0” ),8 位数据位,1 个停止位(“1 ”)。 2. RXD:接收数据端。TXD:发送数据端。 【注意和方式 0 不一样,恢复正常】3.波特率:用 T1 作为波特率发生器213SMODBT溢 出 率4.发送:在 TI0 时,当把 数据写入 SBUF 后,即可启动发送 ,串行口内自动把发送缓冲器中的数据送入发送移位寄存器。发送移位寄存器先发一位起始位,接着按先低位后高位,再发停止位,从而完成一帧的发送。串行数据均由 TXT 端输出, TI 在发送停止位时,由硬件置 TI=1。接收:在 RI0 和 REN1

2、 的条件下。在接收到第 9 数据位(即停止位)时,接收电路必须满足以下两个条件:RI0 且 SM20;接收到的停止位为“1”时,才能把接收到的 8 位字符存入“SBUF(接收) ”中,把停止位送入 RB8 中,使 RI 1 并发出串行口中断请求(若中断开放) 。若上述条件不满足,则这次收到的数据就被舍去,不装入“SBUF(接收) ”中,这是不能允许的,因为这意味着丢失了一组接收数据。在方式 1 下,发送时钟、接收时钟和通信波特率都由定时器溢出率脉冲经过 32 分频得到,并可由 SMOD1 倍频。因此,方式 1 的波特率是可变的。其实,SM2 是用于方式 2 和方式 3 的。在方式 1 下,SM

3、2 应设为“0” 。方式 1 时序图:三方式 2 和方式 3方式 2 和方式 3 都是 11 为异步收发。两者的差异仅在于通信波特率有所不同:方式 2 的波特率由 fosc 经过 32 或 64 分频后提供;方式 3 的波特率由定时器 T1(或 T2)的溢出率经 32 分频后提供。方式 2 和方式 3 的发送过程类似于方式 1,所不同的是方式 2 和方式 3 有9 位有效数据位。发送时,CPU 除要把发送字符装入“SBUF(发送) ”外,还要把第 9 位数据位预先装入 SCON 的 TB8 中。第 9 数据位可由用户安排,可以是奇偶校验位,也可以是其它控制位。第 9 数据位的值装入 TB8 后

4、,便可用一条以 SBUF 为目的的传送指令把发送数据装入 SBUF 来启动发送过程。一帧数据发送完后,TI1,CPU 便可通过查询 TI 来以同样方法发送下一个字符帧。方式 2 和方式 3 的接收过程也和方式 1 类似。所不同的是:方式 1 时 RB8中存放的是停止位,方式 2 和方式 3 时 RB8 中存放的是第 9 数据位。因此,方式 2 和方式 3 时必须满足接收有效字符的条件变为:RI0 且 SM20 或收到的第 9 数据位为“1” ,只有上述两个条件同时满足,接收到的字符才能送入SBUF,第 9 数据位才能装入 RB8 中,并使 RI1;否则,这次收到的数据无效,RI 也不置位。其实

5、,上述第一个条件(RI0)是要求 SBUF 空,即用户应预先读走SBUF 中的信息,以便让接收电路确认它已空。第二个条件(SM20)是提供了利用 SM2 和第 9 数据位共同对接收加以控制:如果第 9 数据位是奇偶校验位,则可令 SM20,以保证串口能可靠接收;如果要求利用第 9 数据位参与接收控制,则可令 SM21,然后依靠第 9 数据位的状态来决定接收是否有效。方式 2、3 时序图:7.3.4 串行口的编程及应用一串行口的初始化编程1串行口控制寄存器 SCON 位的确定根据工作方式确定 SM0、SM1 位;对于方式 2 和方式 3 还要确定 SM2 位;如果是接收端,则置允许接收位 REN

6、 为 1;如果方式 2 和方式 3 发送数据,则应将发送数据的第 9 位写入 TB8 中。2设置波特率串行通信,收、发双方发送或接收的波特率必须一致。方式 0 和方式 2 的波特率是固定的;方式 1 和方式 3 的波特率是可变的,由 T1 溢出率确定。定时器的不同工作方式,得到的波特率的范围不一样,这是由 T1 在不同工作方式下计数位数的不同所决定。(1)方式 0 时,波特率固定为晶体振荡频率 fosc 的 1/12(fosc /12 ) ,不受SMOD 位值的影响。若 fosc = 12 MHz,波特率为 1Mbit/s。(2)方式 2 时,波特率仅与 SMOD 位的值有关。方式 2 波特率

7、 = 64SMODSCf如果 SMOD 0,则所选波特率为 fosc /64;如果 SMOD1,则所选波特率为 fosc /32。若 fosc = 12 MHz: SMOD = 0,波特率 = 187.5 kbit/s;SMOD = 1,波特率为 375 kbit/s。(3)方式 1 或方式 3,常用 T1 作为波特率发生器,其关系式为 :(7-1)SMODT12波 特 率 定 时 器 的 溢 出 率由式(7-1 )见,T1 溢出率和 SMOD 的值共同决定方式 1 或方式 3 的波特率。【注:定时器 T1 的溢出率定义为定时时间的倒数定时时间可参见 CAP5T1 的定时时间计数值机器周期N2

8、12初 值晶 体 振 荡 频 率T1 的溢出率1/定时时间 t= N(2晶 体 振 荡 频 率初 值 )所以: 波特率 = (2 SMOD/32)fosc/12 (2n-初值 )SMODN1()2SCf波 特 率 3初 值NOSf初 值 2 波 特 率其中:N 为定时器 T1 的位数,它和定时器 T1 的设定方式有关。即如果定时器 T1 为方式 0,则 N13;如果定时器 T1 为方式 1,则 N16;如果定时器 T1 为方式 2,则 N8。在实际设定波特率时,T1 常设置为方式 2 定时(自动装初值) ,即 TL1作为 8 位计数器,TH1 存放定时初值。这种方式操作方便,也避免因软件重装初

9、值带来的定时误差。实际使用时,经常根据已知波特率和时钟频率 fosc 来计算 T1 的初值 X。为避免繁杂的初值计算,常用的波特率和初值 X 间的关系常列成下表的形式,以供查用。下表列出了常用波特率与定时器 T1 的初值关系表定时器 T1波特率 fosc(MHz) SMOD /CT所选方式 相应初值9.6K 12 0 0 2 FD4.8K 12 0 0 2 FB2.4K 12 0 0 2 F31.2K 12 0 0 2 E6模式 1、30.6K 12 0 0 2 CCB9600 ,初值252.74=253=FDB4800 ,初值249.48=250=FBB=2400,初值 242.97243=

10、128+64+32+16+2+1=F3B=1200,初值 229.95=23012864324211100110E6B600 ,初值203.92=20412864+8+4=CC4 种方式比较:方式 波特率 传送位数 发送端 接收端 用途0 1/12 Fosc(固定不变) 8(数据) RXD RXD 接移位寄存器,扩充并口1 2SMOD/32T1 溢出率10(起始位、8 位数据位、停止位)TXD RXD 单机通信2 2SMOD/64T1fosc 11(第 9 位为 1:地址;为 0:数据) TXD RXD 多机通信3 2SMOD/32T1 溢出率 11 位(同方式 2) TXD RXD 多机通信

11、二串行口的应用通常用于三种情况:利用方式 0 扩展并行 I/O 口;利用方式 1 实现点对点的双机通信;利用方式 2 或方式 3 实现多机通信。1利用方式 0 扩展并行 I/O 口MCS-51 单片机的串行口在方式 0 时,当外接一个串入并出的移位寄存器,就可以扩展并行输出口,当外接一个并入串出的移位寄存器时,就可以扩展并行输入口。AT89S51 的串口的方式 0 是同步串行通信接口。方式 0 的典型应用是外扩串行输入并行输出的同步移位寄存器 74LS164,实现并行 I/O 的扩展。【例 14-5】图 14-2 是利用串行口方式 0 通过 74LS164 外接 8 个 LED 发光二极管的接

12、口电路,编写程序使发光二极管轮流显示。图中 CLK 端为同步脉冲输入端。STB 为控制端,当 STB=0 时,则 8 位并行输出端关闭,但是允许串行数据从 A 和 B 端输入。当 STB=1 时,A 和 B 输入端关闭,但允许 8 位并行数据输出。H = HIGH(高)电平h = 先于低-至- 高时钟跃变一个建立时间 (set-up time) 的 HIGH(高)电平L = LOW(低)电平l = 先于低 -至-高时钟跃变一个建立时间 (set-up time) 的 LOW(低)电平q = 小写字母代表先于低-至-高时钟跃变一个建立时间的参考输入 (referenced input) 的状态

13、= 低-至-高时钟跃变当 8 位串行数据发送完毕后,引起中断,在中服务程序中,串行发出下一个 8 位数据。参考程序如下。图 14-2 串行口方式 0 外接 8 个 LED 发光二极管的接口电路【已调试,cap72、CAP72LED 、CAP72LED2】#include #includesbit P10 = P10;unsigned char nIndex;void Delay(unsigned int count);main() SCON = 0x00; /* 串行口初始化为方式 0*/ES=1;EA=1; /* 全局中断允许 */nIndex=1;SBUF=nIndex;P10=0; /

14、MR 为复位端while(1);void Serial_Port() interrupt 4 using 0if(TI= =1)TI 0; / 清除串行发送中断请求P10=1; / Delay( 500);nIndexsbit P10=P10;unsigned char nIndex;void delay(unsigned int count);void main(void)SCON=0x00;ES=1;EA=1;nIndex=1;SBUF=nIndex;P10=0;while(1);void serial_port() interrupt 4 using 0if(TI=1)TI=0;P10=

15、1;delay(1000);nIndexsbit P10=P10;unsigned char nIndex;unsigned char zixing10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;void delay(unsigned int count);void main(void)SCON=0x00;P10=0;P10=1;SBUF=0x92; / LED 上显示数字 “5”,只发送一次,没有用中断while(1);#include sbit P10=P10;unsigned char zixing10=0xc0,0xf9,0xa

16、4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;void delay(unsigned int count);void main(void)SCON=0x00;ES=1;EA=1;SBUF=zixing0;P10=0;while(1);void serial_port() interrupt 4 using 0if(TI= =1) TI=0;P10=1;delay(1000);SBUF=zixingnIndex;void delay(unsigned int count)unsigned char j;unsigned int i;for(i=0;icount;i+)

17、for(j=0;j120;j+);(2)方式 0 接收应用举例图 7-8 为串行口外接两片 8 位并行输入串行输出的寄存器 74LS165 扩展两个 8 位并行输入口的电路。当 74LS165 的 端由高到低负跳变 时,并行输入端的数据被置入寄存器;/SL当 = 1,且时钟禁止端(第 15 脚)为低电平时,允许 TXD(P3.1 )串行移/SL位脉冲输入,这时在移位脉冲作用下,数据由右向左方向移动,以串行方式进入串行口的接收缓冲器中。图 7-8 扩展 74LS165 作为并行输入口在图 7-8 中:TXD( P3.1)作为移位脉冲输出与所有 75LS165 的移位脉冲输入端 CLK 相连;RXD(P3.0)作为串行数据输入端与 74LS165 的串行输出端 SO 相连;P1.0 与 相连,用来控制 74LS165 的串行移位或并行输入;/SHLD74LS165 的时钟禁止端(第 15 脚)接地,表示允许时钟输入。当扩展多个 8 位输入口时,相邻两芯片的首尾(QH 与 SIN)相连。在方式 0,SCON 中的 TB8、RB8 位没有用到,发送或接收完 8 位数据由硬件使 TI 或 RI 中断标志位置 “1”,CPU 响应 TI 或 RI 中断,在中断服务程序中向发送 SBUF 中送入下一个要发送的数据或从接收 SBUF 中把接收到的 1B

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。