如果导线很长,单片机电流采样电路的采样电路有影响么

文档分类:
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,
下载前请先预览,预览内容跟原文是一样的,在线预览图片经过高度压缩,下载原文更清晰。
您的浏览器不支持进度条
下载文档到电脑,查找使用更方便
还剩?页未读,继续阅读
播放器加载中,请稍候...
该用户其他文档
下载所得到的文件列表基于51单片机的温度采样监控系统.doc
文档介绍:
基于 51 单片机的温度采样监控系统姓名: 贾立学号:
班级: 08级自动化 3班基于 51 单片机的温度采样监控系统摘要: 本系统以 51 单片机为控制器,利用热电偶温度传感器采集三路系统温度信号, 405l 多路模拟开关作为采样通道选择,经 0P27 运算放大器放大后, 送入 7135A/D 转换器进行模数转换。对于热电偶的冷端补偿采用热电阻 CU50, 并采用三线制接法减少导线对测量的影响。使本系统具有转换速度快,转换精度高的特点; 关键词:单片机;温度传感器;冷端补偿; A/D 转换;报警;显示系统整体设计整体框图设计方案选择 1. 被控对象处理(1) 系统选用热电偶作为温度传感器对温度进行采样, 为保证系统温度的平衡态, 采样“上、中、下”模式进行三路热电偶温度的采集,并将信号进行简单的 RC 滤波后送入输入前向通道中。在用热电偶进行温度测量时,只有在冷端温度恒定的情况下, 热电势才能正确反映热端温度大小, 热电偶的冷端补偿是必不可少的。根据系统整体流程常用的 R 型热电偶, 测温范围为 0~ 1300 ℃其输出热电势在 0-14mV 之间。冷端补偿用热电阻 CU50 , 为消除由于导线过长而产生的导线电阻影响采用三线制接入电路,具体电路如下(2) 为了克服零点漂移,将 4051 的 X7 输入口经一个小电阻后接地,作为校准电路。各路采集到的信号减去 X7的信号值作为最终采集到的信号, 这个进一步保证了测温的精确性。(3) 为了克服温度漂移,在 4051 的 X6 输入端口通过两个精密电阻产生 10mV 的标准电压与各路信号进行比例控制。(4) 热电偶的放大电路之前的滤波电路中的电容的要求较高, 要求其漏电流一定要小。因为没°C 产生的热电势很小, 大约只有数十微伏, 放大器不平衡电压的漂移应当非常小,漏电流大的电容会产生额外的不平衡电压, 假设 c 的漏电流为 0.1uA ,那么在 R=1K 上就会产生一个为两者相乘的不平衡电压, 因此 C 要可以选择低漏电流型的电解电容, 若用电解电容时可以用万用表测一下它的绝缘电阻,越大漏电流越小。(5) 用热电偶进行测温时, 在热电偶与滤波电路之间的连线上可以加上磁珠。磁珠用于抑制信号线、电源线上的高频噪声和尖锋干扰,有吸收静电脉冲的作用。 2. 多路开关为了测温的均衡性、准确性, 采用三路采集温度。多路开关的作用是通过控制端将多路信号分时的送入 OP07 进行放大处理。多路开关 4051 是8 路选择开关,其控制端 A、B、C 由单片机控制, 分别采集各路信号。。 3. 运放的选择 R 型热电偶产生的电压在 0~14mV 范围内,信号太微弱需进行放大处理。我选用 OP07, 经济而且实用。 7135 的基准电压约为基准电压的一半,我选的基准电压为 2V ,所以需放大大约 100 倍,采用比例放大,由 7660 将稳压源产生+5V 转换为-5V ,用于运放供电。电路如下图 4.A/D 转换的选择为了保证千分之一的精度要求, 8 位的转换芯片就不能满足要求了。所以选用 14 位的双积分 A/D 转换 7135 。限于 51 单片机的输入输出口的限制,如果直接选择单片机直接与 7135 相连 IO 口不够用,需要 8155 或 8255 扩展,这样不仅成本太高。基于 7135 的转换特点,可以用计数器记录它的转换时间,将转换时间作为转换结果送给 CPU 测温范围到 1300 ℃, 需要 16 位的计数器。这里我选择 8235 作为计数器。将 825 3 的计数脉冲与 713 5 连在一起。利用 BUS Y 信号与 825 3 的 GATE 端连在一起, 8253 的计数值通过程序处理(计数值减去 1001 ) 就可以得到实际转换结果。两者的共同时钟是将所接的的晶振通过 4060 分频产生的 250HZ. 5. 数码管显示部分为了节省资源,需要对多路数码管进行动态扫描显示。 LED 显示的占空比极限为 1/8 , 若再小亮度就不够了。若要显示三路, 需要 15 个数码管, 显然不能单独扫描。为了节省资源需要 Rang 三路的同一位显示。一个译码器 74HC138 用于通道选择,三片 574 分别锁存要显示的温度,按 138 的选择送到相应的一路数码管上显示。本设计限于输入输出口地限制,我让其显示三路的平均温度。只需一个 574 就可。 74HC574 是一种高性能的 CMOS 管, 既有锁存又有驱动能力, 且为脉冲锁存。只有在为高电平的时候才会亮,否则锁存,这样就可以减少系统的损耗。同时数码管的位选也需要加以驱动。选择 8路的驱动芯片 2003. 考虑到显示五位, 可以将个位的小数点一直亮着, 这样就不用考虑到小数点的控制了。而千位一直显示 0 或者 1 ,这样就可以节省一位数码管的控制了。部分电路的选择(1) 滤波电路: 现场的干扰信号为 50HZ 的工频交流信号,在波特图中其截止频率即为 50HZ , 通过求其传递函数可得其时间常数 RC=0.004, 取陶瓷电容 C=10 μ F,R=510 Ω。截止频率 31.4Hz 。就可以滤去干扰。(2 )放大电路: 根据电路的设计方案, 考虑输入信号较小, 选取输入电阻 R=1K Ω+120K Ω的可调比例放大电路。反馈电阻 R f =1K Ω//120K ΩΩ约为 1KΩ。其增益为 10 左右,可以根据实际要求进行调节。(3 )选积分电容是应当使其漏电流尽量小。电源部分(1 )给单片机、芯片供电的+5V 、-5V 电源其工作电压均由交流 220V 市电经变压器降压、整流桥整流、滤波电路提供。滤波后接 7805 稳压, 再进一步滤波。产生+5V 的电源后由 766 0 将稳压源产生+5V 转换为-5V , 用于运放供电。对于+5V 电源的产生:因为 7805 要求的输出电压要比输入高 2.5V , 所以其输入电压至少为 7.5V , 上线可以达到 30V , 多出的部分用于散热消耗。但是由于负载压降输入电压也不能太小,否则一波动就可能达不到 7.5V ,所以选择+12V 。即需要的变压器为+12V 。(2 )基准电源电路: 5V 的稳压源不够稳定不能用来当做 7135 的基准电压。所以选取 AD780 输出电压为 3V ,选取限流电阻 10K Ω, 10K Ω的电位器进行调节已达到选要求的电压范围。且能保证电流兼容。扩展部分被系统为温度采集, 除了显示之外可以选择根据采集到的温度信号用于加热系统的控制。这里可以用 AC-SSR 。单片机根据采集到的信号分别控制三路加热系统的开通与断开。原理电路部分见原理图部分。.1
内容来自淘豆网转载请标明出处.欢迎您: &&
该商品已经成功添加到了您的收藏夹。
今天已成交:单,成交金额:元
过去3天共成交:单,成交金额:元
上午好,欢迎您!您是立创商城第967821位访客
您的IP是:121.235.200.62
当前在线用户:位
近30天成交:单,累计:万元,心得:条
现货库存:种,总值:万元,评价:条
温馨提示:为了给您更好的使用体验
此功能需要您先登录
单片机电路中干扰信号的应对思路
来源:网络发布时间: 13:38
单片机电路中干扰信号的应对思路
& 单片机在电子电路中起到控制中心的作用,而一些干扰的出现时常会让单片机不能够完全掌握对于电路的控制。因此如何对单片机控制电路中的干扰进行预防和控制就成为了设计者关心的问题。本文将关于单片机电路干扰的相关预防经验进行了总结,大家快来看一看吧。
在设计初期就对干扰进行抑制的主要目的,是为了能够省去设计完成后再进行抗干扰补救的麻烦,从侧面节约成本。
通常来说,形成干扰的要素有三个:
1、干扰源,指产生干扰的元件、设备或信号,用数学语言描述如下:du/dt,di/dt大的地方就是干扰源。如:雷电、继电器、可控硅、电机、高频时钟等都可能成为干扰源。
2、传播路径,指干扰从干扰源传播到敏感器件的通路或媒介。典型的干扰传播路径是通过导线的传导和空间的辐射。
3、敏感器件,指容易被干扰的对象。如:A/D、D/A变换器,单片机,数字IC,弱信号放大器等。抗干扰设计的基本原则是:抑制干扰源,切断干扰传播路径,提高敏感器件的抗干扰性能。
干扰源的抑制
& 抑制干扰源就是尽可能的减小干扰源的du/dt,di/dt。这是抗干扰设计中最优先考虑和最重要的原则,常常会起到事半功倍的效果。减小干扰源的du/dt主要是通过在干扰源两端并联电容来实现。减小干扰源的di/dt则是在干扰源回路串联电感或电阻以及增加续流二极管来实现。
抑制干扰源的常用措施如下:
继电器线圈增加续流二极管,消除断开线圈时产生的反电动势干扰。仅加续流二极管会使继电器的断开时间滞后,增加稳压二极管后继电器在单位时间内可动作更多的次数。
& 在继电器接点两端并接火花抑制电路(一般是RC串联电路,电阻一般选几K到几十K,电容选0.01uF),减小电火花影响。
& 给电机加滤波电路,注意电容、电感引线要尽量短。
& 电路板上每个IC要并接一个0.01&F~0.1&F高频电容,以减小IC对电源的影响。注意高频电容的布线,连线应靠近电源端并尽量粗短,否则,等于增大了电容的等效串联电阻,会影响滤波效果。
& 布线时避免90度折线,减少高频噪声发射。
& 可控硅两端并接RC抑制电路,减小可控硅产生的噪声(这个噪声严重时可能会把可控硅击穿的)。按干扰的传播路径可分为传导干扰和辐射干扰两类。
& 所谓传导干扰是指通过导线传播到敏感器件的干扰。高频干扰噪声和有用信号的频带不同,可以通过在导线上增加滤波器的方法切断高频干扰噪声的传播,有时也可加隔离光耦来解决。电源噪声的危害最大,要特别注意处理。
& 所谓辐射干扰是指通过空间辐射传播到敏感器件的干扰。一般的解决方法是增加干扰源与敏感器件的距离,用地线把它们隔离和在敏感器件上加蔽罩。
切断干扰传播路径的常用措施如下:
& 充分考虑电源对单片机的影响。电源做得好,整个电路的抗干扰就解决了一大半。许多单片机对电源噪声很敏感,要给单片机电源加滤波电路或稳压器,以减小电源噪声对单片机的干扰。比如,可以利用磁珠和电容组成&形滤波电路,当然条件要求不高时也可用100&O电阻代替磁珠。
& 如果单片机的I/O口用来控制电机等噪声器件,在I/O口与噪声源之间应加隔离(增加&形滤波电路)。控制电机等噪声器件,在I/O口与噪声源之间应加隔离(增加&形滤波电路)。
& 注意晶振布线。晶振与单片机引脚尽量靠近,用地线把时钟区隔离起来,晶振外壳接地并固定。此措施可解决许多疑难问题。
& 电路板合理分区,如强、弱信号,数字、模拟信号。尽可能把干扰源(如电机,继电器)与敏感元件(如单片机)远离。
& 用地线把数字区与模拟区隔离,数字地与模拟地要分离,最后在一点接于电源地。A/D、D/A芯片布线也以此为原则,厂家分配A/D、D/A芯片引脚排列时已考虑此要求。
& 单片机和大功率器件的地线要单独接地,以减小相互干扰。大功率器件尽可能放在电路板边缘。
& 在单片机I/O口,电源线,电路板连接线等关键地方使用抗干扰元件如磁珠、磁环、电源滤波器,屏蔽罩,可显著提高电路的抗干扰性能。
提高敏感器件的抗干扰性能
提高敏感器件的抗干扰性能是指从敏感器件这边考虑尽量减少对干扰噪声的拾取,以及从不正常状态尽快恢复的方法。提高敏感器件抗干扰性能的常用措施如下:
1、布线时尽量减少回路环的面积,以降低感应噪声。
2、布线时,电源线和地线要尽量粗。除减小压降外,更重要的是降低耦合噪声。
3、对于单片机闲置的I/O口,不要悬空,要接地或接电源。其它IC的闲置端在不改变系统逻辑的情况下接地或接电源。
4、对单片机使用电源监控及看门狗电路,如:IMP809、IMP706、IMP813、X25043、X25045等,可大幅度提高整个电路的抗干扰性能。
5、在速度能满足要求的前提下,尽量降低单片机的晶振和选用低速数字电路。
6、IC器件尽量直接焊在电路板上,少用IC座。
全部封装规格:
成员网站:
&&&&(C)&&立创商城&版权所有
服务时间:周一至周五8:30~18:30周六、周日9:00~18:00
客服热线:
投诉电话杨先生
扫我领取15元优惠券
你还可以继续添加
你还可以继续添加
你还可以继续添加基于VB和单片机的多点温度采集系统
基于 VB 和单片机的多点温度采集系统【摘要】 测温系统是以数据采集原理为主要理论依据,将传感器 DS18B20 所测的温度转换成为电信号,再 :由 AT89C51 单片机对其进行量化编码,转化为整型数据和浮点型数据;整型数据为了方便 AT89C51 单片机与 PC 之间的通讯,浮点型数据是用来显示在液晶显示器 12864 上面的。根据串行通讯原理,设计了 AT89C51 单片机与 PC 机的接口电路,建立了 AT89C51 单片机与 PC 机之间的串行通讯协议,并利用 VB6.0 对测温系统实现了对象化 操作――将采集到的温度信号编码进行接受和描述,将其直接显示在可视的界面当中,对信号进行分析和处理,并 将其用曲线实时显示出来。本设计在选择仪器方面的宗旨是使用起来方便快捷,成本低廉,而且大幅度提高了测量 精度,最终目的能实现人机的对话且能及时知道系统的运行状况等功能。【关键词】 AT89C51 单片机,编码,温度,实时曲线,DS18B20,VB6.0 : Based on VB and MCU multipoint temperature collection systemFang Li(Grade08, Class4, Major Automation, Electrical Engineering Dept., Shaanxi University of Technology , Hanzhong 723003, Shaanxi)Tutor:Hu Bo【Abstract】 Temperature measurement system to data collection principle as the main theoretical basis, the :temperature sensor DS18B20 converted into electrical signals, again by AT89C51 single-chip microcomputer the quantitative coding, into the whole model data and floa Integer data in order to facilitate the AT89C51 single-chip microcomputer and of the communication between a PC, the floating-point data is used to display type in LCD monitor above 12864. According to the serial communication principle, design the AT89C51 single-chip microcomputer and PC interface circuit, established the AT89C51 single-chip microcomputer and PC of serial communication between agreement, and use of temperature measurement system through VB6.0 realized the objectivity operation-will the collected temperature signal encoding to accept and description, its directly display in visual interface of the signal analysis and processing, and use its curve real-time display.Purpose of this design choice of instrument is to use a convenient, low cost, and greatly improve the measurement accuracy, the ultimate aim to achieve the system of man-machine dialogue and can know in time to run status.【Keywords】: VB; monitoring 目 录1 引 言 ................................................................................................................. 11.1 概述 ............................................................................................................... 1 1.2 国内、外现状 ............................................................................................... 1 1.3 系统设计的任务要求 ................................................................................... 2 1.4 系统方案论证 ............................................................................................... 2 1.5 系统设计原理框图及各部分功能简介 ....................................................... 3 1.6 系统设计进度安排 ....................................................................................... 32 系统硬件设计 .................................................................................................. 42.1 控制器的设计 ............................................................................................... 4 2.1.1 控制器的选择 ............................................................................... 4 2.1.2 AT89C52 主要特性 ........................................................................ 4 2.2 液晶显示 LCD 设计 ........................................................................................ 9 2.2.1 HS12864-15C 液晶显示介绍........................................................ 9 2.2.2 HS12864-15C 液晶模块的硬件说明............................................ 9 2.2.3 HS12864-15C 液晶模块指令集.................................................. 10 2.2.4 LCD 显示硬件电路设计 .............................................................. 14 2.3 温度采集模块设计 ..................................................................................... 14 2.3.1 温度传感器的基本知识 .............................................................. 14 2.3.2 传感器的选用及系统中的应用................................................. 14 2.3.3 温度传感器的选择 ..................................................................... 16 2.3.4 温度传感器 DS18B20 工作原理.................................................. 16 2.3.5 DS18B20 的使用 ........................................................................ 16 2.3.6 温度采集模块硬件电路设计...................................................... 18 2.4 系统硬件电路设计 ..................................................................................... 18 2.4.1 主机控制部分 ............................................................................. 18 2.4.2 温度采样与显示电路 ................................................................. 19 2.4.3 RS232 通讯接口电路设计........................................................ 193 系统软件设计............................................................................................................................... 203.1 下位机软件设计 ......................................................................................... 20 3.1.1 液晶显示部分设计 ..................................................................... 20 3.1.2 温度采集模块部分设计 ............................................................. 21 3.1.3 串口通讯(下位机部分)软件设计......................................... 25 3.2 上位机软件设计 ......................................................................................... 27 3.2.1 系统主界面的设计 ..................................................................... 28 3.2.2 串口设置界面 ............................................................................. 28 3.2.3 串口通讯(上位机部分)设计................................................. 294 系统的调试 .................................................................................................................................... 314.1 软硬件综合调试 .......................................................................................... 31 4.1.1 液晶显示模块的调试 .................................................................. 31 4.1.2 DS18B20 数据采集模块的调试................................................. 31 4.1.3 串口通讯部分的调试 .................................................................. 31 4.2 系统综合调试 .............................................................................................. 32 4.2.1 系统综合调试出现的问题及解决方法...................................... 32 4.2.2 系统综合调试结果 ...................................................................... 325 总结与展望 .................................................................................................................................... 34 致谢 ........................................................................................................................................................... 35 参考文献................................................................................................................................................ 36 附录 A 下位机部分程序 ............................................................................................................. 37 附录 B 上位机部分程序 ............................................................................................................ 44 附录 C 实物图 ................................................................................................................................ 46附录 D 元器件清单 ....................................................................................................................... 47 外 文 文 献 原 文 ................................................................................................................................ 48 外 文 文 献 译 文 ................................................................................................................................ 51 陕西理工学院毕业设计1引 言1.1 概述 随着科学技术的迅猛发展,电子技术的发展也越来越快,带动了大批相关产业的发展,其应用 的范围也越来越广泛。温度采集与监控系统在工业生产中迅速的得到应用,温度作为一个重要的物 理量,是工业生产过程中最普遍、最重要的工艺参数之一。随着工业的不断发展,对温度测量的要 求也越来越高。 例如,我们经常会见到农村的蔬菜大棚,温度对于这些大棚中的蔬菜生长来说是一个很重要的 参考量,而农夫们一般都用季节判断法或者用温度计去判断各个大棚的温度变化情况,这样做第一 准确度不高,第二反复的做很繁琐。并且我发现,现在的农民朋友一般都是拥有很多个蔬菜大棚, 那如何来掌握这些蔬菜大棚的温度变化呢?如何来查看他们蔬菜大棚的历史温度值以及温度的每天 变化趋势?如何利用现在的科技技术来完成这些繁琐的事情呢?我在面对这些问题的时候,我意识 到,我应该运用我所学到的知识来解决这是问题。首先我联想到了,温度传感器,计算机,以及单 片机技术。 如今,计算机的使用领域已经扩展到了各行各业,在这种形式下我必须能够设计出基于 PC 界面 技术下的系统,以满足社会的需求。近年来,单片机发展也十分迅速,单片机已经渗透到工业、农 业、国防、科研及日常生活等各个领域。传统的温度采集的方法不仅费时,而且精度差,满足不了 各行业对于温度数据高精度,设备高可靠性的需求。单片机的出现使得温度数据的采集和处理得到 了很好的解决。选择适当的单片机和温度传感器及前端处理电路,可以获得较高精度的测量。不但 方便快捷,成本低廉,省事省力,而且大幅度提高了测量精度。 于是我就有以下的想法:首先我能不能运用单片机技术来采集不同点的温度信息,其次我可以 用 LCD 将我收集来的多个点的温度信息显示出来, 同时想办法让它通过串口通讯显示在 PC 机的界面 上呢?并且我怎么用最少的成本去是我的想法最大化呢?当我反复查阅资料,在我有了一定的认识 之后,我认为我可以设计出一种利用单片机实现温度数据的采集和处理的方法。其中会涉及到传感 器,数据采集,单片机数据处理,单片机和 PC 机通讯 VB 等一系列相关理论。再由上位机和下位机 之间的数据传输通过串口传输方式进行, 构成 PC 对多点温度的数据接收的监控系统再加上单片机 控制与液晶显示制成一套完整的数据收发显示系统。 随着计算机技术的快速发展,因此,温度测量的研究和监控系统的设计成为了一个重要的研究 课题,多点温度采集系统更是以优越的性能备受关注。作为新领域,短距离与 pc 通信技术显示出强 劲的发展势头,在安全生产家、用电器,温度数据采集等领域发挥越来越重要的作用。 1.2 国内、外现状 国内外发展现状人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农 业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。测量温度的关键 是温度传感器,传感器属于信息技术的前沿尖端产品,尤其是温度传感器技术,在我国各领域已经引 用的非常广泛,可以说是渗透到社会的每一个领域。温度传感器的发展经历了三个发展阶段:传统的 分立式温度传感器、模拟集成温度传感器、智能集成温度传感器。目前的智能温度传感器(亦称数 字温度传感器) 是在 20 世纪 90 年代中期问世的, 它是微电子技术、 计算机技术和自动测试技术 (ATE) 的结晶,特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU)。社会的发展使人 们对传 感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从 集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全 性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展。 目前, 国内外很多温度采集系统都利用有线通信。 另外, 温度采集系统多采用热电偶, 热敏电阻, 铂电阻和集成电路 AD590 作为温度传感器,这些传感器的输出信号均为模拟信号,需经过放大电路 和 A/D 转换后才能与计算机连接,且系统结构比较复杂。本系统中温度传感器采用美国 DALLAS 公司 生产的单总线式数字温度集成芯片 DS18B20,该芯片可以直接提供单片机接收的数字温度信号。区 别于别的温度传感器该芯片达到了比较理想的结果,在农业温棚实际应用结果表明,该系统具有很第 1 页 共 52 页 陕西理工学院毕业设计好的应用效果和良好的应用前景。 随着微型计算机和传感器技术的迅速发展,自动检测领域发生了巨大变化,针对温度的自动检 测控制方面的研究有了明显的进展。对于温度检测系统来说,由传统的单点温度采集到现在的多点 温度采集;由传统的集散控制到现在的现场总线控制等都是一个很大的进步。尤其是多点温度采集 系统在现如今人们的生活、生产中越来越发挥着它所独有的优势:集中化管理,现场总线式监控。 美国、日本的温度监测设施近 20 年来发展很快,他们结合本国自身条件做出了具有创新特色的 成就,其中仓库环境调控技术均有较高水平,但其监控设备价格昂贵。我国近年引进了多达 16 个国 家和地区的仓库环境控制系统,对吸收国外先进经验、推动仓库温度湿度自动检测产生了积极的作 用,但多因能耗过大,造价高,品种未能配套,未能达到很好的效果。中国的仓库环境综合控制系 统必须走适合中国国情的发展道路,在引进、消化、吸收国内外先进技术和科学管理的基础上,进 行总结提高、集成创新、超前示范,既开发适宜我国经济发展水平,又能满足不同气候条件,接近 或达到世界先进水平的智能化仓库监测系统。在专用品种、综合配套技术、贮运营销上,应该研制 具有中国知识产权的产品和技术。 目前,国内很多温度采集系统都利用有线通信。另外,温度采集系统多采用热电偶,热敏电阻, 铂电阻和集成电路 AD590 作为温度传感器,这些传感器的输出信号均为模拟信号,需经过放大电路 和 A/D 转换后才能与计算机连接,且系统结构比较复杂。本系统中温度传感器采用美国 DALLAS 公司 生产的单总线式数字温度集成芯片 DS18B20,该芯片可以直接提供单片机接收的数字温度信号。区 别于别的温度传感器该芯片达到了比较理想的结果,在农业温棚实际应用结果表明,该系统具有很 好的应用效果和良好的应用前景。 由上文可知,尽管多点温度检测系统发展迅速,简单有效的解决了原来复杂的温度检测问题, 但是它还存在很多问题,比如通信协议不规范,传感器质量不过关, 现场管理和维护水平有待于加 强等。 基于以上各种问题,多点温度检测系统正朝着以下几个方向发展: (1)系统不仅要实现实时检测,而且在软件技术上应研究开发根据被检测环境地点的参数进行 有效的判别、分析和提出专家决策方案。同时系统应用软件应向网络化发展,按统一的格式向外提 供监测数据。 (2)针对通信协议不规范和传输设备物理层协议不规范的问题,应尽快寻找一种解决系统兼容 性的途径或制定相应的专业技术标准,这对促进温度监控技术发展和系统的推广应用均具有十分重 要的意义。 (3)研制高性能的温度传感器。 (4)进一步加强现场管理和维护水平。 1.3 系统设计的任务要求 以单片机作为控制芯片,利用温度传感器对多路温度信号进行采集,再有单片机对所测温度进 行数据处理,并使用 RS-232 标准作为通信协议,与 PC 机进行通信。利用 PC 机创建数据库,并采用 VB 语言创建前台界面,实现温度信息的显示、查询、报表、变化趋势图等功能。 系统的要求: (1)在下位机上能够用 12864 液晶显示当前室温的温度值; (2)能够实现下位机与 PC 之间的通信; (3)利用 VB 在上位机能够显示温度的变化情况; (4)在上位机能够查询当前的温度值; (5)在上位机利用温度的变化情况绘制出相应的变化趋势图; 1.4 系统方案论证 方案一: 由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化 的电压或电流采集过来,进行 A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,就可 以将被测温度显示出来,这种设计需要用到 A/D 转换电路,感温电路比较麻烦。第 2 页 共 52 页 陕西理工学院毕业设计方案二: 考虑到温度传感器的选择是本系统的关键。由于智能温度传感器采用数字化技术,能以数据形 式输出被测温度值,具有测温误差小、分辨力高、抗干扰能力强、用户可设定温度上下限,并且带 串行总线接口,适配各种微控制器,因此我们采用智能温度传感器。我们采用 DALLAS 半导体公司生 产的新型数字温度传感器 DS18B20。另外,单片机在获取温度数据后需要进一步和 PC 机通信。本系 统中只有一个单片机和 PC 进行串行数据通信,通信距离在 10m 左右,我们可以选择 RS-232 标准作 为串行数据通信的物理层协议。这层总线结构主要实现温度数据的传输。此外,我们还掌握了一定 的 VB 语言,所以我们也可以将采集到的温度信息显示在 PC 的 VB 界面上,这样以来我们设计的这个 系统就很直观了。我们现在有 PC、温度传感器 DS18B20,并且掌握了单片机技术、VB 语言,因此我 们想要的系统就基本成型了。 从以上两种方案,很容易看出,采用方案二的电路比较简中,软件设计也比较简单,故采用了 方案二。 1.5 系统设计原理框图及各部分功能简介图1.1系统设计结构框图系统设计的是近距离的多点温度采集检测系统,该系统涵盖了 AT89C51 单片机,传感器,信息 处理,计算机通信等几个方面的技术。主要理论依据是将传感器 DS18B20 所测的温度转换成为电信 号,再由 AT89C51 单片机对其进行量化编码,转化为十六进制数据,为 AT89C51 单片机与 PC 间的通 讯打下了基础。再根据串行通讯原理,建立 AT89C51 单片机与 PC 机之间的串行通讯协议,并利用 VB6.0 对测温系统实现了对象化操作――将采集到的温度信号编码进行接受和描述,将其直接显示 在可视的界面当中。最终实现我们所想要的各项功能,如图 1.1。 1.6 系统设计进度安排 3 月 11 日――4 月 1 日: 查找资料,提交开题报告。 4 月 2 日――5 月 8 日: 形成初稿,完成初步设计。 5 月 9 日――5 月 21 日: 对系统硬件及软件程序的各个模块结果进行分析和完善。 5 月 22 日――5 日 31 日: 最终定稿,并完成论文。 6 月 1 日――6 月 11 日: 准备答辩。第 3 页 共 52 页 陕西理工学院毕业设计2系统硬件设计2.1 控制器的设计 2.1.1 控制器的选择 控制器选择目前市场上最流行的 ATMEL 公司的 AT89C52 单片机。 AT89C52 是一种带 K 字节 Flash 可编程可擦除只读存储器(FPEROM―Flash Programmable and Erasable Read Only Memory)的 低电压,高性能 CMOS8 位微处理器。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与 工业标准的 MCS-51 指令集和输出管脚相兼容。 由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯 片中,ATMEL 的 AT89S52 是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价 廉的方案。 2.1.2 AT89C52主要特性 AT89C52 的硬件外界连接图:图 2.1 AT89C52 的硬件外界连接图主要性能 ? 与 MCS-51 单片机产品兼容 ? 8K 字节在系统可编程 Flash 存储器 ? 1000 次擦写周期 ? 全静态操作:0Hz~33Hz ? 三级加密程序存储器 ? 32 个可编程 I/O 口线 ? 三个 16 位定时器/计数器 ? 八个中断源 ? 全双工 UART 串行通道 ? 低功耗空闲和掉电模式 ? 掉电后中断可唤醒 ? 看门狗定时器 ? 双数据指针 ? 掉电标识符 功能特性描述: AT89C52 是一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可编程 Flash 存储器。使用 Atmel 公司高密度非易失性存储器技术制造,与工业 80C51 产品指令和引脚完全兼容。其 Flash 允 许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的 8 位 CPU 和在系统可编第 4 页 共 52 页 陕西理工学院毕业设计程 Flash,使得 AT89C52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89C52 具有 以下标准功能:8k 字节 Flash,256 字节 RAM,32 位 I/O 口线,看门狗定时器,2 个数据指针,三 个 16 位定时器/计数器,一个 6 向量 2 级中断结构,全双工串行口,片内晶振及时钟电路。另外, AT89S52 可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。空闲模式下,CPU 停止工作,允 许 RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。引脚如图 2.2 所示:图 2.2 AT89C52 引脚结构管脚功能介绍: VCC:电源 GND:接地 P0 口:P0 口是一个 8 位漏极开路的双向 I/O 口。作为输出口每位能驱动 8 个 TTL 逻辑电平。 对 P0 端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0 口也被作为低 8 位地址/数据复用。在这种模式下,P0 具有内部上拉电阻。在 flash 编程时,P0 口也用来接收指令 字节,在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。 P1 口:P1 口是一个具有内部上拉电阻的 8 位双向 I/O 口,p1 输出缓冲器能驱动 4 个 TTL 逻 辑电平。对 P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使 用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL) 。此外,P1.0 和 P1.2 分别作定 时器/计数器 2 的外部计数输入(P1.0/T2)和时器/计数器 2 的触发输入(P1.1/T2EX) ,具体如表 2.1 所示。在 flash 编程和校验时,P1 口接收低 8 位地址字节。表 2.1 P1 口第二功能表 引脚号 P1.0 P1.1 P1.5 P1.6 P1.7 第二功能 T2(定时器/计数器 T2 的外部计数输入) ,时钟输出 T2EX(定时器/计数器 T2 的捕捉/重载触发信号和方向控制) MOSI(在系统编程用) MISO(在系统编程用) SCK(在系统编程用)第 5 页 共 52 页 陕西理工学院毕业设计P2 口:P2 口是一个具有内部上拉电阻的 8 位双向 I/O 口,P2 输出缓冲器能驱动 4 个 TTL 逻辑 电平。对 P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用 时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL) 。在访问外部程序存储器或用 16 位 地址读取外部数据存储器时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发 送 1, 在使用 8 位地址 (如 MOVX @RI) 访问外部数据存储器时, 口输出 P2 锁存器的内容。 flash P2 在 编程和校验时,P2 口也接收高 8 位地址字节和一些控制信号。 P3 口:P3 口是一个具有内部上拉电阻的 8 位双向 I/O 口,p2 输出缓冲器能驱动 4 个 TTL 逻辑 电平。对 P3 口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时, 被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL) 。P3 口亦作为 AT89S52 特殊功能(第二 功能)使用,如表 2.2 所示。在 flash 编程和校验时,P3 口也接收一些控制信号。表 2.2 P3 口第二功能表 引脚号 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 第二功能 RXD(串行输入) TXD(串行输出) INT0(外部中断 0 INT0(外部中断 0) T0(定时器 0 外部输入) T1(定时器 1 外部输入) WR(外部数据存储器写选通) RD(外部数据存储器写选通)RST:复位输入。晶振工作时,RST 持续 2 个机器周期高电平将使单片机复位。看门狗计时完成 后,RST 脚输出 96 个晶振周期的高电平。特殊寄存器 AUXR(地址 8EH)上的 DISRTO 位可以使此功能 无效。DISRTO 默认状态下,复位高电平有效。 ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低 8 位地址的输出脉冲。 在 flash 编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE 以晶振六分之一的固 定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储 器时,ALE 脉冲将会跳过。如果需要,通过将地址为 8EH 的 SFR 的第 0 位置“1”ALE 操作将无效。 这一位置 “1”ALE 仅在执行 MOVX 或 MOVC 指令时有效。否则,ALE 将被微弱拉高。这个 ALE 使能 标志位(地址为 8EH 的 SFR 的第 0 位)的设置对微控制器处于外部执行模式下无效。 PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当 AT89S52 从外部程序存储 器执行外部代码时,PSEN 在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN 将不被激 活。 EA/VPP: 访问外部程序存储器控制信号。 为使能从 0000H 到 FFFFH 的外部程序存储器读取指令, EA 必须接 GND。为了执行内部程序指令,EA 应该接 VCC。在 flash 编程期间,EA 也接收 12 伏 VPP 电压。 XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2:振荡器反相放大器的输出端。 特殊功能寄存器:特殊功能寄存器(SFR)的地址空间映象如表 2.1 所示。 AT89C52 并不是所有的地址都被定义了。片上没有定义的地址是不能用的。读这些地址,一般 将得到一个随机数据;写入的数据将会无效。用户不应该给这些未定义的地址写入数据“1” 。由于 这些寄存器在将来可能被赋予新的功能,复位后,这些位都为“0” 。 定时器 2 寄存器:寄存器 T2CON 和 T2MOD 包含定时器 2 的控制位和状态位,寄存器对 RCAP2H 和 RCAP2L 是定时器 2 的捕捉/自动重载寄存器。 中断寄存器:各中断允许位在 IE 寄存器中,六个中断源的两个优先级也可在 IE 中设置。第 6 页 共 52 页 陕西理工学院毕业设计表 2.3 T2CON:定时器/计数器 2 控制寄存器 T2CON 地址为 0C8H TF2 7 EXF2 6 RLCLK 5 TCLK 4 表 2.4 TCON 控制字 符号 TF2 EXF2 功能 定时器 2 溢出标志位。必须软件清“0” 。RCLK=1 或 TCLK=1 时,TF2 不用置位。 定时器 2 外部标志位。EXEN2=1 时,T2EX 上的负跳变而出现捕捉或重载时,EXF2 会被硬件置位。 定时器 2 打开,EXF2=1 时,将引导 CPU 执行定时器 2 中断程序。EXF2 必须如见清“0” 。在向下/ 向上技术模式(DCEN=1)下 EXF2 不能引起中断。 RCLK TCLK EXEN2 TR2 串行口接收数据时钟标志位。 RCLK=1, 若 串行口将使用定时器 2 溢出脉冲作为串行口工作模式 1 和 3 的串口接收时钟;RCLK=0,将使用定时器 1 计数溢出作为串口接收时钟。 串行口发送数据时钟标志位。 TCLK=1, 若 串行口将使用定时器 2 溢出脉冲作为串行口工作模式 1 和 3 的串口发送时钟;TCLK=0,将使用定时器 1 计数溢出作为串口发送时钟。 定时器 2 外部允许标志位。当 EXEN2=1 时,如果定时器 2 没有用作串行时钟,T2EX(P1.1)的负跳 变见引起定时器 2 捕捉和重载。若 EXEN2=0,定时器 2 将视 T2EX 端的信号无效 开始/停止控制定时器 2。TR2=1,定时器 2 开始工作 ssss 定时器2 定时/计数选择标志位。C/T2=0,定时; c 捕捉/重载选择标志位。当 EXEN2=1 时, C P EXEN2 3 复位值:B TR2 2C / T21CPRL 20C / T2CP RL 2t 2 =1,外部事件计数(下降沿触发) R L 2 =0 将引起 T2EXR L 2 =1,T2EX 出现负脉冲,会引起捕捉操作;当C 定时器 2 溢出或 EXEN2=1 时 T2EX 出现负跳变, 都会出现自动重载操作。 P的负脉冲。当 RCKL=1 或 TCKL=1 时,此标志位无效,定时器 2 溢出时,强制做自动重载操作。存储器结构:MCS-51 器件有单独的程序存储器和数据存储器,外部程序存储器和数据存储器都 可以 64K 寻址。 程序存储器:如果 EA 引脚接地,程序读取只从外部存储器开始。对于 89C52,如果 EA 接 VCC, 程序读写先从内部存储器 (地址为 0000H~1FFFH) 开始, 接着从外部寻址, 寻址地址为: 2000H-FFFFH。 数据存储器:AT89C52 有 256 字节片内数据存储器,高 128 字节与特殊功能寄存器重叠,也就 是说高 128 字节与特殊功能寄存器有相同的地址,而物理上是分开的。当一条指令访问高于 7FH 的 地址时,寻址方式决定 CPU 访问高 128 字节 RAM 还是特殊功能寄存器空间。直接寻址方式访问特殊 功能寄存器(SFR) 。 定时器 0 和定时器 1:在 AT89C52 中,定时器 0 和定时器 1 的操作与 AT89C51 一样。 定时器 2:定时器 2 是一个 16 位定时/计数器,它既可以做定时器,又可以当事件计数器。其工 作方式由特殊寄存器 T2CON 中的 C/T2 位选择。定时器 2 有三种工作模式:捕捉方式、自动重载、和 波特率发生器。工作模式由 T2CON 中的相关位选择。定时器 2 有 2 个 8 位寄存器:TH2 和 TL2。在定 时工作方式中,每个机器周期,TL2 寄存器都会加 1。由于一个机器周期由 12 个晶振周期构成,因 此,计数频率就是晶振频率的 1/12。表 2.5 定时器 2 工作模式 RCLK+TCLK 0 0 1 X CP/RL2 0 1 X X TR2 1 1 1 0 MODE 16 位自动重载 16 位捕捉 波特率发生器 (不用)在计数工作方式下,寄存器在相关外部输入角T2发生1至0的下降沿时增加1。在这种方式下,每 个机器周期的S5P2期间采样外部输入。一个机器周期采样到高电平,而下一个周期采样到低电平, 计数器将加1,在检测跳变的这个周期的S3P1期间,新的计数值出现在寄存器中。因为识别1-0的跳第 7 页 共 52 页 陕西理工学院毕业设计变需要2个机器周期(24个晶振周期),所以,最大的计数频率不高于晶振频率的1/24。为了确保给 定的电平在改变前采样到一次,电平应该至少在一个完整的机器周期内保持不变。 波特率发生器:通过设置 T2CON(见表 2.3)中的 TCLK 或 RCLK 可选择定时器 2 作为波特率发生 器。如果定时器 2 作为发送或接收波特率发生器,定时器 1 可用作它用,发送和接收的波特率可以 不同。设置 RCLK 和(或)TCLK 可以使定时器 2 工作于波特率产生模式。波特率产生工作模式与自 动重载模式相似, 因此, 的翻转使得定时器 2 寄存器重载被软件预置 16 位值的 RCAP2H 和 RCAP2L TH2 中的值。模式 1 和模式 3 的波特率由定时器 2 溢出速率决定,具体如下公式: 模式 1 和模式 3 波特率=定时器 2 溢出率/16 (式 2-1) 定时器可设置成定时器,也可为计数器。在多数应用情况下,一般配置成定时方式(CP/T2=0) 。定 时器 2 用于定时器操作与波特率发生器有所不同,它在每一机器周期(1/12 晶振周期)都会增加, 然而,作为波特率发生器,它在每一机器状态(1/2 晶振周期)都会增加。波特率计算公式如下: 模式 1 和模式 3 的波特率=晶振频率/32?[65536 - (RCAP2H,RCAP2L)](式 3-2) 其中, (RCAP2H,RCAP2L)是 RCAP2H 和 RCAP2L 组成的 16 位无符号整数。定时器 2 作为波特率发 生器。图中仅仅在 T2CON 中 RCLK 或 TCLK=1 才有效。特别强调,TH2 的翻转并不置位 TF2,也不 产生中断; EXEN2 置位后,T2EX 引脚上 1~0 的下跳变不会使(RCAP2H,RCAP2L)重载到(TH2, TL2)中。因此,定时器 2 作为波特率发生器,T2EX 也还可以作为一个额外的外部中断。定时器 2 处于波特率产生模式,TR2=1,定时器 2 正常工作。TH2 或 TL2 不应该读写。在这种模式下,定 时器在每一状态都会增加,读或写就不会准确。寄存器 RCAP2 可以读,但不能写,因为写可能和 重载交迭, 造成写和重载错误。 在读写定时器 2 或 RCAP2 寄存器时, 应该关闭定时器 (TR2 清 0) 。 中断:AT89C52 有 6 个中断源:两个外部中断(INT0 和 INT1)三个定时中断(定时器 0、1、2) 和一个串行中断。每个中断源都可以通过置位或清除特殊寄存器 IE 中的相关中断允许控制位分别 使得中断源的有效或无效。IE 还包括一个中断允许总控制位 EA,它能一次禁止所有中断。 如表 2.6 所示,IE.6 位是不可用的。对于 AT89C52,IE.5 位也是不能用的。用户软件不应给这 些位写 1 它们为 AT89 系列新产品预留。定时器 2 可以被寄存器 T2CON 中的 TF2 和 EXF2 的或逻辑触 发。程序进入中断服务后,这些标志位都可以由硬件清 0。实际上,中断服务程序必须判定是否是 TF2 或 EXF2 激活中断,标志位也必须由软件清 0。 定时器 0 和定时器 1 标志位 TF0 和 TF1 在计数溢出的那个周期的 S5P2 被置位。 它们的值一直到 下一个周期被电路捕捉下来。然而,定时器 2 的标志位 TF2 在计数溢出的那个周期的 S2P2 被置位, 在同一个周期被电路捕捉下来。表 2.6 中断允许控制寄存器(IE) EA 符号 EA ET2 ES ET1 EX1 ET0 EX0 - 地址 IE.7 IE.6 IE.5 IE.4 IE.3 IE.2 IE.1 IE.0 预留 定时器 2 中断允许控制位 串行口中断允许控制位 定时器 1 中断允许控制位 外部中断 1 允许控制位 定时器 0 中断允许控制位 外部中断 1 允许控制位 ET2 ES ET1 功能 中断总允许控制位。EA=0,中断总禁止;EA=1,各中断由各自的控制位设定 EX1 ET0 EX0 中断允许控制位=1,允许中断 中断允许控制位=0,禁止中断晶振特性:AT89C52 单片机有一个用于构成内部振荡器的反相放大器,XTAL1 和 XTAL2 分别是放 大器的输入、输出端。石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器。从外部时钟源驱动 器件的话,XTAL 可以不接,而从 XTAL1 接入。由于外部时钟信号经过二分频触发后作为外部时钟电 路输入的,所以对外部时钟信号的占空比没有其它要求,最长低电平持续时间和最少高电平持续时 间等还是要符合要求的。第 8 页 共 52 页 陕西理工学院毕业设计2.2 液晶显示 LCD 设计 LCD 外部连接图如下图 2.3 LCD 外部连接图2.2.1 HS12864-15C 液晶显示介绍 HS12864-15 系列中文图形液晶模块的特性主要由其控制器 ST7920 决定。ST7920 同时作为控制 器和驱动器,它可提供 33 路 com 输出和 64 路 seg 输出。在驱动器 ST7921 的配合下,最多可以驱动 256×32 点阵液晶。 HS12864-15 系列产品硬件特性如下: ?提供 8 位,4 位并行接口及串行接口可选 ?并行接口适配 M6800 时序 ?自动电源启动复位功能 ?内部自建振荡源 ?64×16 位字符显示 RAM(DDRAM 最多 16 字符×4 行,LCD 显示范围 16×2 行) ?2M 位中文字型 ROM(CGROM) ,总共提供 8192 个中文字型(16×16 点阵) ?16K 位半宽字型 ROM(HCGROM),总共提供 126 个西文字型(16×8 点阵) ?64×16 位字符产生 RAM(CGRAM) HS12864-15 系列产品软件特性如下: ?文字与图形混合显示功能 ?画面清除功能 ?光标归位功能 ?显示开/关功能 ?光标显示/隐藏功能 ?显示字体闪烁功能 ?光标移位功能功能 ?显示移位功能 ?垂直画面旋转功能 ?反白显示功能 ?休眠模式 ?ST7920-0B 内建 GB 码简体中文字型库 2.2.2 HS12864-15C 液晶模块的硬件说明 模块引脚说明表 2.7 模块引脚说明 引脚号 1 引脚名称 VSS 方向 功能说明 模块的电源地第 9 页 共 52 页 陕西理工学院毕业设计2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20VDD V0 RS(CS) R/W(SID) E(CLK) DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 PSB NC /RET NC LED_A LED_KH/L H/L H/L H/L H/L H/L H/L H/L H/L H/L H/L H/L H/L -模块的电源正端 LCD 驱动电压输入端 并行的指令/数据选择信号;串行的片选信号 并行的读写选择信号;串行的数据口 并行的使能信号;串行的同步时钟 数据 0 数据 1 数据 2 数据 3 数据 4 数据 5 数据 6 数据 7 并/串行接口选择:H-并行;L-串行 空脚 复位 低电平有效 空脚 背光源正极(LED +5 V) 背光源负极(LED 0V)逻辑工作电压(VDD):4.5~5.5V 电源地(GND):0V 工作温度(Ta):0~60℃(常温) / -20~75℃(宽温) 2.2.3 HS12864-15C 液晶模块指令集表 2.8 指令表 1: (RE=0:基本指令集) 指令码 指令 清除 显示 地址 归位 进入 点 设定 显示 状态 开/关 游标 或显 示移 位控 制 功能 设定 设定 CGRAM 0 0 0 0 1 DL X 0 RE AC2 DL=1 X X (必须设为 1) RE=1: 扩充指令集动作 RE=0: 基本指令集动作 AC1 AC0 设定 CGRAM 地址到地址计数器(AC) 0 0 0 0 0 1 S/C R/L X X 设定游标的移动与显示的移位控制位 元;这个指令并不改变 DDRAM 的内容 0 0 0 0 0 0 1 D C B 0 0 0 0 0 0 0 1 I/D S RS 0 RW 0 DB7 0 DB6 0 DB5 0 DB4 0 DB3 0 DB2 0 DB1 0 DB0 1 说明 将 DDRAM 填满“20H” ,并且设定 DDRAM 的地址计数器(AC)到“00H” 设定 DDRAM 的地址计数器 (AC)“00H” 到 , 0 0 0 0 0 0 0 0 1 X 并且将游标移到开头原点位置;这个指 令并不改变 DDRAM 的内容 指定在资料的读取与写入时,设定游标 移动方向及指定显示的移位 D=1:整体显示 ON C=1:游标 ON B=1:游标位置 ON0001AC5AC4AC3第 10 页 共 52 页 陕西理工学院毕业设计地址 设定 DDRAM 地址 读取 忙碌 标志 (BF) 和地 址 写资 料到 RAM 读 出 RAM 的 值 1 1 D7 D6 D5 D4 D3 D2 D1 D0 从 1 0 D7 D6 D5 D4 D3 D2 D1 D0 写入资料到内部的 RAM (DDRAM/CGRAM/IRAM/GDRAM) 内 部 RAM 读 取 资 料 0 1 BF AC6 AC5 AC4 AC3 AC2 AC1 AC0 读取忙碌标志(BF)可以确认内部动作 是否完成,同时可以读出地址计数器 (AC)的值 0 0 1 AC6 AC5 AC4 AC3 AC2 AC1 AC0 设定 DDRAM 地址到地址计数器(AC)(DDRAM/CGRAM/IRAM/GDRAM)表 2.9 指令表―2: (RE=1:扩充指令集) 指令 待命模 式 卷动地 址或 IRAM 地 址选择 反白选 择 睡眠模 式 扩充功 能设定 设定 IRAM 地 址或卷 动地址 设定绘 图 RAM 地 址 备注: ①当模块在接受指令前,微处理顺必须先确认模块内部处于非忙碌状态,即读取 BF 标志时 BF 需为 0,方可接受 新的指令;如果在送出一个指令前并不检查 BF 标志,那么在前一个指令和这个指令中间必须延迟一段较长的时间, 即是等待前一个指令确实执行完成,指令执行的时间请参考指令表中的个别指令说明。 0 0 1 AC6 AC5 AC4 AC3 AC2 AC1 AC0 设定 CGRAM 地址到地址计数器 (AC) 0 0 0 1 AC5 AC4 AC3 AC2 AC1 AC0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 SL R1 X R0 X 选择 4 行中的任一行作反白显 示,并可决定反白与否 SL=1:脱离睡眠模式 SL=0:进入睡眠模式 RE=1:扩充指令集动作 0 0 0 0 1 1 X 1 RE G 0 RE=0:基本指令集动作 G=1 :绘图显示 ON G=0 :绘图显示 OFF SR=1: AC5―AC0 为垂直卷动地址 SR=0:AC3―AC0 为 ICON IRAM 地 址 0 0 0 0 0 0 0 0 1 SR SR=1:允许输入垂直卷动地址 SR=0:允许输入 IRAM 地址 指令码 RS 0 RW 0 DB7 0 DB6 0 DB5 0 DB4 0 DB3 0 DB2 0 DB1 0 DB0 1 说明 将 DDRAM 填满“20H” ,并且设定 DDRAM 的地址计数器(AC)到 “00H”第 11 页 共 52 页 陕西理工学院毕业设计②“RE”为基本指令集与扩充指令集的选择控制位元,当变更“RE”位元后,往后的指令集将维持在最后的状 态,除非再次变更“RE”位元,否则使用相同指令集时,不需每次重设“RE”位元。具体指令介绍: (1)清除显示 CODE: RW RS DB7L L LDB6DB5LDB4LDB3LDB2LDB1LDB0L H功能:清除显示屏幕,把 DDRAM 位址计数器调整为“00H” (2)位址归位 CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1L L L L L L L LDB0H X功能:把 DDRAM 位址计数器调整为“00H”,游标回原点,该功能不影响显示 DDRAM (3)位址归位 CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0L L L L L L L H I/D S功能:把 DDRAM 位址计数器调整为“00H”,游标回原点,该功能不影响显示 DDRAM 功能:执行 该命令后,所设置的行将显示在屏幕的第一行。显示起始行是由 Z 地址计数器控制的,该命令自动 将 A0-A5 位地址送入 Z 地址计数器,起始地址可以是 0-63 范围内任意一行。Z 地址计数器具有循环 计数功能,用于显示行扫描同步,当扫描完一行后自动加一。 (4)显示状态 开/关 CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0L L L L L L H D C B功能: D=1;整体显示 ON (5)游标或显示移位控制 CODE: RW RS DB7 DB6L L LC=1;游标 ON DB5LB=1;游标位置 ON DB2S/CDB4LDB3HDB1R/LDB0X X功能:设定游标的移动与显示的移位控制位:这个指令并不改变 DDRAM 的内容 (6)功能设定 CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0L L L L H DL X 0 RE X X功能:DL=1(必须设为 1) (7)设定 CGRAM 位址 CODE: RW RS DB7 DB6L L LRE=1;扩充指令集动作 DB5HRE=0:基本指令集动作 DB1AC2DB4AC5DB3AC4DB2AC3DB0AC1 AC0功能:设定 CGRAM 位址到位址计数器(AC) (8)设定 DDRAM 位址 CODE: RW RS DB7 DB6 DB5 DB4 DB3L L H AC6 AC5 AC4DB2AC3DB1AC2DB0AC1 AC0功能:设定 DDRAM 位址到位址计数器(AC) (9)读取忙碌状态(BF)和位址 CODE: RW RS DB7 DB6 DB5 DB4 DB3L H BF AC6 AC5 AC4DB2AC3DB1AC2DB0AC1 AC0功能:读取忙碌状态(BF)可以确认内部动作是否完成,同时可以读出位址计数器(AC)的值 (10)写资料到 RAM CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0H L D7 D6 D5 D4 D3 D2 D1 D0功能:写入资料到内部的 RAM(DDRAM/CGRAM/TRAM/GDRAM)第 12 页 共 52 页 陕西理工学院毕业设计(11)读出 RAM 的值 CODE: RW RS DB7H HDB6D7DB5D6DB4D5DB3D4DB2D3DB1D2DB0D1 D0功能:从内部 RAM 读取资料(DDRAM/CGRAM/TRAM/GDRAM) (12)待命模式(12H) CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1L L L L L L L LDB0L H功能:进入待命模式,执行其他命令都可终止待命模式 (13)卷动位址或 IRAM 位址选择(13H) CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2L L L L L L LDB1LDB0H SR功能:SR=1;允许输入卷动位址 (14)反白选择(14H) CODE: RW RS DB7 DB6 DB5L L L LSR=0;允许输入 IRAM 位址 DB4LDB3LDB2LDB1HDB0R1 R0功能:选择 4 行中的任一行作反白显示,并可决定反白的与否 (15)睡眠模式(015H) CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1L L L L L L H SLDB0X X功能:SL=1;脱离睡眠模式 (16)扩充功能设定(016H) CODE: RW RS DB7 DB6L L LSL=0;进入睡眠模式 DB5LDB4HDB3HDB2XDB1DB0G L1 RE功能:RE=1;扩充指令集动作 RE=0;基本指令集动作 G=1;绘图显示 ON G=0;绘图显示 OFF (17)设定 IRAM 位址或卷动位址(017H) CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0L L L H AC5 AC4 AC3 AC2 AC1 AC0功能:SR=1;AC5~AC0 为垂直卷动位址 SR=0;AC3~AC0 写 ICONRAM 位址 (18)设定绘图 RAM 位址(018H) CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0L L H AC6 AC5 AC4 AC3 AC2 AC1 AC0功能:设定 GDRAM 位址到位址计数器(AC) 显示坐标关系图 2.4 图形显示坐标 注:(1)水平方向 X―以字节单位 (2) 垂直方向 Y―以位为单位第 13 页 共 52 页 陕西理工学院毕业设计表 3.10 汉字显示坐标 行数 Line1 Line2 Line3 Line4 80H 90H 88H 98H 81H 91H 89H 99H 82H 92H 8AH 9AH X 坐标 83H 93H 8BH 9BH 84H 94H 8CH 9CH 85H 95H 8DH 9DH 86H 96H 8EH 9EH 87H 97H 8FH 9FH2.2.4 LCD 显示硬件电路设计 以单片机 AT89S52 的 P0 口作为 LCD 的数据输送口, P0.0-P0.7 分别连接 LCD 的 DB0-DB7 口。 P2.1 口作为 LCD 的并行使能信号控制口,与 E 口相连。P2.2 口作为 LCD 的并行的读写选择信号控制口, 与 RW 口相连。P2.3 口作为 LCD 的并行的指令/数据选择信号控制口,与 RS 口相连。LCD 的 VCC 端接 电源+5V 端, 端接电源负端 GND (0V) LCD 的背光选择口 A 接电源的+5V 端, K 接电源的负端 。 口 (0V) 。 其余接口全部悬空,连接图如 2.5 所示 其中由于 Proteus 6 Professional 仿真软件的元器件库没有 HS12864-15C 这款 LCD,故以同类型 12864 代替,连接时以实物接口为准。图 2.5 显示部分硬件连接图2.3 温度采集模块设计 2.3.1 温度传感器的基本知识 温度是工业生产过程中最常见的、最基本的参数之一。任何化学反应和物理变化都与温度有关, 它约占生产过程中全部过程参数的 50%左右。所以,温度检测与控制是过程控制工程的重要任务之 一。 测量温度的方法有很多,从测量体与被测介质接触与否来分,有接触式测温和非接触式测温两 类。接触式测温的主要特点是方法简单、可靠、测温精度高,但是由于测温元件要与被测介质接触 进行交换,才能达到热平衡,因而产生了滞后现象;此外测量体可能与被测介质产生化学反应;测 量体还会受到耐高温材料的限制,不能应用于很高温度的测量。非接触式测温是通过接受被测介质 发出的辐射热来判断温度的,非接触式测温的主要特点是测温上限原则上不受限制、测温速度较快、 可以对运动体进行测量。但是它要受到物体的辐射率、距离、烟尘和水汽等因素影响,测量误差较 大。 2.3.2 传感器的选用及系统中的应用 现代传感器在原理与结构上千差万别,如何根据具体的测量目的、测量对象以及测量环境合理 地选用传感器,是在进行某个量的测量时首先要解决的问题。当传感器确定之后,与之相配套的测 量方法和测量设备也就可以确定了。测量结果的成败,在很大程度上取决于传感器的选用是否合理。 (1)根据测量对象与测量环境确定传感器的类型 要进行具体的测量工作,首先要考虑采用何种原理的传感器,这需要分析多方面的因素之后才第 14 页 共 52 页 陕西理工学院毕业设计能确定。因为,即使是测量同一物理量,也有多种原理的传感器可供选用,哪一种原理的传感器更 为合适,则需要根据被测量的特点和传感器的使用条件考虑以下一些具体问题:量程的大小;被测 位置对传感器体积的要求;测量方式为接触式还是非接触式;信号的引出方法,有线或是非接触测 量;传感器的来源,国产还是进口,价格能否承受,还是自行研制。在考虑上述问题之后就能确定 选用何种类型的传感器,然后再考虑传感器的具体性能指标。 (2)灵敏度的选择 通常,在传感器的线性范围内,希望传感器的灵敏度越高越好。因为只有灵敏度高时,与被测 量变化对应的输出信号的值较大,有利于信号处理。但要注意的是,传感器的灵敏度高,与被测量 无关的外界噪声也容易混入,也会被放大系统放大,影响测量精度。因此,要求传感器本身应具有 较高的信噪比,尽量减少从外界引入的干扰信号。 传感器的灵敏度是有方向性的。当被测量是单向量,而且对其方向性要求较高,则应选择其它 方向灵敏度小的传感器;如果被测量是多维向量,则要求传感器的交叉灵敏度越小越好。 (3)频率响应特性 传感器的频率响应特性决定了被测量的频率范围,必须在允许频率范围内保持不失真的测量条 件,实际上传感器的响应总是有―定延迟,希望延迟时间越短越好。传感器的频率响应高,可测的 信号频率范围就宽,而由于受到结构特性的影响,机械系统的惯性较大,因有频率低的传感器可测 信号的频率较低。在动态测量中,应根据信号的特点(稳态、瞬态、随机等)响应特性,以免产生过 火的误差 (4)线性范围 传感器的线形范围是指输出与输入成正比的范围。以理论上讲,在此范围内,灵敏度保持定值。 传感器的线性范围越宽,则其量程越大,并且能保证一定的测量精度。在选择传感器时,当传感器 的种类确定以后首先要看其量程是否满足要求。 但实际上,任何传感器都不能保证绝对的线性,其线性度也是相对的。当所要求测量精度比较 低时,在一定的范围内,可将非线性误差较小的传感器近似看作线性的,这会给测量带来极大的方 便。 (5)稳定性 传感器使用一段时间后,其性能保持不变化的能力称为稳定性。影响传感器长期稳定性的因素 除传感器本身结构外,主要是传感器的使用环境。因此,要使传感器具有良好的稳定性,传感器必 须要有较强的环境适应能力。 在选择传感器之前,应对其使用环境进行调查,并根据具体的使用环境选择合适的传感器,或 采取适当的措施,减小环境的影响。传感器的稳定性有定量指标,在超过使用期后,在使用前应重 新进行标定,以确定传感器的性能是否发生变化。在某些要求传感器能长期使用而又不能轻易更换 或标定的场合,所选用的传感器稳定性要求更严格,要能够经受住长时间的考验。 (6)精度 精度是传感器的一个重要的性能指标,它是关系到整个测量系统测量精度的一个重要环节。传 感器的精度越高,其价格越昂贵,因此,传感器的精度只要满足整个测量系统的精度要求就可以, 不必选得过高。这样就可以在满足同一测量目的的诸多传感器中选择比较便宜和简单的传感器。 如果测量目的是定性分析的,选用重复精度高的传感器即可,不宜选用绝对量值精度高的;如 果是为了定量分析,必须获得精确的测量值,就需选用精度等级能满足要求的传感器。对某些特殊 使用场合,无法选到合适的传感器,则需自行设计制造传感器,自制传感器的性能应满足使用要求。 热电偶和热电阻适合大多数高温测量,但设计人员必须为特定的应用选择恰当的传感器,热电 偶的温度相应特性较好,成本较底,可测量较高的温度;热电阻具有较高的精度,较好的长期稳定 性,工作温度范围:-200 摄氏度至 850 摄氏度。只要经过适当的数据处理就可以传输,显示并纪录 其温度输出。因为热电阻的阻值和温度呈正比关系,设计人员只需要将已知电流流过该电阻就可以 得到与温度成正比的输出电压。根据已知的电阻-温度关系,就可以计算出被测温度值。 电阻值随温度的变化称为温漂系数,绝大多数金属材料的温漂系数都是正数,而且许多纯金属第 15 页 共 52 页 陕西理工学院毕业设计材料的温漂系数在一定温度范围内保持恒定。所以,热电阻是一种稳定的高精度,并且具有线性响 应的温度检测器。具体应用中选哪一种金属材料(铂,铜,镍等)取决于被测温度范围。 2.3.3 温度传感器的选择 温度采集采用美国 DALIAS 公司生产的单总线数字温度传感器 DS18B20,该数字温度传感器,具 有 3 引脚 TO-92 小体积封装形式;温度测量范围为-55℃~+125℃,可编程为 9 位~12 位 A/D 转 换精度,测温分辨率可达 0.0625℃,被测温度用符号扩展的 16 位数字量方式串行输出;其工作电 源既可在远端引入,也可采用寄生电源方式产生;多个 DS18B20 可以并联到 3 根或 2 根线上,CPU 只需一根端口线就能与诸多 DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电 路。以上特点使 DS18B20 非常适用于远距离多点温度检测系统。 2.3.4 温度传感器 DS18B20 工作原理 DS18B20 的读写时序和测温原理与 DS18B20 相同,只是得到的温度值的位数因分辨率不同而不 同,且温度转换时的延时时间由 2s 减为 750ms。DS18B20 测温原理如图 2.6 所示。图中低温度系数 晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器 1。高温度系数晶振随 温度变化其振荡率明显改变,所产生的信号作为计数器 2 的脉冲输入。计数器 1 和温度寄存器被预 置在-55℃所对应的一个基数值。计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数,当计 数器 1 的预置值减到 0 时,温度寄存器的值将加 1,计数器 1 的预置将重新被装入,计数器 1 重新 开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器 2 计数到 0 时,停止温度寄 存器值的累加,此时温度寄存器中的数值即为所测温度。图 2.6DS18B20 测温原理框图2.3.5 DS18B20 的使用 多点温度传感器的外部连接图如下:图 2.7 多点温度传感器的外部连接图而经过单线接口访问 DS18B20 的协议 protocol 如下: ?初始化第 16 页 共 52 页 陕西理工学院毕业设计?ROM 操作命令 ?存贮器操作命令 ?处理/数据 初始化: 单线总线上的所有处理均从初始化序列开始初始化序列包括总线主机发出一复位脉冲接着由从 属器件送出存在脉冲。 ROM 操作命令: 一旦总线主机检测到从属器件的存在它便可以发出器件 ROM 操作命令之一所有 ROM 操作命令均 为 8 位长。 Read ROM(读 ROM): 此命令允许总线主机读 DS18B20 的 8 位产品系列编码唯一的 48 位序列号以及 8 位的 CRC 此命令 只能在总线上仅有一个 DS18B20 的情况下可以使用如果总线上存在多于一个的从属器件那么当所有 从片企图同时发送时将发生数据冲突的现象漏极开路会产生线与的结果。 Match ROM(符合 ROM): 符合 ROM 命令后继以 64 位的 ROM 数据序列允许总线主机对多点总线上特定的 DS18B20 寻址只有 与 64 位 ROM 序列严格相符的 DS18B20 才能对后继的存贮器操作命令作出响应所有与 64 位 ROM 序列 不符的从片将等待复位脉冲此命令在总线上有单个或多个器件的情况下均可使用。 Skip ROM(跳过 ROM): 在单点总线系统中此命令通过允许总线主机不提供 64 位 ROM 编码而访问存储器操作来节省时间 如果在总线上存在多于一个的从属器件而且在 Skip ROM 命令之后发出读命令那么由于多个从片同时 发送数据会在总线上发生数据冲突漏极开路下拉会产生线与的效果。 Search ROM(搜索 ROM): 当系统开始工作时总线主机可能不知道单线总线上的器件个数或者不知道其 64 位 ROM 编码搜索 ROM 命令允许总线主机使用一种消去 elimination 处理来识别总线上所有从片的 64 位 ROM 编码。 Alarm Search(告警搜索): 此命令的流程与搜索 ROM 命令相同但是仅在最近一次温度测量出现告警的情况下 DS18B20 才对 此命令作出响应告警的条件定义为温度高于 TH 或低于 TL 只要 DS18B20 一上电告警条件就保持在设 置状态直到另一次温度测量显示出非告警值或者改 TH 或 TL 的设置使得测量值再一次位于允许的范 围之内贮存在 EEPROM 内的触发器值用于告警。 I/O 信号: DS18B20 要求严格的协定 protocols 来确保数据的完整性协议由几种单线上信号类别型组成复 位脉冲存在脉冲写 0 写 1 读 1 和读 1 所有这些信号除了存在脉冲之外均由总线主机产生开始与 DS18B20 的任何通信所需的初始化序列和图 11 所示后继以存在脉冲的复位脉冲表示 DS18B20 已经准 备好发送或接收给出正确的 ROM 命令和存贮器操作命令的数据总线主机发送 Tx 一复位脉冲最短为 480s 的低电平信号接着总线主机便释放此线并进入接收方式 Rx 单线总线经过 5k 的上拉电阻被拉至 高电平状态在检测到 I/O 引脚上的上升沿之后 DS18B20 等待 15-60s 并且接着发送存在脉冲 60-240 s 的低电平信号。 存贮器操作命令: 读暂存存储器 Read Scratchpad 此命令读暂存存储器的内容读开始于字节 0 并继续经过暂存存储器直至第九个字节字节 8 CRC 被读出为止如果不是所有位置均可读那么主机可以在任何时候发出一复位以中止读操作。 复制暂存存储器 Copy Scratchpad 此命令把暂存存储器复制入 DS18B20 的 E2 存储器把温度触发器字节存贮入非易失性存储器如果 总线主机在此命令之后发出读时间片那么只要 DS18B20 正忙于把暂存存储器复制入 E2 它就会在总线 上输出 0 当复制过程完成之后它将反回 1 如果由寄生电源供电总线主机在发出此命令之后必须能立 即强制上拉至少 10ms。第 17 页 共 52 页 陕西理工学院毕业设计温度变换 Convert T 此命令开始温度变换不需要另外的数据温度变换将被执行接着 DS18B20 便保持在空闲状态如果 总线主机在此命令之后发出读时间片那么只要 DS18B20 正忙于进行温度变换它将在总线上输出 0 当 温度变换完成时它便返回 1 如果由寄生电源供电那么总线主机在发出此命令之后必须立即强制上拉 至少 2 秒。 重新调出 E2 Recall E2 此命令把贮存在 E2 中温度触发器的值重新调至暂存存储器这种重新调出的操作在对 DS18B20 上 电时也自动发生因此只要器件一接电暂存存储器内就有有效的数据可供使用在此命令发出之后对于 所发出的第一个读数据时间片器件都将输出其忙的标志 0 =忙 1 =准备就绪。 读电源 Read Power Supply 对于在此命令送至 DS18B20 之后所发出的第一读出数据的时间片器件都会给出其电源方式的信 号 0=寄生电源供电 1=外部电源供电。 2.3.6 温度采集模块硬件电路设计 温度采集采用美国 DALIAS 公司生产的单总线数字温度传感器 DS18B20,它具有微型化、低功 耗、高性能、抗干扰能力强、易于与微处理器接口等特点;传感器直接输出的就是温度信号的数字 值,单总线数字温度传感器 DS18B20 有一个唯一的地址编码,为处理器通过对器件的寻址,就可以 得到响应时刻的温度值,从而简化了信号采集系统的电路。 单总线数字温度传感器 DS18B20 与 AT89C52 单片机接口电路如图 2.8 所示.DQ 端与单片机 P2.0 口相连接图 2.8 温度采集部分硬件图2.4 系统硬件电路设计 本电路总体设计包括三部分:主机控制部分(STC89C52) 、温度采样与显示电路、pc 与单片机 通信电路。 2.4.1 主机控制部分 此部分是电路的核心部分,系统的控制采用了单片机 89C52。单片机 89C52 内部有 8KB 单元的 程序存储器及 512 字节的数据存储器。因此系统不必扩展外部程序存储器和数据存储器这样大大的 减少了系统硬件部分,硬件电路图如 2.9 所示:图 2.9 主机控制部分电路图第 18 页 共 52 页 陕西理工学院毕业设计2.4.2 温度采样与显示电路 系统的信号采集与显示电路主要由温度传感器 DS18B20 和 12864 液晶显示模块两部分组 成,具体硬件电路的接法如图 2.10 所示。图 2.10温度采集电路图2.4.3 RS232 通讯接口电路设计 由于 RS232 接口逻辑“1”电平在-5V 到-15V 之间,逻辑“0”电平在+5V 到+15V 之间,与下 位机连接时必须进行电平转换,电平转换芯片我们采用美信公司专门为电脑的 RS232 标准串口设计 的单电源电平转换芯片 MAX232。图 2.11 max232 管脚图MAX232 的引脚按功能可分为三部分。第一部分是电荷泵电路。由 1、2、3、4、5、6 脚和 4 只电容构成。功能是产生+12v 和-12v 两个电源,提供给 RS-232 串口电平的需要。第二部分是数据 转换通道。 7、 9、 11、 13、 脚构成两个数据通道。 其中 13 脚 由 8、 10、 12、 14 (R1IN) 12 脚 、 (R1OUT) 、 11 脚(T1IN) 、14 脚(T1OUT)为第一数据通道。8 脚(R2IN) 脚(R2OUT) 、9 、10 脚(T2IN) 、7 脚(T2OUT)为第二数据通道。TTL/CMOS 数据从 T1IN、T2IN 输入转换成 RS-232 数据从 T1OUT、 T2OUT 送到电脑 DB9 插头;DB9 插头的 RS-232 数据从 R1IN、R2IN 输入转换成 TTL/CMOS 数据 后从 R1OUT、R2OUT 输出。第三部分是供电。15 脚 GND、16 脚 VCC(+5v) 。根据资料说明和应 用需要我们设计的 RS232 接口电平转换电路如图 2.12 所示:图 2.12 max232 与九针口连接图第 19 页 共 52 页 陕西理工学院毕业设计3 系统软件设计3.1 下位机软件设计 系统的控制程序主要分为三个模块:温度采集程序、液晶显示程序、串口通讯程序。温度采集 模块是对 ds18b20 传来的温度进行处理、转换;液晶显示模块是对实时温度值进行显示;串口通讯 模块主要是把采集到的温度值传送到上位机并在显示器上显示。其主程序流程图如图 3.1 所示。图 3.1 下位机程序流程图首先初始化 12864,DS18b20 和串口通讯模块,读取相应序列号的传感器(我们用三个 ds18b20 传感器, 每个传感器具有一个独一无二的序列号, 通过序列号可以区分几号传感器) 然后读取温度, , 进行温度转换,转换好之后,显示在液晶显示屏上。因为串口通讯模块是连接上位机和下位机部分 的媒介,所以此部分在下位机部分未能体现出来。 下来我们分别对各部分模块单独介绍. 3.1.1 液晶显示部分设计 液晶 12864 的程序流程图:第 20 页 共 52 页 陕西理工学院毕业设计开始液晶初始化显示第一屏内容 延时三秒 显示第二屏内容返回图 3.2 液晶 12864 的工作流程图显示模块程序设计,12864LCD 显示屏有 8 根数据线和三根控制线,这 8 跟数据线与单片机 P1 口相连,三根控制线分别与单片机的 P1.0,P1.1,P1.2,相连接,在程序开始后,我们首先对 12864 液晶显示器进行初始化,然后将我们第一屏要显示的内容进行显示,延时三秒后,进行第二屏内容 显示。 LCD12864 在使用前必须先进行初始化,在显示的过程中可以直接调用写命令子程序和写数据子 程序。显示流程图如图 3.2 所示 液晶模块 12864 的工作时序: 在前面已经提过了 HS12854-15C 液晶模块的基本情况和指令集,在软件设计的过程中要了 解他的相关工作时序,如图 3.3 与 3.4。图 3.38 位并口 写操作时序图图 3.48 位并口 读操作时序图3.1.2 温度采集模块部分设计第 21 页 共 52 页 陕西理工学院毕业设计DS18B20 中的温度传感器完成对温度的测量,用 16 位符号扩展的二进制补码读数形式提供, 以 0.0625℃/LSB 形式表达,其中 S 为符号位。例如+125℃的数字输出为 07D0H,+25.0625℃的数 字输出为 0191H,-25.0625℃的数字输出为 FF6FH,-55℃的数字输出为 FC90H。表 3.1 温度转换对应表 TEMPERATURE DIGITAL OUTPUT (Binary) +125℃ +85℃ +25.0625℃ +10.125℃ +0.5℃ 0℃ -0.5℃ -10.125℃ -25.0625℃ -55℃ 01 00 11 H H 00A2H H FFF8H FF5EH FE6FH FC90H DIGITAL OUTPUT (Hex)上表是 ds18b20 温度采集转化得到的 12 位数据,存储在 ds18b20 的两个 8bit 的存储器中,其 其中高四位放在一个存储器中,低八位放入一个存储器中,2 进制中的前面 5 位是符号位,如果测 的温度值大于或等于 0 这五位等于 0,只要将测的值乘以 0.0625 便可得到实际温度值,如果温度小 于 0,这 5 位为 1,测到的数值需取反加 1 再乘以 0.0625 之后得到的数值才是实际的温度值。 由于 DS18B20 采用的是 1-Wire 总线协议方式,即在一根数据线实现数据的双向传输,而对 AT89S51 单片机来说, 我们必须采用软件的方法来模拟单总线的协议时序来完成对 DS18B20 芯片的 访问。由于 DS18B20 是在一根 I/O 线上读写数据,因此,对读写的数据位有着严格的时序要求。 DS18B20 有严格的通信协议来保证各位数据传输的正确性和完整性。 该协议定义了几种信号的时序: 初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一 次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命 令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。 开始跳过 ROM接收温度转换数据处理,送显示部分结束第 22 页 共 52 页 陕西理工学院毕业设计图 3.5 DS18B20 流程图DS18B20 的工作时序: DS18B20 的一线工作协议流程是:初始化→ROM 操作指令→存储器操作指令→数据传输。其 工作时序包括初始化时序、写时序和读时序,以及流程图。如图 3.9(a)(b)(c)所示。 (1)初始化 18b20 初始化在某种意义上其实就是一次访问 ds18b20 的开始, 或者可说成开始信号; 在初始化 过程中,首先通过主机将 ds18b20 拉低至少 480us,以产生复位脉冲(TX),然后主机释放总线并进入 接收(RX)模式,当总线被释放后,5000 欧的上拉电阻将单总线拉高 ds18b20 检测到这个上升沿之 后,延时 15~60us 产生应答脉冲。初始化时序图见下图。 (2)ROM 操作命令 一旦总线主机检测到从属器件的存在,它便可以发出器件 ROM 操作命令之一。所有 ROM 操作 命令均为 8 位长。这些命令列表如下: Read ROM(读 ROM)[33h] 此命令允许总线主机读 DS18B20 的 8 位产品系列编码, 唯一的 48 位序列号, 以及 8 位的 CRC。 此命令只能在总线上仅有一个 DS18B20 的情况下可以使用。如果总线上存在多于一个的从属器件, 那么当所有从片企图同时发送时将发生数据冲突的现象(漏极开路会产生线与的结果) 。 Match ROM( 符合 ROM)[55h] 此命令后继以 64 位的 ROM 数据序列,允许总线主机对多点总线上特定的 DS18B20 寻址。只 有与 64 位 ROM 序列严格相符的 DS18B20 才能对后继的存贮器操作命令作出响应。 所有与 64 位 ROM 序列不符的从片将等待复位脉冲。此命令在总线上有单个或多个器件的情况下均可使用。 Skip ROM( 跳过 ROM )[CCh] 在单点总线系统中,此命令通过允许总线主机不提供 64 位 ROM 编码而访问存储器操作来节省 时间。如果在总线上存在多于一个的从属器件而且在 Skip ROM 命令之后发出读命令,那么由于多 个从片同时发送数据,会在总线上发生数据冲突(漏极开路下拉会产生线与的效果) 。 Search ROM( 搜索 ROM)[F0h] 当系统开始工作时, 总线主机可能不知道单线总线上的器件个数或者不知道其 64 位 ROM 编码。 搜索 ROM 命令允许总线控制器用排除法识别总线上的所有从机的 64 位编码。 Alarm Search(告警搜索)[ECh] 此命令的流程与搜索 ROM 命令相同。 但是, 仅在最近一次温度测量出现告警的情况下, DS18B20 才对此命令作出响应。告警的条件定义为温度高于 TH 或低于 TL。只要 DS18B20 一上电,告警条 件就保持在设置状态,直到另一次温度测量显示出非告警值或者改变 TH 或 TL 的设置,使得测量值 再一次位于允许的范围之内。贮存在 EEPROM 内的触发器值用于告警。 (3)存储器操作命令 Write Scratchpad(写暂存存储器)[4Eh] 这个命令向 DS18B20 的暂存器中写入数据,开始位置在地址 2。接下来写入的两个字节将被 存到暂存器中的地址位置 2 和 3。可以在任何时刻发出复位命令来中止写入。 Read Scratchpad(读暂存存储器)[BEh] 这个命令读取暂存器的内容。读取将从字节 0 开始,一直进行下去,直到第 9(字节 8,CRC) 字节读完。如果不想读完所有字节,控制器可以在任何时间发出复位命令来中止读取。 Copy Scratchpad(复制暂存存储器)[48h] 这条命令把暂存器的内容拷贝到 DS18B20 的 E2 存储器里,即把温度报警触发字节存入非易 失性存储器里。如果总线控制器在这条命令之后跟着发出读时间隙,而 DS18B20 又正在忙于把暂 存器拷贝到 E2 存储器,DS18B20 就会输出一个“0”,如果拷贝结束的话,DS18B20 则输出“1”。如 果使用寄生电源,总线控制器必须在这条命令发出后立即起动强上拉并最少保持 10ms。第 23 页 共 52 页 陕西理工学院毕业设计Convert T(温度变换)[44h] 这条命令启动一次温度转换而无需其他数据。温度转换命令被执行,而后 DS18B20 保持等待 状态。如果总线控制器在这条命令之后跟着发出读时间隙,而 DS18B20 又忙于做时间转换的话, DS18B20 将在总线上输出“0”,若温度转换完成,则输出“1”。如果使用寄生电源,总线控制器必须 在发出这条命令后立即起动强上拉,并保持 500ms。 Recall E2(重新调整 E2)[B8h] 这条命令把贮存在 E2 中温度触发器的值重新调至暂存存储器。这种重新调出的操作在对 DS18B20 上电时也自动发生,因此只要器件一上电,暂存存储器内就有了有效的数据。在这条命令 发出之后,对于所发出的第一个读数据时间片,器件会输出温度转换忙的标识:“0”=忙,“1”=准备就 绪。 Read Power Supply(读电源)[B4h] 对于在此命令发送至 DS18B20 之后所发出的第一读数据的时间片,器件都会给出其电源方式 的信号:“0”=寄生电源供电,“1”=外部电源供电。图 3.6 DS18B20 读数据流程图(a)初始化时序第 24 页 共 52 页 陕西理工学院毕业设计(b)写时序(c)读时序 图 3.7 DS18B20 的工作时序图3.1.3 串口通讯(下位机部分)软件设计 串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通 信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远 距离通信。比如 IEEE488 定义并行通行状态时,规定设备线总长不得超过 20 米,并且任意两个设备 间的长度不得超过 2 米;而对于串口而言,长度可达 1200 米。典型地,串口用于 ASCII 码字符的传 输。通信使用 3 根线完成: (1)地线, (2)发送, (3)接收。由于串口通信是异步的,端口能够在 一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重 要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配: a,波特率:这是一个衡量通信速度的参数。它表示每秒钟传送的 bit 的个数。例如 300 波特表 示每秒钟发送 300 个 bit。当我们提到时钟周期时,我们就是指波特率例如如果协议需要 4800 波特 率,那么时钟是 4800Hz。这意味着串口通信在数据线上的采样率为 4800Hz。通常电话线的波特率 为 1 和 36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常 用于放置的很近的仪器间的通信,典型的例子就是 GPIB 设备的通信。 b,数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是 8 位的,标准的值是 5、7 和 8 位。如何设置取决于你想传送的信息。比如,标准的 ASCII 码是 0~ 127(7 位) 。扩展的 ASCII 码是 0~255(8 位) 。如果数据使用简单的文本(标准 ASCII 码) ,那么 每个数据包使用 7 位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实 际数据位取决于通信协议的选取,术语“包”指任何通信的情况。 c,停止位:用于表示单个包的最后一位。典型的值为 1,1.5 和 2 位。由于数据是在传输线上定第 25 页 共 52 页 陕西理工学院毕业设计时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停 止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多, 不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。 d,奇偶校验位:在串口通信中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然 没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位) ,用一个 值确保传输}

我要回帖

更多关于 单片机电压采样电路 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信