基于RS485的单片机设计

更新时间:2024-05-01 20:31:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

摘要

在多机通信领域.由于单片机具有灵活高效的多机通信功能和价格优势,应用越来越广泛,但由于单片机的收发信号都是TTI 电平,驱动能力和抗干扰性有限,实用中常配合其它总线实现互联,RS485总线就是其中之一。RS485总线是平衡差分传输,抗干扰性好,最远可传输4000 m,可互联多达128个单片机,非常适台组成多机通信系统。

在多机通信中,最重要的是保证通信有条不紊地进行,因此需要严格的通信协议和完善的通信软件,本文将重点介绍应用于某大型工程的单片机多机通信协 议和通信软件的设计方法。

本文介绍一种利用单片机本身所提供的串行通讯口,采用自定义串行通信协议,加上总线驱动器如MAX481、MAX483、MAX485、MAX487等组合成简单的RS-485通讯网络,完成单片机间的多机通讯。

关键词: 单片机;串行通信;RS-485总线;

目录

第1章 引言????????????????? 1 第2章 硬件设计及原理????????????????? 2 2.1 80C51单片机硬件结构???????????????? 2 2.2 最小应用系统设计????????????????? 3 2.3 总线驱动芯片????????????????? 4 第3章 系统问题及其解决????????????????? 8 3.1 通信规则????????????????? 8 3.2 可靠性及常见故障????????????????? 9 3.3 总线匹配????????????????? 9 3.4 RO及DI端配置上拉电阻??????????????? 9 3.5 总线隔离????????????????? 10 3.6 失效保护????????????????? 10 3.7 地线与接地????????????????? 10 3.8 电磁干扰(EMI)问题????????????????? 3.9 瞬态保护????????????????? 11第4章 软件设计????????????????? 13 4.1 系统结构????????????????? 13 4.2 通信协议????????????????? 13 4.3 通信软件设计????????????????? 14 第5章 程序设计????????????????? 19第6章 系统仿真????????????????? 24

11 基于RS485单片机多机通信模型

第1章 引言

RS-485采用平衡发送和差分接收方式来实现通信:在发送端TXD将串行口的TTL电平信号转换成差分信号A、B两路输出,经传输后在接收端将差分信号还原成TTL电平信号。两条传输线通常使用双绞线,又是差分传输,因此有极强的抗共模干扰的能力,接收灵敏度也相当高。同时,最大传输速率和最大传输距离也大大提高。如果以10Kbps速率传输数据时传输距离可达12m,而用100Kbps时传输距离可达1.2km。如果降低波特率,传输距离还可进一步提高。另外RS-485实现了多点互连,最多可达256台驱动器和256台接收器,非常便于多器件的连接。不仅可以实现半双工通信,而且可以实现全双工通信。

本设计采用MCS-51系列中的80C51单片机。以80C51为控制核心,利用超声波传感器检测道路上的障碍,控制电动小汽车的自动避障,快慢速行驶,以及自动停车,并可以自动记录时间、里程和速度,自动寻迹和寻光功能。80C51是一款八位单片机,它的易用性和多功能性受到了广大使用者的好评。它是第三代单片机的代表。

第三代单片机包括了Intel公司发展MCS-51系列的新一代产品,如8xC152﹑80C51FA/FB﹑80C51GA/GB﹑8xC451﹑8xC452,还包括了Philips﹑Siemens﹑ADM﹑Fujutsu﹑OKI﹑Harria-Metra﹑ATMEL等公司以80C51为核心推出的大量各具特色﹑与80C51兼容的单片机。新一代的单片机的最主要的技术特点是向外部接口电路扩展,以实现Microcomputer完善的控制功能为己任,将一些外部接口功能单元如A/D﹑PWM﹑PCA(可编程计数器阵列)﹑WDT(监视定时器)﹑高速I/O口﹑计数器的捕获/比较逻辑等。这一代单片机中,在总线方面最重要的进展是为单片机配置了芯片间的串行总线,为单片机应用系统设计提供了更加灵活的方式。Philips公司还为这一代单片机80C51系列8xC592单片机引入了具有较强功能的设备间网络系统总线----CAN(Controller Area Network BUS).

