欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    单片机串口通信485modbus.docx

    • 资源ID:3228449       资源大小:173.88KB        全文页数:39页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片机串口通信485modbus.docx

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

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

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

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

    5、全双工串行通信的传送方式通常有3种: 单向(或单工),只允许数据向一个方向传送; 半双向(或半双工),允许数据向两个方向中的任一方向传送,但每次只能有一个站点发送; 全双向(或全双工),允许同时双向传送数据,全双工配置是一对单向配置,它要求两端的通信设置具有完整和独立的发送和接收能力。7112 单片机串行口发送与接受数据1. 串行通信协议串行通信协议是通信双方为保证通信成功而制定的一系列约定。包括数据格式定义和数据位定义等。通信双方必须遵守统一的通信协议,串行通信协议包括同步协议的异步协议两种。异步串行通信协议规定了字符的传送格式和字符传送的波特率。51系列单片机串行行口数据的发送的数据的接受

    6、采用异步通信方式,在MCU内部有一个UART(Universal Asynchronous Receive/Transmitter通用异步收发器。在异步通信中数据是一帧一帧(包括一个字符代码或一字节数据)传送的,每一帧的数据格式如图7-1-2所示。 图7-1-2串行异步通信的数据格式在帧格式中,一个字符由4部分组成:起始位、数据位、奇偶校验位和停止位。首先是一个起始位(0),起始位信号只占用一位,用来通知接收设备一个待接收的字符开始到达,线路上在不传送字符时应保持为1。接收端不断检测线的状态,若连续为1以后又测到一个0,就知道发来一个新的字符,应马上准备接收,字符的起始位还被用作同步接收端的的

    7、时钟,以保证以后的接收能正确进行。然后是58位数据位(规定低位在前,高位在后),它可以是5位(D0D4)、7位或8位(D0D7)。其次是奇偶校验位(该位可省略),但在字符中也可以规定不用奇偶校验位,则这一位就可省去。民可和这一位(0/1)来确定这一帧中的字符代表代表的性质(地址/数据等)。最后是停止位(1),用来表征字符的结束,它一定是高电位(逻辑1)。停止位可以是1位、1.5位或2位。接收端收到停止位后,知道上一字符已传送完毕,同时也为接收下一个字符作好准备,只要再接收藏夹0,就是新字符。2. 波特率通信线上传送的所有位信号都保持一致的信号持续时间,每一位的信号持续时间都由数据传送速度确定,

    8、而传送速度是以每秒多少个二进制位来衡量的,这个速度叫波特率。波特率是串行通信中的一个重要指标,它反映了对传输通道的要求。波特率越高,要求传输通道的频带越宽。一般异步通信的波特率为509600b/s7113 单片机串行口控制寄存器1串行口控制寄存器SCONSCON是串行口控制和状态寄存器,其格式如下: D7 D6 D5 D4 D3 D2 D1 D0SM0SM1SM2RENTB8RB8TIRISM0、SM1:串行口工作方式控制位,具体工作方式见表。 表7-1-1 串行口工作方式控制 SMO SM1工作方式说 明波特串0 0方式0同步移位寄存器fosc120 1方式110位异步收发由定时器控制1 0

    9、方式211位异步收发fosc32或fosc641 1方式311位异步收发由定时器控制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电源控制寄存器PCONPCON的第7位SMOD是与串行口的波特率设置有关的选择位。D7 D6

    10、D5 D4 D3 D2 D1 D0SMODGF1GF0PDIDLSMOD:串行口波特率加倍位。1方式1,3波特率定时器1溢出率16;方式2波特率为fosc32; 0方式1,3波特率定时器1溢出率32;方式2波特率为fosc64。GF0、GF1:两个通用标志位。PD、IDL:CHMOS器件的低功耗控制位。7114 串行口工作模式及波特率设置1串行通信的工作方式方式0方式0为移位寄存器输入输出方式。串行数据通过RXD输入输出,TXD则用于输出移位时钟脉冲。方式0时,收发的数据为8位,低位在前。波特率固定为fosc12,其中fosc为单片机外接晶振频率。数据发送是以写SBUF寄存器的指令开始的,8位

    11、输出结束时TI被置位。方式0接收是在REN1和RI0同时满足时开始的。接收的数据装入SBUF中,结束时RI被置位。 移位寄存器方式在用最小的硬件扩展接口时很有用。串行口外接一片移位寄存器74LSl64可构成输出接口电路;串行口外接一片移位寄存器74LSl65可构成输入接口电路。在典型1MHz时钟,8位加载大约用10 us。任何数目的移位寄存器可串接用于输出和输入,通过一系列的SBUF的写和读。若移位时的波动不重要或移位寄存器中包含并行加载锁存,这可构成非常经济的IO扩展小系统。移位寄存器方式的第二种用法是用于两个单片机之间的通信。与通常波特率9600相比,以1MHz通信能力对短距离通信很吸引人

    12、。方式1方式1是10位异步通信方式,1位起始位(0),8位数据位和1位停止位(1)。其中的起始位和停止位在发送时是自动插入的。任何一条以SBUF为目的寄存器的指令都启动一次发送,发送的条件是TI=0,发送完置位TI。方式1接收的前提条件是SCON中的REN为1,同时以下两个条件都满足,本次接收有效,将其装入SBUF和RB8位。否则放弃接收结果。两个条件是:1)RI=0; 2)SM2=0或接收到的停止位为1。方式1的波特率是可变的,波特率可由以下计算公式计算得到:方式1波特率2SMOD(定时器1的溢出率)32其中的SMOD为PCON的最高位。定时器1的方式0,1,2,都可以使用,其溢出率为定时时

    13、间的倒数值。方式2和方式3这两种方式都是11位异步接收发送方式,它们的操作过程完全一样,所不同的是波特率:方式2波特率(振荡器频率fosc)方式3波特率同方式1(定时器1作波特率发生器)。方式2和方式3的发送起始于任何一条“写SBUF”指令。当第9位数据(TB8)输出之后,置位TI。 方式2和方式3的前提条件也是REN为1。在第9位数据接收到后,如果下列条件同时满足:1)RI0;2)SM20或接收到的第9位为1则将已接收的数据装入SBUF和RB8,并置位RI;如果条件不满足,则接收无效。51系列单片机串行口的不同寻常的特征是包括第九位方式。这允许在串行口通信增加的第九位用于标志特殊字节的接收。

    14、对简单网络,第九位方案允许接收单片机仅当字节具有一个第九位时才能被中断。用这种方法,发送器可以广播一个字节让第九位为高作为“每个人请注意”字节。字节可以为节点地址,地址相同的节点可以打开接收接下来的字符。所接续字节(第九位为低)不能引起其它单片机中断,因为未送它们的地址。用这种方式。一个单片机可以和大量的其它单片机对话而不打扰不寻址的单片机。这种系统必须工作在严格的主从方式,由软件进行取舍安排。 2通信波特率设置 在异步通信中,收、发双方各用自己的的时钟源,要保证捕捉到的信号正确,最好采用较高频率的时钟,一般选择时钟频率比波特率16倍或64倍,若时钟频率等于波特率,则频率稍有偏差便会产生接收错

    15、误。各方式波特率的取值方法如下:方式0状态: 当软件设置SCON的SM0、SM1为“00”时串行通信则以方式0工作,串行通信工作在同步移位寄存器方式下。其波特率固定为(1/12)fosc。方式1状态:当软件设置SCON的SM0、SM1为“01”时串行通信则以方式1工作,串行通信的波特率由定时器T1的溢出率获得:串行通信方式1波特率= (定时器/计数器1的溢出率)定时器/计数器1 的溢出率定义为:单位时间(秒)内定时器/计数器回0溢出的次数,即定时器/计数器1的溢出率=定时器/计数器1的溢出次数/秒。定时器/计数器1的溢出率=(次/秒)当T1工作于方式2其初始值为:初值N=256-串行通信方式2

    16、波特率=(振荡器频率)通常情况下,使用单片机的串行口时,选用的晶振比较固定6MHz,12MHz,110592MHz。常用于和微机的通信;选用的波特率也相对固定。串行口常用的波特率及相应的设置见表7-1-1串行口常用波特率表。 表7-1-1串行口常用波特率串行口工作方式波特率Fosc=6MHzFosc=12MHzFosc=11.0592MHzSMOD TMOD TH1SMOD TMOD TH1SMOD TMOD TH1方式01MHzX X X方式2375k187.5k1 X X1 X X0 X X方式1或方式362.5k0 20 FFH19.2k1 20 FDH9.6k0 20 FDH4.8k1

    17、 20 F3H0 20 FAH2.4k0 20 FFH1 20 F3H0 20 F4H1.2k1 20 E6H0 20 E6H0 20 E8H6001 20 CCH0 20 CCH0 20 D0H3000 20 CCH0 20 98H0 20 A0H137.51 20 1DH0 20 1DH0 20 2EH1100 20 72H0 10 FEEBH0 10 FEFFH7115单片机之间的通信波特率查询表 51系列单片机内部集成有一个功能很强的全双工串行通信口,属UART方式。设有2个互相独立的接收、发送缓冲器,可以同时发送和接收数据。发送缓冲器只能写入而不能读出,接收缓冲器只能读出而不能写入,

    18、因而两个缓冲器可以用一个地址码(99H)。两个缓冲器统称串行通信特殊功能寄存器SBUF。51系列单片机的串行通信根据应用可分为双机通信和多机通信两种,又可分为单片机与单片机间的通信和单片机与微机通信。1单片机双机通信技术如果两个AT89S52系列单片机相距很近距离的机间通信可使用UART的TTL电平,可将它们的串行端口直接相连(TXDRXD,RXDTXD,GNDGNDGND,即可实现双机通信。2单片机与微机通信为了增加通信距离,减少通道及电源干扰,可采用RS-232C或RS-422、RS-485标准进行双机通信。RS-232是串行数据接口标准,最初都是美国EIA(电子工业联合会)制订并发布的,

    19、1969年公布的通信协议。国际上规定了一个标准波特率系列,标准波特率也是最常用的波特率,标准波特率系列为110、300、600、1200、4800、9600和19200。在通信为保证通信正确,必须通信双方必须同一波特率。RS-232-C标准:RS-232-C标准对逻辑电平的各种信号线的功能作了规定,即信号电平标准和控制信号线的定义。RS-232C采用负逻辑规定逻辑电平,信号电平与通常的TTL电平不兼容,逻辑“1”=-3V-15V逻辑“0”=+3V+15V与TTL电平不一样可用TTL/EIA转换器进行转换。RS232接口芯片实现了TTL标准和RS-232-C标准之间的电平转换。使用驱动芯片(MA

    20、X232或14881489)可接成RS232C和通用微机进行通信。任务实施712 通信系统设计应用MCU内部的增强型全双工UART功能,实现智能开发板与智能开发板的通讯,可以用智能开发板上的4个键每个键发送一串不同的字符串,另一个智能开发板接收字符串,并显示。实现与PC机通讯。将从智能开发板键盘上键入的数字,字母显示到PC机显示器上,将PC机键盘输入的字符(0-F)显示到实验机的数码管上。1. 单片机与微机通信的接口电路设计 利用微机配置的异步通信适配器,可以很方便地完成微系列与AT89C51单片机的数据通信。微机与单片机的连接是零调制3线经济型,这是进行全双工通信所必须的最少数目的线路。由于

    21、AT89C52单片机输入、输出电平为TTL电平,而微机配置的RS-232C标准串行接口二的电气规范不一致,因此,要完成微机与单片机的数据通信,必须进行电平转换。现在采用MAX232单芯片实现AT89C51单片机与微机的RS-232标准接口通信电路。MAX232芯片的接口连接如图7-1-2所示。 图7-1-3 MAX232接口芯片连接图2单片机与PC微机通信接口硬件连接:(PC端口是9针插口 单片机板上是9针插头(RS232)1脚 DCD 1脚 2脚 发出数据(RXD) - 3脚 T1OUT 3脚 接受数据(TXD) - 2脚 R1IN 4脚 DRT 4脚 5脚 GND - 5脚 地(GND)

    22、6脚 DSR7脚 RTS8脚 CTS9脚 RI现从MAX232芯片中两路发送接收中任选一路作为接口,应注意发送、接收的引脚要对应。实现与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)GND2#单片机P3.0(RXD)P3.1(TXD)GND1#单片机 图示7-1-4单片机与单

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

    24、数器1为模式2 ORL PCON,#10000000B ;波特率加倍 MOV TH1,#0FDH ;设定波特率为9600 MOV TL1,#0FDH SETB TR1 ;计数器1开始计时AGAIN: JNB RI,$ ;等待接收完成 CLR RI ;清接收标志 MOV A,SBUF ;接收数据送缓冲区 MOV SBUF,A ;发送收到的数据 JNB TI,$ ;等待发送完成 CLR TI ;清发送标志 SJMP AGAIN END C51 初始化串口程序i=0;/初值 flag=0x00;/ aa=0xfe;/位码初值 TMOD=0x20;/方式寄存器初值 TH1=0xfd; TL1=0xfd

    25、; PCON=0x00; TR1=1; SCON=0x50; 单片机串行口发送程序,每发送一串字符“MCS51”后延时一段时间重复发送,和微机相接后,微机运行BASIC程序即可在屏幕上显示接收到的字符串,此程序证明单片机串行口发送正常。程序tetrc如下:#includereg51h#define uchar unsigned char#define uint unsigned intuchar idata trdata10=M,C,S,-,5,1,0x0d,0x0a,0x00;main() uchar i; uint j;TMOD=0x20; /*设置9600波特串的定时器1方式*/TL1=

    26、0xfd;TH1=0xfd;/*设置初始值SCON0xd8;PCON0x00;/*设置串行口方式*/TR1=1;/*起动定时器1while(1) i=0;while(trdatai!0x00) /*发送字符串*/SBUF=trdatai; while(TI=0); TI0; i+;for(j=0;j12500;j+; *延时* 单片机串行口发送/接收程序,每接收到字节即刻发送出去;和微机相接后微机键人的字符回显在屏幕上,此程序证明单片机串行口发送/接收都正常。可先用此程序测试,若不正常,再使用单独的发送程序测试以判断是单片机串行口发送还是接收不正常。程序trrevc如下:#includereg

    27、51hvoid main(void) unsigned char a; TMOD0x20; *在110592MHz下,设置串行口9600波特率,方式3* TL1=oxfd;TH1=0xfd;SCON=0xd8;PCON=0x00;TR11;while(1) while(RI=0): RI0; a=SBUF; /*接收到的字节,立即发送出去*SBUFa ;while(TI=0);TI0;713 系统仿真1. 在PROTEUS中画好通信电路原理图如图7-1-6所示。 图7-1-6 在PROTEUS中绘制智能系统通信原理图2. 在KEIL或WF中编写单片机C51通讯程序。编好后调试产生HEX文件。3

    28、. 在PROTEUS中链接HEX文件并仿真调试。4. PROTEUS仿真调试功能正确后,在最小系统板的扩展部分按照PROTEUS中的电路原理图安装并焊接。5. 利用Easy ISP在线下载软件将HEX文件烧入51系列单片机芯片中写入电路图中的单片机,实现用单片机通讯。714 安装与调试1硬件安装单片机与单片机间通信线连接,在硬件连线时要注意2、3脚对换,但用购买的串口线不用对换。单片机与单片机间通信线通信线不易太长,最好小于50CM。在焊接时要注意断开5V电源,焊接时间不要太长,如果太长会使焊盘脱落。2系统调试单片机的串行口主要用于和通用微机的通信、单片机间的通信和主从结构的分布式控制系统机间

    29、通信。串行口通信常使用缓冲区。单片机和通用微机进行通信时,要求使用的波特率、传送的位数等相同。要能够进行数据传送也必须首先测试双方是否可以可靠通信。可在微机和单片机上各编制非常短小的程序,具体可分成微机串行口发送接收程序、单片机串行口发送程序和单片机串行口发送接收程序。这三个程序能运行通过,即可证明串行口工作正常。通信程序接收程序尽量采用中断程序,通信中断函数不要太长,会影响接收数据。微机串行口发送接收程序设置串行口为波特率9600、8位数据、1位停止位、无奇偶校验的简单设置。从键盘接收的字符可从串行口发送出去,从串行口接收的字符在屏幕上显示。通过让串行口发送线和接收线短接可测试微机串行口,通过让串行口和单片机系统相接,使用此程序可进一步测试单片机的串行通信状况。具体程序用VB编制,简单易懂。直接输入即可运行。思考与练习:用中断方式数据接收程序的练习。任务二 基于RS485的点对多点通信任务提出:MAX485芯片与51系列单片机的仿硬件连接,PC机与多个站点智能单机的硬件连接,通信程序的编写,熟悉Keil、伟福、AEDK系列实验机开发工具。VB程序学习。实现任务如图7-2-1:图7-2-1 多机机通信原理图如上图PC通过RS232与485转换接口与多个站点的智能


    注意事项

    本文(单片机串口通信485modbus.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开