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

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/7861160.html】到电脑端继续下载(重复下载【60天内】不扣币)。

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

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(单片机串口通信485modbus.doc)为本站上传会员【pc****0】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

单片机串口通信485modbus.doc

1、 项目七 单片机通信实践 知识目标: 1. 了解UART(Universal Asynchronous Receive/Transmitter通用异步收发器。 2.了解MAX232通信原理及标准的通信协议。 3. 了解MODBUS通信协议标准 2. 采用通信芯片MAX485,及多机通信原理。 技能目标: 1, 根据数据格式的协议,数据交换的协议要求硬件连接,实现串行通讯的硬环境。 2. MCU与PC 机及多个单片机的硬件连接方法 3. 应用PROTEUS仿真工具软件绘制硬件连接图 4. 使用Keil C 完成程序的编写和调试 5. 使用最小系统板实现硬件调试 任务

2、一 基于RS232的点对点通信 任务提出 通过MAX232直接应用UART(Universal Asynchronous Receive/Transmitter通用异步收发器,实现单片机与单片机,或单片机与PC微机之间数据传送。 知识准备 7.1.1串行与并行通信 在实际工作中,计算机与外部设备之间常常要进行信息交换,计算机与计算机之间也要交换信息,所有这些信息交换可称为通信。 在我们前面所学的知识中所涉及的数据传送都是采用并行方式,如单片机与存储器,的数据传送,存储器与存储器的数据传送,单片机与并行打印机之间的数据传送,CPU处理数据以8位数据并行方式同时一次传送一字节的数据,这

3、样的传送方式要求用8条数据线和若于条控制信号线,传送距离较近。当计算机与计算机之间的距离较远时过多的电缆使这种方式不够经济。 串行通信是用一位数据线传送数据,只用几条电缆线作控制信号线,串行通信适合远距离数据传送,处于两地的计算机之间采用串行通信就非常的经济,当然串行通信要求通信双方具有相同的数据转换格式,规定的时间控制,相等的逻辑电路,通一的通信协议。 7.1.1.1 串行与并行通信基本概念 1.串行通信与并行通信 通信方式有两种:并行通信和串行通信。通常是根据信息传送的距离决定采用哪种通信方式,如果距离小于30cm则可采用并行通信方式,当距离大于30cm时则要

4、采用通信方式。 并行通信方式是指数据的各位同时进行传送的通信方式,其优点是传送速度高,缺点是数据有多少位,就需要多少根数据传送线,单片机与外部设备之间的数据传送属于并行通信图7-1-1(a)所示为AT89C51系列单片机与外部设备间的8位数据并行通信的连接方法,并行通信方式在位数多、传送距离远的情况下就不太合适了。 串行通信间数据是一位一位按顺序传送的通信方式,图7-1-1(b)所示为单片机与外部设备间的串行通信连接方式,可以看出最单间的串行连接只需三条线,因此利用电话线就可作为传输线,这样大大降低了成本,特别适用于远距离通信;串行通信的缺点是传送速度较低。假设并行传送N位数据所需时间为T

5、那么串行传送的时间至少为NT,实际上总是大于NT的。 图7-1-1两种通信方式连接 2. 单工、半双工和全双工 串行通信的传送方式通常有3种: ⑴ 单向(或单工),只允许数据向一个方向传送; ⑵ 半双向(或半双工),允许数据向两个方向中的任一方向传送,但每次只能有一个站点发送; ⑶ 全双向(或全双工),允许同时双向传送数据,全双工配置是一对单向配置,它要求两端的通信设置具有完整和独立的发送和接收能力。 7.1.1.2 单片机串行口发送与接受数据 1. 串行通信协议 串

6、行通信协议是通信双方为保证通信成功而制定的一系列约定。包括数据格式定义和数据位定义等。通信双方必须遵守统一的通信协议,串行通信协议包括同步协议的异步协议两种。异步串行通信协议规定了字符的传送格式和字符传送的波特率。 51系列单片机串行行口数据的发送的数据的接受采用异步通信方式,在MCU内部有一个UART(Universal Asynchronous Receive/Transmitter通用异步收发器。在异步通信中数据是一帧一帧(包括一个字符代码或一字节数据)传送的,每一帧的数据格式如图7-1-2所示。 图7-1-2串行异步通信的数据格式 在帧格

7、式中,一个字符由4部分组成:起始位、数据位、奇偶校验位和停止位。 首先是一个起始位(0),起始位信号只占用一位,用来通知接收设备一个待接收的字符开始到达,线路上在不传送字符时应保持为1。接收端不断检测线的状态,若连续为1以后又测到一个0,就知道发来一个新的字符,应马上准备接收,字符的起始位还被用作同步接收端的的时钟,以保证以后的接收能正确进行。 然后是5—8位数据位(规定低位在前,高位在后),它可以是5位(D0—D4)、7位或8位(D0—D7)。其次是奇偶校验位(该位可省略),但在字符中也可以规定不用奇偶校验位,则这一位就可省去。民可和这一位(0/1)来确定这一帧中的字符代表代表的性质(地

8、址/数据等)。 最后是停止位(1),用来表征字符的结束,它一定是高电位(逻辑1)。停止位可以是1位、1.5位或2位。接收端收到停止位后,知道上一字符已传送完毕,同时也为接收下一个字符作好准备,只要再接收藏夹0,就是新字符。 2. 波特率 通信线上传送的所有位信号都保持一致的信号持续时间,每一位的信号持续时间都由数据传送速度确定,而传送速度是以每秒多少个二进制位来衡量的,这个速度叫波特率。波特率是串行通信中的一个重要指标,它反映了对传输通道的要求。波特率越高,要求传输通道的频带越宽。一般异步通信的波特率为50—9600b/s 7.1.1.3 单片机串行口控制寄存器 1.串行口控制寄存器

9、SCON SCON是串行口控制和状态寄存器,其格式如下: D7 D6 D5 D4 D3 D2 D1 D0 SM0 SM1 SM2 REN TB8 RB8 TI RI .SM0、SM1:串行口工作方式控制位,具体工作方式见表。 表7-1-1 串行口工作方式控制 SMO SM1 工作方式 说 明 波特串 0 0 方式0 同步移位寄存器 fosc/12 0 1 方式1 10位异步收发 由定时器控制 1 0 方式2 11位异步收发 fo

10、sc/32或fosc/64 1 1 方式3 11位异步收发 由定时器控制 .SM2:多机通信控制位(方式2,3)。 1一只有接收到第9位(RB8)为1,RI才置位。 0一接收到字符N就置位。 .REN:串行口接收允许位。 1一允许串行口接收。 0一禁止串行口接收。 .TB8:方式2和方式3时,为发送的第9位数据,也可以作奇偶校验位。 .RB8:方式2和方式3时,为接收到的第9位数据;方式1时,为接收到的停止位 .TI:发送中断标志。由硬件置位,必须由软件清0。 .RI:接收中断标志。由硬件置位,必须由软件清0。 2.电源控制寄存器PCO

11、N PCON的第7位SMOD是与串行口的波特率设置有关的选择位。 D7 D6 D5 D4 D3 D2 D1 D0 SMOD GF1 GF0 PD IDL .SMOD:串行口波特率加倍位。 1——方式1,3波特率=定时器1溢出率/16;方式2波特率为fosc/32; · 0——方式1,3波特率=定时器1溢出率/32;方式2波特率为fosc/64。 .GF0、GF1:两个通用标志位。 .PD、IDL:CHMOS器件的低功耗控制位。 7.1.1.4 串行口工作模式及波特率设置 1.串行

12、通信的工作方式 ⑴方式0 方式0为移位寄存器输入/输出方式。串行数据通过RXD输入/输出,TXD则用于输出移位时钟脉冲。方式0时,收发的数据为8位,低位在前。波特率固定为fosc/12,其中fosc为单片机外接晶振频率。数据发送是以写SBUF寄存器的指令开始的,8位输出结束时TI被置位。 方式0接收是在REN=1和RI=0同时满足时开始的。接收的数据装入SBUF中,结束时RI被置位。 移位寄存器方式在用最小的硬件扩展接口时很有用。串行口外接一片移位寄存器74LSl64可构成输出接口电路;串行口外接一片移位寄存器74LSl65可构成输入接口电路。在典型1MHz时钟,8位加载大约用10 us

13、任何数目的移位寄存器可串接用于输出和输入,通过一系列的SBUF的写和读。若移位时的波动不重要或移位寄存器中包含并行加载锁存,这可构成非常经济的I/O扩展小系统。 移位寄存器方式的第二种用法是用于两个单片机之间的通信。与通常波特率9600相比,以1MHz通信能力对短距离通信很吸引人。 ⑵方式1 方式1是10位异步通信方式,1位起始位(0),8位数据位和1位停止位(1)。其中的起始位和停止位在发送时是自动插入的。任何一条以SBUF为目的寄存器的指令都启动一次发送,发送的条件是TI=0,发送完置位TI。方式1接收的前提条件是SCON中的REN为1,同时以下两个条件都满足,本次接收有效,将其装

14、入SBUF和RB8位。否则放弃接收结果。两个条件是: 1)RI=0; 2)SM2=0或接收到的停止位为1。 方式1的波特率是可变的,波特率可由以下计算公式计算得到: 方式1波特率=2SMOD·(定时器1的溢出率)/32 其中的SMOD为PCON的最高位。定时器1的方式0,1,2,都可以使用,其溢出率为定时时间的倒数值。 ⑶方式2和方式3 这两种方式都是11位异步接收/发送方式,它们的操作过程完全一样,所不同的是波特率: 方式2波特率=×(振荡器频率fosc) 方式3波特率同方式1(定时器1作波特率发生器)。 方式2和方式3的发送起始于任何一条“写SBUF”指令。当第9位数

15、据(TB8)输出之后,置位TI。 方式2和方式3的前提条件也是REN为1。在第9位数据接收到后,如果下列条件同时满足: 1)RI=0; 2)SM2=0或接收到的第9位为1 则将已接收的数据装入SBUF和RB8,并置位RI;如果条件不满足,则接收无效。 51系列单片机串行口的不同寻常的特征是包括第九位方式。这允许在串行口通信增加的第九位用于标志特殊字节的接收。对简单网络,第九位方案允许接收单片机仅当字节具有一个第九位时才能被中断。用这种方法,发送器可以广播一个字节让第九位为高作为“每个人请注意”字节。字节可以为节点地址,地址相同的节点可以打开接收接下来的字符。所接续字节(第九位为低)不

