5.通信原理及接口电路设计研究报告.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
多机串行异步通信 原理:串行口控制寄存器SCON中的SM2为多机通信接口控制位。 在方式2和方式3工作时,利用SCON中的SM2,可实现多机通信。 单片机之间的通信(多机通信) n# TXD RXD 80C51 TXD RXD 80C51 1# TXD RXD 80C51 TXD RXD 80C51 2# 主机 ①从机置SM2=1,主机发地址码 (第9位TB8为1) ,以便同某一从机沟通联络。 ②所有从机判断此地址码是否与本机符合,相符者建立一标志(SM2=0),并向主机发回答信号。 ③主机发数据(第9位TB8为0), 沟通联络的从机可接收,并发数据给主机。 TXD 8031 RXD TXD 8031 RXD 1488 1489 RXD PC TXD 1488 1489 o -12V PC机 与单片机的通信接口 普通 PC机要接入RS-485总线,可用MAX 202E、232E 等(RS 232与TTL电平转换)和MAX488、491、1487等(TTL 与RS485电平转换)。 同步通信双方所用的波特率必须相同,因波特率误差会引起偏移。异步通信在约定的波特率下,传送和接收的数据不需要严格保持同步,允许有相对的延迟,当频率差不大于1/16时,可以正确地完成通信。 PC机的波特率是通过对8250内部寄存器初始化来实现的。该除数锁存器为16位,由高8位和低8位锁存器组成。 若时钟输入为1.8432MHz, 除数与波特率之间的关系为: 除数= 当对8250 初始化并预置了除数之后, 波特率发生器就可产生需要的波特率(bps)。 下表列出了可获得15种波特率所需设置的除数。 表 IBM—PC波特率 -- 0060 96 1200 -- 000C 12 9600 -- 00C0 192 600 -- 0010 16 7200 -- 0180 384 300 -- 0018 24 4800 -- 0300 768 150 -- 0020 32 3600 0.058 0359 857 134.5 -- 0030 48 2400 0.026 0417 1047 110 0.69 003A 58 2000 -- 0600 1536 75 -- 0040 64 1800 -- 0900 2304 50 十六进制 十进制 十六进制 十进制 误差 除数 要求的波特率 误差 除数 要求的波特率 通信采用主从方式,由PC机确定与哪个单片机进行通信。 在通信软件中,应根据用户的要求和通信协议来对8250初始化,即设置通信参数: 波特率(9600波特)、数据位数(8位)、奇偶校验类型和停止位数(1位)。 注意:这里的奇偶校验位用作发送地址码(通道号)或数据的特征位(1表示地址), 而数据通信的校核采用累加和校验方法。 数据传送可采用查询方式或中断方式。 查询方式:在发送地址或数据时,先用输入指令检查发送器的保持寄存器是否为空。若为空,则用输出指令将一个数据输出给8250即可,8250会自动地将数据一位一位地发送到串行通信线上。 接收数据时,8250把串行数据转换成并行数据,并送入接收数据寄存器中,同时把“接收数据就绪”信号置于状态寄存器中。CPU读到这个信号后, 就可以用输入指令从接收器中读入一个数据了。 中断方式: 接收时:若8250 接收到一个数据,则发一个中断信号,表明CPU可以取出数据。 发送时:用输出指令输出一个数据给8250。若8250已将此数发送完毕,则发出一个中断信号,说明CPU可以继续发数。 采用查询方法发送和接收数据的程序框图如下图所示: 通信软件(PC通信软件可用C++、Delphi、VB等编制 ) VB演示程序的通信设置: MSComm1.CommPort = 1 MSComm1.Settings = 9600,n,8,1 MSComm1.PortOpen = True 通信发送、接收程序: b = b + 1 If b = 20 Then b = 0 End If Text1.Text = Str$(b) MSComm1.Output = Str$(b * 2) For i% = 1 To 20000 Next i% Text2.Text = MSComm1.Input 单片机采用中断方式发送和接收数据。串行口设置为工作方式3,由第9位判断是地址码或数据。当某台单片机与PC机发出的地址码一致时,就发出应答信号给PC机,而其它几台则不发应答信号。这样,在某一时刻PC机只与一台单片机传输数据。 单片机

文档评论(0)

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

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

1亿VIP精品文档

相关文档