基于单片机的多点温度采集与记录系统
基于单片机的多通道温度精确采集系统设计
213 系统的功能流程 图 4 为系统的功能流程图, 系统开机后首先进行
初始化处理, 进而判断M CU 的约定管脚电平情况, 以 确定进行数据采集还是上传。 如判断为采集, 则进行 相应的程控顺序执行数据的采集、运算放大、A D 转 换及存储任务。如判断为上传, 则响应传输子程序, 判 断上位机 (PC 机) 发来的握手信号, 符合约定则进行 数据的上行传送。
(参考文献和英文摘要转第 21 页)
2008 年第 2 期 机 械 工 程 与 自 动 化
·21·
次保存到产品数据库时只需将零件数量累加。
图 2 数据提取与入库过程图
图 3 属性块遍历对话框
6 结束语 标题栏、 明细表信息以产品数据的, 用户可以根据零件 代号快速检索到零件图号、 图纸文件的存取路径等信
图 2 M A X 191 外围电路图
212 AD 590 T I 变换器 AD 590 是常用的T I(温度 电流) 变换器, 是一个
二端器件, 成本低。它是以电流为输出来指示温度, 使 用时不需要考虑传输线上的电压信号损失和噪声干
扰, 具有很高的测量精度, 广泛应用于远距离测温、远 距离控温和多点测温等控制系统中。图3 为AD 590 的 基本接法。
[ 4 ] 刘小康, 彭东林, 张兴红. 12 位A D 转换器M A X 191 及其 应用[J ]. 电子设计应用, 2002 (11) : 90291.
[ 5 ] 张西. 基于M CS- 51 单片机的测温系统[J ]. 测控技术与 设备, 2002 (6) : 31233.
D esign of the Prec ise M ulti-channel Tem pera ture Collection System Ba sed on M CU
基于51单片机的温度监测系统(DS18B20)
DS18B20读时序
所有的读时隙都由拉低总线,持续至少1us后再释放总线(由于上拉电阻的作用,总线恢复为 高
配置寄存器
8 位 CRC 生成器
DS18B20的时序
DS18B20复位时序
DS18B20的所有通信都由由复位脉冲组成的初始化序列开始。该初始化序列由主 机发出,后跟由DS18B20发出的存在脉冲(presence pulse)。在初始化步骤中,总线 上的主机通过拉低单总线至少480μs来产生复位脉冲。然后总线主机释放总线并进入接收 模式。当总线释放后,5kΩ的上拉电阻把单总线上的电平拉回高电平。当DS18B20检测 到上升沿后等待15到60us,发出存在脉冲,拉低总线60-240us至此,初始化和存在时序 完毕。时序图如下:
1.主控制器电路和测温
电路的设计
主控制器电路由AT89S52 及外围时钟和复位电路构成, 测温电路由DS18B20、报警 电路组成。AT89C52是此硬 件电路设计的核心,通过 AT89S52的管脚P2.7与 DS18B20相连,控制温度的 读出和显示。硬件电路的功 能都是与软件编程相结合而 实现的。具体电路原理图如 右图2所示。
送1,以拉低总线的方式表示发送0.当发送0的时候,DS18B20在读时隙的末期将会释放总线,总线
将会被上拉电阻拉回高电平(也是总线空闲的状态)。DS18B20输出的数据在下降沿(下降沿产 生读时隙)产生后15us后有效。因此,主机释放总线和采样总线等动作要在15μs内完成。
基于51单片机的多点温度控制系统设计
基于51单片机的多点温度控制系统设计作者:奚建荣来源:《现代电子技术》2009年第02期摘要:针对目前壁挂炉采暖中温度控制不准确的现状,以单片机为控制中心,采用Dallas 公司的“一线总线”数字化温度传感器DS18B20以及脉冲控制器件,设计一款多点测温及温度控制系统;系统能够同时测量多点温度,并根据温度设定实时控制各回路通断及壁挂炉的燃烧与停止,从而进一步提高居室的舒适性及采暖系统的经济性。
关键词:51单片机;DS18B20;多点温度检测;温度控制系统中图分类号:TP274文献标识码:B文章编号:1004 373X(2009)02 186 03Multi-point Temperature Control System Based on 51 Single Chip ComputerXI Jianrong(Weinan Teachers University,Weinan,714000,China)Abstract:A multi-point temperature control system based on MCS-51 single chip computer is designed to solve the inaccurate problem of current temperature control ing DS18B20,"1-Wire" digital thermometer,and the component controlled by electric pulse.According to the temperatures got from multi-pointtemperature sensor,it can control heating water circuit and the burning or shutting of the stove.It makesthe room more comfortable and enhances the efficiency of the heating system.Keywords:single chip computer;DS18B20;multi-point temperature measurement;temperature control system随着生活水平的提高,人们对家居需求由面积需求变为舒适需求。
基于单片机的多点无线温度监控系统
基于单片机的多点无线温度监控系统1. 引言1.1 背景介绍单片机是一种可以完成特定功能的微型计算机芯片,广泛应用于各种智能设备中。
随着物联网技术的不断发展,人们对于无线监控系统的需求也越来越大。
在很多场合中,需要对环境温度进行监控,以确保设备的正常运行和人员的安全。
传统的有线温度监控系统存在布线复杂、安装维护困难等问题,因此基于单片机的无线温度监控系统应运而生。
基于单片机的多点无线温度监控系统可以实现对多个监测点的温度数据实时监控和远程传输,极大地方便了用户对于温度的监测和管理。
通过该系统,用户可以随时随地通过手机或电脑等终端设备查看各监测点的温度情况,及时发现异常情况并进行处理。
这对于工业生产、医疗保健、农业种植等领域都具有重要的意义。
本研究旨在设计并实现一种基于单片机的多点无线温度监控系统,为用户提供便捷、高效的温度监测解决方案。
通过对系统架构设计、硬件设计、软件设计、无线通信协议等方面的研究,探讨系统在温度监控领域的应用前景和发展趋势。
【字数:239】1.2 研究意义温度监控在各种领域中都具有重要意义,例如工业生产、医疗保健、环境监测等。
随着科技的不断发展,人们对温度监控系统的要求也越来越高,希望能够实现实时、精准的温度监测。
基于单片机的多点无线温度监控系统的研究具有重要的实用价值和研究意义。
这种系统可以实现多点温度监测,可以同时监测多个位置的温度数据,实现对整个区域的全面监控。
这对于一些需要对多个点位进行监测的场景非常重要,能够提高监测的效率和准确性。
无线通信技术的应用使得温度数据的传输更加方便快捷。
不再需要通过有线连接来传输数据,可以实现远距离传输温度数据,大大提高了系统的灵活性和便利性。
通过研究基于单片机的多点无线温度监控系统,可以促进单片机技术与无线通信技术的结合,推动传感器网络技术的发展,为实现智能化、自动化的监控系统奠定技术基础。
这对于提高生产效率、降低能耗、改善生活质量等方面都具有重要意义。
基于单片机的多路温度采集系统(pdf最终版)
I
Abstract
This paper introduces the basic process of multi-channel temperature acquisition and control system based on 51 single chip microcomputer. This design uses microcontroller and Keil programming software programming and PROTEUS microcontroller simulation software and electronic electrical engineering and other aspects of knowledge, with Keil programming software programming, with PROTEUS microcontroller simulation software simulation. Finally, the physical production, will be downloaded to the MCU, using keil software programming and Proteus Software to simulate, analysis, debugging, design provides a convenient and fast way, greatly reduce the design time. The main function is using I / O port acquisition data from multi-channel temperature and according to the set temperature of the upper and lower limits through drive buzzer alarm, can use the buttons to switch the temperature display and time display, also can in the use process through the button to set the temperature and degree of upper and lower limit of the time, so as to achieve multi-point temperature acquisition and alarm purposes, and time display function. With the rapid development of modern information technology, temperature measurement and control system plays a more and more important role in industry, agriculture and people's daily life, it has a great influence on people's life, has very important significance to research and design so the temperature of the control system. SCM small size, light weight, strong anti-interference ability, environmental requirements is not high, low price, high reliability, flexibility, development is relatively easy. Because of the above advantages, in our country, SCM has been widely used in automatic control, automatic detection, intelligent instruments and meters, household appliances and other aspects. Key words: Single chip microcomputer; multi point temperature measurement; time display; proteus simulation
基于单片机的多点无线温度监控系统
基于单片机的多点无线温度监控系统1. 引言1.1 研究背景在现代社会,温度监控系统在各个领域中发挥着重要作用,例如工业生产、环境监测、医疗保健等。
随着科技的不断发展,基于单片机的多点无线温度监控系统逐渐成为一种趋势。
研究背景部分将深入探讨这一领域的发展现状,以及存在的问题和挑战。
目前,传统的有线温度监控系统存在布线复杂、安装维护困难等问题,限制了其在一些特定场景下的应用。
而无线温度监控系统以其布线简便、实时监测等优势逐渐被广泛应用。
目前市面上的产品多数存在监测范围有限、数据传输不稳定等问题,迫切需要一种更为稳定、可靠的无线温度监控系统。
本文将基于单片机技术设计一种多点无线温度监控系统,旨在解决现有系统存在的问题,提高监测范围和数据传输稳定性。
通过对单片机、温度传感器、通信模块等关键部件的选择和设计,构建一套高性能的无线温度监控系统,为相关领域的应用提供更好的技术支持和解决方案。
1.2 研究意义无线温度监控系统的研究意义在于提高温度监控的效率和精度,实现对多个点位的远程管理和监控。
通过使用单片机技术,可以实现对多个温度传感器的同时监测和数据传输,使监控过程更加智能化和便捷化。
这对于各种需要严格控制温度的场合如实验室、制造业、医疗行业等具有重要意义。
无线温度监控系统的研究也有助于推动物联网技术的发展,为智能家居、智能城市等领域打下基础。
通过建立稳定、高效的多点无线温度监控系统,不仅可以提高生产效率,降低能耗,提升产品质量,还可以有效预防事故发生,保障人员安全。
研究基于单片机的多点无线温度监控系统具有重要的现实意义和应用前景。
1.3 研究目的本文旨在设计并实现基于单片机的多点无线温度监控系统,通过对温度传感器采集的数据进行处理和传输,实现对多个监测点的实时监控。
具体目的包括:1. 提高温度监控系统的便捷性和灵活性,使监控人员可以随时随地实时获取监测点的温度数据,为及时处理异常情况提供有力支持;2. 降低监控系统的成本,利用单片机和无线通信模块取代传统的有线连接方式,减少线缆布线成本和维护成本;3. 提升监控系统的稳定性和可靠性,通过精心选型与设计,以及合理的系统实现过程,确保系统能够持续稳定地运行,并提供准确可靠的数据;4. 探索未来监控系统的发展方向,从实际应用情况出发,进一步优化系统性能,并为未来无线温度监控系统的研究和应用奠定基础。
基于单片机的无线多路温度数据采集系统设计
关键词: AT89C51 温度采集温度传感器DS18B20 RS-232 MAX813 无线收发模块PTR2000AbstractThis paper introduces a kind of wireless monitoring system which is used to control temperature condition. The system adopts wireless network and temperature collect technique. The wireless communication can avoid the shortcoming of remote wire transmission, such as large wastage, high cost etc. This design usesAT89C51,The monolithic integrated circuit is the main hardware, In order to realize design goal this design including temperature gathering, the temperature demonstrated that, the systems control, strung together periphery electric circuit and so on mouth correspondence.The main MCU (AT89C51) takes charge of measurement,control andcommunication with the communication MCU. The communication MCU (AT89C51) is used to control receiving and sending data in the wireless communication. The system wireless temperature control system is uses in the lower position machine establishment temperature the lower limit, with real-time temperature gathering, transmits to on position machine,by achieves to the temperature comparison, the control.Key words:AT89C51Temperature gatheringDS18B20RS-232MAX813PTR2000wireless communication目录第一章绪论 (3)第二章方案论证4第三章系统总体设计63.1系统总体分析63.2设计原理7第四章各个元器件及芯片简介94.1 AT89C51单片机介绍94.2 DS18B20温度传感器简介114.3 PTR2000模块介绍124.4 MAX813芯片介绍134.5 MAX7219芯片介绍144.6 1602液晶显示屏介绍15第五章各部分电路设计165.1 看门狗电路165.2 温度采集电路175.3 串口电路185.4 显示电路195.5 键盘电路20第六章系统总体软件设计 (21)6.1 系统工作流程.................................................216.2 系统地软件设计 (21)6.3 软件设计流程图 (22)结论27致谢词28参考文献29附录1:硬件总图30第一章绪论在工农业生产中,对于采集数据地传输大多采用有线方式,因为有线方式地传输距离、数据传输速率以及抗干扰能力都要优于无线方式;然而对于在野外或者不便于铺设线缆地地区进行数据采集传输时,采用有线方式就受到了限制.针对这一特点,设计了采用无线传输方式地无线数据采集监测系统.该系统采集主要以Atmel公司地AT89C51单片机为控制处理核心,由它完成对数据地采集处理以及控制数据地无线传输.AT89C51单片机是一种低功耗/低电压/高性能地8位单片机,片内带有一个8KB地可编程/可擦除/只读存储器.无线收发一体数传MODEM模块PTR2000芯片性能优异,在业界居领先水平,它地显著特点是所需外围元件少,因而设计非常方便.该模板块在内部需成了高频接收、PLL合成、FSK调制/解调、参量放大、功率放大、频道切换等功能,因而是目前集成度较高地无线数传产品.在本文中,主要说明单片机和无线数据收发模块 PTR 2000地组合,形成单片机地无线数据传输系统,与微机进行无线数据传输.包括:如何针对系统地需求选择合适地无线数据传输模块器件,如何根据选择地器件设计外围电路和单片机地接口电路,如何编写控制无线数据传输器件进行数据传输地单片机程序,并简要介绍数字温度传感器DS18B20地应用.第二章方案论证(一)温度采集方案方案一:模拟温度传感器.采用热敏电阻,将温度值转换为电压值,经运算放大器放大后送A/D转换器将模拟信号变换为数字信号,再由单片机经过比较计算得到温度值.优点:应用广泛,特别是工程领域,采用不同地热敏电阻,可实现低温到超高温地测量.缺点:必须采用高速高位A/D转换器,系统复杂,成本高,还以引进非线性误差,得通过软件差值修正方案二:采用集成数字温度传感器DS18B20.该传感器采用单总线接口,能方便地与单片机通信.测温范围从-55到+125,测温精度9-12位可调,12位时最大转换时间为750ms,完全满足本设计地要求.缺点:不能实现高温测量.从上各种因素,我们采用数字温度传感器方案.(二)无线数据传送方案方案一:采用GSM模块.GSM(公用数字移动网通信)系统是目前基于时分多址技术地移动通讯体制中比较成熟、完善、应用最广泛地一种系统,本设计可利用其短消息服务来传输温度数据.优点:网络覆盖广,可实现远距离传输.缺点:成本高,无法实现实时性.方案二:该采用无线传输模块PTR2000.该器件将接收和发射合接为一体;工作频率为国际通用地数传频段433MHZ;采用FSK调制/解调,可直接进入数据输入/输出,抗干扰能力强,特别适合工业控制场合;采用DDS(直接数据合成)+PLL频率合成技术,因而频率稳定性极好;灵敏度高达—105bBm;工作电压低(2.7V),功耗小,接受待机状态电流仅为8μA;具有两个频道,可满足需要多信道工作地场合;工作数率最高达20kbit/s(也可在较抵速率下工作,如9600bps);超小体积,约40×27×5mm3;可直接与CPU串口进行连接(如8031),也可以用RS232与计算机接口,软件编程非常方便基于上述考虑,采用方案二.(三)显示界面方案方案一:用数码管显示,优点:结构简单,成本低.缺点:只能显示一测量点和有限地符号.方案二:采用LCD显示.可以实现中英文操作提示,方便人机交换.能同时显示多点温度值,通过键盘操作可快速翻屏浏览或监控一测量点温度值.缺点:价格高,体积增大.本系统设计为多点温度采集情况,所以选择LCD显示第三章系统总体设计3.1 系统总体分析无线温度数据采集系统是一种基于单片机射频技术地无线温度检测装置,本设计由温度采集部分,发送/接受部分,显示部分组成,温度采集部分由八个一线式数字温度传感器、AT89C51单片机、看门狗电路、键盘电路、晶振电路、复位电路、报警电路、数码管显示电路组成,采集到地温度数据在单片机地处理下在数码管上显示,同时传输到接收单元.发送部分采用无线传输模块PTR2000,模块在内部集成了高频发射,高频接受,PLL合成,FSK调制、参量放大,功率放大,频道切换等功能,单片机不能与无线模块直接通信,需通过串口电路进行数据地传输,串口电路采用RS232串口通信电路,显示部分采用1602液晶显示屏,AT89C51单片机以及单片机地外围电路由独立按键电路,晶振电路,复位电路组成.系统设计框图如下:发送模块系统框图接收模块系统框图3.2设计原理无线温度采集系统是一种基于无线模块地温度检测装置.本系统由温度采集部分和接收/发送机,以及显示芯片组成.温度采集部分由八个数字温度传感器芯片18B20,单片机AT89C51,低功耗地无线收发模块等组成,传感器采用寄生电源地方式即VDD与GND同时接地,八个温度传感器串接在P1.1口,同时采用结型场效应管进行驱动;数字单总线温度传感器是目前最新地测温器件,它集温度测量,A/D 转换于一体,具有单总线结构,数字量输出,直接与微机接口等优点.打开电源后,本系统由单片机AT89C51向单线数字温度传感器DS18B20芯片发出指令进行测温根据DS18B20地通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定地操作.复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒地存在低脉冲,主CPU收到此信号表示复位成功.在硬件上,DS18B20与单片机地连接采用寄生电源供电,此时UDD、GND接地,I/O接单片机I/O.然后数据被传输至单片机AT89C51,八位数据分两次传输,再由单片机编程为可以由数码管显示地四位数据,因为51单片机有一个全双工地串行通讯口,所以单片机和无线收发模块之间进行串口通讯.进行串行第一位为正负温度数据,后三位为带小数点地当前温度.数据也被送至低功耗无线传输模块进行无线传输.通讯时要满足一定地条件,比如电脑地串口是RS232电平地,而单片机地串口是TTL电平地,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换.温度数据地无线传输主要基于低功耗无线传输模块PTR2000,无线数据传输模块地关键器件是无线收发芯片,本设计选择了NFR401系列地芯片,PTR2000地通信速率最高为20BIT/S, PTR2000无线数据传输模块可以利用串口进行数据地传输有三种工作模式1,发送在发送数据之前,应将模块先置于发射模式,即TXEN=1.然后等待至少5ms后(接收到发射地转换时间)才可以发送任意长度地数据.发送结束后应将模块置于接收状态,即TXEN=0.2, 接收:接收时应将PTR2000置于接收状态,即TXEN=0.然后将接收到地数据直接送到单片机串口.3,待机:当PWR=0时,PTR进入节点模式,此时地功耗大约为8uA,但在待机模式下不能接收和发射数据.数据地收、发由AT89C51控制.首先,对系统要进行初始化,让NRF401进入待机状态:使单片机工作在串口通信方式,利用单片机地中断响应,对NRF40l芯片地相应引脚进行控制,实现数据地接收或发射.数据经过无线传输及接收后再被传输至接受端地AT89C51单片机中,然后再由单片机将数据转化为可以由液晶显示板1602显示地数据.1602液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块地忙标志为低电平,表示不忙,否则此指令失效.要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符. 最后通过液晶显示屏和数码管地温度数据对比,判断进行无线地温度传输数据是否正确.第四章各个元器件及芯片简介4.1 AT89C51单片机介绍AT89C51单片机简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)地低电压,高性能CMOS8位微处理器,俗称单片机.单片机地可擦除只读存储器可以反复擦除100次.该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准地MCS-51指令集和输出管脚相兼容.由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL 地AT89C51是一种高效微控制器,AT89C2051是它地一种精简版本.1.主要特性:1、与MCS-51 兼容2、4K字节可编程闪烁存储器3、1000写/擦循环数据保留时间10年4、全静态工作,0Hz-24Hz·三级程序存储器锁定5、128*8位内部RAM32可编程I/O线6、两个16位定时器/计数器7、5个中断源8、可编程串行通道低功耗地闲置和掉电模式9、片内振荡器和时钟电路2.主要管脚说明:P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流.当P1口地管脚第一次写1时,被定义为高阻输入.P0能够用于外部程序数据存储器,它可以被定义为数据/地址地第八位. P1口:P1口是一个内部提供上拉电阻地8位双向I/O口,P1口缓冲器能接收输出4TTL门电流.P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉地缘故.P2口:P2口为一个内部上拉电阻地8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入.并因此作为输入时,P2口地管脚被外部拉低,将输出电流.P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址地高八位.P3口:P3口管脚是8个带内部上拉电阻地双向I/O口,可接收输出4个TTL门电流.当P3口写入“1”后,它们被内部上拉为高电平,并用作输入.作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉地缘故.4.2 DS18B20温度传感器简介DS18B20是DALLAS公司生产地一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃可编程为9位~12位A/D 转换精度,测温分辨率可达 0.0625℃,被测温度用符号扩展地16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3 根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器地端口较少,可节省大量地引线和逻辑电路.以上特点使DS18B20非常适用于远距离多点温度检测系统.DS18B20地内部结构主要由4部分组成:64 位ROM、温度传感器、非挥发地温度报警触发器TH和TL、配置寄存器.DS18B20地管脚排列如图2所示,DQ 为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端.ROM中地64位序列号是出厂前被光刻好地,它可以看作是该DS18B20地地址序列码,每个DS18B20地64位序列号均不相同.64位ROM地排地循环冗余校验码(CRC=X8+X5+X4+1). ROM地作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20地目地.图1DS18B20地管脚图DS18B20中地温度传感器完成对温度地测量,用16位符号扩展地二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位.例如+125℃地数字输出为07D0H,+25.0625℃地数字输出为0191H,-25.0625℃地数字输出为FF6FH,-55℃地数字输出为 FC90H.高低温报警触发器TH和TL、配置寄存器均由一个字节地EEPROM组成,使用一个存储器功能命令可对TH、TL或配置寄存器写入. R1、R0决定温度转换地精度位数:R1R0=“00”,9位精度,最大转换时间为93.75ms;R1R0=“01”,10位精度,最大转换时间为 187.5ms;R1R0=“10”,11位精度,最大转换时间为375ms;R1R0=“11”,12位精度,最大转换时间为750ms;未编程时默认为12位精度.高速暂存器是一个9字节地存储器.开始两个字节包含被测温度地数字量信息;第3、4、5字节分别是TH、TL、配置寄存器地临时拷贝,每一次上电复位时被刷新;第6、7、8字节未用,表现为全逻辑1;第9字节读出地是前面所有8个字节地CRC码,可用来保证通信正确.4.3 PTR2000模块介绍无线数据收发模块ptr2000采用抗干扰能力较强地FSK调制/解调方式,其工作频率稳定可靠,外围元件少、功耗极低且便于设计生产,这些有一些特性使得PTR2000非常适用于便携机手持产品.可广泛用于遥控、遥测、小型无线网络、无线抄表、门禁系统、小区传呼、工业数据采集、无线标签等系统.无线数据传输模块地关键器件是无线收发芯片.以下是几点选择芯片或者模块地选择标准.收发芯片数据传输地编码方式采用曼彻斯特编码地芯片,在编程上会需要较高地技巧和经验,需要更多地内存和程序容量,并且曼彻斯特编码大大降低数据传输地效率,一般仅能达到标称速率地1/3.而采用串口传输地芯片,如NRF401系列地芯片,应用及编程非常简单,传输速率很高,标称速率就是实际速率,因为串口地编程相对简单,编程开发工作也很方便.收发芯片地分装和管脚数较小地管脚以及分装,有利于较少PCB面积,适合测控地设计.NRF401仅20脚,是管脚和体积最小地.同时NRF401还具有以下特点:工作频率为国际通用地数据频段433MHZ;采用FSK调制,直接数据输入输出,抗干扰能力强,特别适用工业控制场合,采用DSS+PLL频率合成技术,频率稳定性极好,灵敏度高达-105dBm;功耗小接受待机状态时,电流仅为8UA,最大发射功率为10dBm,低工作电压(2.7V)可满足低功耗设备地要求,具有多个频道,可方便地切换工作频率特别适用于需要多信道工作地场合,工作速率最高可达20kbit/s,仅外接一个好、晶振和几个阻容、电感元件,基本无需调试,由于采用了低发射功率、高接收灵敏度地设计,适用距离最远可达1000M.内部电路图如下:4.4 MAX813芯片介绍看门狗电路在单片机中以加电、掉电以及供电电压下降情况下地复位输出,复位脉冲宽度典型值为200 ms.独立地看门狗输出,如果看门狗输入在1.6 s内未被触发,其输出将变为高电平, 1.25 V门限值检测器,用于电源故障报警、电池低电压检测或+5 V 以外地电源监控,低电平有效地手动复位输入.各引脚功能及工作原理1、手动复位输入端()当该端输入低电平保持140 ms以上,MAX813就输出复位信号.该输入端地最小输入脉宽要求可以有效地消除开关地抖动.2、工作电源端(VCC):接+5V电源.3、电源接地端(GND):接0 V参考电平..4、电源故障输入端(PFI)当该端输入电压低于1.25 V时,5号引脚输出端地信号由高电平变为低电平.5、电源故障输出端()电源正常时,保持高电平,电源电压变低或掉电时,输出由高电平变为低电平.6、看门狗信号输入端(WDI)程序正常运行时,必须在小于1.6 s地时间间隔内向该输入端发送一个脉冲信号,以清除芯片内部地看门狗定时器.若超过1.6 s该输入端收不到脉冲信号,则内部定时器溢出,8号引脚由高电平变为低电平.7、复位信号输出端(RST)上电时,自动产生200 ms地复位脉冲;手动复位端输入低电平时,该端也产生复位信号输出.8、看门狗信号输出端().正常工作时输出保持高电平,看门狗输出时,该端输出信号由高电平变为低电平.芯片管脚图如下:4.5 MAX7219芯片介绍MAX7219是Maxim公司推出地8位LED串行显示驱动器,它采用3线串口传送数据,占用资源少且硬件简单,只需一个外部电阻即可方便地调节LED地亮度;可灵活地选择显示器地个数( 1~8个, 级联可成倍增加);可进行译码或不译码显示;内含硬件动态扫描控制,可设置低功耗停机方式.引脚功能和工作原理MAX7219采用24脚双列直插式封装,其引脚如图3所示.SEGA~SEGG和DP 分别为LED七段驱动器线和小数点线,供给显示器源电流;DIG0~DIG7为8位数字驱动线,输出位选信号,从每位LED共阴极吸入电流.图3 MAX7219 引脚功能DIN是串行数据输入端.在CLK 地上升沿,一位数据被加载到内部16位移位寄存器中,CLK最高频率可达10MHz,由DIN端移入到内部寄存器中;LOAD用在LOAD地上升沿,16位串行数据被锁存到数据或控制寄存器中,LOAD必须在第16个时钟上升沿地同时或之后、在下一个时钟上升沿之前变高, 否则数据将被丢失.每组数据为16 位二进制数据包.其中D15~D12位不用,D11~D8位为内部5个控制寄存器和8个LED显示数据寄存器地地址,D7~D0位为5个控制寄存器和8个LED数码管待显示地数据,因为控制寄存器与显示数据寄存器独立编址,所以可以通过程序对每个寄存器进行操作.MAX7219内部有14个可寻址地控制字寄存器.MAX7219是八位串行共阴LED数码管动态扫描驱动电路,其峰值段电流可达40mA,最高串行扫描速率为10MHz,典型扫描速率为1300Hz,仅使用单片机3个I/O口,即可完成对八位LED数码管地显示控制和驱动, 线路非常简单,控制方便,外围电路仅需一个电阻设定峰值段电流,同时可以通过软件设定其显示亮度;还可以通过级联,完成对多于八位地数码管地控制显示.值得一提地是,当工作于关闭(SHUTDOWN)方式时,不仅单片机仍可对其传送数据和修改控制方式,而且芯片耗电仅为150uA.4.6 1602液晶显示屏介绍工业字符型液晶,能够同时显示16x02即32个字符.(16列2行)注:为了表示地方便 ,后文皆以1表示高电平,0表示第电平.1.管脚功能1602采用标准地16脚接口,其中:第1脚:VSS为电源地第2脚:VDD接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K地电位器调整对比度).第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器. 第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作.第6脚:E(或EN)端为使能(enable)端.第7~14脚:D0~D7为8位双向数据端.第15~16脚:空脚或背灯电源.15脚背光正极,16脚背光负极.2.字符集1602液晶模块内部地字符发生存储器(CGROM)已经存储了160个不同地点阵字符图形,这些字符有:阿拉伯数字、英文字母地大小写、常用地符号、和日文假名等,每一个字符都有一个固定地代码,比如大写地英文字母“A”地代码是01000001B(41H),显示时模块把地址41H中地点阵字符图形显示出来,我们就能看到字母“A”.第五章各部分电路设计5.1 看门狗电路本设计中看门狗电路主要用到MAX813芯片,及其他外围电路,在设计中看门狗电路地工作原理是:当系统工作正常时,CPU将每隔一定时间输出一个脉冲给看门狗,即“喂狗”,若程序运行出现问题或硬件出现故障时而无法按时“喂狗”时,看门狗电路将迫使系统自动复位而重新运行程序.主要作用是防止程序跑飞或死锁.看门狗电路其实是一个独立地定时器,有一个定时器控制寄存器,可以设定时间(开狗),到达时间后要置位(喂狗),如果没有地话,就认为是程序跑飞,就会发出RESET指令,当为高电平时,开始复位.功能如下:本电路巧妙地利用了MAX813地手动复位输入端.只要程序一旦跑飞引起程序“死机”,端电平由高到低,当变低超过140 ms,将引起MAX813产生一个200 ms地复位脉冲.同时使看门狗定时器清0和使引脚变成高电平.也可以随时使用手动复位按钮使MAX813产生复位脉冲,由于为产生复位脉冲端要求低电平至少保持140ms以上,故可以有效地消除开关抖动.该电路可以实时地监视电源故障(掉电、电压降低等).图6 中R5未经稳压地直流电源.电源正常时,确保R3地电压高于1.26 V,即保证MAX813地PFI 输入端电平高于1.26 V.当电源发生故障,PFI输入端地电平低于1.25 V时,电源故障输出端电平由高变低,引起单片机中断,CPU响应中断,执行相应地中断服务程序,保护数据,断开外部用电电路等.5.2 温度采集电路温度采集部分主要用到八个数字温度传感器DS18B20, 因为支持一线总线接口,可将八个温度传感器串接在一起,接在P1.1口,采用寄生电源方式,将VDD 与GND共同接地,同时采用一结型场效应管进行驱动.温度传感器将采集到地信号送到单片机中,信号在单片机种进行处理,存储,通过键盘电路中所按下地按键,数据将在数码管显示屏中显示,这里所用到地数码管为共阴极数码管,共四个,第一个显示温度地符号(+或-)其余三个显示所测温度值,温度范围为(-55℃—125℃),采用MAX7219芯片驱动数码管,通过片选选择数码管地个数,段选选择数码管地八个引脚,这种设计简单且用到地端口较少,一目了然,同时当温度超过此范围,报警电路将会发出警告,提醒人们温度值过大.同时信号也将被送至无线收发模块.电路图如下:温度采集电路原理图5.3 串口电路单片机从一个I/O引脚逐位传输一些列二进制编码数据,就是串行通信.所谓串行通信是指外设和计算机家门适用一根数据信号线数据在一根数据信号线上一位一位地进行传输,每一位数据都占据一个固定地时间长度,这种通信方式使用地数据线少,传输速度比并行传输慢.串行通信地优点在于远程通信和上下位机通信,51系列单片机通过自身地串口完成通信,高串口是一个可编程地全双工串行通信接口.串口通信协议地内容接口地电气特性在RS-232-C中任何一条信号线地电压均为负逻辑关系.即要求接收器能识别低至+3V地信号作为逻辑“0”,高到-3V地信号作为逻辑“1”.接口地物理结构 RS-232-C接口连接器一般使用型号为DB-25地25芯插头座,通常插头在DCE端,插座在DTE端. 一些设备与PC机连接地RS-232-C接口,因为不使用对方地传送控制信号,只需三条接口线,即“发送数据”、“接收数据”和“信号地”.所以采用DB-9地9芯插头座,传输线采用屏蔽双绞线. 串口电路图如下:C2 0.1uf C1 0.1ufc30.1ufc40.1ufC50.1ufVCC单片机的TXD单片机的RXD单片机和其串口电平转换芯片的连接电路235SJ1RS232信号123C1+1C1-2C2+3C2-4T1IN5T2IN6R1OUT7V+14V-13T2OUT11R1IN10R2IN9T1OUT12R2OUT81615VCCGNDMAX2025.4 显示电路显示电路主要有另一块AT89C51单片机、外围电路及1602液晶显示屏组成.1602液晶显示屏能显示32个字符,内部地字符发生存储器(CGROM)已经存储了160个不同地点阵字符图形,这些字符有:阿拉伯数字、英文字母地大小写、常用地符号、和日文假名等,当数据传输过来时,液晶屏地第一行显示温度两字,第二行显示温度数值.电路图如下:显示模块。
基于单片机的远距离多点温度测控系统
基于单片机的远距离多点温度测控系统作者:方明来源:《数字技术与应用》2013年第09期摘要:本文提出一种利用单片机实现远距离多点温度测控的系统,硬件电路以STC89C52单片机为核心,温度传感器DS18B20对温度进行采集;软件采用最优模糊PID控制算法对温度进行控制,通过模拟实验箱进行实验完成了温度测控任务,实验结果验证了温控系统的合理性和有效性。
关键词:单片机温度检测模糊控制温度控制中图分类号:TP273 文献标识码:A 文章编号:1007-9416(2013)09-0015-02温度是生产中最基本的物理量,是工业控制中主要的被控参数。
无论在电力、冶金、机械制造领域,还是造纸、化工及食品加工等领域,对温度的测量和控制都有着特别重要的意义。
在实际测量和控制中,如何保证快速实时地对温度进行采样,确保数据的正确传输,并能对所测温度进行精确的控制,是当前温控系统迫切需要解决的重要问题之一。
采用单片机对温度进行控制,具有控制方便、使用简单和灵活性强等诸多优点,而且还可以大幅度地提高并满足被控温度的技术指标要求,从而对安全生产、生产效率和产品质量的提升起到极大作用。
因此,基于单片机的温度控制系统在处理工业生产中的温控问题具有很好的应用前景。
1 硬件系统设计本系统以STC89C52单片机为核心,构成一个集温度采集、处理、温度控制和显示的温度测控系统,系统硬件电路结构框图如图1所示。
利用温度传感器对温度进行实时采集,然后对采集到的温度高低进行判断和显示。
数字温度传感器DS18B20测温范围为-55~125℃,固有测温误差为0.5℃,因此它不仅能对温度进行有效地测量,且可以对所需要控制的温度进行准确设置。
再者,单片机只需提供一根端口线就能与诸多DS18B20通信,现场温度直接以“一线总线”的数字方式传输,可大大提高系统的抗干扰性。
以上特点使DS18B20非常适用于远距离多点温度测控系统。
1.1 主控部分STC89C52是STC公司生产的一种低功耗、高性能的51内核的CMOS 8位微控制器。
基于单片机的多点温度测量系统设计
理工科类大学毕业设计论文南开大学本科生毕业设计中文题目:基于单片机的多点温度测量系统设计英文题目:Design of based on the microprocessor multipoint temperature measurement system学号:****姓名:****年级:****专业:电子信息科学与技术系别:电子科学系指导教师:****完成日期:****摘要通过运用DS18B20数字温度传感器的测温原理和特性,利用它独特的单线总线接口方式,与AT89C51单片机相结合实现多点测温。
并给出了测温系统中对DS18B20操作的C51编程实例。
实现了系统接口简单、精度高、抗干扰能力强、工作稳定等特点。
本文介绍基于AT89C51单片机、C语言和DS18B20传感器的多点温度测量系统设计及其在Proteus平台下的仿真。
利用51单片机的并行口,同步快速读取8支DS18B20温度,实现了在多点温度测量系统中对多个传感器的快速精确识别和处理,并给出了具体的编程实例和仿真结果。
关键词:单片机;DS18B20数字温度传感器;Proteus仿真;C51编程AbstractWith using the measuring principle and characteristics of the numerical temperature sensor of DS18B20,making use of special characteristics of single line as the total line, and combine together with AT89C51 to realize several points temperature measuring. Also this paper gives the example of the C51 program which is used to operate to the DS18B20. Make system have characteristics of simple, high accuracy, strong anti- interference ability, stable work etc.This design introduced AT89C51 monolithic integrated circuit temperature control system design from the hardware and the software two aspects. A multipoint temperature measurement system based on DS18B20 and AT89C51 microcontroller is designed and simulated by Proteus in this paper, including software and hardware design of this system. The system has such advantages as novel circuit design, quick measurement speed, high measurement accuracy, and good practicality.Key words: SCM;DS18B20;Proteus simulation;C51 program目录摘要 (I)Abstract ............................................................................................... I I 第一章绪论 (1)1.1温度智能测控系统的研究背景与现状分析 (1)1.2温度智能测控系统的工作原理 (2)第二章单片机简介 (3)2.1单片机的定义 (3)2.2单片机的基本结构 (4)2.3单片机执行指令的过程 (5)2.4单片机的特点 (6)第三章数字温度传感器DS18B20原理 (7)3.1概述 (7)3.2主要特征 (7)3.3引脚功能 (8)3.4工作原理及应用 (8)3.5单片机对DS18B20的操作流程 (8)3.6 DS18B20与单片机的接口 (9)3.7 DS18B20芯片ROM指令表 (9)3.8 DS18B20芯片存储器操作指令表 (10)3.9 DS18B20复位及应答关系及读写隙 (11)第四章系统硬件设计 (12)4.1系统结构设计思路 (12)4.2系统框图 (13)4.3系统硬件设计 (13)第五章系统软件设计 (16)5.1 系统软件设计思路 (16)5.2系统软件设计 (21)第六章系统运行结果 (27)第七章结束语 (31)参考文献 (32)致谢 (33)第一章绪论1.1温度智能测控系统的研究背景与现状分析温度是一个和人们生活环境有着密切关系的物理量,也是一种在生产、科研、生活中需要测量和控制的重要物理量,是国际单位制七个基本量之一,同时它也是一种最基本的环境参数。
基于单片机的多点无线温度监控系统
基于单片机的多点无线温度监控系统随着物联网技术的不断发展,无线传感器网络在各个领域都得到了广泛应用。
基于单片机的多点无线温度监控系统,不仅可以实现对多个温度点的实时监控,还可以通过无线方式传输监测数据,实现远程监控和管理。
本文将介绍基于单片机的多点无线温度监控系统的原理、设计和实现过程。
一、系统概述基于单片机的多点无线温度监控系统主要由传感器节点、信号处理单元、无线通信模块、监控中心等组成。
传感器节点负责采集温度数据,信号处理单元对采集的数据进行处理和存储,无线通信模块实现数据传输,监控中心则负责接收和显示监测数据。
二、系统设计1. 传感器节点设计传感器节点是系统的核心部分,负责采集温度数据。
为了实现多点监控,传感器节点需要设计成多个独立的模块,每个模块负责监测一个特定的温度点。
传感器节点的设计需要考虑传感器的选择、数据采集和处理电路的设计、以及无线通信模块的接口设计。
传感器节点采用数字温度传感器DS18B20进行温度采集,采集到的数据通过单片机进行处理和存储,然后通过无线通信模块进行数据传输。
2. 信号处理单元设计信号处理单元主要负责对传感器采集到的数据进行处理和存储。
传感器采集到的数据需要进行数字化处理,然后存储到单片机的内部存储器中。
传感器节点采用的是单片机AT89S52作为信号处理单元,通过单片机的A/D转换功能对温度数据进行数字化处理,然后存储到单片机的内部EEPROM中。
3. 无线通信模块设计无线通信模块主要负责将传感器节点采集到的数据传输到监控中心。
传感器节点采用的是nRF24L01无线模块,通过SPI接口与单片机进行通信,并实现数据的传输。
4. 监控中心设计三、系统实现传感器节点采用DS18B20数字温度传感器进行温度采集,通过单片机AT89S52进行数据处理和存储,然后通过nRF24L01无线模块实现数据的传输。
传感器节点的设计需要考虑功耗、尺寸和成本等因素,需要尽量减小功耗和尺寸,降低成本。
%E5%9F%BA%E4%BA%8E%E5%8D%95%E7%89%87%E6%9C%BA%E7%9A%84%E6%99%BA%E8%83%BD%E6%B8%A9%E5%BA%A6%E6%B5%8B%
基于单片机的智能温度测量系统设计摘要传统检测温度的方法是用模拟温度传感器。
信号经取样、放大后通过模数转换,再交给单片机处理。
这种方法经过众多器件,易受干扰、不易控制且精度不高。
本文介绍了一种基于单片机的智能温度测量系统,系统主要通过对单总线可编程温度传感器DS18B20的特性及其工作原理进行了分析、研究,显示模块由两位一体的共阳数码管和两个9012组成。
并以AT89C51单片机为开发平台,通过相应的软、硬件设计开发出具有实用价值的智能温度测量系统。
该测温系统能取得并显示8点的温度数据,可直接应用在一些需要测量温度的场合。
本设计的多点温度测量系统由单片机、温度传感器、显示电路、报警电路、通信模块共5个模块组成。
本文对以上五个部分的软硬件设计作了详细的阐述,介绍了核心芯片的选型,外围电路的连接,芯片与芯片之间的连接电路,程序设计方法和相应的软件程序。
本系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。
关键词:单片机,温度传感器,共阳数码管AbstractTraditional testing temperature method is to use simulated temperature sensor. Signal by sampling, amplification, then delivered by frequency-field SCM processing. This method after numerous device, easy interference, not easy to control and the precision is not high. This paper introduces a kind of intelligent temperature measurement based on single-chip microcomputer system, mainly through single bus programmable temperature sensor DS18B20 characteristic and work principle are studied and the display module consists of two one of Yang digital tubes and two 9012 composition. And with AT89C51 for development platform, and through the corresponding software and hardware design develop practical intelligent temperature measuring system. The temperature measuring system can obtain and display the 8 o 'clock temperature data, which can be directly applied in some requires measuring temperature occasion. This design of multi-point temperature measuring system by single-chip microcomputer, temperature sensors, display circuit, alarm circuit, communication module totally 5 module. In this paper, the design of the software and hardware above five parts for detail, introduces the core chip periphery, circuit connection, chip and cmos circuit connection between, program design method and the corresponding software programs. This system structure is simple, strong anti-jamming capability, suitable for a harsh environment temperature measurement on the site, have broad application prospect.Keywords: single-chip microcomputer, temperature sensor, Total Yang digital tube第1章绪论1.1 课题的研究背景及意义温度是一种最基本的环境参数,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。
单片机(基于AT89C51的温度采集与显示系统设计)
基于AT89C51的温度采集与显示系统设计摘要:以AT89C51单片机为核心控制元件介绍了与DS18B20和MAX7219显示驱动组成的温度采集系统的设计方案利用单片机空余I/O口以及上述元件的特性,构成该系统。
通过Proteus进行仿真。
关键词:温度采集,AT89C51,DS18B20,MAX7219目录1、系统概述……………………………………………………………….2、硬件介绍……………………………………………………………….3、软件设计……………………………………………………………….4、仿真结果……………………………………………………………….5、小结…………………………………………………………………….6、参考文献……………………………………………………………….1、系统概述温度传感器选用目前常用的数字温度传感器DS18B20,采用数码LED显示,显示驱动为MAX7219,首先设计系统的总体原理图如下:系统可以简单地分为为5个模块,由外部提供8V-24V直流电源供电。
电源模块将输入8-24V的电源电压转换为5V,为系统中的芯片供电,可以使用7805等常用的三端稳压器芯片;温度传感器采集温度信号,温度传感器有模拟输出和数字输出两种形式,这里选择具有数字输出的DS18B20;单片机是系统的核心,选用AT89C51;系统采用LED数码显示器显示温度值,LED显示屏采用独立的显示驱动芯片MAX7219,单片机将待显示的字符写入MAX7219后,MAX7219将会动态的刷新显示内容,无需占用单片机过多的资源。
尽管DS18B20的分辨率可已达到0.0625°C,但测量精确度为0.5°C,因此设计4位数的LED数码显示管就可以了,显示3位整数,1位小数。
2、硬件介绍:1、数字温度传感器DS18B20DS18B20数字温度计提供9位-24位(二进制)温度读数,以指示器件的温度,数据经过单线接口送入DS18B20或从DS18B20送出,因此从主机CPU到DS18B20仅需要一条DQ。
基于单片机的多点无线温度监控系统设计-毕业设计
基于单片机的多点无线温度监控系统设计前言在工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。
其中,温度控制也越来越重要。
在工业生产的很多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。
采用单片机对温度进行控制不仅具有控制方便、简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大的提高产品的质量和数量。
因此,单片机对温度的控制问题是一个工业生产中经常会遇到的控制问题。
单片机是一种集CPU、RAM、ROM、I/O接口和中断系统等部分于一体的器件,只需要外加电源和晶振就可实现对数字信息的处理和控制。
因此,单片机广泛用于现代工业控制中。
随着“信息时代”的到来,作为获取信息的手段——传感器技术得到了显著的进步,其应用领域越来越广泛,对其要求越来越高,需求越来越迫切。
传感器技术已成为衡量一个国家科学技术发展水平的重要标志之一。
因此,了解并掌握各类传感器的基本结构、工作原理及特性是非常重要的。
由于传感器能将各种物理量、化学量和生物量等信号转变为电信号,使得人们可以利用计算机实现自动测量、信息处理和自动控制,但是它们都不同程度地存在温漂和非线性等影响因素。
传感器主要用于测量和控制系统,它的性能好坏直接影响系统的性能。
因此,不仅必须掌握各类传感器的结构、原理及其性能指标,还必须懂得传感器经过适当的接口电路调整才能满足信号的处理、显示和控制的要求,而且只有通过对传感器应用实例的原理和智能传感器实例的分析了解,才能将传感器和信息通信和信息处理结合起来,适应传感器的生产、研制、开发和应用。
另一方面,传感器的被测信号来自于各个应用领域,每个领域都为了改革生产力、提高工效和时效,各自都在开发研制适合应用的传感器,于是种类繁多的新型传感器及传感器系统不断涌现。
温度传感器是其中重要的一类传感器。
其发展速度之快,以及其应用之广,并且还有很大潜力。
为了提高对传感器的认识和了解,尤其是对温度传感器的深入研究以及其用法与用途,基于实用、广泛和典型的原则而设计了本系统。
基于单片机的多路数字式温度采集测控报警系统设计
之后 初始化 两路D IB 0 S 82 以确认 器件 的存在 ;初 始化 完成之 后 ,将进 行温度 的采 样 ,并执 行 温度 比较 ,如 果温 度高 于系 统初 始 设置报 警 值 ,将进 行超 温语 音提 示 。主程 序循 环 过程 中不 断的 扫描 按键 ,如 果有 按键 触 发将 会调
度 ,若 有超 过 限值 ,则进行 语音播 报 处理 。
现 两路 温度 的 实时采 集 和显 示 ,且可 以设 置报 警温 度值 ,实现 超温 报警 功 能 。其 中温 度信 号 由智 能型 温度 传感 器 D 1B 0 S 82 采集 ,D IB 0 其 内部 直 S8 2在 接 完成AD / 转换 ,通过 单线 总线 ,输 出数 字信 号送 入单片 机进 行数据 处理 。
' T SLC . f II ON
v LEY 一蠢 ? 【 AL 高科技产品研发 l
Байду номын сангаас
基 于 单 片 机 的 多路 数 字 式 温 度 采 集 测 控 报 警 系 统设 计
刘
(. I江西陶瓷工艺美术职业技术学院 江西
莹 邬
景德镇
华2 程志山1
3 30 ;2 景德镇陶瓷学院 300 . 江西 景德镇 330) 30 0
用键值 处理 函数
图 I 系统主 程序 流程 图
33 数 据采 集 流程 。D IB 0 单的硬 件 接 口是 以相 对 复杂 的接 口编 . S 82 简 程 为代价 。 由于D 1B 0 S82 通过 单 总线与外 部进 行通 讯 ,所 以其 通信功 能是 分 时完 成 的,它 与单 片机 的接 口协 议是 通过严 格 的时序 来实现 的 ,D IB 0 S 82数 据 的 写入 和 读 出 都 是 由主 控 MU 写特 定 的 时 间 片 来 完 成 的 。 系 统 对 C读 D IB 0 SS2 的各 种操 作 必须 按协 议 进行 。操 作协 议 为 :初始 化D IB 0( S8 2 发复
(完整版)基于单片机的多点温度检测系统毕业设计论文
集成电路课程设计课题:基于AT89C51单片机的多点温度测量系统设计姓名:韩颖班级:测控12-1学号:指导老师:汪玉坤日期:目录一、绪论二、总体方案设计三、硬件系统设计1主控制器2 显示模块3温度采集模块(1)DS18B20的内部结构(2)高速暂存存储器(3)DS18B20的测温功能及原理(4)DS18B20温度传感器与单片机的连接(5)单片机最小系统总体电路图四、系统软件设计五、系统仿真六、设计总结七、参考文献八、附源程序代码一、绪论在现代工业控制中和智能化仪表中,对于温度的控制,恒温等有较高的要求,如对食品的管理,冰箱的恒温控制,而且现在越来越多的地方用到多点温度测量,比如冰箱的保鲜层和冷冻层是不同的温度这就需要多点的测量和显示可以让用户直观的看到温度值,并根据需要调节冰箱的温。
它还在其他领域有着广泛的应用,如:消防电气的非破坏性温度检测,电力、电讯设备之过热故障预知检测,空调系统的温度检测。
温度检测系统应用十分广阔。
本设计采用DALLAS最新单线数字温度传感器DS18B20 简介新的"一线器件"体积更小、适用电压更宽、更经济DALLAS 半导体公司的数字化温度传感器DS18B20是世界上第一片支持"一线总线",测量温度范围为-55°C~+125°C,在-10~+85°C范围内,精度为±0.5°二、设计过程及工艺要求1、基本功能(1)检测两点温度(2)两秒间隔循环显示温度2、主要技术参数测温范围:-30℃到+99℃测量精度:0.0625℃显示精度:0.1℃显示方法:LCD循环显示3、系统设计系统使用AT89C51单片机对两个DS18B20进行数据采集,并通过1602LCD液晶显示器显示所采集的温度。
DS18B20以单总线协议工作,51单片机首先分别发送复位脉冲,使信号上所有的DS18B20芯片都被复位,程序先跳过ROM,启动DS18B20进行温度变换,再读取存储器的第一位和第二位读取温度,通过IO口传到1602LCD显示。
基于单片机的多点分布式温度监控系统
基于单片机的多点分布式温度监控系统摘要本文设计了一个多点分布式温度测控系统,该系统结构简单、性能可靠,可以进行远程多点数据采集与控制,并具有数据存储、温度曲线显示等数据库功能。
关键词单片机;mcgs;通讯;dde中图分类号tp29 文献标识码a 文章编号 1674-6708(2011)45-0210-021 总体方案本集散控制系统包括上位机和下位机两部分。
下位机是一个以at89s51 单片机为核心的数据采集系统,温度测量采用单线数字温度传感器ds18b20,温度传感器采集的数据通过单总线方式传送给单片机进行数据处理;上位机由一台微机构成,采用昆仑通态mcgs[1] 完成组态软件设计,具有良好的菜单操作方式,可以在线监控和显示所有测温点实时温度值。
并具有数据库管理功能:实时温度曲线和历史温度曲线显示以及数据打印等功能。
上位机和下位机通过vb[2]程序实现通讯连接。
2 单片机与ds18b20通讯ds18b20 是dallas 生产的数字式温度传感器,采用数字化技术,能以数字形式直接输出被测点温度值。
同时采用“单线(1-wire)总线”,可以通过单总线直接与at89s51 单片机i/o 口相连接,进行数据传送。
单片机对18b20 操作流程:1)复位;2)存在脉冲;3)控制器发送rom指令;4)控制器发送存储器操作指令;5)执行或数据读写。
3 单片机与vb通讯采用vb6.0的通信控件mscomm与单片机实现通讯,该通信控件提供了标准的事件处理函数、事件、方法,并通过控件属性对串口参数进行设置,比较容易地解决了串口通信问题[3]。
首先,利用vb6.0建立一个工程,将其命名为at51-vb-mcgs;包含一个窗体form1,将窗体form1的linkmode属性设置为1-source,保证链接数据改变时,目标控件都能自动更新;在窗体上建立一个textbox控件和一个mscomm控件,同时建立一个timer 控件,将其interval属性设置为1000ms,控件timer1用于接受单片机数据。
基于51单片机DS18B20温度采集器详解
一核心器件的基本构成及特性1.1 AT89S51功能特性89C51是INTEL公司MCS-51系列单片机中基本的产品,它采用INTEL公司可靠的CHMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。
它结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,它基于标准的MCS-51单片机体系结构和指令系统,属于80C51基础型单片机版本,集成了时钟输出和向上或向下计数器等更多的功能。
89C51内置8位中央处理单元、256字节内部数据存储器RAM、8k片内程序存储器(ROM)32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。
此外,89C51还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。
在空闲模式下冻结CPU 而RAM定时器、串行口和中断系统维持其功能。
掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。
89C51有PDIP(40pin)和PLCC(44pin)两种封装形式。
1.2 AT89S51管脚介绍AT89C51单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上。
如果按功能划分,它由如下功能部件组成,即微处理器(CPU)、数据存储器(RAM)、程序存储器(ROM)、并行I/O口(4个8位I/O口)、串行口、定时器/计数器、中断系统及特殊功能寄存器。
它们都是通过片内单一总线连接而成,其基本结构依旧是微处理器(CPU)加上外围芯片的传统结构模式。
但对各种功能部件的控制是采用特殊功能寄存器的集中控制方式,以实现不同的功能。
AT89C51单片机如图所示。
1.1.1引脚功能介绍Vcc(40引脚):接+5V电源。
Vss(20引脚):接地。
XTAL1(19引脚):片内振荡器反相放大器和时钟发生器电路的输入端。
XTAL2(18引脚):片内震荡器反相放大器的输出端。
RST:复位引脚,高电平有效。
基于单片机的多通道的温度数据采集系统
摘要由于数据采集系统的应用越来越广、其所涉及到的对信号的测量方式和涉及到的信号源的类型也将越来越多、因为对测量的要求也就越来越高,现在国内已有不少用于数据的测量与采集的系统,可很多系统存在着功能单一、采集速率比较低、操作非常复杂,并且对测试的环境要求较很高等问题。
人们急切需要一种应用范围广、价格低廉的数据采集系统。
在分析了各种类型单片机的特点及其与PC机的各类通信技术的基础后,本人设计了由单片机控制的温度采集系统,并且通过串口通信的方式实现了单片机与PC机间的通信,实现了数据传送并将数据在PC机上进行显示或存储,完成了此次设计。
基于单片机的多通道的温度数据采集系统是由将来自温度传感器的信号进行放大、滤波、采样保持等分步处理之后,输入到A/D转换器转换为数字信号后由单片机进行采集的,然后再利用单片机与PC机之间的通信将数据传送至PC 机进行数据的存储处理及显示等,实现了数据的采集与处理等,此设计可广泛应用于工控、仪器仪表、机电智能化及智能家居等诸多的应用领域。
联系扣扣:2825772782关键词:单片机;温度数据采集;多通道AbstractS ince the wide range of data acquisition system, which involves the measurement signal and the type of signal source more and more, Surveyors are increasingly high requirements of the domestic now have a lot of data acquisition and measurement system But there are many single function systems, collecting less access, low collection rate, complicated operations, and the demands of the test environment and other issues.It requires abroad scope of application, high reliability and low-cost data acquisition system.Based on the analysis of the characteristics of different types of SCM and SCM and PC communication technology, SCM control of the collection system designed and adopted MCU serial communication between PC and communications, Data transmission and display of data stored on the PC.Single completed the multi-channel data acquisition system design and implementation.Based on SCM′s multi-channel data acquisition system is adopted will come from the sensor signal amplification, linear filtering, After processing maintain synchronous sampling, which converted to digital signal input A/D conversion by SCM Acquisition, Then, SCM and PC to PC communications data to the data storage, post-processing and display. a powerful data processing, visual shows, friendly interface and high performance-price ratio, a wide range of features. can be widely used in industrial control equipment, instruments, and electrical engineering integration, intelligent home and many other fields.Key words Multi-channel Data Acquisition Microcontroller联系扣扣:2825772782目录摘要 (I)Abstract (II)第一章绪论 (IV)1.1 引言 (IV)1.2 方案论证 (V)1.2.1 传感器 (V)第二章硬件电路的设计...................................................................................................... V III2.1 电源电路 (VIII)2.2 温度采集电路 (IX)2.2.1 DS18B20简介 (IX)2.2.2 电路设计 (XI)2.2.3 无线传输电路模块 (XII)2.3 无线发送与接收电路 (XIII)2.3.1 无线发送电路 (XIII)2.3.2 无线接收模块 (XIV)2.4 显示电路 (XIV)2.4.1 字符型液晶显示模块 (XIV)2.4.2 字符型液晶显示模块引脚 (XV)2.4.3 字符型液晶显示模块内部结构 (XVI)2.5 单片机AT89S52 (XVI)2.5.1 AT89S52简介 (XVI)2.5.2 AT89S52引脚说明 (XVII)第三章软件设计................................................................................................................... X X3.1 系统概述 (XX)3.2 程序设计流程图 (XX)3.3 温度传感器多点数据采集 (XXI)第四章调试及结果........................................................................................................... X XIII4.1 测试环境及工具 (XXIII)4.2 测试方法 (XXIII)4.3 测试结果分析 (XXIII)结论..................................................................................................................................... X XIV 参考文献 (XXV)附录..................................................................................................................................... X XVI 附录1:电路原理总图.. (XXVI)附录2:发射部分主程序 (XXVII)附录3:接收部分主程序 (XXXIX)第一章绪论1.1 引言在21世纪的今天,科学技术的发展可谓日新月异,科学技术的进步不断带动着测量技术的飞速发展,现代控制设备早已不同于从前,它们在性能以及结构上都发生了翻天覆地的变化。
基于51单片机的多路温度采集系统
基于单片机的多路温度采集系统一、摘要:本设计利用单片机及Keil编程软件编程和PROTEUS单片机仿真软件和电子电工等方面知识,用Keil编程软件编程,用PROTEUS单片机仿真软件仿真。
最后制作实物,将程序下载到单片机中,利用(I/O)口采集来自多路温度的数据,根据各路温度的不同,集中准确的显示出来,并且根据所设温度的上下限通过驱动蜂鸣器进行听觉上的报警,同时还可以通过LED灯协助进行视觉上的报警,从而达到多点温度的采集和报警的目的。
以Keil编程软件和PROTEUS软件来进行仿真、分析,调试,为设计提供了一个方便、快捷的途径,为设计节约了设计时间。
关键词:AT89S52单片机温度采集报警二、设计要求1、检测的温度范围:0℃~100℃。
2、检测分辨率 0.1℃。
3、显示的多路的温度值不相互干扰,而且对各个传感器的所属温度都能进行报警。
三、硬件电路设计1、系统的设计思路本设计采用单片机作为数据处理与控制单元,为了进行数据处理,单片机控制数字温度传感器,把温度信号通过单总线从数字温度传感器传递到单片机上。
单片机数据处理之后,发出控制信息改变报警和控制执行模块的状态,同时将当前温度信息发送到LCD进行显示。
本系统可以实现多路温度信号采集与显示,可以使用程序来设置温度限定值,通过进行温度数据的运算处理,发出控制信号达到控制蜂鸣器和LED进行报警。
2、系统总体设计方案系统总体主要由对单片机进行编程后得到控制,系统的其他功能部件分别接至单片机的对应I/O口。
整体模块如图:3、主控制器本次设计选择Atmel 公司生产的AT89C51作为控制芯片。
AT89C51是高性能的CMOS8位单片机,片内含有4K bytes 的可反复擦写的只读程序存储器和128的随机存取数据存储器。
AT89系列与MCS-51系列单片机相比有两大优势:第一,片内程序存储器采用闪速存储器,使程序的写入更加方便;第二,提供了更小尺寸的芯片,使整个电路体积更小。
基于单片机的多点无线温度监控系统
基于单片机的多点无线温度监控系统近年来,随着无线通信技术的迅猛发展,无线温度监控系统开始得到广泛应用。
这种系统可以实时监测多个测温点的温度,并将温度数据传输到控制中心,以便进行数据分析和处理。
本文将介绍一种基于单片机的多点无线温度监控系统的设计方案。
我们需要选择适合的硬件平台。
单片机是一种功能强大、体积小、功耗低的集成电路,非常适合用于设计无线温度监控系统。
在这个系统中,我们可以选择一款专门设计用于无线通信的单片机,比如常见的ESP8266或者nRF24L01。
我们还需要一些温度传感器,可以选择常见的温度传感器,比如DS18B20。
我们还需要一些电源模块、天线等硬件设备。
接下来,我们需要设计无线通信协议。
在多点无线温度监控系统中,不同的温度传感器需要将温度数据传输给控制中心,因此我们需要设计一种有效的通信协议。
可以采用一对多的方式,即一个控制中心与多个温度传感器进行通信。
我们可以使用无线通信模块与单片机相连接,并通过串口通信发送和接收数据。
在协议设计中,我们可以采用简单的数据帧格式,包括温度传感器的地址、温度数据等信息。
然后,我们需要设计无线温度传感器节点。
每个温度传感器节点需要连接一个温度传感器和单片机。
单片机读取温度传感器的温度数据,并通过无线通信模块将数据发送给控制中心。
为了提高系统的稳定性和可靠性,我们可以采用一些技术手段,比如CRC校验、重传机制等。
我们需要设计控制中心。
控制中心负责接收温度传感器节点发送的数据,并对数据进行分析和处理。
可以将数据存储在数据库中,或者进行一些报警处理等。
在控制中心中,我们可以使用单片机连接无线通信模块,并通过串口通信接收和解析温度数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
多点温度采集与记录系统目录一、引言 (4)二、硬件设计 (5)三、软件设计 (9)四、总结 (11)五、参考文献 (12)六、程序附录 (13)一、引言温度(K)是一个和人们生活环境有着密切关系的物理量,也是一种在生产、科研、生活中需要测量和控制的重要物理量。
在工、农业生产和日常生活中,占据着极其重要地位。
工业发展与是否能掌握温度有着密切的联系。
在冶金、钢铁、石化、水泥、玻璃、医药等行业都与之有关,可以说几乎80%的工业部门都不得不考虑温度对自身系统的影响。
本设计是基于单片机的多点温度采集系统设计,多点温度测量显示是近几年的研究课题,随着传感技术与通讯技术的发展,单片机的出现,温度测量仪器应运而生,最近几年的研究更是迅速。
采用单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。
单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点,成为自动化和各个测控领域中必不可少且广泛应用的器件,尤其在日常生活中也发挥越来越大的作用。
因此,本课题的研究在实际应用中意义十分重大。
二、硬件设计2.1总体方案硬件设计主要是温度测量模块的内容,本设计由AT89C51单片机,LCD1602液晶显示屏,DS18B20温度传感器,以及DB9通信接口。
一共包括三大模块:控制模块,温度采集模块,温度显示模块。
总体方案如下图所示:1.1 系统总方案图2.1.1 控制模块功能控制模块在系统的功能是控制温度采集模块完成温度采集并将采集到的温度读入控制模块的数据寄存器,再将从温度采集模块读取的温度数据写入显示模块并控制显示模块完成温度的显示。
其中主控单位是AT89C52。
2.1.2 温度采集模块功能温度采集模块的主要功能是通过温度传感器感应温室温度并转化成模拟信号,通过转化模块将模拟信号转化成数字信号,并存取温度数据。
本设计采用2个DS18B20温度传感器,温度传感器DS18B20采用的电压是内部电压,大小为5V,一个引脚接地,一个引脚接+5V电源,中间的引脚是数据的输入输出口。
由于每个单片机开发板上有两个温度传感器,所以一个传感器的输出是P1.4,另一个传感器的输出是P1.5。
使用时将一个传感器接到单片机的18b20接口,接口的1脚接18b20的地端,接口的3脚接18b20的电源,另一个温度传感器的电源接到P0.0口,数据读写端接到P1.5口,地端接到单片机的接地端,下面是温度传感器DS18B20的时序图。
图1.2 温度传感器DS18B20时序图2.1.3 温度显示模块功能温度显示模块的主要功能是在控制模块的控制下将控制模块写入的数据显示在液晶屏上,便于读取温度数值。
显示模块采用LCD1602液晶屏。
1602共16个管脚,但是编程用到的主要管脚不过三个,分别为:RS(数据命令选择端),R/W (读写选择端),E(使能信号);以后编程便主要围绕这三个管脚展开进行初始化,写命令,写数据。
以下具体阐述这三个管脚:RS为寄存器选择,高电平选择数据寄存器,低电平选择指令寄存器。
R/W为读写选择,高电平进行读操作,低电平进行写操作。
E端为使能端,后面和时序联系在一起。
除此外,D0~D7分别为8位双向数据线。
其操作时序如下图所示:图1.3 LCD1602时序图2.1.4温读报警模块温度报警模块主要由2个led灯组成,当温度的采集值高于设定的温度上限或者低于设定的温度下限时,led灯将由暗变亮进行报警,此时此时设计者就可以改变室外的温度满足温度的需求,此报警简单易懂,可操作性强。
2、硬件电路仿真根据设计的总方案在pretues中仿真,其结果如图所示;图1.4硬件电路仿真当温度超过高于设定的温度上限(此处设定38℃)或者低于下限(此处设定12℃)时,led灯发生报警。
其仿真图如下所示:图1.3 温度报警显示三、软件设计软件设计包括下位机编程和PC机编程,下位机编程完成ds18b20的温度采集、数据处理、数码管显示,串口中断处理及硬件初始化,通信协议的制定及数据的收发。
通过串口通信将温度数据在上位机上面显示,并且编译VB程序,实现报警显示。
上位机程序工程:图3.1上位机工程显示当温度1是35℃,温度计2是13℃时:当温度1是39℃,温度计2是11℃时:四、总结通过这次课程学习制作,令我学到了很多东西受益匪浅,仿佛又经历了一次系统学习,在作做课程前,我的导师也要求我做一些温度采集的设计,我一直在查找相关资料,这次的设计让我对多点温度采集的知识了解了许多,同时也上位机编程有了初步的概念。
一直来认为做这些设计没什么困难,但在实际运作过程中才清楚地认识到自己的不足和短练,端正了学习态度。
这次设计使我加深巩固了基础知识,更加深刻的把握到基础知识的重要,提高了动手和实际解决问题的能力,提高了对问题整体规划的意识。
能把握重点设计的核心,并提高查阅资料的能力,培养了团队合作精神和人际交往能力。
由于本人水平有限,难免有考虑不足之处,所以恳请老师同学们批评指正。
五、参考文献[1]谭浩强《C程序设计》,清华大学出版社[2]童诗白《模拟电子技术基础(第四版)》,高等教育出版社[3]杨恢先、黄辉先《单片机原理及应用》,人民邮电出版社[4]何立民《单片机高级教程--应用于设计(第二版)》,北京航空航天大学出版社[5]蔡朝阳《单片机控制实习与专题制作》,北京航空航天大学出版社[6]蒋伏加、张林峰《Visual Basic程序设计教程(第4版)》,北京邮电大学出版社六、程序附录单片机c语言代码:#include<reg52.h>#include<stdio.h> //标准输入输出#include<intrins.h>#define uchar unsigned char#define uint unsigned int;#define ulong unsigned long;/******************************************************************/ /* 定义端口 */ /******************************************************************/ #define Data P0//数据端口sbit RS = P2^4; //Pin4sbit RW = P2^5; //Pin5sbit E = P2^6; //Pin6sbit DQ=P1^3;//ds18b20 端口sbit DQ1=P1^4;//ds18b20 端口改动sbit D0=P1^6;sbit D1=P1^5;/******************************************************************/ /* 全局变量 */ /******************************************************************/ uint temp=0,temp1=0;float t0,t1;float high=38,low=12,change=0;unsigned char point_flag=0,key_flag=0;unsigned char receive[5];unsigned char receive_no=0;unsigned char receive_flag=0;char Text[]=" ";uchar code TPoint[16]={0, 1, 1, 2, 3, 3, 4, 4, 5, 6, 6, 7, 8, 8, 9, 9 }; /* 函数声明 */ /******************************************************************/ /******************************************************************/ /* 微秒延时函数 */ /******************************************************************/ void DelayUs(unsigned char us)//delay us{unsigned char uscnt;uscnt=us>>1; /*12MHz频率*/while(--uscnt);}/******************************************************************/ /* 毫秒函数声明 */ /******************************************************************/ void DelayMs(unsigned char ms){while(--ms){DelayUs(250);DelayUs(250);DelayUs(250);DelayUs(250);}}/******************************************************************/ /* 1602写入命令函数*//******************************************************************/ void WriteCommand(unsigned char c){DelayMs(5);//操作前短暂延时,保证信号稳定E=0;RS=0;RW=0;_nop_();E=1;Data=c;E=0;}/******************************************************************/ /* 1602写入数据函数 */ /******************************************************************/ void WriteData(unsigned char c){DelayMs(5); //操作前短暂延时,保证信号稳定E=0;RS=1;RW=0;_nop_();E=1;Data=c;E=0;RS=0;}/******************************************************************/ /* 1602写入字节函数 */ /******************************************************************/ void ShowChar(unsigned char pos,unsigned char c){unsigned char p;if (pos>=0x10)p=pos+0xb0; //是第二行则命令代码高4位为0xcelsep=pos+0x80; //是第二行则命令代码高4位为0x8WriteCommand (p);//写命令WriteData (c); //写数据}/******************************************************************/ /* 1602写入字符串函数 */ /******************************************************************/ void ShowString (unsigned char line,char *ptr){unsigned char l,i;l=line<<4;for (i=0;i<16;i++)ShowChar (l++,*(ptr+i));//循环显示16个字符}/******************************************************************/ /* 1602初始化函数 */ /******************************************************************/ void InitLcd(){DelayMs(15);WriteCommand(0x38); //display modeWriteCommand(0x38); //display modeWriteCommand(0x38); //display modeWriteCommand(0x06); //显示光标移动位置WriteCommand(0x0c); //显示开及光标设置WriteCommand(0x01); //显示清屏}/******************************************************************/ /* 18b20延时函数*//******************************************************************/ void delay(unsigned int i)//延时函数{while(i--);}/******************************************************************/ /* 18b20初始化*//******************************************************************/ void Init_DS18B20(void){unsigned char x=0;DQ = 1; //DQ复位delay(8); //稍做延时DQ = 0; //单片机将DQ拉低delay(80); //精确延时大于 480usDQ = 1; //拉高总线delay(10);x=DQ; //稍做延时后如果x=0则初始化成功 x=1则初始化失败delay(5);}void Init_DS18B201(void){unsigned char x=0;DQ1 = 1; //DQ复位delay(8); //稍做延时DQ1 = 0; //单片机将DQ1拉低delay(80); //精确延时大于 480usDQ1 = 1; //拉高总线delay(10);x=DQ1; //稍做延时后如果x=0则初始化成功 x=1则初始化失败delay(5);}/******************************************************************/ /* 18b20读一个字节*//******************************************************************/ unsigned char ReadOneChar(void){unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i--){DQ = 0; // 给脉冲信号dat>>=1;DQ = 1; // 给脉冲信号if(DQ)dat|=0x80;delay(5);}return(dat);}unsigned char ReadOneChar1(void){unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i--){DQ1 = 0; // 给脉冲信号dat>>=1;DQ1 = 1; // 给脉冲信号if(DQ1)dat|=0x80;delay(5);}return(dat);}/******************************************************************/ /* 18b20写一个字节*//******************************************************************/ void WriteOneChar(unsigned char dat){unsigned char i=0;for (i=8; i>0; i--){DQ = 0;DQ = dat&0x01;delay(5);DQ = 1;dat>>=1;}delay(5);}void WriteOneChar1(unsigned char dat){unsigned char i=0;for (i=8; i>0; i--){DQ1 = 0;DQ1 = dat&0x01;delay(5);DQ1 = 1;dat>>=1;}delay(5);}/******************************************************************/ /* 18b20读取温度*//******************************************************************/ unsigned int ReadTemperature(void){unsigned char a=0;unsigned int b=0;unsigned int t=0;Init_DS18B20();WriteOneChar(0xCC); // 跳过读序号列号的操作WriteOneChar(0x44); // 启动温度转换delay(200);Init_DS18B20();WriteOneChar(0xCC); //跳过读序号列号的操作WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器)前两个就是温度a=ReadOneChar(); //低位b=ReadOneChar(); //高位b<<=8;t=a+b;return(t);}unsigned int ReadTemperature1(void){unsigned char a=0;unsigned int b=0;unsigned int t=0;Init_DS18B201();WriteOneChar1(0xCC); // 跳过读序号列号的操作WriteOneChar1(0x44); // 启动温度转换delay(200);Init_DS18B201();WriteOneChar1(0xCC); //跳过读序号列号的操作WriteOneChar1(0xBE); //读取温度寄存器等(共可读9个寄存器)前两个就是温度a=ReadOneChar1(); //低位b=ReadOneChar1(); //高位b<<=8;t=a+b;return(t);}void UartInit(void) //4800bps@11.0592MHz{SCON = 0x50;TMOD |= 0x20;TL1 = 0xFD;TH1 = 0xFD;TR1 = 1;ES = 1;EA = 1;}/******************************************************************/ /* 主函数 */ /******************************************************************/ main(){unsigned int TempL,TempH,TempL1,TempH1;//state,i,j,k;float wendu;InitLcd(); //初始化LCDDelayMs(15); //延时保证信号稳定UartInit();EX0=1;IT0=1;while(1){temp=ReadTemperature();temp1=ReadTemperature1();t0=temp*0.0625;t1=temp1*0.0625;TempH=temp>>4;TempL=TPoint[temp&0x0F];TempH1=temp1>>4;TempL1=TPoint[temp1&0x0F];if(t0<low||t0>high){D0=0;}else{D0=1;}if(t1<low||t1>high){D1=0;}else{D1=1;}SBUF=0xff;//校验while(!TI);TI=0;SBUF=TempH;while(!TI);TI=0;SBUF=TempL;while(!TI);TI=0;SBUF=TempH1;while(!TI);TI=0;SBUF=TempL1;while(!TI);TI=0;SBUF=(int)wendu;while(!TI);TI=0;SBUF=(int)(wendu*10)%10; while(!TI);TI=0;SBUF=(int)high;while(!TI);TI=0;SBUF=(int)(high*10)%10;while(!TI);TI=0;SBUF=(int)low;while(!TI);TI=0;SBUF=(int)(low*10)%10;while(!TI);TI=0;ShowString(0,Text);if(key_flag==0)sprintf(Text,"%d.%d%cC,%d.%d%cC",TempH,TempL,0xdf,TempH1,TempL1,0xdf);//打印输出第二行信息elsesprintf(Text,"U:%d.%d%%,D:%d.%d%%",(int)high,(int)(high*10)%10,(int)low,(int)(low*10)%10);//打印输出第二行信息}}void s(void) interrupt 4{if(RI){RI=0;if (receive_flag==0){receive_no=0;receive[receive_no]=SBUF;if (receive[receive_no]==0x63){receive_flag=1;change=0;point_flag=0;}}else{receive_flag=0;receive[receive_no]=SBUF;if(receive[receive_no]!=0x61 && receive[receive_no]!=0x62 &&receive[receive_no]!=0x2E && point_flag==0){change=change*10+receive[receive_no]-'0';receive_no++;receive_flag=1;}else if(receive[receive_no]==0x2E&&change!=0){point_flag=1;receive_no++;receive_flag=1;}else if(receive[receive_no]!=0x61 &&receive[receive_no]!=0x62 && receive[receive_no]!=0x2E && point_flag==1){change+=(receive[receive_no]-'0')*0.1;receive_no++;receive_flag=1;point_flag=0;}else if(receive[receive_no]==0x61){high=change;change=0;receive_flag=0;receive_no=0;point_flag=0;}else if(receive[receive_no]==0x62){low=change;change=0;receive_flag=0;receive_no=0;point_flag=0;}}}}void ISR_Key(void) interrupt 0 using 1{key_flag=~key_flag; }。