16、能引起其它单片机中断,因为未送它们的地址。用这种方式。一个单片机可以和大量的其它单片机对话而不打扰不寻址的单片机。这种系统必须工作在严格的主从方式,由软件进行取舍安排。 2.通信波特率设置 在异步通信中,收、发双方各用自己的的时钟源,要保证捕捉到的信号正确,最好采用较高频率的时钟,一般选择时钟频率比波特率16倍或64倍,若时钟频率等于波特率,则频率稍有偏差便会产生接收错误。各方式波特率的取值方法如下: ⑴方式0状态: 当软件设置SCON的SM0、SM1为“00”时串行通信则以方式0工作,串行通信工作在同步移位寄存器方式下。其波特率固定为(1/12)×fosc。 ⑵方式1状态

17、当软件设置SCON的SM0、SM1为“01”时串行通信则以方式1工作,串行通信的波特率由定时器T1的溢出率获得: 串行通信方式1波特率= ×(定时器/计数器1的溢出率) 定时器/计数器1 的溢出率定义为:单位时间(秒)内定时器/计数器回0溢出的次数,即定时器/计数器1的溢出率=定时器/计数器1的溢出次数/秒。 定时器/计数器1的溢出率=(次/秒) 当T1工作于方式2其初始值为: 初值N=256- ⑶串行通信方式2波特率=×(振荡器频率) 通常情况下,使用单片机的串行口时,选用的晶振比较固定6MHz,12MHz,11.0592MHz。常用于和微机的通信;选用的波特率也相对固定。串

