- 1、本文档共80页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例說89S51-C語言 串行口的应用 第八章 本章内容 硬件部分:认识8x51串行口、串行数据转并行数据IC、并行数据转串行数据IC,以及MAX232系列等。 程序与实践部分: mode 0串行口的接收与发送、其它工作方式的应用、两个8x51最小系统的互传应用、多处理器通信、RS-232通信等。 串行口的思考 串行口一次传输一个bit,并行口一次传输一个byte,谁快? 使用串行口的场合越来越多,使用并行口场合越来越少,为什么? 并行口快要被串行口完全取代,而消失了! 并行端口的最后一块版图-打印机端口,逐渐被USB与Ethernet并吞。 串行口常见名称 通用异步传输,UART(Universal Asynchronous Receiver-Transmitter),也可称为通用异步串行口 ,就是微控制器里常用的通信方式。 RS-232C是一种串行口的通信接口,在RS-232C里,传输的准位提升,使传输距里增加、抗噪声能力提高,为微型计算机里常见的接口。 单工及双工 串行式数据传输里,有单工及双工之分,单工就是一条线只能有一种用途,例如输出线就只能发送数据、输入线就只能接收数据。而双工就是在同一条在线,可接收数据,也可发送数据。 半双工与全双工 若在系统上,只有一条传输线,而在该传输线同一个时间里,不是进行数据接收,就是数据发送,称之为“半双工”。 若在系统上有两条传输线,而这两条传输在线,可同时进行数据接收与发送,称之为“全双工”。 波特率 通常以每秒传输多少位(bit per second,简称bps)表示串行式数据传输的速率,若每个传输单元为1 bit时,又称为波特率(baud rate)。 8051的串行发送数据 在8051里,若要通过串行口发送数据,只要把8位数据放入串行缓冲器(SBUF)即可,8051就会帮我们把这些数据,一个位一个位送出去。 8051的串行接收数据 在8051里,若要通过串行口接收数据,则8051会自动接收串行数据,数据收集在串行缓冲器里,当8位数据到齐(串行缓冲器满了),8051就会中断,要我们把这笔数据提走。 串行口的四种工作方式 mode 0:此方式属于半双工同步传输,其波特率为系统时钟脉冲的12分之1,即fOSC/12,以12MHz的系统为例,则其波特率为1Mbps。 mode 1或mode 3:此方式为可变波特率的异步数据传输,主要是为了配合所连接系统的时序,以达到不同系统的数据传输。 mode 2:此方式提供两种不同波特率的选择,即fOSC/32或fOSC/64,其中的fOSC为系统时钟脉冲,属于异步数据传输。 mode 0接收数据 mode 0发送数据 mode 1串行数据传输 mode 1的数据格式 mode 2的数据格式 SCON寄存器 方式设置 Timer 1产生的常用波特率表 Timer 2应用在波特率产生方式示意图 Timer 2产生的常用波特率表 帧错误检测示意图 UART mode 1 时序图 UART mode 2/3 时序图 自动地址识别功能 由于在mode 0下,SM2=1没有作用,所以无法在mode 0下执行自动地址识别功能。 在mode 1时,stop bit取代第九位,当接收的地址与自己的地址相符,且stop bit是个正确的停止位(1),则RI位将自动设置为1。 在mode 2或mode 3时,直接将第九位置入SCON寄存器的 RB8位,然后接收stop bit。若将SCON寄存器的SM2位设置为1,则接收到stop bit,且RB8=1时,将产生中断。 产生自己的地址(given address) SADDR与SADEN设置范例 产生广播地址(broadcast address) 主从式处理器结构 主处理器→从处理器 由处理器A送出目的处理器的地址字节,其中第九位(bit 9)为1(即bit 9=1),代表该帧数据为地址字节。 每个处理器都可以接收到地址字节(bit 9=1),且会产生中断。在中断子程序里,将接收到的地址字节与自己的地址相比较。若相符合,则 SM2位设置为1;不相符合,则SM2位设置为0。 处理器A再送出数据字节(bit 9=0),而SM2=1的处理器,接收到的是数据字节时,将会产生中断子程序里,将读取所接收到的数据字节。当然,SM2=0的处理器,接收到的是数据字节时,将不会产生中断。 广播 由处理器A送出广播地址字节,其中第九位(bit 9)为1(即bit 9=1),代表该帧数据为地址字节。 每个处理器都可以接收到地址字节(bit 9=1),且会产生中断。在中断子程序里,所接收到的广播地址字节与自己的地址一定符合,所以SM2位设置为1。 处理器A再送出数据字
文档评论(0)