新一代单片机为外部提供了相当完善的总线结构,为系统的扩展与配置打下了良好的基础。

1

基于RS485单片机多机通信模型

第2章 硬件设计及原理

一个单片机应用系统的硬件电路设计包含有两部分内容:一是系统扩展,即单片机内部的功能单元,如ROM﹑RAM﹑I/O口﹑定时/记数器﹑中断系统等能量不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。二是系统配置,既按照系统功能要求配置外围设备,如键盘显示器﹑打印机﹑A/D﹑D/A转换器等,要设计合适的接口电路。

2.1 80C51单片机硬件结构

80C51单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上[2]。如果按功能划分,它由如下功能部件组成,即微处理器、数据存储器、程序存储器、并行I/O口、串行口、定时器/计数器、中断系统及特殊功能寄存器。它们都是通过片内单一总线连接而成,其基本结构依旧是CPU加上外围芯片的传统结构模式。但对各种功能部件的控制是采用特殊功能寄存器的集中控制方式。

2.1.1 微处理器

该单片机中有一个8位的微处理器,与通用的微处理器基本相同,同样包括了运算器和控制器两大部分,只是增加了面向控制的处理功能,不仅可处理数据,还可以进行位变量的处理。

2.1.2 数据存储器

片内为128个字节,片外最多可外扩至64k字节,用来存储程序在运行期间的工作变量、运算的中间结果、数据暂存和缓冲、标志位等,所以称为数据存储器。

2.1.3 程序存储器

由于受集成度限制,片内只读存储器一般容量较小,如果片内的只读存储器的容量不够,则需用扩展片外的只读存储器,片外最多可外扩至64k字节。

2.1.4 中断系统

具有5个中断源,2级中断优先权。

2.1.5 定时器/计数器

片内有2个16位的定时器/计数器, 具有四种工作方式。

2.1.6 串行口

1个全双工的串行口,具有四种工作方式。可用来进行串行通讯,扩展并行I/O口,甚至与多个单片机相连构成多机系统,从而使单片机的功能更强且应用

2

基于RS485单片机多机通信模型

更广。

2.1.7 P1口、P2口、P3口、P4口

为4个并行8位I/O口。

2.1.8 特殊功能寄存器

共有21个,用于对片内的个功能的部件进行管理、控制、监视。实际上是 一些控制寄存器和状态寄存器,是一个具有特殊功能的RAM区。

由上可见,80C51单片机的硬件结构具有功能部件种类全,功能强等特点。特别值得一提的是该单片机CPU中的位处理器,它实际上是一个完整的1位微计算机,这个一位微计算机有自己的CPU、位寄存器、I/O口和指令集。1位机在开关决策、逻辑电路仿真、过程控制方面非常有效;而8位机在数据采集,运算处理方面有明显的长处。MCS-51单片机中8位机和1位机的硬件资源复合在一起,二者相辅相承,它是单片机技术上的一个突破,这也是MCS-51单片机在设计的精美之处。

2.2 最小应用系统设计

80C51是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单﹑可靠。用80C51单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,如图3.1 80C51单片机最小系统所示。由于集成度的限制,最小应用系统只能用作一些小型的控制单元。其应用特点: (1) 有可供用户使用的大量I/O口线。 (2) 内部存储器容量有限。

(3) 应用系统开发具有特殊性。

图3.1 80C51单片机最小系统

2.2.1 时钟电路

80C51虽然有内部振荡电路,但要形成时钟,必须外部附加电路。80C51单片机的时钟产生方法有两种。内部时钟方式和外部时钟方式。