18、行口常用的波特率及相应的设置见表7-1-1串行口常用波特率表。 表7-1-1串行口常用波特率 串行口工作方式 波特率 Fosc=6MHz Fosc=12MHz Fosc=11.0592MHz SMOD TMOD TH1 SMOD TMOD TH1 SMOD TMOD TH1 方式0 1MHz X X X 方式2 375k 187.5k 1 X X 1 X X 0 X X 方式1 或 方式3 6

19、2.5k 0 20 FFH 19.2k 1 20 FDH 9.6k 0 20 FDH 4.8k 1 20 F3H 0 20 FAH 2.4k 0 20 FFH 1 20 F3H 0 20 F4H 1.2k 1 20 E6H 0 20 E6H 0 20 E8H 600 1 20 CCH 0

20、 20 CCH 0 20 D0H 300 0 20 CCH 0 20 98H 0 20 A0H 137.5 1 20 1DH 0 20 1DH 0 20 2EH 110 0 20 72H 0 10 FEEBH 0 10 FEFFH 7.1.1.5单片机之间的通信波特率查询表 51系列单片机内部集成有一个功能很强的全双工串行通信口,属UART方

21、式。设有2个互相独立的接收、发送缓冲器,可以同时发送和接收数据。发送缓冲器只能写入而不能读出,接收缓冲器只能读出而不能写入,因而两个缓冲器可以用一个地址码(99H)。两个缓冲器统称串行通信特殊功能寄存器SBUF。 51系列单片机的串行通信根据应用可分为双机通信和多机通信两种,又可分为单片机与单片机间的通信和单片机与微机通信。 1.单片机双机通信技术 如果两个AT89S52系列单片机相距很近距离的机间通信可使用UART的TTL电平,可将它们的串行端口直接相连(TXD—RXD,RXD—TXD,GND—GND—GND,即可实现双机通信。 2.单片机与微机通信为了增加通信距离,减少通道及电源干

22、扰,可采用RS-232C或RS-422、RS-485标准进行双机通信。RS-232是串行数据接口标准, 最初都是美国EIA(电子工业联合会)制订并发布的,1969年公布的通信协议。国际上规定了一个标准波特率系列,标准波特率也是最常用的波特率,标准波特率系列为110、300、600、1200、4800、9600和19200。在通信为保证通信正确,必须通信双方必须同一波特率。 RS-232-C标准:RS-232-C标准对逻辑电平的各种信号线的功能作了规定,即信号电平标准和控制信号线的定义。RS-232-C采用负逻辑规定逻辑电平,信号电平与通常的TTL电平不兼容,逻辑“1”=-3V~-15V逻辑“

23、0”=+3V~+15V与TTL电平不一样可用TTL/EIA转换器进行转换。RS232接口芯片实现了TTL标准和RS-232-C标准之间的电平转换。使用驱动芯片(MAX232或1488/1489)可接成RS232C和通用微机进行通信。 任务实施 7.1.2 通信系统设计 应用MCU内部的增强型全双工UART功能,实现智能开发板与智能开发板的通讯,可以用智能开发板上的4个键每个键发送一串不同的字符串,另一个智能开发板接收字符串,并显示。实现与PC机通讯。将从智能开发板键盘上键入的数字,字母显示到PC机显示器上,将PC机键盘输入的字符(0-F)显示到实验机的数码管上。 1. 单片机与微机通信

24、的接口电路设计 利用微机配置的异步通信适配器,可以很方便地完成微系列与AT89C51单片机的数据通信。微机与单片机的连接是零调制3线经济型,这是进行全双工通信所必须的最少数目的线路。由于AT89C52单片机输入、输出电平为TTL电平,而微机配置的RS-232C标准串行接口二的电气规范不一致,因此,要完成微机与单片机的数据通信,必须进行电平转换。现在采用MAX232单芯片实现AT89C51单片机与微机的RS-232标准接口通信电路。MAX232芯片的接口连接如图7-1-2所示。 图7-1-3 MAX232接口芯片连接图 2.单

25、片机与PC微机通信接口硬件连接: (PC端口是9针插口 单片机板上是9针插头(RS232) 1脚 DCD 1脚 2脚 发出数据(RXD) ß-------à 3脚 T1OUT 3脚 接受数据(TXD) ß-------à 2脚 R1IN 4脚 DRT 4脚 5脚 GND ß-----------------à 5脚 地(GND) 6脚 DSR 7脚 RTS 8脚 CTS 9脚 RI 现从MAX232芯片中两路发送接收中任

26、选一路作为接口,应注意发送、接收的引脚要对应。 实现与PC机通讯。将从智能开发板键盘上键入的数字,字母显示到PC机显示器上,将PC机键盘输入的字符(1-8)显示到单片机的数码管上。 3.单片机和单片机通信连接 单片机与单片机通信连接如图7-1-4所示,P3.0(RXD)ß-àP3.1(TXD)、P3.1(TXD) ß-à P3.0(RXD)、GNDß-àGND。要注意的是这样的连接不能远距离。 P3.1(TXD) P3.0(RXD) GND 2#单片机 P3.0(RXD) P3.1(TXD) GND 1#单片机 图示

27、7-1-4单片机与单片机通信连接图 4. 通信程序设计流程图 通信程序中在使用串行口之前,应对它进行编程初始化,主要是设置产生波特率的定时器1、串行口控制和中断控制。具体步骤如下: ⑴确定定时器1的工作方式——编程TMOD寄存器; ⑵计算定时器1的初值——装载TH1、TL1; ⑶启动定时器1——编程TCON中的TR1位; ⑷确定串行口的控制——编程SCON和PCON; ⑸串行口在中断方式工作时,须开CPU和源中断——编程IE寄存器。 图7-1-5通信程序设计流程图 5. 编程举例 ⑴ 汇编程序例子 ORG 30H START

28、 MOV SP,#60H MOV SCON,#01010000B ;设定串行方式: ;8位异步,允许接收 MOV TMOD,#20H ;设定计数器1为模式2 ORL PCON,#10000000B ;波特率加倍 MOV TH1,#0FDH ;设定波特率为9600 MOV TL1,#0FDH SETB TR1 ;计数器1开始计时 AGAIN: JNB RI,$ ;等待接收完成 CLR RI ;清接收标志 MOV A,SBUF

29、 ;接收数据送缓冲区 MOV SBUF,A ;发送收到的数据 JNB TI,$ ;等待发送完成 CLR TI ;清发送标志 SJMP AGAIN END ⑵ C51 初始化串口程序 i=0;//初值 flag=0x00;// aa=0xfe;//位码初值 TMOD=0x20;//方式寄存器初值 TH1=0xfd; TL1=0xfd; PCON=0x00; TR1=1;

30、 SCON=0x50; ⑶ 单片机串行口发送程序,每发送一串字符“MCS—51”后延时一段时间重复发送,和微机相接后,微机运行BASIC程序即可在屏幕上显示接收到的字符串,此程序证明单片机串行口发送正常。程序tetr.c如下: #include<reg51.h> #define uchar unsigned char #define uint unsigned int uchar idata trdata[10]={‘M’,’C’,’S’,’-’,’5’,’1’,0x0d,0x0a,0x00}; main() { uchar i; uint j; TMOD

31、0x20; /*设置9600波特串的定时器1方式*/ TL1=0xfd;TH1=0xfd;/*设置初始值 SCON=0xd8;PCON=0x00;/*设置串行口方式*/ TR1=1;/*起动定时器1 while(1){ i=0; while(trdata[i]!=0x00){ /*发送字符串*/ SBUF=trdata[i]; while(TI==0); TI=0; i++; } for(j=0;j<12500;j++; /*延时*/ } } ⑷ 单片机串行口发送/接收程序,每接收到字节即刻发送出去;和微机相接后

