版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于MATLAB的温度检测系统设计成人教育学院毕业设计论文2012 年 6 月目录1系统总体结构 42系统硬件 42.1系统的硬件设计 42.2 AT89S52单片机实验开发板 52.2.1 AT89S52单片机介绍 62.2.2 串行接口介绍 82.3 DS18B2C传感器简介2.3.1 DS18B2C内部结构 10112.3.2 DS18B20 的工作原理102.3.3 DS18B20的指令系统 122.3.4 DS18B20的通信协议 132.3.5 DS18B20使用中注意事项 142.3.6 DS18B20与单片机的典型接口设计 153系统的软件设计 163.1 下位机程序设计163
2、.2 MATLAB程序设计 173.2.1 MATLAB串口通信技术 183.2.2 MATLAB GUI 介绍 203.2.3 GUI界 面 设计214系统调试234.1下位机调试 234.2串口调试 234.3系统联调 24基于MATLAB勺温度检测系统设计、, 、-前言温度是工业控制中主要的被控参数之一, 特别是在冶金、 化工、建材、食品、机械、石油等工业中,具有举足重轻的作用。传统靠人工控制的温度、湿度、液 位等信号的测压力控系统,外围电路比较复杂,测量精度较低,分辨率不高,需 进行温度校准非线性校准、温度补偿、传感器标定等;且它们的体积较大、使用 不够方便,更重要的是参数的设定需要有
3、其它仪表的参与, 外界设备多,成本高, 因而越来越适应不了社会的要求。 在对多类型、 多通道信号同时进行检测和控制 中,传统的测控系统能力有限。如何将计算机与各种设施、设备结合,简化人工 操作并实现自动控制,满足社会的需求,成为一个很迫切的问题。温度检测是现代检测技术的重要组成部分, 在保证产品质量、 节约能源和安 全生产等方面起着关键的作用。 随着电子技术和微型计算机的迅速发展, 微机测 量和控制技术得到了迅速的发展和广泛的应用。 单片机具有处理能力强、 运行速 度快、功耗低等优点, 应用在温度测量与控制方面, 控制简单方便, 测量范围广, 精度较高。 由单片集成电路构成的温度传感器的种类越
4、来越多, 测量的精度越来 越高,响应时间越来越短, 因其使用方便、 无需变换电路等特点已经得到了广泛 的应用,例如:以前常用的AD590和LM35等,以及现在得到广泛应用的 DSI820、 DS1821和DS1620等。本次毕业设计正是为了完成温度采集而设计的,而且采用 了美国DALLAS公司生产的可组网数字式温度传感器 DS18B20由于物体的性质 与稳定有着非常密切的关系, 因此在工农业生产中, 经常会遇到温度的测量和控 制问题,它对保证生产质量、 提高生产效率、 节约能源及促进国民经济的发展起 着非常重要的作用。新型数字化、 网络化传感器在工程中的应用具有极其重要的意义。 这类传感 器是
5、 各种参量送入计算机系统,进行智能监测、控制的最前端。随着科技的发 展,数字化、 网络化传感器应用日益广泛, 以其传统方式不可比拟的优势渐渐成 为技术的趋势和主流。近年来,利用智能化数字式温度传感器以实现温度信息的在线检测已成为温度检测技术的一种发展趋势。 数字化技术推动了信息化的革命, 在传感器 的器件结构上采用数字化技术, 使信息的采集更加方便。 例如,对于温度信号采 集系统,传统的模拟温度传感器多为铂电阻、 铜电阻等。 每一个传输线至少有两 根导线,带补偿接法需要三根导线。 如果对 50 路温度信号进行检测, 就需要 100 根导线接到采集端口,然后还要经过电桥电路、信号放大、通道选择、
6、AD 转换等,才能将温度信号供计算机处理。 而DS18B2C新型单总线数字温度传感器,采 用3脚或8脚封装,从DS18B20卖出或图 1 总设计框图写入数据仅需要一根I / O 口线。,使得硬件电路结构简单,广泛使用于距离远, 节点分布多的场合。具有较强的推广应用价值。1 系统总体结构本次设计的目的就是以数字传感器 DS18B20乍为前端,采集温度经过 单片机处理后,再采用串口通信,在 MATLAB境下对数据进行分析与处理,将 结果用图形显示并储存,完成人机交互过程。系统总体设计如图 1 所示。本系统的设计包括硬件和软件两大部分。 系统的硬件部分大致可分为四部分:DS18B2喘度采集部分、单片
7、机处理部分、显示部分、与计算机串口通 信部分。系统的软件部分分为五大部分: 读取DS18B20勺内部数据部分、单片机 对温度的处理部分、数码显示部分、串口通信部分、MATLAB面部分。2 系统硬件2.1 系统的硬件设计在本设计提出在上位机 MATLAB环境下,使用RS232串行接口实时接 收。该方法较之使用VC VB高级语言编程,极大地缩减了开发时间,提高了开发效率。系统主要由上位机 PC机和下位机AT89S52部分。上位机和下位机通过RS232进行通讯。上位机负责数据处理和图形化显示,它是在 MATLAB境下进 行的,应用了仪器控制工具箱中关于串行通信的函数, 通过程序控制整个系统的 工作并
8、进行数据处理。下位机负责数据采集和响应主机的控制处理信号。本设计中,由DS18B20勾成的单片机温度测量装置主要由四部成:DS18B20温 度传感器、AT89S52显示模块和电源模块图2所示。产品的主要技术指标:测 量范围:-55.0 C+125.0 C,测量精度:0.1 C,反应时间w 1.5s。图 2 温度检测系统结勾图2.2 AT89S52单片机实验开发板该开发板可对 ATMEL公司的89S5x系列ISP单片机AT89S51AT89S52 AT89S53 AT89LS53 AT89S8252、AT89LS8252的 DIP40 封装的器 件进行直接编程操作。单片机开发板结勾如图3。图3
9、AT89S5x单片机实验开发板整体结构开发板的结勾:1CPU系统:包括复位、时钟、在线编程电路及I/O引线插孔;2 串行接口:采用 232 构成;3显示模块:采用串行显示,由六片 74HC164和六个七段共阴数码管 组成;4模数转换模块:采用ADC0809及外围器件,能实现8路八位的模数采集;5数模转换模块:采用串行 D/A转换TLC5616能实现10位的数模转换;6LED显示模块:由8个LED灯构成,其中3个红灯、2个黄灯、3个绿灯;7 单脉冲发生电路:产生单个正或负脉冲;8 用户外接元件区:方便用户外加少量外接元件进行实验。本设计只用到CPU系统,串行接口,显示模块。CPU系统由AT89S
10、52 单片机组成。串行接口是 RS232串口。下面对各个部分作一简单介绍。2.2.1 AT89S52 单片机介绍2.2.1.1 单片机简介Atmel公司的AT89S52芯片是一种低功耗、高性能CMOS位微控制器, 具有 8K 在系统可编程 Flash 存储器。使用 Atmel 公司高密度非易失性存储器 技术制造,与工业 80C51 产品指令和引脚完全兼容。片上 Flash 允许程序存储 器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有 效的解决方案。AT89S52具有以下标准功能:8k字节Fl
11、ash,256字节RAM 32位 I/O 口线,看门狗定时器, 2 个数据指针,三个 16 位定时器 / 计数器,一个 6 向量 2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU亭止工 作,允许RAM定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存, 振荡器被冻结, 单片机一切工作亭止, 直到下一个中断或硬件复位 为止。2.2.1.2 单片机引脚功能AT89S52芯片采用40脚双列直插封装方式。当然,不同芯片之间引脚功能也略有差异。AT89S52单片机是高性能单片机,因为受到引脚数
12、目的限制, 有部分引脚具有第二功能。引脚分配如图 4所示。图 4 AT89S52 双列直插式封装和引脚分配下面以双列直插式为例,介绍AT89S52单片机的引脚。引脚可分为三 个部分: I/O 口引脚、控制引脚和电源时钟引脚。P0 口: P0 口是一个8位漏极开路的双向I/O 口。作为输出口,每位 能驱动8个TTL逻辑电平。对P0端口写“ 1”时,弓I脚用作高阻抗输入。当访问 外部程序和数据存储器时,P0 口也被作为低8位地址/数据复用。在这种模式下, P0具有内部上拉电阻。在flash编程时,P0 口也用来接收指令字节;在程序校 验时,输出指令字节。程序校验时,需要外部上拉电阻。P1 口: P
13、1 口是一个具有内部上拉电阻的 8 位双向 I/O 口, p1 输出 缓冲器能驱动 4 个 TTL 逻辑电平。对 P1 端口写“1”时,内部上拉电阻把端口 拉高,此时可以作为输入口使用。 作为输入使用时, 被外部拉低的引脚由于内部 电阻的原因,将输出电流( IIL )。此外, P1.0 和 P1.2 分别作定时器 /计数器 2 的外部计数输入(P1.0/T2 )和时器/计数器2的触发输入(P1.1/T2EX),具体如 表 1 所示。表 1 P1 口的第二功能P2 口: P2 口是一个具有内部上拉电阻的 8位双向I/O 口,P2输出 缓冲器能驱动4个TTL逻辑电平。对P2端口写“ 1”时,内部上
14、拉电阻把端口 拉高,此时可以作为输入口使用。 作为输入使用时, 被外部拉低的引脚由于内部 电阻的原因,将输出电流( IIL )。在访问外部程序存储器或用 16位地址读取外 部数据存储器(例如执行 MOVDPTR时,P2 口送出高八位地址。在这种应用 中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI访问外 部数据存储器时,P2 口输出P2锁存器的内容。在flash编程和校验时,P2 口也 接收高 8 位地址字节和一些控制信号。P3 口 : P3 口是一个具有内部上拉电阻的 8位双向I/O 口,p2输出 缓冲器能驱动 4 个 TTL 逻辑电平。对 P3 端口写“1”时,内部上
15、拉电阻把端口 拉高,此时可以作为输入口使用。 作为输入使用时, 被外部拉低的引脚由于内部 电阻的原因,将输出电流(IIL )。P3 口亦作为AT89S52特殊功能(第二功能) 使用,如表2所示。在flash编程和校验时,P3 口也接收一些控制信号。2.2.2 串行接口介绍2.2.2.1 RS232C 简介计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行 通讯二种方式。 由于串行通讯方式具有使用线路少、 成本低, 特别是在远程传输 时,避免了多条线路特性的不一致而被广泛采用。 在串行通讯时, 要求通讯双方 都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。RS-232-
16、C接口又称EIARS-232-C是目前最常用的一种串行通讯接口。它是在1970年由美国电子工业协会EIA联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同 制定的用于串行通讯的标准。它的全名是数据终端设备DTE和数据通讯设备DC之间串行二进制数据交换接口技术标准该标准规定采用一个25个脚的DB25 连接器,对连接器的每个引脚的信号内容加以规定, 还对各种信号的电平加以规1接口的信号内容:实际上 RS-232-C的25条引线中有许多是很少使用的, 在计算机与终端通讯中一般只使用 39条引线2接口的电气特性:在RS-232-C中任何一条信号线的电压均为负逻辑关系。即逻辑“ 1”,-5-15V:逻
17、辑“ 0”,+5+15V。噪声容限为:2V。即要求接收器 能识别低至+3V的信号作为逻辑“ 0”,高到-3V的信号作为逻辑“ 1。3接口的物理结构RS-232-C接口连接器一般使用型号为 DB-25的25芯插头 座,通常插头在DCE端,插座在DTE端, 一些设备与PC机连接的RS-232-C接口, 因为不使用对方的传送控制信号, 只需三条接口线, 即“发送数据”、“接收数据” 和“信号地”。所以采用DB-9的9芯插头座,传输线采用屏蔽双绞线。由于RS-232-C接口标准出现较早,难免有不足之处,主要有以下四点:1) 接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不 兼容故需使用
18、电平转换电路方能与 TTL电路连接。2)传输速率较低,在异步传输时,波特率为 20Kbps。3)接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种其 地传输容易产生共模干扰,所以抗噪声干扰性弱。4) 传输距离有限,最大传输距离标准值为 50 英尺,实际上也只能用在 50 米左右。2.2.2.2 232 芯片介绍232是由德州仪器公司(TI)推出的一款兼容RS232标准的芯片。由 于电脑串口 rs232电平是-10v +10v,而一般的单片机应用系统的信号电压是 ttl 电平 0 +5v,232 就是用来进行电平转换的 ,该器件包含 2驱动器、2接收器和一 个电压发生器电路提供 TIA
19、/EIA-232-F 电平。该器件符合 TIA/EIA-232-F 标准,每一个接收器将 TIA/EIA-232-F电平转换成 5-V TTL/CMOS电平。每一个发送器将TTL/CMOS电平转换成TIA/EIA-232-F 电平。主要特点:1)单5V电源工作2)Li nBiCMOSTMX 艺技术3)两个驱动器及两个接收器4)± 30V输入电平5)低电源电流:典型值是 8mA6)符合甚至优于 ANSI标准EIA/TIA-232-E 及ITU推荐标准 V.287)ESD保护大于 MIL-STD-883 (方法 3015)标准的 2000V2.3 DS18B20传感器简介由DALLAS导
20、体公司生产的DS18B2型单线智能温度传感器,属于新一代适 配微处理器的智能温度传感器。 与传统的热敏电阻相比, 它能够直接读出被测温 度,并且可根据实际要求通过简单的编程实现 912 位的数字值读数方式。其可 以分别在93.75ms和750ms内完成9位和12位的数字量,最大分辨率为 0.0625 C而且从DS18B20读出或写入DS18B20的信息仅需要一根口线(单线 接口)写。2.3.1 DS18B20 内部结构DS18B2啲外形及引脚功能说明:图5为DS18B2C引脚。图5 DS18B20底视图1 GND : 地。 2 DQ :单线运用的数据输入输出。 3 VDD :可选的电源引脚。D
21、S18B20利用Dallas的单总线控制协议,实现了利用单线控制信号在总线上进行通信。由于所有的设备通过漏极开路端即DS18B20的DQ脚连在总线上,控制线需要一个上拉电阻大约 5kQ o在这一总线系统中,微控制器控设备通过 唯一的64位序列码识别和访问总线上的器件。 采用3脚PR35封装或8脚SOIC 封装,其内部结构框图如图6所示。64位ROM的结构开始8位是产品类型的图6 DS18B20内部结构编号, 接着是接着的 48 位是唯一的系列号, 最后的 8 位是开始 56 位 CRCo 64位ROM和ROM操作控制部分允许DS18B20乍为一个单线器件工作并遵循单线 协议。直到ROM操作协议
22、被满足DS18B20控制部分的功能是不可访问的。单线 总线主机必须首先操作五种 ROM操作命令之一:1) ReadROM读ROM,2MatchROM 匹配 ROM, 3Search ROM搜索 ROM,4Skip ROI跳过 ROM或 5Alarm Search (告警 搜索)。在成功地执行了 ROM操作序列之后,DS18B20特定的功能便可访问,然 后总线上主机可提供六个存贮器和控制功能命令之一。DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EEP2RQM高速暂存RAM勺为9字节的存储器,结构如表2所示。表2 DS18B20字节定义其中 1、2 字节用
23、来存放当前温度 , 1 为低 8 位, 2 为高 8 位。字节 3、4用 来预置报警温度的上下限 ,字节 5用于配置寄存器 ,用于确定温度数据位数 , 字节 6、7、8 均为保留字节 , 字节 9 存放前 8 个字节循环冗余校验码。2.3.2 DS18B20 的工作原理DS18B20的测温原理如图7所示,图中低温度系数晶振的振荡频率受温度的影响很小用于产生固定频率的脉冲信号送给减法计数器 1, 高温度系数晶 振随温度变化其振荡频率明显改变 , 所产生的信号作为减法计数器 2 的脉冲输入 , 图中还隐含着计数门 , 当计数门打开时 ,DS18B20 就对低温度系数振荡器产生的 时钟脉冲进行计数
24、, 进而完成温度测量。计数门的开启时间由高温度系数振荡器 来决定,每次测量前,首先将-55C所对应的基数分别置入减法计数器1和温度寄 存器中,减法计数器1和温度寄存器被预置在-55 C所对应的一个基数值减法计 数器 1 对低温度系数晶振产生的脉冲信号进行减法计数 , 当图 7 DS18B20 的内部测温电路框图减法计数器 1的预置值减到 0时温度寄存器的值将加 1 ,减法计数器 1 的预置将重新被装入 , 减法计数器 1 重新开始对低温度系数晶振产生的脉冲信号 进行计数,如此循环直到减法计数器 2计数到 0时,停止温度寄存器值的累加 ,此 时温度寄存器中的数值即为所测温度。 图中的斜率累加器用
25、于补偿和修正测温过 程中的非线性 , 其输出用于修正减法计数器的预置值 , 只要计数门仍未关闭就重 复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20勺测温原理。在DS18B2C完成温度变换之后,温度值与贮存在TH和TL内的触发值 相比较。因为这些寄存器仅仅是 8位,所以0. 5 C位在比较时被忽略。TH或TL 的最高有效位直接对应于 16位温度寄存器的符号位。如果温度测量的结果高于 TH或低于TL,那么器件内告警标志将置位。每次温度测量更新此标志。只要告警 标志置位QS18B20将对告警搜索命令作出响应。这允许并联多个DS18B20同时进行温度测量。如果某处温度超过极限 , 那
26、么可以识别出正在告警的器件并立即 将其读出而不必读出非告警的器件。2.3.3 DS18B20 的指令系统读暂存存储器 指令代码 BEh此命令读暂存存储器的内容。读开始于字节 0,并继续经过暂存存储器,直 至第九个字节(字节8, CRC被读出为止。如果不是所有位置均可读,那么主 机可以在任何时候发出一复位以中止读操作。复制暂存存储器 指令代码 48h此命令把暂存存储器复制入 DS18B20勺E2存储器,把温度触发器字节存贮 入非易失性存储器,如果总线主机在此命令之后发出读时间片,那么只要 DS18B20正忙于把暂存存储器复制入 E2,它就会在总线上输出“ 0”当复制过程 完成之后,它将返回“ 1
27、”。如果由寄生电源供电,总线主机在发出此命令之后必 须能立即强制上拉至少 10ms。温度变换 指令代码 44h此命令开始温度变换。不需要另外勺数据温度变换将被执行,接着 DS18B20 便保持在空闲状态。如果总线主机在此命令之后发出读时间片,那么只要DS18B2C正忙于进行温度变换,它将在总线上输出“ 0”;当温度变换完成时它便 返回“1”。如果由寄生电源供电, 那么总线主机在发出此命令之后必须立即强制 上拉至少 2 秒。重新调出E2指令代码B8h此命令把贮存在E2中温度触发器的值重新调至暂存存储器。这种重新调出 的操作在对DS18B2C上电时也自动发生,因此,只要器件一接电,暂存存储器内 就
28、有有效的数据可供使用。 在此命令发出之后, 对于所发出的第一个读数据时间 片,器件都将输出其忙的标志“ 0”忙,“1” 准备就绪。读电源指令代码B4h对于在此命令送至DS18B2C之后所发出的第一读出数据的时间片,器件都会给出其电源方式的信号“ 0”寄生电源供电,“ 1”外部电源供电。2.3.4 DS18B20 的通信协议DS18B2C器件要求采用严格的通信协议,以保证数据的完整性。该协议定义 了几种信号类型:复位脉冲,应答脉冲时隙;写 0,写1 时隙;读 0,读 1 时隙。 与DS18B20的通信,是通过操作时隙完成单总线上的数据传输。发送所有的命令 和数据时,都是字节的低位在前 , 高位在
29、后。1 )复位和应答脉冲时隙每个通信周期起始于微控制器发出的复位脉冲, 其后紧跟DS18B2C发出的应 答脉冲,在写时隙期间,主机向DS18B20器件写入数据,而在读时隙期间,主机 读入来自DS18B20勺数据。在每一个时隙,总线只能传输一位数据。时序图见图 8。2)写时隙当主机将单总线DQ从逻辑高拉到逻辑低时,即启动一个写时隙,所有的写 时隙必须在60-120us完成,且在每个循环之间至少需要 1us的恢复时间。写0 和写 1 时隙如图所示。 在写 0时隙期间, 微控制器在整个时隙中将总线拉低; 而 写1时隙期间,微控制器将总线拉低,然后在时隙起始后 15us之释放总线。时 序图见图 9。3
30、)读时隙?DS18B2(器件仅在主机发出读时隙时,才向主机传输数据。所以在主机发 出读数据命令后,必须马上产生读时隙,以便DS18B20能够传输数据。所有的读 时隙至少需要60us,且在两次独立的读时隙之间,至少需要 1us的恢复时间。每个读时隙都由主机发起,至少拉低总线1us。在主机发起读时隙之后,DS18B2C器件才开始在总线上发送0或1,若DS18B2C发送1,则保持总线为高电平。若发送为 0,则拉低总线 当发送0时,DS18B2C在该时隙结束后,释放总线,由上拉电阻将总线拉回至高 电平状态。DS18B2C发出的数据,在起始时隙之后保持有效时间为 15us。因而主 机在读时隙期间,必须释
31、放总线。并且在时隙起始后的15us之内采样总线的状态。时序图见图 9。图 8 复位和应答脉冲时隙图 9 读写时序2.3.5 DS18B20 使用中注意事项DS18B2C虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:1) 较小的硬件开销需要相对复杂的软件进行补偿,由于 DS18B2C与微处理 器间采用串行数据传送,因此,在对DS18B2C进行读写编程时,必须严格的保证 读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序 设计时,对DS18B2C操作部分最好采用汇编语言实现。2)在DS18B20的有关资料中均未提及单总
32、线上所挂 DS182BC数量问题,容 易使人误认为可以挂任意多个 DS18B20在实际应用中并非如此。当单总线上所 挂DS18B2C超过8个时,就需要解决微处理器的总线驱动问题, 这一点在进行多 点测温系统设计时要加以注意。3)在DS18B20测温程序设计中,向DS18B2C发出温度转换命令后,程序总 要等DS18B20的返回信号,一旦某个 DS18B20接触不好或断线,当程序读该DS18B20寸,将没有返回信号,程序进入死循环。这一点在进行DS18B2C硬件连 接和软件设计时也要给予一定的重视。2.3.6 DS18B20 单片机的典型接口设计在硬件上QS18B20与单片机的连接有两种方法:一
33、种是Vcc接外部电源,GND接地,1/0与单片机的I/O线相连。此方法可以 使所有使用外部电源的DS18B20同时完成温度变换。另一种是用寄生电源供电,此时UDD GND接地,I/O接单片机I/O。 DS18B2C内部电容在I/O线为高电平时贮存能量,在I/O线为低电平时消耗能量, 并在I/O信号线再为高电平时能量得得到补充。这样QS1820在不需要外部提供 能量的情况下就可以完成各项操作命令。值得注意的是 ,采用此种方法时UDD引 脚必须接地。使用寄生电源的优点是 :1 远程温度检测无需本地电源 ;2 缺少正常 电源条件下也可读 ROM。就两种方式相比较而言 , 寄生电源方式少用一根导线 ,
34、 但它完成温度测量所 需的时间较长 , 而外部电源方式测量速度则要快些。无论是内部寄生电源还是外 部供电,I/O 口线要接4.7KQ左右的上拉电阻。图10给出了 DS18B20与微处理器 的典型连接。图10a中DS18B20采用寄生电源方式,其VDD和GNGS均接地,图 10b中DS18B2C采用外接电源方式,其VDD端用3V5.5V电源供电。本系统采用 图 10b 所示接线方式 , 即外接电源工作方式。图10 (a)寄生电源工作方式图10 (b)外接电源工作方式3 系统的软件设计3.1 下位机程序设计下位机采用MCS5单片机指令进行编程,主要包括初始化、温度计算、温度 显示三部分组成。DS1
35、8B20寸时序和电性参数的要求很高,主 CPU经过单总线接 口访问DS18B20勺工作流程必须要遵守严格的操作顺序: 首先,对DS18B2C进行 初始化;其次,发送ROM命令;再则,发送功能命令。程序主流程如图11所示。 源程序见附录。图 11 测温主流程框图3.2 MATLAB程序设计MATLAB!由美国mathworks公司开发的面向理论分析研究和工程设 计处理的一套具有强大功能的软件系统。在设计研究单位和工业部门,MATLAB被认作进行高效研究、 开发的首选软件工具。 其编程语法规则与一般的结构化编 程语言大同小异, 而且使用更方便, 具有一般编程基础的用户都可以很快熟练掌 握。MATL
36、AB!有超强的数据处理能力,被广泛的应用于信号处理、自动控制等领 域,而且它的图形用户界面编程技术 GUIDE简单易学,即使非专业人员也能编制 出界面友好、功能强大的应用程序。对于一般的微转换器 , 实现数据的采集过程 较为简单 , 但要对采集的结果进行快速的实时处理就比较困难 ,因为绝大多数 MCU只提供简单的8位无符号数的四则运算指令系统,对于有符号数的乘方、开 方等运算软件实现起来比较困难。3.2.1 MATLAB串口通信技术对于WINDOW系统而言,硬件系统的驱动程序有着十分严格的规范,可以用C 或汇编语言进行开发,而MATLAB身是一个跨平台的软件,并不具备直接访问硬 件的能力。即使
37、安装了驱动程序并能正常作的硬件设备,MATLAB也没有统一的形 式对其进行访问。对于系统的串口 ,在MATLAB6.沖以类SERIAL的形式提供了支持。当用指令建立了一个串口对象句柄以后 ,对串口的硬件操作可以文件操作的 软件形式来完成 , 方法比较简单。在MATLAB的设备控制工具条INSTRUMENTONTROTOOLBOX用来负责上、下位机之间的通信。该设备控制工具箱的特色如下:1 支持基于串行接口 RS-232、RS-422、RS-485 GPIB总线 IEEE2488 HPIB标准、VISA总线的通信;2 通信数据支持二进制和文本 ASCII 两种方式,文本方式支持SCPIStand
38、ard Commands for ProgrammableInstruments 语言;3 支持异步通信和同步通信;4 支持基于事件驱动的通信。从以上 Matlab 设备控制工具箱的特点可以看到, Matlab 完全可以满 足我们实现串行通信的要求。Matlab 对串行口的编程控制主要分为四个步骤。1 创建串口设备对象并设置其属性。comserial'com1';% 创建串口 1 的设备对象 com1com.Terminator'CR'% 设置终止符为CR回车符,缺省为LF换行符 comnputBufferSize1024;% 输入缓冲区为256B,缺省值为51
39、2B com.OutputBufferSize1024;% 输出缓冲区为 256B,缺省值为 512Bcom.Timeout0.5;%设置一次读或写操作的最大完成时间为0.5s,缺省值为 1Oss.ReadAsyncMode'continuous' 缺省方式 ;%在异步通信模式方式下, 读取串口数据采用连续接收数据 continuous 的缺省方式,那么下位机返回的数 据会自动地存入输入缓冲区中。注意:有些属性 只有在对象没有被打开时才能改变其值,如 InputBufferSize 、OutputBufferSize 属性等。 对于一个 RS-232/RS-422/RS-485
40、 串口设备对象,其属性的缺省值为波特率 9600b/s ,异步方式,通信数据格式为 8 位数据位,无奇偶校验位, 1 位停止位。如果要设置的串口设备对象的属性值 与缺省值的属性值相同,用户可以不用另行设置。另外,设置串口设备对象的属性也可以用一条指令完成,如: comserial'COM1' ,'BaudRate' ,38400, 'Parity' , 'none' , 'DataBits' , 8, 'StopBits' ,1。也可以用 set 命令,如 setcom,'BaudRate&
41、#39; ,19200,'Parity' , 'even' 。创建了对象后可以在 Matlab 命令窗口直接敲对象名并回车,看到其基 本属性和当前状态。若需要知道其全部的属性,可以用 getscom 命令。2 打开串口设备对象。fopencom;3 读写串口操作。初始化并打开串口设备对象之后,现在可以对串口 设备对象进行读写操作, 串口的读写操作支持二进制和文本 ASCII 两种方式。 当 Matlab 通信数据采用文本 ASCII 方式时,读写串口设备的命令分别是 fscanf 、 fpritf ;当 Matlab 通信数据采用二进制方式时,读写串口设备的命令
42、分别是 fread 、fwrite 。下面以文本方式读写串口为例:a.读串口。Afscanfcoml , '%d' , 10, 100;%从串口设备对象 coml中读入 10*100 个数据填充到数组 A10, 100中,并以整型的数据格式存放。b.写串口。fprin tfcoml , '%s',RS232?', asy nc' ;%将字符串'RS232?以字符的数据格式写入到串口设备 coml,写操作以异步的方式进行。4 关闭并清除设备对象。fclosecom;%关闭串口设备对象deletecom;%删除内存中的串口设备对象clear
43、com;% 清除工作空间中的串口设备对象当不再使用该串口设备对象时, 顺序使用以上 3条命令,可以将所创 建的串口设备对象清除,以免占用系统资源。可以看出,在Matlab中进行串行通信是十分方便的,编程较为简单。 而且,在 Matlab 中串行通信的失误率很低,通信较为可靠,也可以采用增加握 手信号以及数据校验等的方式进一步增加通信的可靠性。INSTRUMENC0NTROTOOLBOX包括两大部件:M文件函数和接口驱动适配器。这两部件提供了 MATLA与外设的通讯功能。MATLA 的两大部件提供一条外设与MATLA之问的交互通道,使用户 与外设之间进行信息获取和传送。同许多高级语言一样,MAT
44、LA通过调用M文件函数来创建设备对象, 得到设备的文件句柄, 而设备驱动程序作为操作系统中 直接控制硬件的模块,是链接操作系统内核与系统外部设备 I/O 操作的关键模 块。它将具体的硬件细节隐藏实现对外设操作的透明,因此MATLA可以象操作文件一样实现对外设的读、写操作。同时 MATIAS持二进制和文本ASCII两种 串行通信方式 , 支持异步通信和同步通信;支持查询和基于事件驱动的两种串行 通信方式。是由窗口、光标、按键、菜3.2.2 MATLAB GUI 介绍图形用户界面 graphical user interface,GUI 单、文字说明等对象 Object 构成的一个用户界面。用户通
45、过一定的方法如鼠标 或键盘选择、激活这些图形对象 ,使计算机产生某种动作或变化 , 比如实现计算、 绘图等。假如科技工作者仅仅执行数据分析、解方程等工作 , 一般不会考虑 GUI 的制作。但是如果想向客户提供应用程序 ,想进行某种技术、方法的演示 ,想制作 一个供反复使用且操作简单的专用工具 , 那么图形用户界面是最好的选择之一。Matlab为表现其基本功能而设计的演示程序 deme是使用图形界面的最好范 例。Matlab的用户在指令窗口中运行 demo打开图形界面后,只要用鼠标进行选 择和点击 , 就可浏览丰富多彩的内容。开发实际的应用程序时应该尽量保持程序的界面友好 , 因为程序界面是应用
46、 程序和用户进行交互的环境。 在当前情况下 , 使用图形用户界面是最常用的方法。 提供图形用户界面可使用户更方便地使用应用程序 , 不需要了解应用程序怎样执 行各种命令 , 只需要了解图形界面组件的使用方法 ; 同时, 不需要了解各种命令是 如何执行的 , 只要通过用户界面进行交互操作就可以正确执行程序。在Matlab中,图形用户界面是一种包含多种图形对象的界面 ,典型的图形界 面包括图形显示区域、 功能按钮空间以及用户自定义的功能菜单等。 为了让界面 实现各种功能 , 需要对各个图形对象进行布局和时间编程。 这样, 当用户激活对应 的GUI对象时,就能执行相应的时间行为。最后,必须保存和发布
47、自己创建的 GUI, 使得用户可以应用GUI对象。在 Matlab 中 , 所有对象都可以使用 M 文件进行编写。 GUI 也是一种 Matlab对象,因此,可以使用M文件来创建GUI。使用M文件创建GUI的方法也是 最基础的,使用其他方法创建GUI图形界面时,实现图形控件的各种功能时,也需 要编写相应的程序代码。除了使用M文件来创建GUI对象之外,Matlab还为用户开发图形界面 提供了一个方便高效的集成开发环境 :Matlab 图形用户界面开发环境 matlab graphical user in terface developme nt en vir onment简称 GUIDE 其主要是一个界面设计工具集。 Matlab 将所有 GUI 所支持的用户控件都集成起来 , 同时提供 界面外观、属性和行为响应方法的设置方法。除了可以使用GUIDE创建GUI之外, 还可以将设计好的GUI界面保存为一个FIG资源文件,自动生成对应的M文件。 该M文件包含了 GUI初始化代码和组建界面布局的控制代码。使用GUIDE创建GUI对象执行效率高,可以交互式地
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年个人借款担保合同模板
- 2024年医疗机构搬迁补偿合同
- 2024年光伏发电项目建设与运营合同
- 2024年冷链物流运输企业品牌建设与推广合同
- 2(2024版)航天食品供餐协议合同
- 2024年卫星互联网项目勘察合同
- 2024个人居室装饰装修合同范本
- 2024广告位合同样本范文
- 2024【温室大棚建造】温室大棚建造合同范本
- 2024年个人独资企业解散合同涉及的债务清偿
- 蛔虫和环毛蚓比较解剖ppt课件
- 初中数学教师教学情况调查问卷
- (完整word版)拼音练习jqx和ü、üe的相拼
- 新材料界定与分类
- 医疗质量检查分析、总结、反馈5篇
- (完整版)六年级下册体育教学计划与教案
- 高中小说阅读教学策略
- 幼儿园教育和家庭教育的有效结合研究
- 集团公司两金管理评价办法
- 【全面解读《国有建设用地使用权出让地价评估技术规范【2018】4号文》
- 相控阵检测工艺规程
评论
0/150
提交评论