本设计采用内部时钟方式,利用芯片内部的振荡电路,在XTAL1、XTAL2引脚上外接定时元件,内部的振荡电路便产生自激振荡。本设计采用最常用的内部

3

基于RS485单片机多机通信模型

据查证有关资料,并借助示波器反复测试,才发现一个值得注意的问题,我们可以查看单片机的时序:

单片机在串行口发送数据时,只要将8位数据位传送完毕,TXC标志即建立,但此时应发送的第九位数据位(若发送地址帧时)和停止位尚未发出。如果在这是关闭发送控制,势必造成发送帧数据不完整。如果单片机多机通讯采用较高的波特率,几条操作指令的延时就可能超过2位(或1位)数据的发送时间,问题或许不会出现。但是如果采用较低波特率,如9600,发送一位数据需104μs左右,单靠几条操作指令的延时远远不够,问题就明显地暴露出来。接收数据时也同样如此,单片机在接收完8个数据位后就建立起RXC信号,但此时还未接收到第九位数据位(若接收地址帧时)和停止位。所以,接收端必须延时大于2位数据位的时间(1位数据位时间=1/波特率),再作应答,否则会发生总线冲突。

(3) 总线上所连接的各单机的发送控制信号在时序上完全隔开。

为了保证发送和接收信号的完整和正确,避免总线上信号的碰撞,对总线的使用权必须进行分配才能避免竞争,连接到总线上的单机,其发送控制信号在时间上要完全隔离。

总之,发送和接收控制信号应该足够宽,以保证完整地接收一帧数据,任意两个单机的发送控制信号在时间上完全分开,避免总线争端。

3.2 可靠性及常见故障

在MCU之间中长距离通信的诸多方案中,RS-485因硬件设计简单、控制方便、成本低廉等优点广泛应用于工厂自动化、工业控制、小区监控、水利自动报测等领域。但RS-485总线在抗干扰、自适应、通信效率等方面仍存在缺陷,一些细节的处理不当常会导致通信失败甚至系统瘫痪等故障,因此提高RS-485总线的运行可靠性至关重要。

3.3 总线匹配

总线匹配有两种方法,一种是加匹配电阻,位于总线两端的差分端口VA与VB之间应跨接120Ω匹配电阻,以减少由于不匹配而引起的反射、吸收噪声,有效地抑制了噪声干扰。但匹配电阻要消耗较大电流,不适用于功耗限制严格的系统。

另外一种比较省电的匹配方案是RC 匹配利用一只电容C 隔断直流成分,可以节省大部分功率,但电容C的取值是个难点,需要在功耗和匹配质量间进行折衷。除上述两种外还有一种采用二极管的匹配方案,这种方案虽未实现真正的匹配,但它利用二极管的钳位作用,迅速削弱反射信号达到改善信号质量的目的,节能效果显著。

3.4 RO及DI端配置上拉电阻

9

基于RS485单片机多机通信模型

异步通信数据以字节的方式传送,在每一个字节传送之前,先要通过一个低电平起始位实现握手。为防止干扰信号误触发RO(接收器输出)产生负跳变,使接收端MCU进入接收状态,建议RO外接10kΩ上拉电阻。 保证系统上电时的RS-485芯片处于接收输入状态 。

对于收发控制端DE建议采用MCU引脚通过反相器进行控制,不宜采用MCU引脚直接进行控制,以防止MCU上电时对总线的干扰。

3.5 总线隔离

RS-485总线为并接式二线制接口,一旦有一只芯片故障就可能将总线“拉死”,因此对其二线口VA、VB与总线之间应加以隔离。通常在VA、VB与总线之间各串接一只4~10Ω的PTC电阻,同时与地之间各跨接5V的TVS二极管,以消除线路浪涌干扰。此外应该合理选用芯片。例如,对外置设备为防止强电磁(雷电)冲击,建议选用防雷击芯片。

3.6 失效保护