32、微机键人的字符回显在屏幕上,此程序证明单片机串行口发送/接收都正常。可先用此程序测试,若不正常,再使用单独的发送程序测试以判断是单片机串行口发送还是接收不正常。程序trrev.c如下: #include<reg51.h> void main(void) { unsigned char a; TMOD=0x20; /*在11.0592MHz下,设置串行口9600波特率,方式3*/ TL1=oxfd;TH1=0xfd; SCON=0xd8;PCON=0x00; TR1=1; while(1) { while(RI==0): RI=0;

33、 a=SBUF; /*接收到的字节,立即发送出去*/ SBUF=a ; while(TI==0); TI=0; } } 7.1.3 系统仿真 1. 在PROTEUS中画好通信电路原理图如图7-1-6所示。 图7-1-6 在PROTEUS中绘制智能系统通信原理图 2. 在KEIL或WF中编写单片机C51通讯程序。编好后调试产生HEX文件。 3. 在PROTEUS中链接HEX文件并仿真调试。 4. PROTEUS仿真调试功能正确后,在最小系统板的扩展部分按照PROTEUS中的电路原理图安装并焊接。 5. 利用Easy I

34、SP在线下载软件将HEX文件烧入51系列单片机芯片中写入电路图中的单片机,实现用单片机通讯。 7.1.4 安装与调试 1.硬件安装 ⑴单片机与单片机间通信线连接,在硬件连线时要注意2、3脚对换,但用购买的串口线不用对换。 ⑵单片机与单片机间通信线通信线不易太长,最好小于50CM。 ⑶在焊接时要注意断开5V电源,焊接时间不要太长,如果太长会使焊盘脱落。 2.系统调试 单片机的串行口主要用于和通用微机的通信、单片机间的通信和主从结构的分布式控制系统机间通信。串行口通信常使用缓冲区。单片机和通用微机进行通信时,要求使用的波特率、传送的位数等相同。要能够进行数据传送也必须首先测试双方是否

