电子称可以测出低热量食物值的程序根据食物低热量食物值表 通过连接上位机达到目的 和ProTues仿真 谢谢

百度贴吧提示信息很抱歉,该吧被合并您所访问的贴子无法显示。系统将在秒后,自动跳转到严正声明:凡符合法律规定的投诉请求,百度将依法予以处理,且不收取任何费用。请采取正常投诉途径投诉,切勿相信不法分子收费删贴的欺诈行为。用protues做原理图,VC加载上位机程序,通过虚拟串口通信仿真。求高手指点怎么做。_百度知道
用protues做原理图,VC加载上位机程序,通过虚拟串口通信仿真。求高手指点怎么做。
上位机程序在IC CARD文件夹中,原理图在MCU文件夹中。下载地址是yunpan.cn/QeZVv9zj4yLqK (访问密码:dbe8)。求速度。高手请联系Q
我有更好的答案
你搜索“proteus&虚拟串口”,下载虚拟串口工具,创建虚拟串口,虚拟串口是成对创建的,把一个设置成你proteus里的串口,另一个用上位机去连接就可以调试了调试成功,貌似要先点击读卡,不然ID会显示乱码,还有就是充值点第二次的时候,lcd屏幕会被清屏。
采纳率:75%
为您推荐:
其他类似问题
虚拟串口的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。基于Proteus和Keil μVision 3 LED显示控制系统设计
> 基于Proteus和Keil μVision 3 LED显示控制系统设计
基于Proteus和Keil μVision 3 LED显示控制系统设计
摘要:为了实现和 &3软件联调环境下利用单片机AT89C51芯片采用串口通信模式及键盘输入同步中断控制方式,了一种。由仿真结果表明,在该模式开发环境下,有利于各个环节参数变量的调节设定,使得系统软件开发更加容易实现,大大提高了代码开发周期和进度,简化了开发流程。关键词:;;;AT89C51 是采用单片机AT89C51作为主控制器,采用LED行列阵及键盘同步中断请求显示的2种模式,实现串口通信并进行2种模式下的切换控制。系统成功地实现对I/O口通道控制以及键盘的中断请求等功能控制。系统仿真环境的搭建是与 & 3软件在联合开发平台中调试完成的。在调试的过程中,可以从多个方面直接观察程序运行情况和电路工作分析,简化了理论程序和实验等过程,大大减少了代码的开发周期,降低了硬件成本。1 Keil & 3与protues简介 Keil &Vision 3是美国Keil Software公司出品的C51系列兼容单片机C语言软件开发系统,其生成目标代码的效率非常高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。 Proteus是英国Labcenter electonics公司研发的电子设计自动化(EDA)系统,主要由ISIS电路设计与仿真平台、Peospite模/数混合仿真器、VSM单片机/嵌入式系统协同仿真和ARES PCB设计构成。在编译调试方面,支持Keil &Vision 3和MPLAB等第三方开发工具。2 系统设计2.1 系统开发框架 LED显示设计由系统原理设计、系统代码开发、硬件电路模拟仿真、软硬件联合调试、实物移植等组成。其中,代码开发仿真模拟通过Proteus软件与Keil &Vision 3软件之间相互联合仿真进行设计。系统开发设计框架如图1所示。本文引用地址:2.2 硬件结构设计 系统硬件由单片机AT89C51系统和行列阵LED显示模块、上位机、串行显示键盘模块、晶振电路和存储器模块等构成。系统硬件结构如图2所示。
分享给小伙伴们:
我来说两句……
微信公众号二
微信公众号一当前位置: >>
基于Modbus的数据采集终端设计
集美大学诚毅学院毕业设计 基于 Modbus 的数据采集终端设计基于 Modbus 的数据采集终端设计集美大学诚毅学院信息工程系摘要 本论文论述了基于 Modbus 的数据采集终端的软硬件设计。系统包括微控制器、AD模块、显示模块和通信模块。以 AT89S52 为主控芯片,PCF8591 实现 AD 转换,LED 数码管实现数 据的显示。实现数据采集、显示的功能,并作为从站通过 Modbus 实现与上位 PC 机的通信。完成了 硬件设计与软件开发,并进行了系统调试。关键词 Modbus 协议 AT89S52 数据采集 串口通信I 集美大学诚毅学院毕业设计 基于 Modbus 的数据采集终端设计Design of Data Acquisition Terminal Based on ModbusXiaoWeiFeng
, Automation Major , 2010 , Dept. of Information Engineering , Chengyi College of Jimei University Abstract: This paper introduces the hardware and software design of thedataacquisition terminal based on Modbus. The system includes a micro controller, AD module, display module and communicationmodule. Using AT89S52 as the main control chip, PCF8591 realize AD conversion, LED digital tube display data. Realization of data acquisition, display function, and as from the station tocommunicate with the upper PC machine by Modbus. Completed the hardware design and software development, and debug the system. Key words: Modbus P AT89S52; Data C Serial CommunicationsII 集美大学诚毅学院毕业设计 基于 Modbus 的数据采集终端设计目录引言 .................................................................................................................................................. 1 第一章 绪论..................................................................................................................................... 3 1.1 论文的背景及意义 ........................................................................................................... 3 1.2 论文的主要内容该 ........................................................................................................... 4 第二章 数据采集系统简介 ........................................................................................................... 6 2.1 数据采集系统................................................................................................................... 6 2.2 系统通迅方式.................................................................................................................... 6 第三章 硬件设计............................................................................................................................. 8 3.1 总体设计........................................................................................................................... 8 3.2 单片机及其最小系统 ........................................................................................................ 8 3.3 AD 模块............................................................................................................................ 11 3.4 串口模块.......................................................................................................................... 13 3.5 显示模块.......................................................................................................................... 13 第四章 软件设计........................................................................................................................... 16 4.1 KeilUvision4 简介 ........................................................................................................ 16 4.2 总体设计......................................................................................................................... 16 4.3 AD 模块............................................................................................................................ 16 4.4 显示模块.......................................................................................................................... 18 4.5 Modbus 协议的实现 ........................................................................................................ 19 第五章 系统调试........................................................................................................................... 22 5.1 protues 仿真调试 .......................................................................................................... 22 5.2 实物调试.......................................................................................................................... 22 总结 ................................................................................................................................................ 24 致谢 ................................................................................................................................................ 24 参考文献......................................................................................................................................... 25 附录 ................................................................................................................................................ 26III 引言引言数据采集是指将温度、电压、流量、位移等模拟量采集、转换成数字量后, 再由计算机进行存储、处理、显示或打印的过程。在生产过程中,可对生产现场 的工艺参数进行采集、监视和记录,为提高产品的质量、降低成本提供信息和手 段。在科学研究中,可对应用数据进行采集,从而获得大量的动态信息,是研究 瞬间物理过程的有力工具, 也是获取科学奥秘的重要手段之一。数据采集系统的 任务, 就是采集传感器输出的模拟信号并转换成计算机能识别的数字信号,送入 计算机,将计算得到的数据进行显示或打印,以便实现对某些物理量的监视,其 中一部分数据还将被生产过程中的计算机控制系统用来控制某些物理量。 数据采 集系统性能的好坏,主要取决于它的精度和速度,在保证精度的条件下,应尽可 能的提高采样速度,以满足实时采集、实时处理和实时控制的要求。 随着现代电子技术的飞速发展,数据采集技术也日新月异,特别是小型化、 便携式解决方案在数据采集中开始占据越来越大的比重, 并越来越多地倾向于低 电压、 低功耗、 微型化设计, 有的小型数据采集器甚至小到可以放进衬衫口袋里。 目前, 一些市场上出售的小型数据采集器实际上就是全功能的计算机。它们功能 强大,具有现场实时数据采集、处理功能的自动化设备,具备实时采集、自动存 储、即时显示、即时反馈、自动处理、自动传输功能;为现场数据的真实性、有 效性、实时性、可用性提供了保证,并能方便输入计算机,已广泛应用在工业、 农业、商业、交通、物流、仓储等行业。因此,根据当前数据采集发展的实际情 况, 研制开发符合生产需要的数据采集器具有一定的现实意义。当采集的数据发 送给上位机时, 需要有相应的协议进行控制,而目前工业中经常采用的一种协议 为 Modbus 协议。 Modbus 协议是应用于电子控制器上的一种通用语言。 通过此协议,控制器相 互之间可以通信,它已经成为一种通用工业标准。 有了它,不同厂商生产的控制设 备可以连成工业网络,进行集中监控。 根据Modbus在工业中的应用我们可以通过Modbus协议使单片机与PC 机进行1 引言串行传输,从而很容易地从采集系统中观测到实时数据,并在PC机上显示出来。 本文主要介绍是基于Modbus协议下的数据采集器设计, 能实现信号的采集与 显示,并能够支持Modbus协议实现与上位机的通信。2 第一章 绪论第一章 绪论1.1 论文的背景及意义近年来, 数据采集及其应用受到了人们越来越广泛的关注,数据采集系统也 有了迅速的发展,它可以广泛的应用于各种领域。 数据采集系统起始于 20 世纪 50 年代,1956 年美国首先研究了用在军事上 的测试系统,目标是测试中不依靠相关的测试文件,由非成熟人员进行操作,并 且测试任务是由测试设备高速自动控制完成的。 由于该种数据采集测试系统具有 高速性和一定的灵活性,可以满足众多传统方法不能完成的数据采集和测试任 务,因而得到了初步的认可。大概在 60 年代后期,国内外就有成套的数据采集 设备和系统多属于专用的系统。 20 世纪 70 年代后期,随着微型机的发展,诞生了采集器、仪表同计算机 溶为一体的数据采集系统。 由于这种数据采集系统的性能优良,超过了传统的自 动检测仪表和专用数据采集系统,因而获得了惊人的发展。从 70 年代起,数据 采集系统发展过程中逐渐分为两类,一类是实验室数据采集系统,一类是工业现 场数据采集系统。 20 世纪 80 年代随着计算机的普及应用,数据采集系统得到了很大的发展, 开始出现了通用的数据采集与自动测试系统。该阶段的数据采集系统主要有两 类,一类以仪表仪器和采集器、通用接口总线和计算机组成。这类系统主要应用 于实验室,在工业生产现场也有一定的应用。第二类以数据采集卡、标准总线和 计算机构成,这一类在工业现场应用较多。20 世纪 80 年代后期,数据采集发生 了很大的变化,工业计算机、单片机和大规模集成电路的组合,用软件管理,是 系统的成本减低,体积变小,功能成倍增加,数据处理能力大大加强。 20 世纪 90 年代至今,在国际上技术先进的国家,数据采集系统已成功的运 用到军事、航空电子设备及宇航技术、工业等领域。由于集成电路制造技术的不 断提高,出现了高性能、高可靠的单片机数据采集系统(DAS) 。数据采集技术已3 第一章 绪论经成为一种专门的技术, 在工业领域得到了广泛的应用。该阶段的数据采集系统 采用模块式结构,根据不同的应用要求,通过简单的增加和更改模块,并结合系 统编程,就可扩展或修改系统,迅速组成一个新的系统。 尽管现在以微机为核心的可编程数据采集与处理采集技术的发展方向得到 了迅速的发展, 而且组成一个数据采集系统只需要一块数据采集卡,把它插在微 机的扩展槽内并辅以应用软件, 就能实现数据采集功能,但这并不会对基于单片 机为核心的数据采集系统产生影响。相较于数据采集板卡成本和功能的限制,单 片机具多功能、高效率、高性能、低电压、低功耗、低价格等优点,而双单片机 又具有精度较高、转换速度快、能够对多点同时进行采集,因此能够开发出能满 足实际应用要求的、电路结构简单的、可靠性高的数据采集系统。这就使得以单 片机为核心的数据采集系统在许多领域得到了广泛的应用。1.2 论文的主要内容该数据采集技术是信息科学的重要分支之一, 它研究信息数据的采集、存储、 处理以及控制等问题。 它是对传感器信号的测量与处理, 以微型计算机等高技术 为基础而形成的一门综合应用技术。 数据采集也是从一个或多个信号获取对象信 息的过程。随着微型计算机技术的飞速发展和普及,数据采集监测已成为日益重 要的检测技术,广泛应用于工农业等需要同时监控温度、湿度和压力等场合。数 据采集是工业控制等系统中的重要环节,通常采用一些功能相对独立的单片机系 统来实现,作为测控系统不可缺少的部分 ,数据采集的性能特点直接影响到整个 系统。 传统的基于单片机的数据采集系统由于没有上位机的支持,不管采用什么样 的数据存储器,它的存储容量都是有限的 ,所以不得不对存储的历史数据进行覆 盖刷新,这样不利于用户对数据进行整体分析,因而也不能对生产过程的状况进 行准确的把握。 本系统包括上下位机两个部分,下位机负责模拟数据的采集,从单片机负责 采集电压信号, 并应答主机发送的命令,上位机即主机是负责处理接受过来的数 字量的处理及显示, 主机和从机之间以Modbus协议进行通信。这样用户可以在上 位机上编写各种程序对文件中的数据进行有效查询和分析,有利于工业过程的长4 第一章 绪论期正常运行和检查。本文主要完成下位机即数据采集终端的设计开发,包括AD 转换模块、显示模块和通信模块。实现数据采集功能,并支持Modbus协议,作为 从设备与主设备通信。5 第二章 数据采集系统简介第二章数据采集系统简介2.1 数据采集系统数据采集,又称数据获取,是利用一种装置,从系统外部采集数据并输入到 系统内部的一个接口。数据采集技术广泛引用在各个领域。 数据采集系统包括上下位机,其中,上位机完成终端管理、通信请求、数据处理、人 机界面等功能。下位机接收上位机的命令请求,进行数据采集并响应。一般可采用 PC 机 来充当上位机。采集终端作为下位机负责信号的采集转换、LED 显示、通过串行 口与上位机通讯。数据采集系统结构图如图 2-1 所示;上位机采集终端采集终端采集终端图 2-1 数据采集系统结构图2.2 系统通迅方式数据采集系统上下位机之间的通信有多种方式可供选择, 现在常采用的现场 总线技术,比如说 CAN、profibus、Modbus 等。 CAN 的特点;能完成对通信数据的成帧处理,使网络内的节点个数在理论上 不受限,可在各节点之间实现自由通,结构简单且传输距离长和速率快。CAN 总线支持多主控制,支持非破坏性的总线仲裁。 CAN 的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医 疗设备、工业设备等方面。现场总线是当今自动化领域技术发展的热点之一,被 誉为自动化领域的计算机局域网。 它的出现为分布式控制系统实现各节点之间实 时、可靠的数据通信提供了强有力的技术支持。6 第二章 数据采集系统简介Modbus 是一种简单的串行链路通信协议,在工业现场有着广泛的应用。常 用的 Modbus 通讯规约有两种,一种是 Modbus ASCII,一种是 Modbus RTU。一般 来说,通讯数据量少而且主要是文本的通讯则采用 Modbus ASCII 规约,通讯数 据量大而且是二进制数值时,采用 Modbus RTU 规约。 标准的 Modbus 口是使用 RS-232-C 兼容串行接口,它定义了连接口的针脚、 电缆、信号位、传输波特率、奇偶校验。控制器能直接或经由 Modem 组网。 控制器通信使用主―从技术,即仅一设备(主设备)能初始化传输(查询) 。其 它设备(从设备)根据主设备查询提供的数据作出相应反应。典型的主设备:主 机和可编程仪表。典型的从设备:可编程控制器。 主设备可单独和从设备通信, 也能以广播方式和所有从设备通信。 如果单独通信, 从设备返回一消息作为回应, 如果是以广播方式查询的, 则不作任何回应。 Modbus 协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的 数据、一错误检测域。 从设备回应消息也由 Modbus 协议构成,包括确认要行动的域、任何要返回 的数据、和一错误检测域。如果在消息接收过程中发生一错误,或从设备不能执 行其命令,从设备将建立一错误消息并把它作为回应发送出去。 Modbus 具有如下特点; (1)标准、开放,用户可以免费、放心地使用 Modbus 协议,不需要交纳许可证费,也不会侵犯知识产权。目前,支持 Modbus 的厂家 超过 400 家,支持 Modbus 的产品超过 600 种。 (2)Modbus 可以支持多种电气接 口,如 RS-232、RS-485 等,还可以在各种质上传送,如双绞线、光纤、无线等。 (3)Modbus 的帧格式简单、紧凑,通俗易懂。用户使用容易,厂商开发简单。7 第二章 数据采集系统简介第三章 硬件设计 3.1 总体设计设计一个数据采集终端。该设备包括 AD 转换模块、显示模块和通信模块, 实现数据采集功能,并支持 Modbus 协议,作为从设备与主设备通信。 其中 AD 转换模块是用来将采集的模拟信号量转换成模拟数字量, 通过 LED 数码管显示采 集到的信号值,再利用 Modbus 协议来进行主从设备的通信。系统结构如图 3-1 所示;上 位 机Modbus单 片 机LED 数码管AD 转换模拟量输入图 3-1 系统结构图3.2 单片机及其最小系统一、单片机的概述 单片机是一种集成的电路芯块采用了超大规模技术把具有运算能力 (如算术 运算、逻辑运算、数据传送、中断处理)的微处理器(CPU),随机存取数据存储 器(RAM) ,只读程序存储器(ROM) ,输入输出电路(I/O 口) ,可能还包括定时 计数器,串行通信口(SCI) ,显示驱动电路(LCD 或 LED 驱动电路) ,脉宽调制 电路(PWM),模拟多路转换及 A/D 转换器等电路集成到一块单片机上,构成一个 最小然而很完善的计算机系统。 这些电路能在软件的控制下准确快速的完成程序 设计者事先规定的任务。 总的而言单片机的特点可以归纳为以下几个方面:集成 度高、存储容量大、外部扩展能力强、控制功能强、低电压、低功耗、性能价格 比高、可靠性高这几个方面。8 第二章 数据采集系统简介二、AT89C52 简介 AT89C52 是一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可编程 Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常 规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使AT89C52 单片机适合于许多较为复杂控制应用场合 AT89C52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线, 看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结 构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑 操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定 时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器 被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。其引脚图,如 图3-2所示图3-2 AT89C52的引脚图它一共有40个引脚,引脚又分为四类。其中有四个电源引脚,用来接入单片 机的工作电源。工作电源又分主电源、备用电源和编程电源。还有两个时钟引脚 XTAL1、XTAL2。还有由P0口、P1口、P2口、P3口的所有引脚构成的单片机的输入 /输出(I\O)引脚。最后一种是控制引脚,控制引脚有四条,部分引脚具有复位9 第二章 数据采集系统简介功能。 综上所述,单片机的引脚特点是: 1、 2、 单片机多功能,少引脚,使得引脚复用现象较多。 单片机具有四种总线形式:P0和P2组成的16位地址地址总线;P0分时复用为8位数据总线;ALE、PSEN、RST、EA和P3口的INT0、INT1、T0、T1、WR、 RD以及P1口的T2、T2EX组成控制总线;而P3口的RXD、TXD组成串行通信总线。 AT89C52单片机的主要功能 ? ? ? ? ? ? ? ? ? ? ? ? ? 三、单片机最小系统 单片机最小系, 或者称为最小应用系,是指用最少的元件组成的单片机可以 工作的系统. 对 51 系列单片机来说,最小系统一般应该包括:单片机、 晶振电路、 复位电路、按键输入、显示输出等。单片机接口电路主要用来连接计算机和其它 外部设。各功能模块的原理及功能如下: 单片机:AT89S52 单片机。 晶振电路:典型的晶振取 11.0592MHz(因为可以准确地得到 9600 波特率,用 于有串口通讯的场合)。 复位电路:由电容串联电阻构成,可以知道,当系统一上电,RST 脚将会出现 UART串行通道 32个可编程I/O口线 16位定时器/计数器 MCS-51单片机产品兼容 8K字节在系统可编程Flash存储器 1000次擦写周期 0Hz~33Hz10 第二章 数据采集系统简介高电平,并且,这个高电平持续的时间由电路的 RC 值来决定.典型的 51 单片机当 RST 脚的高电平持续两个机器周期以上就将复位,所以,适当组合 R 为 4.7k,C 为 10uF 的取值就可以保证可靠的复位。(如图 2-3 单片机最小系统原理图)图 3-3 单片机最小系统原理图3.3 AD 模块A/D 转换器的种类很多,就位数来说,可以分为 8 位、10 位、12 位和 16 位 等。位数越高其分辨率就越高,价格也就越贵。A/D 转换器型号很多,而其转换 时间和转换误差也各不相同。按工作原理可分以下几种。 (1)逐渐逼近式 A/D 转换器:它是一种速度快、精度较高、成本较低的直接 式转换器,其转换时间在几微秒到几百微秒之间。 (2)双积分 A/D 转换器:它是一种间接式的 A/D 转换器,优点是抗干扰能力 强,精度比较高,缺点是数度很慢,适用于对转换数度要求不高的系统。 (3)并行式 A/D 转换器:它又被称为 flash(快速)型,它的转换数度很高, 但她采用了很多个比较器,而 n 位的转换就需要 2n-1 个比较器,因此电路规模 也极大,价格也很贵,只适用于视频 A/D 转换器等数度特别高的领域。 鉴于上面三种方案,在价格、转换速度等多种标准考量下,在本设计选用的11 第二章 数据采集系统简介是逐渐逼近式 ADDA 转换器 PCF8591 一、PCF8591 的介绍 PCF8591 是具有 I2C 总线接口的 8 位 A/D 及 D/A 转换器。有 4 路 A/D 转换输入, 1 路 D/A 模拟输出。 这就是说, 它既可以作 A/D 转换也可以作 D/A 转换。A/D 转换为逐次比较型。引脚图如图 3-4 所示。电源电压典型值为 5V AIN0~AIN3:模拟信号输入端。 A0~A3:引脚地址端。 DD、VSS:电源端。 (2.5~6V) SDA、SCL:I2C 总线的数据线、 时钟线。 OSC:外部时钟输入端,内部时钟输出端。 EXT:内部、外部时钟选择线,使用内部时钟时 EXT 接地。 AGND:模拟信号地。 AOUT:D/A 转换输出端。图 3-4 PCF8591 引脚 二、PCF8591 与单片机的接线图 PCF8591 与单片机的连接如图 3-5 所示。它的 A0.A1.A2 是引脚地址端,用 来指定该芯片在 I2C 总线中的地址。将其接地就是把本片 PCF8591 的地址置 0.VREF 为基准电源端,在本系统中接+5V 的电源。AIN3、AIN2 接两个电位器, 传感器采集到的电压信号,此处用两个电位器模拟。SCL 为 I2C 时钟信号,接单12 第二章 数据采集系统简介片机的 P2.1,SDA 为 I2C 的数据信号,接 P2.0。图 3-5 PCF8591 与单片机的接线图3.4 串口模块本采集终端通过串口与上位 PC 机进行通信。此处采用 CH340T 实现 TTL 转 USB 接口。 该芯片使用方便, 可以通过在 PC 机上安装 CH340T 的驱动即可。 CH340T 具有的优点如下: ● 全速 USB 设备接口,兼容 USB V2.0,外围元器件只需要晶体和电容。 ● 仿真标准串口,用于升级原串口外围设备,或者通过 USB 增加额外串口。 ● 计算机端 Windows 操作系统下的串口应用程序完全兼容,无需修改。 ● 硬件全双工串口,内置收发缓冲区,支持通讯波特率 50bps~2Mbps。 ● 支持常用的 MODEM 联络信号 RTS、DTR、DCD、RI、DSR、CTS。 ● 通过外加电平转换器件,提供 RS232、RS485、RS422 等接口。 ● 支持 IrDA 规范 SIR 红外线通讯,支持波特率 2400bps 到 115200bps。 ● 软件兼容 CH341,可以直接使用 CH341 的驱动程序。 ● 支持 5V 电源电压和 3.3V 电源电压。 ● 提供 SSOP-20 和 SOP-16 无铅封装,兼容 RoHS。3.5 显示模块LED 数码显示管是一种由 LED 发光二极管组合显示字符的显示器件。它使用 了 8 个 LED 显示管,其中 7 个用于显示字符,1 个用来显示小数点,故通常称之 为八段发光二极管数码显示器。 对 LED 数码显示器的控制可以采用按时间向它提13 第二章 数据采集系统简介供具有一定驱动能力的位选和段选信号。 其内部结构如图3-6 所示,LED数码显示器有两种连接方式如下,本系统采 用了共阴极接法。 (1)共阴极接法:把发光二极管的阴极连在一起构成公共阴极,使用时公 共阴极接地。每个发光二极管的阳极与输入端相连。如图3-7 所示 (2)共阳极接法。把发光二极管的阳极连在一起构成公共阳极,使用时公 共阳极接+5V,每个发光二极管的阴极通过电阻与输入端相连。如图3-8 所示图3-6 LED内部结构图3-7 共阴极接法图3-8 共阳极接法为了显示字符,要为LED显示器提供显示段码(或称字形代码),组成一个 “8” 字的七段, 再加上1个小数点位, 共计八段。 各段位码位的对应关系如表3.9 所示。 表3.9 段位 码 位码 段 LED 数码管有静态显示方式和动态显示方式两种。静态显示就是当数码管显 示某个字符时,相应的段恒定的导通或截止,直到显示另一个字符为止。LED 数 码管工作于静态显示方式时,各位的共阴极接地;若为共阳极则接+5V 电源。这 种显示方式编程容易,管理也较简单,但占用 I/O 口线资源较多。因此,在显示14段位码对应关系 D4 D3 D2 D1 D0D7D6D5dpgfedcba 第二章 数据采集系统简介位数较多的情况下,一般都采用动态显示方式。 本系统采用动态显示方式。单片机的 P0 口即作为位码选择某个数码管的显示, 同时也作为段码。 因此需要锁存器件。 将位码和段码分别锁存。 这里采用 74HC573 锁存器。 显示模块的原理图如图 3-9 所示。其中,74573 的~OE 引脚接地,LE 分别 接 P2.6 和 P2.7。当 LE 为高电平时将 P0 口信号送到输出端,分别实现段码和位 码。图3-9 显示模块原理图15 第四章 软件设计第四章 软件设计 4.1 KeilUvision4 简介Keil 提供了包括 C 编译器、宏汇编、连接器、库管理和一个功能强大的仿 真调试器等在内的完整开发方案,通过一个集成开发环境(UVISION)将这些组 合在一起。 Keil 有以下几个特点: 1、 2、 3、 4、 5、 6、 7、 全功能的源代码编辑器; 器件库用来配置开发工具设置; 项目管理器用来创建和维护用户的项目; 集成的 MAKE 工具可以汇编、编译和连接用户嵌入式应用; 所有开发工具的设置都是对话框形式的; 真正的源代码级的对 CPU 和外围器件的调试器; 高 级 GDI(AGDI) 接 口 用 来 在 目 标 硬 件 上 进 行 软 件 调 试 以 及 和Monitor-51 进行通信4.2 总体设计本论文软件设计部分编程环境选用 Keil C51,选用 C 语言编程。我们知道 单片机的编程语言一般采用:汇编语言、C 语言。但是汇编语言程序是针对机器 而设计的的低级语言。它能使机器直接通过编译就能执行,具有执行快速,执行 效率高的优点,但是它也有可读性较差,编程效率低等缺点,并且需要编程人员 对处理器的指令和单片机的结构非常熟悉。而 C 语言是一种高级语言,虽然它没 有汇编语言那种高效率, 但 C 语言具有丰富的库函数和类的封装,具有程序编写 简单,可读性强,维护性好的特点。4.3 AD 模块一、 PCF8591 功能描述 1. 地址 I2C 总线系统中的每一片 PCF8591 通过发送有效地址到该器件来激活。该地 址包括固定部分和可编程部分。 可编程部分必须根据地址引脚 A0、A1 和 A2 来设 置。 在 I2C 总线协议中地址必须是起始条件后作为第一个字节发送。地址字节的16 第四章 软件设计最后一位是用于设置以后数据传输方向的读/写位。 (见图 4-1)图 4-1 地址 2.控制字 发送到 PCF8591 的第二个字节将被存储在控制寄存器,用于控制器件功 能。 控制寄存器的高半字节用于允许模拟输出,和将模拟输入编程为单端或差 分输入。低半字节选择一个由高半字节定义的模拟输入通道。如果自动增量 (auto-increment)标志置 1,每次 A/D 转换后通道号将自动增加。 如果自动 增量(auto-increment)模式是使用内部振荡器的应用中所需要的,那么控制字 中模拟输出允许标志应置 1。这要求内部振荡器持续运行,因此要防止振荡器启 动延时的转换错误结果。模拟输出允许标志可以在其他时候复位以减少静态功 耗。 选择一个不存在的输入通道将导致分配最高可用的通道号。所以,如果自 动增量(auto-increment)被置 1,下一个被选择的通道将总是通道 0。两个半 字节的最高有效位(即 bit 7 和 bit 3)是留给未来的功能,必须设置为逻辑 0。 控制寄存器的所有位在上电复位后被复位为逻辑 0。D/A 转换器和振荡器在节能 时被禁止。模拟输出被切换到高阻态。17 第四章 软件设计3. PCF8591 数模转换流程图如下图 4-2 所示发送自动信号开始发送启动信号发送地址控制字发送地址选择字 应答信号 是否正确 否 应 答 信 号 是 否 正 确 是 读取转换数据 是 发送非应答信号 发送转换控 制字 发送结束信号 否 应答信号 是否正确 是 返回主程序否图 4-2 AD 转换流程图4.4 显示模块8 段码 LED 显示电路,用动态方式显示,显示 3 位,由 AT89C52 的 P2.6 和 P2.7 经 74HC573 控制。程序框图如下图 4-318 第四章 软件设计开始第一位数码管显示第二位数码管显示第三位数码管显示第一位数码管段选第二位数码管段选第三位数码管段选延时延时延时返回图 4-3 LED 显示框图4.5 Modbus 协议的实现ModBus 网络是一个工业通信系统,由带智能终端的可编程序控制器和计算 机通过公用线路或局部专用线路连接而成。 其系统结构既包括硬件、 亦包括软件。 它可应用于各种数据采集和过程监控。 Modbus 支持几十种功能码。本系统是对其的部分实现。支持其中的 04(读取输入寄存器值)这个功能码。19 第四章 软件设计图 4-4 Modbus 功能码的 RTU 帧格式 Modbus 协议软件实现,主要是对接收缓冲区的数据进行校验,分析,响应, 若需响应上位机,再将响应结果数据打包,送至发送缓冲区,经由串口通讯发送 给上位机,其软件流程图如图 4-5。20 第四章 软件设计检查 UART0 数 据 地址码正确? 是 CRC 正确? 是 对应功能码,做出响应 否是否需要发送数 据给上位机是打包数据 通过串口通讯发送数据否结束图 4-5 Modbus 功能实现流程图21 第五章 系统调试第五章 系统调试 5.1 protues 仿真调试程序在 KEIL 中编译通过,并生成 hex 文件,打开 PROTEUS 中的仿真电路, 双击单片机选中 “Program File” 导入所需的 hex 文件, 点击运行即可看到结果, 当改变电位器时,显示结果也会跟着改变。如图 5-1 所示图 5-1 protues 仿真调试5.2 实物调试开发板通过 USB 转 TTL 信号接口接连电脑, 打开并运行 STC-ISP.exe 烧写软 件, 在 MCU Type 中选中单片机, 导入编译通过生成 hex 文件, 然后点击 Download, 最后等待提示并打开电源,完成程序烧写过程。如图 5-2 所示22 第五章 系统调试图 5-2 实物调试图 5-3 所示 PC 机与开发板相连,PC 机运行 Modbus 主节点程序 commix,设置串口通信参数,波特率 9600,数据位 8,停止位 1,校验 0。设置 Modbus 通信参数,从节点地 址为 01,功能码 04,起始地址 00,数目 01。收到的回复是 01 04 04 00 00 00 0D 3A 41图 5-3 commix 接收与回复23 总结、致谢总结本次设计以 Modbus 协议为背景,主要进行了数据采集器的系统设计和相应 的软件设计。在数据采集器的设计过程中,运用 Keil C51 语言和 PROTEUS 实现 了基于 Modbus 的单片机数据采集的设计与仿真,并在开发板上进行实现,最后, 采用 Modbus 协议下的 RTU 模式设计了单片机与 PC 机的串行通信软件, 经过调试 实现与上位机的通信。具体完成了以下工作: 1、研究了 Modbus 协议的特点,针对数据采集系统与 PC 机通信要求进行了 软件设计。 2、基于 AT89C52 与 PCF8591 设计了一个电压采集系统,改变电位器,能够 测量 0-5V 之间的电压值, 并且能够在 3 位的 LED 数码上显示出来,最后再通过 串口与 PC 机连接。 3、以 Keil C51 和 Modscan32 软件平台,进行软件编写与调试,总体实现数 据采集、显示与串口通信。 通过采集电路的测试表明,该系统具有通用性好,测量实时准确,能准确的 采集数据显示等待上位机的查询信息。通过在串口通信的调试运行,达到了预期 的效果, 能在控制中进行实时的数据采集,并实时的传送给主机进行数据分析与 保存,具有一定的实用价值。不足之处是调试过程中有时还会有故障发生,此数 据采集器的结构相对简单,如果有需要还可以增加对温度,光电,压力等信号的 采集。致谢首先向所有支持和关心我的人们致以最诚挚的感谢! 在这里我衷心感谢我的指导老师肖龙海老师,在他的精心指导和耐心帮助 下,才使本设计任务得以顺利完成。在毕业设计期间,他给于我的无私帮助,提 供了良好的设计条件,我将非常感激! 最后, 向百忙中抽出时间来参加我的论文答辩的各位老师表示衷心的感谢。24 参考文献参考文献[1] 严洁.单片机原理及其接口技术[M].机械工业出版社, [2] 范红刚.51 单片机自学笔记[R].北京航空航天大学出版社,2009 [3] 高云.基于 MSP430 的温室多路数据采集系统[D].农机化研究,2009,No.8 [4] 常铁原,王欣,陈文军. 多路数据采集系统的设计[D].电子技术应用,2008,No.11 [5] 叶红海,李丽敏.基于单片机的多路数据采集系统的设计与实现[J].2008,No.4 [6] 彭伟.单片机 C 语言程序设计实训 100 例[J].电子工业出版社, 2009, 46-48, 104-110 [7] 杨居义, 杨晓琴, 王益斌等.单片机课程设计指导[M].清华大学出版社, 2009, 135-141 [8] 刘刚, 秦永左, 朱杰斌.单片机原理及应用[M].北京大学出版社, 2006, 76-98, 134-155 [9] 林祝亮,武林,杨金华.基于双单片机的多路数据采集系统设计[D].仪器仪表学报, 2006,No.6 [10] 元增民,张文希.单片机原理与应用基础[M].国防科技大学出版社,6 [11] 王琳,商周,王学伟.数据采集的发展及应用[M].电测与仪表,2004,No.464 [12] V. Schmidt, Control, data acquisition, and remote participation for fusion research, Fusion Eng[M]. Des. 81 (C1712. [13] A.Neto,H.Fernandes,A.Duarte, Firesignal-Data acquisition and control system software[J].FusionEngineering and Design 82(64.25 附录附录#include&reg52.h& #include&stdio.h& #include&intrins.h&#define uchar unsigned char #define uint unsigned int#define Write_PCF #define Read_PCF8591 #define Control_Byte 0x91 0x40#define DELAY_VALUE2 //数码管延时参数uint ad_value1,ad_value2;sbit SDA = P2^0; sbit SCL = P2^1;//ADsbit LED = P1^0;sbit dula=P2^6; sbit wela=P2^7;//段选信号的锁存器控制 //位选信号的锁存器控制uchar rec[8],rec_cnt =0;//存储接收到 数据 uchar time_//定时器 0 中断次数 bit rec_over,crc_// 接收完成uint local_addr= 0x0001;//本地地址 uchar send[60];26 附录uchar code wei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//位选 uchar code duan[]={ 0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f };//0-9 的码表/ *延时相关*/ void delay_ms(uint delay_ms_time) { for (n=0;n&delay_ms_n++) for(m=0;m&110;m++); } void delay() { _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_();} / * IIC 相关*/27 附录void init_IIC() { SDA=1; delay(); SCL=1; delay(); }void start() { SDA=1; delay(); SCL=1; delay(); SDA=0; delay(); }void stop() { SDA=0; delay(); SCL=1; delay(); SDA=1; delay(); }void ack()28 附录{ uchar i=0; SCL=1; delay(); while((SDA==1)&&(i&250)) i++; SCL=0; delay(); }void noack() { SDA=1; delay(); SCL=1; delay(); SCL=0; delay(); }void Write_Byte(uchar dat) { for(i=0;i&8;i++) { SCL=0; delay(); if(dat&0x80) { SDA=1;29 附录} else { SDA=0; } dat=dat&&1; SCL=1; delay(); } SCL=0; delay(); SDA=1; delay(); }uchar Read_Byte() { uchar i, SCL=0; delay(); SDA=1; delay(); for(i=0;i&8;i++) { SCL=1; delay(); dat=dat&&1; if(SDA) {30 附录dat++; } SCL=0; delay(); } }uchar ADC_Read(uchar add0,uchar add1,uchar chl) { start(); Write_Byte(add0); ack(); Write_Byte(Control_Byte|chl); ack();start(); Write_Byte(add1); ack();// //Read_Byte(); ack();dat=Read_Byte(); noack(); stop(); }31 附录/*相关外设初始化*/void init_sci() { SBUF = 0x0; //SCON=0x50; TMOD = TMOD|0x20; PCON =0; TH1=0xFD; TL1=0xFD;SM0=0; SM1=1; RI = 0; TI =0; REN=1; TR1=1; ES =1; EA =1; }//选择串口工作方式为方式 1void init_timer0() { //定时器 0 初始化 TMOD = TMOD|0x01; TH0 TL0 =0xFC; =0x6C; //晶振 m=11.usET0 = 1; TR0 = 0;//定时器 2 初始化 C_T2 = 0;32 附录TH2 TL2=0xFC; =0x6C;//晶振 m=11.05926992usET2 = 1; TR2 = 1;EA = 1; }void Send_Byte(uchar one_byte) { ES =0; SBUF = one_ while (TI == 0); TI = 0; ES =1; }/*数据校验、处理*/uint CRC16(uchar *Pushdata,uchar length) { uint Reg_CRC=0 uchar Temp_reg=0x00; uchar i,j; for( i = 0; i& i ++) { Reg_CRC^= *Pushdata++; for (j = 0; j&8; j++) { if (Reg_CRC & 0x0001)33 附录Reg_CRC=Reg_CRC&&1^0xA001; else Reg_CRC &&=1; } } Temp_reg=Reg_CRC&&8; return (Reg_CRC&&8|Temp_reg); } void start_crc() { uint re_tmp1,re_tmp2; if((rec[0]==local_addr)||(rec[0]==0x00)) { re_tmp1 = CRC16(rec,6); re_tmp2 = rec[6]; re_tmp2 &&=8; re_tmp2 |=rec[7]; if(re_tmp1==re_tmp2)crc_ok =1; else { send[0] = local_send[1] = rec[1]|0x80; //CRC 错误 delay_ms(2); for(i=0;i&3;i++) //从机响应错误 {Send_Byte(send[i]);} } delay_ms(2); } send[2] = 0x03;34 附录else }//地址错误返回uint get_v(uchar ch) { uint value,value =ADC_Read(Write_PCF8591,Read_PCF8591,ch); value =ADC_Read(Write_PCF8591,Read_PCF8591,ch);tt = (float)(value) / 255; uv = tt * 488;//系统电压实测此时为 4.88V,返回电压值 200 表示 2.00V 即 小数点后保留 2 位 if(uv & 2)uv =0; }/*读取内部地址数据*/ void read_channel(uchar start,uchar tmp) {//读取通道数据 04 uint temp161,ad_uchar i,j = 0; for(i=i&(tmp+start);i++) { { case 0x00:ad_value =ad_value1 = get_v(2); switch(i)35 附录case 0x01:ad_value =ad_value2 =get_v(3);case 0x02:valid=ADC_Read(Write_PCF8591,Read_PCF8591,2); ad_value =ADC_Read(Write_PCF8591,Read_PCF8591,2); if(ad_value&2)ad_value =0; case 0x03: valid=ADC_Read(Write_PCF8591,Read_PCF8591,3); ad_value =ADC_Read(Write_PCF8591,Read_PCF8591,3); if(ad_value&2)ad_value =0; default:ad_value = 0x0; }//switch send[(2*j+3)] =(ad_value&&8)&0x00 send[(2*j+4)] = ad_value&0x00 j++; delay_ms(100); }//channel_num send[0]=local_ send[1]=rec[1];send[2]=2*//数据个数temp161 = CRC16(send,(2*tmp+3)); send[2*tmp+3] = (temp161&&8)&0x00 send[2*tmp+4] = temp161&0x00 delay_ms(2); for(i=0;i& (2*tmp+5);i++) { Send_Byte(send[i]); } delay_ms(2); } //从机响应 7 //gao36 附录void Disp_Data(uint tmp) {P0=wei[0]; wela=1; wela=0;P0=duan[tmp / 100] | 0x80; dula=1; dula=0; delay_ms(DELAY_VALUE);P0=wei[1]; wela=1; wela=0;P0=duan[(tmp % 10) /10]; dula=1; dula=0; delay_ms(DELAY_VALUE);P0=wei[2]; wela=1; wela=0;P0=duan[tmp % 10]; dula=1; dula=0; delay_ms(DELAY_VALUE);37 附录} / *MAIN 函数*/void main() { uint ad_ init_sci(); init_timer0(); init_IIC(); P2 =0 P1 =0xFF;while(1) {if(rec_over ) { rec_over =0;rec_cnt =0;TR0 = 0; start_crc(); if(crc_ok) { crc_ok = 0; //for(i=0;i&8;i++)Send_Byte(rec[i]);//仅供调试测试 switch(rec[1]) { case 0x04://读通道 read_channel(rec[3],rec[5]); default://error_key(); ES =1;38 附录} }//crc_ok }//前三位数码管显示第一通道的电压值。 ad_value = get_v(2); Disp_Data(ad_value); //delay_ms(2); }}/*中断处理*/ void timer0_ser()interrupt 1 {TH0 TL0=0xFC; =0x6C;//晶振 m=11.05926992ustime_cnt++; if(time_cnt&15) //定时约 4mS { time_cnt =0; rec_over =1; } } void timer2_ser()interrupt 5 {39 附录TH2 TL2=0xFC; =0x6C;//晶振 m=11.05926992usTF2 =0;i++; if(i&1000) { i =0; LED = ~LED; } } //定时约 1Svoid sci()interrupt 4 { ES =0; RI=0; if(rec_cnt ==0) { TR0 =1; rec[0] =SBUF; rec_cnt++; } else { tmp = SBUF; if(rec_over ==0) { rec[rec_cnt] = rec_cnt++;40 附录TH0 TL0 } }=0xFC; =0x6C;ES =1; } //END41
工业级无线数传采集终端RTU的MODBUS协议调试详解_信息与通信_工程科技_专业资料。工业级无线数传采集终端 RTU 的 MODBUS 协议调试详解 Modbus 协议是应用于电子控制...另外,有些设备 Modbus 接线端 子没有终端电阻,可以在电缆两端各并联一个终端...3、 通讯配置:主从站配置(波特率、数据位数、停止位数、奇偶校验)一致就可以, ...修订内容 说明 V1.4
1 说明基于《modbus 协议.pdf》实现 01,02...工业级无线数传采集终端... 10页 1下载券
PMAC720_modbus通讯协议... 20页...
All rights reserved Powered by
www.tceic.com
copyright &copyright 。文档资料库内容来自网络,如有侵犯请联系客服。

我要回帖

更多关于 低热量食物一览表 的文章

 

随机推荐