RS-485标准规定接收器门限为±200mV。这样规定能够提供比较高的噪声抑制能力,但同时也带来了一个问题:当总线电压在±200mV中间时接收器输出状态不确定。由于UART以一个前导\触发一次接收动作,所以接收器的不定态可能会使UART错误地接收一些数据,导致系统误动作。当总线空闲、开路或短路时都有可能出现两线电压差低于200mV的情况,必须采取一定措施避免接收器处于不定态。传统的做法是给总线加偏置,当总线空闲或开路时,利用偏置电阻将总线偏置在一个确定的状态(差分电压≥200mV)。但这种方法仍然不能解决总线短路时的问题,为此,有些器件制造商将接收门限移到-200mV/-50mV,巧妙地解决了这个问题。例如Maxim公司为MAX3080系列RS-485接口,不但省去了外部偏置电阻,而且解决了总线短路情况下的失效保护问题。

3.7 地线与接地

电子系统的接地是一个非常关键而又常常被忽视的问题,接地处理不当经常会导致不能稳定工作甚至危及系统安全。对于RS-485网络来讲也是一样,没有一个合理的接地系统可能会使系统的可靠性大打折扣,尤其是在工作环境比较恶劣的情况下,对于接地的要求更为严格。有关RS-485网络的接地问题很少有资料提及,在设计者中也存在着很多误区,致使通信可靠性降低、接口损坏率较高。一个典型的错误观点就是认为RS-485通信链路不需要信号地,而只是简单地用一对双绞线将各个接口的\、\端连接起来。这种处理方法在某些情况下也可以工作,但给系统埋下了隐患,主要有以下两方面的问题:

共模干扰问题:的确,RS-485接口采用差分方式传输信号,并不需要相对

10

基于RS485单片机多机通信模型

于某个参照点来检测信号,系统只需检测两线之间的电位差就可以了。但应该注意的是,收发器只有在共模电压不超出一定范围(-7V至+12V)的条件下才能正常工作。当共模电压超出此范围就会影响通信的可靠,直至损坏接口。如图6所示,当发送器A向接收器B发送数据时,发送器A的输出共模电压为VOS,由于两个系统具有各自独立的接地系统,存在着地电位差VGPD。那么,接收器输入端的共模电压就会达到VCM=VOS+VGPD。RS-485标准规定VOS≤3V,但VGPD可能会有很大幅度(十几伏甚至数十伏),并可能伴有强干扰信号,致使接收器共模输入VCM超出正常范围,并在信号线上产生干扰电流,轻则影响正常通信,重则损坏接口。

3.8 电磁干扰(EMI)问题

驱动器输出信号中的共模部分需要一个返回通路,如果没有一个低阻的返回通道(信号地),就会以辐射的形式返回源端,整个总线就会像一个巨大的天线向外辐射电磁波。因此,尽管是差分传输,对于RS-485网络来讲,一条低阻的信号地还是必不可少的。一条低阻的信号地将两个接口的工作地连接起来,使共模干扰电压VGPD被短路。这条信号地可以是额外的一对线(非屏蔽双绞线)、或者是屏蔽双绞线的屏蔽层。值得注意的是,这种做法仅对高阻型共模干扰有效,由于干扰源内阻大,短接后不会形成很大的接地环路电流,对于通信不会有很大影响。当共模干扰源内阻较低时,会在接地线上形成较大的环路电流,影响正常通信。笔者认为,可以采取以下三种措施:

A、若干扰源内阻不是非常小,可以考虑在接地线上加限流电阻限制干扰电流。接地电阻的增加可能会使共模电压升高,但只要控制在适当的范围内就不会影响正常通信;

B、采用浮地技术,隔断接地环路。当共模干扰内阻很小时上述方法已不能奏效,此时可以考虑将引入干扰的节点(例如处于恶劣的工作环境的现场仪表)浮置起来(也就是系统的电路地与机壳或大地隔离),这样就隔断了接地环路,不会形成很大的环路电流;