35、可以可靠通信。可在微机和单片机上各编制非常短小的程序,具体可分成微机串行口发送接收程序、单片机串行口发送程序和单片机串行口发送接收程序。这三个程序能运行通过,即可证明串行口工作正常。通信程序接收程序尽量采用中断程序,通信中断函数不要太长,会影响接收数据。 微机串行口发送接收程序设置串行口为波特率9600、8位数据、1位停止位、无奇偶校验的简单设置。从键盘接收的字符可从串行口发送出去,从串行口接收的字符在屏幕上显示。通过让串行口发送线和接收线短接可测试微机串行口,通过让串行口和单片机系统相接,使用此程序可进一步测试单片机的串行通信状况。具体程序用VB编制,简单易懂。直接输入即可运行。 思考与

36、练习: 用中断方式数据接收程序的练习。 任务二 基于RS485的点对多点通信 任务提出: MAX485芯片与51系列单片机的仿硬件连接,PC机与多个站点智能单机的硬件连接,通信程序的编写,熟悉Keil、伟福、AEDK系列实验机开发工具。VB程序学习。实现任务如图7-2-1: 图7-2-1 多机机通信原理图 如上图PC通过RS232与485转换接口与多个站点的智能机相连接,每个站点有一MAX485连接一个温度传感DS18B20。可将每个站点的温度传送到PC 微机屏幕显示。

