基于51单片机和Labview的多路温度采集系统
- 格式:pdf
- 大小:364.93 KB
- 文档页数:25
51单片机的多路温度采集控制系统设计基于51单片机的多路温度采集控制系统设计言:随着现代信息技术的飞速发展,温度测量控制系统在工业、农业及人们的日常生活中扮演着一个越来越重要的角色,它对人们的生活具有很大的影响,所以温度采集控制系统的设计与研究有十分重要的意义。
本次设计的目的在于学习基于51单片机的多路温度采集控制系统设计的基本流程。
本设计采用单片机作为数据处理与控制单元,为了进行数据处理,单片机控制数字温度传感器,把温度信号通过单总线从数字温度传感器传递到单片机上。
单片机数据处理之后,发出控制信息改变报警和控制执行模块的状态,同时将当前温度信息发送到LED进行显示。
本系统可以实现多路温度信号采集与显示,可以使用按键来设置温度限定值,通过进行温度数据的运算处理,发出控制信号达到控制蜂鸣器和继电器的目的。
我所采用的控制芯片为AT89c51,此芯片功能较为强大,能够满足设计要求。
通过对电路的设计,对芯片的外围扩展,来达到对某一车间温度的控制和调节功能。
关键词:温度多路温度采集驱动电路正文:1、温度控制器电路设计本电路由89C51单片机温度传感器、模数转换器ADC0809、窜入并出移位寄存器74LS164、数码管、和LED显示电路等组成。
由热敏电阻温度传感器测量环境温度,将其电压值送入ADC0809的IN0通道进行模数转换,转换所得的数字量由数据端D7-D0输出到89C51的P0口,经软件处理后将测量的温度值经单片机的RXD端窜行输出到74LS164,经74LS164 窜并转换后,输出到数码管的7个显示段,用数字形式显示出当前的温度值。
89C51的P2.0、P2.1、P2.2分别接入ADC0809通道地址选择端A、B、C,因此ADC0809的IN0通道的地址为F0FFH。
输出驱动控制信号由p1.0输出,4个LED 为状态指示,其中,LED1为输出驱动指示,LED2为温度正常指示,LED3为高于上限温度指示,LED4为低于下限温度指示。
《基于单片机和LabVIEW的多路数据采集系统设计》篇一一、引言随着科技的飞速发展,多路数据采集系统在众多领域的应用日益广泛。
基于单片机和LabVIEW技术的多路数据采集系统,因其高效、可靠、灵活的特点,正逐渐成为现代数据采集的主流方案。
本文将详细介绍基于单片机和LabVIEW的多路数据采集系统的设计思路、实现方法和应用前景。
二、系统设计概述本系统以单片机为核心控制器,采用LabVIEW软件进行上位机界面设计和数据处理。
系统可实现多路数据的同步采集、实时显示、数据存储及远程传输等功能。
通过单片机的高效数据处理能力和LabVIEW的强大数据分析能力,实现对多路数据的精确采集和处理。
三、硬件设计1. 单片机选择:选用高性能、低功耗的单片机作为核心控制器,负责数据的采集、处理和传输。
2. 数据采集模块:根据实际需求,设计多路数据采集模块,包括传感器接口、数据转换电路等。
3. 通信接口:设计合适的通信接口,如USB、串口等,实现单片机与上位机之间的数据传输。
4. 电源模块:为整个系统提供稳定的电源供应,保证系统的正常运行。
四、软件设计1. LabVIEW界面设计:使用LabVIEW软件进行上位机界面设计,包括数据采集、数据处理、数据显示等模块。
2. 数据处理算法:根据实际需求,设计合适的数据处理算法,如滤波、放大、数字化等。
3. 数据存储与传输:将处理后的数据存储到本地或通过网络传输到其他设备。
4. 程序调试与优化:对程序进行调试和优化,保证系统的稳定性和性能。
五、系统实现1. 单片机编程:使用C语言或汇编语言对单片机进行编程,实现数据的采集、处理和传输。
2. LabVIEW程序设计:使用LabVIEW软件进行上位机程序设计,实现数据的实时显示、存储和传输。
3. 系统调试:对系统进行整体调试,确保各模块的正常运行和数据的准确性。
4. 系统优化:根据实际运行情况,对系统进行优化,提高系统的性能和稳定性。
六、应用前景基于单片机和LabVIEW的多路数据采集系统具有广泛的应用前景。
《基于单片机和LabVIEW的多路数据采集系统设计》篇一一、引言随着科技的发展,多路数据采集系统在工业、医疗、环境监测等领域的应用越来越广泛。
为了满足多路数据的高效、准确采集需求,本文提出了一种基于单片机和LabVIEW的多路数据采集系统设计。
该系统设计旨在实现多路信号的同时采集、处理及实时监控,以适应复杂多变的应用环境。
二、系统概述本系统采用单片机作为核心控制器,结合LabVIEW软件进行数据采集和处理。
系统由多个传感器模块、单片机控制器、数据传输模块以及上位机软件组成。
传感器模块负责实时监测各种物理量,如温度、湿度、压力等,并将采集到的数据传输给单片机控制器。
单片机控制器对数据进行处理和存储,并通过数据传输模块将数据发送至上位机软件进行进一步的处理和显示。
三、硬件设计1. 传感器模块:传感器模块采用高精度、高稳定性的传感器,如温度传感器、湿度传感器等,实现对物理量的实时监测。
传感器模块的输出为数字信号或模拟信号,方便与单片机进行通信。
2. 单片机控制器:采用具有高速处理能力的单片机作为核心控制器,实现对数据的快速处理和存储。
单片机与传感器模块和数据传输模块进行通信,实现数据的实时采集和传输。
3. 数据传输模块:数据传输模块采用无线或有线的方式,将单片机控制器的数据传输至上位机软件。
无线传输方式具有灵活性高、安装方便等优点,但需要考虑信号干扰和传输距离的问题;有线传输方式则具有传输速度快、稳定性好等优点。
四、软件设计1. 单片机程序设计:单片机程序采用C语言编写,实现对传感器数据的实时采集、处理和存储。
同时,程序还需要与上位机软件进行通信,实现数据的实时传输。
2. LabVIEW程序设计:LabVIEW程序采用图形化编程语言编写,实现对单片机传输的数据进行实时处理和显示。
同时,LabVIEW程序还可以实现对数据的存储、分析和报警等功能。
五、系统实现1. 数据采集:传感器模块实时监测各种物理量,并将采集到的数据传输给单片机控制器。
《基于单片机和LabVIEW的多路数据采集系统设计》篇一一、引言随着现代工业自动化和智能化的发展,多路数据采集系统在各种应用领域中发挥着越来越重要的作用。
为了满足高精度、高效率的数据采集需求,本文提出了一种基于单片机和LabVIEW 的多路数据采集系统设计。
该系统不仅具备多路数据同时采集和处理的能力,而且具有良好的实时性和可扩展性。
二、系统设计概述本系统以单片机作为核心控制器,通过多路传感器实现对多种数据的实时采集。
同时,利用LabVIEW软件进行上位机界面设计和数据处理。
系统设计主要包括硬件设计和软件设计两部分。
三、硬件设计1. 单片机选择:选用性能稳定、处理速度快、功耗低的单片机作为核心控制器。
单片机应具备多路ADC(模数转换器)接口,以便于连接多种传感器。
2. 传感器选择:根据实际需求选择合适的传感器,如温度传感器、湿度传感器、压力传感器等。
传感器应具备高精度、低噪声、快速响应等特点。
3. 数据采集电路:设计多路数据采集电路,将传感器输出的信号转换为单片机可处理的数字信号。
4. 通信接口:设计单片机与上位机之间的通信接口,如USB、串口等,以便于数据的传输和处理。
四、软件设计1. LabVIEW界面设计:利用LabVIEW软件进行上位机界面设计,包括数据采集、数据处理、数据存储等功能。
界面应具备友好的操作界面和丰富的功能选项。
2. 数据处理算法:设计合适的数据处理算法,如滤波、放大、计算等,以提高数据的准确性和可靠性。
3. 通信协议:制定单片机与上位机之间的通信协议,确保数据的准确传输和实时性。
4. 系统调试与优化:对系统进行调试和优化,确保系统的稳定性和可靠性。
五、系统实现1. 硬件连接:将单片机与传感器、通信接口等硬件设备连接起来,形成完整的数据采集系统。
2. 软件编程:编写单片机和上位机的程序,实现数据的实时采集、处理和传输。
3. 系统测试:对系统进行测试,包括功能测试、性能测试和稳定性测试等,确保系统满足设计要求。
基于51单片机的多路温度采集控制系统设计言:随着现代信息技术的飞速发展,温度测量控制系统在工业、农业及人们的日常生活中扮演着一个越来越重要的角色,它对人们的生活具有很大的影响,所以温度采集控制系统的设计与研究有十分重要的意义。
本次设计的目的在于学习基于51单片机的多路温度采集控制系统设计的基本流程。
本设计采用单片机作为数据处理与控制单元,为了进行数据处理,单片机控制数字温度传感器,把温度信号通过单总线从数字温度传感器传递到单片机上。
单片机数据处理之后,发出控制信息改变报警和控制执行模块的状态,同时将当前温度信息发送到LED进行显示。
本系统可以实现多路温度信号采集与显示,可以使用按键来设置温度限定值,通过进行温度数据的运算处理,发出控制信号达到控制蜂鸣器和继电器的目的。
我所采用的控制芯片为AT89c51,此芯片功能较为强大,能够满足设计要求。
通过对电路的设计,对芯片的外围扩展,来达到对某一车间温度的控制和调节功能。
关键词:温度多路温度采集驱动电路正文:1、温度控制器电路设计本电路由89C51单片机温度传感器、模数转换器ADC0809、窜入并出移位寄存器74LS164、数码管、和LED显示电路等组成。
由热敏电阻温度传感器测量环境温度,将其电压值送入ADC0809的IN0通道进行模数转换,转换所得的数字量由数据端D7-D0输出到89C51的P0口,经软件处理后将测量的温度值经单片机的RXD端窜行输出到74LS164,经74LS164 窜并转换后,输出到数码管的7个显示段,用数字形式显示出当前的温度值。
89C51的P2.0、P2.1、P2.2分别接入ADC0809通道地址选择端A、B、C,因此ADC0809的IN0通道的地址为F0FFH。
输出驱动控制信号由p1.0输出,4个LED为状态指示,其中,LED1为输出驱动指示,LED2为温度正常指示,LED3为高于上限温度指示,LED4为低于下限温度指示。
当温度高于上限温度值时,有p1.0输出驱动信号,驱动外设电路工作,同时LED1亮、LED2灭、LED3亮、LED4灭。
《基于单片机和LabVIEW的多路数据采集系统设计》篇一一、引言在现代工业和科学研究领域中,数据采集系统的设计与实现已成为一种重要且必要的任务。
通过设计一种基于单片机和LabVIEW的多路数据采集系统,可以有效地对多路数据进行高效、快速且精确的采集。
该系统具有多路并行数据传输和处理能力,以及高度自动化和可扩展的特点,能够满足各种复杂应用场景的需求。
二、系统设计概述本系统设计以单片机作为核心控制器,通过与LabVIEW软件相结合,实现多路数据的实时采集、处理和显示。
系统主要由以下几个部分组成:单片机控制器、多路数据采集模块、数据传输模块、LabVIEW上位机软件等。
三、硬件设计1. 单片机控制器:作为整个系统的核心,单片机控制器负责协调各个模块的工作,并执行上位机软件的指令。
本系统采用高性能的单片机,具有高速处理能力和低功耗的特点。
2. 多路数据采集模块:该模块负责实现对多路数据的实时采集。
通过与各种传感器相连接,实现对温度、湿度、压力、电压等多种数据的采集。
每个数据采集通道都具有一定的滤波和抗干扰能力,以确保数据的准确性。
3. 数据传输模块:该模块负责将单片机控制器处理后的数据传输到上位机软件进行进一步的处理和显示。
本系统采用高速、稳定的通信协议,确保数据的实时传输和可靠性。
四、软件设计1. LabVIEW上位机软件:作为整个系统的控制中心,LabVIEW上位机软件负责实现对单片机的控制、数据的处理和显示。
通过编写各种控制算法和显示界面,实现对多路数据的实时监控和数据处理。
2. 数据处理与算法:在LabVIEW上位机软件中,通过编写各种数据处理算法,实现对数据的滤波、去噪、平滑处理等操作,以提高数据的准确性和可靠性。
同时,通过编写各种分析算法,实现对数据的进一步分析和处理。
3. 用户界面设计:为方便用户使用和操作,本系统设计了友好的用户界面。
用户可以通过界面实现对单片机的控制、数据的查看和处理等操作。
基于51单片机温度采集系统姓名:学号:班级:1. 摘要:本系统基于51系列的单片机AT89C51,选用电子开关CD4051分别对三路温度信号进行控制,经运算放大器与A/D双积分式转换芯片ICL7135相连,将数据采集进入控制器,进而对其进行控制显示。
2. 方案选择:被控对象:设计要求选用热电偶对温度进行采集,在用热电偶进行温度测量时,热电偶的冷端补偿是必不可少的,从热电偶的测温原理知道,热电偶热电势大小不但与热端温度有关,而且与冷端温度有关。
只有在冷端温度恒定的情况下,热电势才能正确反映热端温度大小。
根据系统整体流程选用K型的热电偶,其输出热电势在0-20mV 之间。
本系统采用可编程测温集成器件18B20,其输出数据已转换为串行输出的数字量,较为容易采集。
信号采集通路:系统是对三路温度信号进行采集因此需要选用一片电子开关芯片,由于信号经电子开关后接运算放大器,电子开关的导通电阻不会对温度信号产生影响,因此可选用成本较低的,导通电阻稍大的电子开关芯片CD4051。
为防止零点漂移,应将地端得电压信号也采集进CPU。
信号的放大滤波电路:热电偶采集的温度信号仅为mv级,不能满足A/D ICL7135对输入电压的要求,因此要将此信号进行放大可选择比较精密的运放OP07,为保证CD4051的导通电阻不会影响运算放大器的增益,使CD4051的输出信号直接与OP07的同向输入端相连。
在采集温度时,会受到现场电磁的干扰,具有工频50HZ的干扰信号,所以要对信号进行滤波处理,本系统采用比较简单的RC滤波电路。
A/D转换芯片:热电偶采集的温度信号为模拟信号,要想与单片机相连就需要用数模转换芯片,由于ICL7135是双积分式的转换芯片,其转换精度可达1/20000,又可有效的抵抗外界干扰。
控制芯片:此系统对数据处理的要求不高,可选用成本较低,应用比较广泛的51系列单片机AT89C51。
显示部分:将采集进单片机的温度信号用LED数码管进行显示,虽然LCD能很方便的编程显示,但其成本是数码管的十多倍,所以选用成本较为低廉的数码管。
论文题目:基于MCS51的多路温度检测终端设计与实现专业:电子与信息工程学生:张泽鑫签名:指导教师:倪云峰签名:摘要温度是工业生产过程中保证产品质量的重要可控参数。
因此,在工农业生产和科学研究中温度的检测与控制在现代经济与社会中越来越受到重视。
传统的监测方法都是单点测量,同时有温度传递不及时、精度不够的缺点,不利于工业控制者根据温度变化及时做出决定,因此多路温度检测终端的设计成了一项重要的研究课题。
本文设计了一种基于单片机的具有多路采集通道的高精度的数字温度检测系统。
硬件上,CPU采用STC89C52为主控芯片,配置DS18B20温度传感器作为信号采集装置,利用LCD1602对四路采集的温度信号进行显示。
软件上运用C语言的编程,用protues仿真和硬件电路的设计,实现了实时温度检测,并能够方便设置温度上下限,实现报警功能,另外还配备了单片机与PC机的通信功能。
文中,终了进行了测试与实验,实验达到了预期的结果。
【关键词】温度测量;单总线;数字温度传感器;单片机【论文类型】设计型Title:The Terminal design and implementation of multi-channel temperature detection based on MCS-51Major:Electronic information engineeringName:Zhang Zexin Signature:Supervisor:Ni Yunfeng Signature:ABSTRACTDuring the industry production process, the temperature is the important parameter of ensuring the quality of the products. Therefore, the detection and control of temperature in industrial and agricultural production and scientific research have playing a more and more important role. Traditional monitoring methods are single point measurement, meanwhile the temperature transfer is not timely and accurate enough .These are not conducive to industrial control according to the temperature change in a timely decision. So it has become an important research topic in the design of multi-channel temperature detection terminal.This paper has designed a multi-channel acquisition channel digital high precision temperature detection system based on single chip microcomputer.On the aspect of hardware, the STC89c52 is used as the main control chip. It equipped with the DS18B20 temperature sensor, which acts as signal acquisition device. The temperature signal of four way's acquisitions are displayed by the LCD1602.On the aspect of software, C-programming language used by Protues simulation and hardware circuit design to achieve a real-time temperature detection. There is a ability to easily set the temperature limit, and the alarm function. Meanwhile it can also communicate with the PC.In this paper, the result of tested has achieved the goal as expected.【Key words】temperature measure;single bus;digital thermometer;single chip processor 【Type of Thesis】Design mode目录1 基础理论............................................................................................................................. - 1 -1.1 概述.......................................................................................................................... - 1 -2.1 单总线简介.............................................................................................................. - 3 -2.1.1 概述............................................................................................................... - 3 -2.1.2单总线的工作原理........................................................................................ - 3 -2.1.3 单总线器件信号传递方式........................................................................... - 4 -1.3 MCS51单片机 ......................................................................................................... - 7 -1.3.1 MCS51单片机概述 ...................................................................................... - 7 -1.3.2 MCS-51单片机的结构 ................................................................................. - 7 -1.3.3 指令系统....................................................................................................... - 9 -1.3.4 中断............................................................................................................. - 10 -1.3.5定时器.......................................................................................................... - 10 -2 硬件设计方案....................................................................................................................- 11 -2.1系统综述..................................................................................................................- 11 -2.2 温度采集与测量系统............................................................................................ - 12 -2.2.1 DS18B20的特性 ......................................................................................... - 12 -2.1.2 DS18B20引脚排列 ..................................................................................... - 13 -2.2.3 DS18B20 的硬件结构 ................................................................................ - 13 -2.2.4 DS18B20的供电方式 ................................................................................. - 14 -2.2.5 DS18B20的ROM指令.............................................................................. - 16 -2.2.6 DS18B20的测温原理 ................................................................................. - 18 -2.3 显示系统................................................................................................................ - 19 -2.3.1 LCM1602显示模块 .................................................................................... - 19 -2.2.3 LCM1602管脚分布 .................................................................................... - 20 -2.4 报警系统及输入设备............................................................................................ - 21 -2.5 最小系统外围电路................................................................................................ - 22 -2.5.1 PC机与单片机的串行通信接口电路........................................................ - 22 -2.5.2 晶振电路以及复位电路............................................................................. - 22 -3 软件系统的设计............................................................................................................... - 24 -3.1 主程序.................................................................................................................... - 24 -3. 2 DS18B20 相关程序 .............................................................................................. - 25 -3.2.1 查询DS18B20的ROM ............................................................................. - 26 -3.2.2 DS18B20 初始化程序 ................................................................................ - 27 -3.2.3 温度采集..................................................................................................... - 27 -3.3 LCM1602 相关程序 .............................................................................................. - 29 -3.3.1 LCM1602 初始化程序 ....................................................................................... - 29 -3.3.2 显示子程序......................................................................................................... - 31 -3.4 报警系统和键盘输入系统相关程序.................................................................... - 32 -3.4.1 报警系统..................................................................................................... - 32 -3.4.2 键盘输入..................................................................................................... - 32 -4 实验结果总结................................................................................................................... - 34 -5总结与展望........................................................................................................................ - 37 -5.1 总结........................................................................................................................ - 37 -5.2 展望........................................................................................................................ - 37 -致谢....................................................................................................................................... - 39 -参考文献............................................................................................................................... - 40 -1 基础理论1.1 概述温度是表征物体冷热程度的物理量,是工业生产和科学实验中一个非常重要的参数。
基于51单片机的温度采集系统(Labview做上位机)做该设计的初衷是为自己的毕设打基础,因为我的毕设要做一个探测机器人,需要对某一地区的各种环境参数进行检测,然后通过WIFI返回到上位机。
所以为了搞懂温度传感器以及练习上位机的设计,花了几天时间做了一个很简单的采集系统。
今天把它拿出来跟各位小伙伴们分享,希望对各位有所帮助,同时也希望大佬们指出不足,起到一个相互学习,相互促进的作用。
该系统原理是:51单片机把ds18b20传感器将采集到的温度值(十六进制)通过串口发送到labview,labview对单片机发来的数据做简单的处理然后显示。
上位机界面上位机(接受程序)简单的硬件连接数据纪录串口部分:void main() {if(flag==1||flag1==1) {S=test/10;Y=test%10;ES=0;flag=0;SBUF=S;while(!TI);TI=0;SBUF=Y;while(!TI);TI=0;if(temperature!=test) flag1=1;ES=1;}}//串口中断void ser() interrupt 4{if(RI==1){RI=0;a=SBUF;if(a=='1') P1=0x55;if(a=='0') P1=0xaa;flag=1;}}温度采集部分:#include#include "ds18b20.h"#include "delay.h"sbit DQ=P2^2; //温度传感器 I/O 口uchar reset_ds18b20(){uchar presence;DQ=0;delay_ds18b20(29); //延时480 - 960 us DQ=1; delay_ds18b20(3); //延时 15 - 60 us presence=DQ;delay_ds18b20(25); //延时 60 - 240 us return(presence);}uchar read_bit_ds18b20(){uchar i;DQ=1;delay_ds18b20(1);DQ=0;//delay(1); //延时 15us 也可以不延时DQ=1;//delay(3); //延时 1 - ∞ usfor(i=0;i<3;i++);return(DQ);}void write_bit_ds18b20(uchar dat){DQ=0; //置0 无需延时if(dat==1)DQ=1;delay_ds18b20(1); //延时 60 - 120 us DQ=1;delay_ds18b20(1); //延时 1 - ∞ us }void write_byte_ds18b20(uchar dat){uchar i,j;for(i=0;i<8;i++){j=((dat>>i)&0x01);write_bit_ds18b20(j);//delay(1); //延时 1 - ∞ us}}uchar read_byte_ds18b20(){uchar dat=0;uchar i;for(i=0;i<8;i++){if(read_bit_ds18b20())dat|=0x01<<>< p=""><>//delay(1); //延时 1 - ∞ us}return(dat);}int read_temp_ds18b20(){uchar templ=0,temph=0;int temp=0;reset_ds18b20();//复位write_byte_ds18b20(0xcc); //跳过ROMwrite_byte_ds18b20(0x44); //跳过温度采集delay_ds18b20(10); //750msreset_ds18b20();write_byte_ds18b20(0xcc); //跳过ROMwrite_byte_ds18b20(0xbe); //准备好数据(开始温度转换采集)templ=read_byte_ds18b20();//读低字节温度值temph=read_byte_ds18b20();//读低字节温度值temp=(templ+(temph*256));return(temp);。
基于51单片机的多路温度采集控制系统设计言:随着现代信息技术的飞速发展,温度测量控制系统在工业、农业及人们的日常生活中扮演着一个越来越重要的角色,它对人们的生活具有很大的影响,所以温度采集控制系统的设计与研究有十分重要的意义。
本次设计的目的在于学习基于51单片机的多路温度采集控制系统设计的基本流程。
本设计采用单片机作为数据处理与控制单元,为了进行数据处理,单片机控制数字温度传感器,把温度信号通过单总线从数字温度传感器传递到单片机上。
单片机数据处理之后,发出控制信息改变报警和控制执行模块的状态,同时将当前温度信息发送到LED进行显示。
本系统可以实现多路温度信号采集与显示,可以使用按键来设置温度限定值,通过进行温度数据的运算处理,发出控制信号达到控制蜂鸣器和继电器的目的。
我所采用的控制芯片为AT89c51,此芯片功能较为强大,能够满足设计要求。
通过对电路的设计,对芯片的外围扩展,来达到对某一车间温度的控制和调节功能。
关键词:温度多路温度采集驱动电路正文:1、温度控制器电路设计本电路由89C51单片机温度传感器、模数转换器ADC0809、窜入并出移位寄存器74LS164、数码管、和LED 显示电路等组成。
由热敏电阻温度传感器测量环境温度,将其电压值送入ADC0809的IN0通道进行模数转换,转换所得的数字量由数据端D7-D0输出到89C51的P0口,经软件处理后将测量的温度值经单片机的RXD端窜行输出到74LS164,经74LS164 窜并转换后,输出到数码管的7个显示段,用数字形式显示出当前的温度值。
89C51的P2.0、P2.1、P2.2分别接入ADC0809通道地址选择端A、B、C,因此ADC0809的IN0通道的地址为F0FFH。
输出驱动控制信号由p1.0输出,4个LED为状态指示,其中,LED1为输出驱动指示,LED2为温度正常指示,LED3为高于上限温度指示,LED4为低于下限温度指示。
当温度高于上限温度值时,有p1.0输出驱动信号,驱动外设电路工作,同时LED1亮、LED2灭、LED3亮、LED4灭。
基于单片机的多路温度采集系统一、摘要:本设计利用单片机及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系列单片机相比有两大优势:第一,片内程序存储器采用闪速存储器,使程序的写入更加方便;第二,提供了更小尺寸的芯片,使整个电路体积更小。
基于单片机和LabVIEW的多路数据采集系统设计基于单片机和LabVIEW的多路数据采集系统设计近年来,随着科技的不断发展,对于数据采集系统的需求越来越大。
数据采集系统能够将各种外部信号转换为数字信号,并传输到电脑中进行处理和分析,广泛应用于工业控制、物联网、仪器仪表及自动化等领域。
本文将介绍一种基于单片机和LabVIEW的多路数据采集系统设计方案。
1. 系统硬件设计该多路数据采集系统设计方案的硬件主要包括传感器模块、数据采集模块以及计算机连接模块。
传感器模块:传感器模块负责采集外部信号,并将其转换为电信号。
根据不同的测量需求,选择合适的传感器模块,如温度传感器、湿度传感器等。
数据采集模块:数据采集模块使用单片机作为核心,通过模拟转换器将传感器模块转换得到的电信号转换为数字信号。
具体地,单片机通过AD转换器将模拟信号转换为数字信号,并通过串口通信将数据传输给计算机。
计算机连接模块:计算机连接模块使用串口连接单片机和计算机,通过串口通信实现数据传输。
在计算机上安装LabVIEW应用程序,通过LabVIEW程序来控制和监测数据采集系统。
2. 系统软件设计该多路数据采集系统设计方案的软件主要包括单片机程序设计和LabVIEW程序设计两部分。
单片机程序设计:单片机程序设计主要实现对传感器模块的数据采集和数字信号的转换,然后通过串口通信将数据发送给计算机。
首先,通过单片机的GPIO口读取传感器模块采集的信号,然后使用AD转换器将模拟信号转换为数字信号,最后通过串口通信将采集到的数据发送给计算机。
LabVIEW程序设计:LabVIEW程序设计则主要用于接收串口传输的数据,并进行数据处理和显示。
在LabVIEW中,可以使用串口通信工具箱来进行串口通信的设置。
通过设置串口参数和接收数据的方式,可以实时接收并显示采集到的数据。
同时,LabVIEW也提供了数据处理和分析的功能,可以对采集到的数据进行滤波、变换、绘图等操作。
干货联盟原理图外接USB转TTL线最小系统传感器程序/*************************此部分为18B20的驱动程序*************************************/#include <reg52.H>#include <intrins.h>sbit D18B20=P3^7;#define NOP() _nop_() /* 定义空指令*/#define _Nop() _nop_() /*定义空指令*/void TempDelay (unsigned char idata us);void Init18b20 (void);void WriteByte (unsigned char idata wr); //单字节写入void read_bytes (unsigned char idata j);unsigned char CRC (unsigned char j);void GemTemp (void);void Config18b20 (void);void ReadID (void);void TemperatuerResult(void);bit flag;unsigned int idata Temperature;unsigned char idata temp_buff[9]; //存储读取的字节,read scratchpad为9字节,read rom ID 为8字节unsigned char idata id_buff[8];unsigned char idata *p,TIM;unsigned char idata crc_data;unsigned char code CrcTable [256]={0, 94, 188, 226, 97, 63, 221, 131, 194, 156, 126, 32, 163, 253, 31, 65, 157, 195, 33, 127, 252, 162, 64, 30, 95, 1, 227, 189, 62, 96, 130, 220, 35, 125, 159, 193, 66, 28, 254, 160, 225, 191, 93, 3, 128, 222, 60, 98, 190, 224, 2, 92, 223, 129, 99, 61, 124, 34, 192, 158, 29, 67, 161, 255,70, 24, 250, 164, 39, 121, 155, 197, 132, 218, 56, 102, 229, 187, 89, 7,219, 133, 103, 57, 186, 228, 6, 88, 25, 71, 165, 251, 120, 38, 196, 154, 101, 59, 217, 135, 4, 90, 184, 230, 167, 249, 27, 69, 198, 152, 122, 36, 248, 166, 68, 26, 153, 199, 37, 123, 58, 100, 134, 216, 91, 5, 231, 185, 140, 210, 48, 110, 237, 179, 81, 15, 78, 16, 242, 172, 47, 113, 147, 205, 17, 79, 173, 243, 112, 46, 204, 146, 211, 141, 111, 49, 178, 236, 14, 80,175, 241, 19, 77, 206, 144, 114, 44, 109, 51, 209, 143, 12, 82, 176, 238, 50, 108, 142, 208, 83, 13, 239, 177, 240, 174, 76, 18, 145, 207, 45, 115,202, 148, 118, 40, 171, 245, 23, 73, 8, 86, 180, 234, 105, 55, 213, 139, 87, 9, 235, 181, 54, 104, 138, 212, 149, 203, 41, 119, 244, 170, 72, 22,233, 183, 85, 11, 136, 214, 52, 106, 43, 117, 151, 201, 74, 20, 246, 168,116, 42, 200, 150, 21, 75, 169, 247, 182, 232, 10, 84, 215, 137, 107, 53};///*************************************************************Function:延时处理*parameter:*Return:*Modify:*************************************************************/void TempDelay (unsigned char idata us){while(us--);}/************************************************************ *Function:18B20初始化*parameter:*Return:*Modify:*************************************************************/ void Init18b20 (void){D18B20=1;_nop_();D18B20=0;TempDelay(75); //delay 530 uS//80 _nop_();D18B20=1;TempDelay(12); //delay 100 uS//14 _nop_();_nop_();_nop_();if(D18B20==0)flag = 1; //detect 1820 success! elseflag = 0; //detect 1820 fail!TempDelay(18); //20_nop_();_nop_();D18B20 = 1;}/************************************************************ *Function:向18B20写入一个字节*parameter:*Return:*Modify:*************************************************************/ void WriteByte (unsigned char idata wr) //单字节写入{unsigned char idata i;for (i=0;i<8;i++){D18B20 = 0;_nop_();D18B20=wr&0x01;TempDelay(2); //delay 45 uS //3_nop_();_nop_();D18B20=1;wr >>= 1;}}/************************************************************ *Function:读18B20的一个字节*parameter:*Return:*Modify:*************************************************************/ unsigned char ReadByte (void) //读取单字节{unsigned char idata i,u=0;for(i=0;i<8;i++){D18B20 = 0;u >>= 1;D18B20 = 1;if(D18B20==1)u |= 0x80;TempDelay (2);_nop_();}return(u);}/************************************************************ *Function:读18B20*parameter:*Return:*Modify:*************************************************************/ void read_bytes (unsigned char idata j){unsigned char idata i;for(i=0;i<j;i++){*p = ReadByte();p++;}}/************************************************************ *Function:CRC校验*parameter:*Return:*Modify:*************************************************************/ unsigned char CRC (unsigned char j){unsigned char idata i,crc_data=0;for(i=0;i<j;i++) //查表校验crc_data = CrcTable[crc_data^temp_buff[i]];return (crc_data);}/************************************************************ *Function:读取温度*parameter:*Return:*Modify:*************************************************************/ void GemTemp (void){read_bytes (9);if (CRC(9)==0) //校验正确{Temperature = temp_buff[1]*0x100 + temp_buff[0];// Temperature *= 0.625;Temperature /= 16;TempDelay(1);}}/************************************************************ *Function:内部配置*parameter:*Return:*Modify:*************************************************************/void Config18b20 (void) //重新配置报警限定值和分辨率{Init18b20();WriteByte(0xcc); //skip romWriteByte(0x4e); //write scratchpadWriteByte(0x19); //上限WriteByte(0x1a); //下限WriteByte(0x7f); //set 11 bit (0.125)Init18b20();WriteByte(0xcc); //skip romWriteByte(0x48); //保存设定值Init18b20();WriteByte(0xcc); //skip romWriteByte(0xb8); //回调设定值}/************************************************************ *Function:读18B20ID*parameter:*Return:*Modify:*************************************************************/ void ReadID (void)//读取器件id{Init18b20();WriteByte(0x33); //read romread_bytes(8);}/************************************************************ *Function:18B20ID全处理*parameter:*Return:*Modify:*************************************************************/ void TemperatuerResult(void){p = id_buff;ReadID();Config18b20();Init18b20 ();WriteByte(0xcc); //skip romWriteByte(0x44); //Temperature convertInit18b20 ();WriteByte(0xcc); //skip romWriteByte(0xbe); //read Temperaturep = temp_buff;GemTemp();}void GetT emp(){if(TIM==100) //每隔1000ms 读取温度{ TIM=0;TemperatuerResult();}}/************************************* [ t1 (10ms)中断] 中断*************************************/ void timer1() interrupt 1{TH0=(65536-10000)/256;TL0=(65536-10000)%256;TIM++;}} Labview界面。