C、采用隔离接口。有些情况下,出于安全或其他方面的考虑,电路地必须与机壳或大地相连,不能悬浮,这时可以采用隔离接口来隔断接地回路,但是仍然应该有一条地线将隔离侧的公共端与其它接口的工作地相连。

3.9 瞬态保护

前面提到的接地措施只对低频率的共模干扰有保护作用,对于频率很高的瞬

11

基于RS485单片机多机通信模型

态干扰就无能为力了。因为引线电感的作用,对于高频瞬态干扰来讲,接地线实际等同于开路。这样的瞬态干扰可能会有成百上千伏的电压,但持续时间很短。在切换大功率感性负载(电机、变压器、继电器等)、闪电等过程中都会产生幅度很高的瞬态干扰,如果不加以适当防护就会损坏接口。对于这种瞬态干扰可以采用隔离或旁路的方法加以防护。

隔离保护方案:

这种方案实际上将瞬态高压转移到隔离接口中的电隔离层上,由于隔离层的高绝缘电阻,不会产生损害性的浪涌电流,起到保护接口的作用。通常采用高频变压器、光耦等元件实现接口的电气隔离,已有器件厂商将所有这些元件集成在一片IC中,使用起来非常简便,如Maxim公司的MAX1480/MAX1490,隔离电压可以到2500V。这种方案的优点是可以承受高电压、持续时间较长的瞬态干扰,实现起来也比较容易,缺点是成本较高。

旁路保护方案:

这种方案利用瞬态抑制元件(如TVS、MOV、气体放电管等)将危害性的瞬态能量旁路到大地,优点是成本较低,缺点是保护能力有限,只能保护一定能量以内的瞬态干扰,持续时间不能很长,而且需要有一条良好的连接大地的通道,实现起来比较困难。

实际应用中可以将二者结合起来灵活运用。隔离接口对大幅度瞬态干扰进行隔离,而旁路元件保护隔离接口不被过高的瞬态电压击穿。

12

基于RS485单片机多机通信模型

第4章 软件设计

4.1 系统结构

该多机通信系统的系统结构图如图1所示,系统采用半双工主从通信方式,主机可以读取从机的数据或写数据到从机,并将数据送终端进行显示;从机主 要负责对分布的电子设备进行监测或控制,用中断的方式接收主机发来的命令并做出回应。

系统结构图

4.2 通信协议

4.2.1 信息格式

该协议的信息格式如下: (1)编码格式;二进制代码。 (2)波特率:9600 b/s。 (3)通信方式:半双工。 (4)每个字符由u 位组成; 1位:起始位(0); 8位:数据位;

1位:地址/数据识别位(1为地址,o为数据); l位:停止位(1)。

(5)字符发送顺序;低位在先

(6)帧结束标志:通信线路空闲3.5 ms以上

13

基于RS485单片机多机通信模型

(7)帧校验方式:数据和(2字节) (8)主机询问的一般格式见图2:

图2 主机询问的一般格式

l从机地址码I命令码l数据个数数据l校验和从机地址码;两字节二进制数,后一字节是前一字节的反码。

命令码:一字节二进制数,O1H代表主机读,02H代表主机写。 数据个数:表示主机要蒺写的字节个数,一字节二进制数。

校验和:两字节二进制数,是将从机地址码、命令和数据按字节从头依次相加,生成两字节的校验和。

(9)从机应答的一般格式(如图3)

图3 从机应答的一般格式

图中信息段的定义同图2。

4.2.2 定时与重发

本通信协议定时规定如下:

(1)帧发送时限;70 ms.超过此时限结束发送。

(2)主机等待从机应答时限:7 rlls,超过此时限,酌情重发。 (3)主机重发次数:不超过4次,超过后,判通信失败。

4.2.3 通信过程