37、 知识准备: 7.2.1 点对多点通信 7.2.1.1 基于RS485的芯片 1.MAX485芯片介绍 在工业控制及测量领域较为常用的网络之一就是物理层采用MAX485通信接口所组成的工控设备网络。这种通信接口可以十分方便地将许多设备组成一个控制网络。从目前解决单片机之间中长距离通信的诸多方案分析来看,MAX485总线通信模式由于具有结构简单、价格低廉、通信距离和数据传输速率适当等特点而被广泛应用于仪器仪表、智能化传感器集散控制、楼宇控制、监控报警等领域。 MAX485是芯片接口的一种类型 ,MAX485

38、接口芯片是Maxim公司的一种RS-485芯片。采用单一电源+5 V工作,额定电流为300 μA,采用半双工通讯方式。它完成将TTL电平转换为RS-485电平的功能。MAX485芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD和TXD相连即可;/RE和DE端分别为接收和发送的使能端,当/RE为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可;A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表

39、发送的数据为1;当A的电平低于B端时,代表发送的数据为0。在与单片机连接时接线非常简单。只需要一个信号控制MAX485的接收和发送即可。同时将A和B端之间加匹配电阻,一般可选100Ω的电阻。 可以串行口取电,可以驱动max232与max485实现通信。没加负载时电压有5.16V,加负载后降制3V左右。 MAX485的特性、封装及特性 l 300μA低静态电流 l 共模输入电压范围为-7V到+12V l 三态输出 l 30ns传输延迟时间,5ns的的沿变化时间 l 半双工模式 l 5V电源 l 总线最大允许负载32个收发器 l 2,5 Mbps数据传输

40、速率 l 过流保护、过热保护 ±15kV ESD保护 l MAX485的框图与电路图 图7-2-2 MAX485引脚(管脚)图及工作电路 7.2.1.2 通信方式 ⑴ 微机和智能仪器间基于RS485总线的主从方式点对多点通信,各为主/从属设备,被呼叫到时响应,或主发;主设备可单独和从设备通信,也能以广播方式和所有从设备通信。如果单独通信,从设备返回一消息作为回应,如果是以广播方式查询的,则不作任何回应。 ⑵微机和智能仪器可作为主从设备,主从设备中建立了主设备查询和从设备回应消息的格式;在通信接收过程中如果发生一错误,或从设备不能执行其命令,从设备将建立一错误命

41、令并把它作为回应发送出去。尽管网络通信方法是“对等”。如果一设备发送一消息,它只是作为主设备,并期望从从设备得到回应。同样,当主设备接收到一消息,它将建立一从设备回应格式并返回给发送的控制器 ⑶通讯方式全兼容,采用异步通信,起始位1位,数据位8位,停止位1位,无校验。数据传输速率为1.2 kbps、2.4kbps、4.8kbps、9.6kbps、19.2kbps。 7.2.1.3 MODBUS协议的基本格式 在协议中建立了主设备查询的格式,和从设备回应消息格式。协议的基本格式如表7-2-1,其格式如下: 表7-2.1 MODBUS协议的基本格式注解表 序号 1

42、2 3 4 5 6 7 8 字节数 1 1 1 1 1 N 2 1 格式 SOI ADR 特征码 长度 查询/回应 信息 CRC16 EOI 基本格式的注解见表7-2-1。 SOI为起始位标志(START OF INFORMATION)当值为F1H时为主发标志,值为F3H时为响应标志; ADR是信息帧的第一字节(8位)设备地址描述,在一个485总线上可以挂接多个设备,此处的设备地址表示想和哪一个设备(1-254,0为广播地址、255保留)通讯,从0到255。它表明由用户设置地址的从机将接收由主机发送来的信息。每个从机都必须有唯一的地址码,并

43、且只有符合地址码的从机才能响应回送。当从机回送信息时,相当的地址码表明该信息来自于何处。 特征码是设备特征描述代码;长度是该整条指令的总字节数(包括起始位标志、结束码); 查询/回应是控制标识码, 也称功能码:查询消息中的功能代码告之被选中的从设备要执行何种功能。数据段包含了从设备要执行功能的任何附加信息。例如功能代码03 是要求从设备读保持寄存器并返回它们的内容。数据段必须包含要告之从设备的信息:从何寄存器开始读及要读的寄存器数量。错误检测域为从设备提供了一种验证消息内容是否正确的方法。如果从设备产生一正常的回应,在回应消息中的功能代码是在查询消息中的功能代码的回应。数据段包括了从设备

44、收集的数据:象寄存器值或状态。如果有错误发生,功能代码将被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。错误检测域允许主设备确认消息内容是否可用。 CRC16是冗余循环码包含2个字节,即16位二进制。CRC码由发送设备计算,放置于发送信息(SOI、ADR、特征码、长度、命令、)的尾部。接收信息的设备再重新计算接收到信息的CRC码,比较计算得到的CRC码是否与接收到的相符,如果两者不相符,则表明出错。主机或从机可用校验码进行判别接收信息是否出错。有时,由于电子噪声或其它一些干扰,信息在传输过程中会发生细微的变化,错误校验码保证了主机或从机对在传送过程中出错的信息不起作用