一次完整的通信过程分为3个阶段:主机询问、从机应答和链路释放。主机询问阶段,主机以帧的形式将从机地址码、命令、数据和校验码传送到指定从机;从机应答阶段,从机解释接收的命令码,并组织相应帧信息回送到主机;链路释放阶段,从机清除接收缓冲区及相关变量,准备与主机下次通信。任何一次完整的通信过程都是由主机方发起的,从机在被主机寻址前只能处于侦听状态,从机在接收到地址码的第2个字节后,立即判断是否寻址自己,如果是.继续接受下面的数据,否则不与理睬。

4.3 通信软件设计

14

基于RS485单片机多机通信模型

4.3.1 从机通信软件设计

在该系统中,从机的主要任务是对被检测设备进行故障检测和故障定位,通信软件的主要功能是接收主机的命令并将检测的结果回送主机。从机通信软件由2部分组成:串行中断服务程序和定时器TO中断服务程序。串行中断服务程序用于接收或发送数据;TO中断服务程序用于当从机接收完一帧信息后进行解释并启动通信向主机应答,另外也用于当从机发送超时后的一些处理。从机上电后处于侦听状态,当主机寻址时,便进人中断服务程序,其程序流程图如图4所示。

图4 申行通信中断服务程序流程图

首先判断是接收中断还是发送中断,若是接收中断,则清除RI,同时启动字符间隔定时器TO,并置收发标志为收。当接收完第2个字节后,各从机立即判断

是否寻址本机,若是,则置SM2为‘0’,继续接收主机送来的数据;若不是,则禁止T0定时,不在接收后面的数据。当被寻址从机接收完一帧信息后,字符间

15

基于RS485单片机多机通信模型

隔定时器会产生定时中断,进入TO中断服务程序。

图5是TO中断服务程序流程图。

进入TO中断服务程序后,首先清除TO中断请求标志,停止TO定时器,接着判断是接收完成还是发送超时,若是接收完成,再判断校验和是否正确,若正 确,对接收的命令进行解释,看是主机读还是主机写操作,若是主机读,则将数据打包,送到专门用于通信的数组,接着,禁止接收,置本机为应答工作方式, 最后启动发送,发送第一个字节,同时启动发送时限定时器TO。当一个字节发送完后,便进入通信中断服务程序,继续发送余下数据。如果在上边判校验和时, 发现不正确,则置SM2为‘1’,恢复本机的侦听状态,以便接收主机的重发信息。

16

基于RS485单片机多机通信模型

图5 TO中断服务程序流程图

17

基于RS485单片机多机通信模型

4.3.2 主机通信软件设计

该系统主机的主要任务是循环读取从机的检测结果,并送终端显示,其通信软件由3部分组成:主程序中负责寻址从机的寻址模块、通信中断服务程序和TO 中断服务程序。寻址模块程序流程图见图6。

图6 寻址模块程序流程图

对从机寻址是按照从机的编号顺序进行的,即从1号从机开始,主机发送该从机信息帧的第1个字节启动寻址,同时启动发送超时定时器TO,然后检测通信结束标志.当主机成功的接收到该从机的应答信息后,便会置位该标志,完成与该从机的通信。接下来,寻址下一从机,直到所有从机都被寻址。最后,主机完 成其它功能后,又从1号从机开始下一循环的寻址。通信中断服务程序和TO中断服务程的设计方法与从机的大同小异,在此不再介绍。

18

基于RS485单片机多机通信模型

第5章 程序设计

掌握Keil软件在单片机仿真中的应用,为开发、调试单片机应用系统做准备。

Keil C51软件集成了文件编辑处理、编译连接、项目管理、窗口、工具引用和软件仿真调试等多种功能,是非常强大的C51开发工具,在Keil C51的仿真功能中,提供了两种仿真模式:软件模拟仿真和目标板调试。

主机程序清单如下:

#include #include #include

unsigned char cort=0;

sbit P3_5=P3^5;

/*********************************

按键扫描子程序

*********************************/

key_serial() interrupt 0 using 1 {

++cort; }