45、这样增加了系统的安全和效率。 EOI为结束码当值为F2H是为主发结束,值为F4H时为响应结束。 7.2.1.4单片机与计算机的通信 PC机通过串行口(COM1或COM2)来实现与通信MCU之间的通信。由于PC机的COM口输入/输出的是RS-232电平,往往只能用于实现单点通信,且传送距离有限,为了对其进行扩展,我们采用RS-232/RS-485接口转换器,将其转换为RS-485电平,从而通过RS-485总线实现与16个通信MCU之间的通信。由于单片机的通用同步/异步收发器(USART)采用TTL电平,与标准RS-485电平不匹配,我们采用MAXIM公司生产的MAX485芯片将其转换为R

46、S-485标准电平,通过RS-485总线实现与PC机的对接。 MAX485通讯程序与MAX232通讯程序在本质上是一样的,只是MAX485通讯程序需要加上通讯方向控制。下面通信程序,调试通过,晶振为外部11.0592M ,MAX485的DE和RE短接连PC0口, 图7-2-3 单片机与MAX485连接图 任务分析: 分析1: 硬件设计 如下图7-2-4有多个智能开发板每个开发板上安装DS18B20温度传感器并显示当前检测温度值,板上的MAX485和RS232与485转换接口与PC机连接。在PC微机上用VB建立一界面显示多个智能板上所测的温度。 图7-2-

47、4 智能温度检测系统 分析2:编制VB界面, 在VB软件中编制界面如下 图7-2-6 智能温度检测系统VB界面 任务实施: 1. 准备 ⑴ 微机 ⑵ 二个智能开发板极,二个DS18B20,二个MAX485 ⑶ 一个RS232—485转接口 2. 实施过程 ⑴在PROTEUS中画好电路原理图并完成硬件设计按照原理图正确焊接线路,用万用表简单测试线路是否有短路开路现象。 ⑵在KEIL或WF中编写多机通讯程序。编好后调试产生HEX文件。利用STC- ISP在线下载软件将HEX文件烧入51系列单片机芯片中 ⑶VB界面下设计多个窗口,通信接收,编写VB程序,根据各站的数

48、据显示在指定指定窗口。 ⑷系统调试 ⑸实现多机通讯,在PC机上VB界面显示温度值,然后用数码管显示出通信信息用C语言编写程序。 注意事项: 各智能系统站的上的MAX485输出A端连接在一起,B端连接在一起,一个工程项目的完成要经过长时间的调试才能成功,本任务的完成有一定的难度,技术性较强。 思考与练习: 1. 根据MX485与单片机的连接图和微机的连接图,制作硬件。 2. 编制温度检测通信发送接收C51程序,编译通过并用ISP下载到单片机中。 3. 在VB界面下编制数据检测及显示程序 知识拓展: 1.VB界面程序设计 Public fsStr As String Pub

49、lic sqm$ Public sqm1$ Dim zh As Byte '''''''''''''''''''''''''''''''''''''' '使用命令按钮控件 '关闭通信端口 '结束系统 '''''''''''''''''''''''''''''''''''''' Private Sub CmdExit_Click() Comm1.PortOpen = False End End Sub '''''''''''''''''''''''''''''''''''''' '使用命令按钮控件 '使用Input属性读取串行端口的传入值 '并将结果显示在Lab

50、el控制的Caption属性里 '''''''''''''''''''''''''''''''''''''' Private Sub CmdReceive_Click() Dim buf$ buf = Trim(Comm1.Input) If Len(buf) = 0 Then lblReceive.Caption = "Empty" Else lblReceive.Caption = buf End If End Sub '''''''''''''''''''''''''''''''''''''' '使用命令按钮控件 '使用Output属性将用

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服