/*********************************

发送子程序

*********************************/

void master(void) {

if(cort==1) { SBUF=0x01;

19

基于RS485单片机多机通信模型

}

}

while(TI!=1);TI=0; P3_5=0; SM2=0;

while(RI!=1);RI=0; P2=SBUF; SM2=1; P3_5=1;

if(cort==2) { }

if(cort==3)cort=1; SM2=1;

SBUF=0x02;

while(TI!=1);TI=0; SM2=0; P3_5=0;

while(RI!=1);RI=0; P2=SBUF; SM2=1; P3_5=1;

/***************主程序****************/

void main(void) {

P2=0xff; TMOD=0x20; TL1=0xfd; TH1=0xfd; PCON=0x00; TR1=1; SCON=0xf8; EA=1; EX0=1; IT0=1; P3_5=1;

20

基于RS485单片机多机通信模型

while(1) {

master();

//发送

} }

从机1程序清单如下:

#include #include #include

unsigned char serial_receiver;

sbit P3_5=P3^5;

/****************************************

串行口中断子程序

****************************************/

void serial (void) interrupt 4 using 1 {

ES=0; RI=0;

if(SBUF==0x01) {

P3_5=1; SM2=0; P1=0x10; SBUF=0x10;

while(TI!=1);TI=0; }

SM2=1; ES=1; P3_5=0; }

/*****************主程序******************/

void main(void)

21

基于RS485单片机多机通信模型

{ }

P1=0x00; TMOD=0x20; TL1=0xfd; TH1=0xfd; PCON=0x00; TR1=1;

SCON=0xf0; EA=1; ES=1; P3_5=0; while(1) { _nop_(); }

从机2程序清单如下:

#include #include #include

unsigned char serial_receiver;

sbit P3_5=P3^5;

/****************************************

串行口中断子程序

****************************************/

void serial (void) interrupt 4 using 1 {

ES=0; RI=0;

if(SBUF==0x02) {

P3_5=1;

22

基于RS485单片机多机通信模型

SM2=0; P1=0x80; SBUF=0x80;

while(TI!=1);TI=0; }

SM2=1; ES=1; P3_5=0; }

/*****************主程序******************/

void main(void) {

P1=0x00; TMOD=0x20; TL1=0xfd; TH1=0xfd; PCON=0x00; TR1=1;

SCON=0xf0; EA=1; ES=1; P3_5=0; while(1) { _nop_();

} }

23

基于RS485单片机多机通信模型

第6章 系统仿真

掌握Proteus在单片机仿真中的应用,为开发、调试单片机应用系统做准备。 Proteus由ISIS和ARES两个软件构成,其中ISIS是电子系统仿真平台,ARES是布线编辑软件。在不需要硬件设备投入的情况下,Proteus可以建立完整的模拟电子、数字电子及单片机应用的学习设计开发环境。

系统仿真原理电路图如下:

24

基于RS485单片机多机通信模型

参考文献

1 马忠梅等 单片机的C语言应用程序设计 1998

2 何立民 AVR单片机原理与接口技术 2002

3 MAX485数据手册

25

北京航空航天大学出版社 北京航空航天大学出版社 基于RS485单片机多机通信模型

致 谢

历时三个月的毕业设计已经告一段落。经过自己不断的搜索努力以及刘志远老师的耐心指导和热情帮助,本设计已经基本完成。

通过这次毕业设计,使我深刻地认识到学好专业知识的重要性,也理解了理论联系实际的含义,并且检验了大学三年的学习成果。虽然在这次设计中对于知识的运用和衔接还不够熟练。但是我将在以后的工作和学习中继续努力、不断完善。这三个月的设计是对过去所学知识的系统提高和扩充的过程,为今后的发展打下了良好的基础。

由于自身水平有限,设计中一定存在很多不足之处,敬请各位老师批评指正。

26

本文来源:https://www.bwwdw.com/article/3xeg.html

Top