基于单片机的数据采集模块设计Word文档格式.docx
《基于单片机的数据采集模块设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的数据采集模块设计Word文档格式.docx(37页珍藏版)》请在冰豆网上搜索。
当前以微机为核心的可编程数据采集与处理技术作为数据采集的技术得到了迅速的发展,并且在适于通用微机(如IBMPC系列)使用的板卡级数据采集产品也已大量出现,组成一个数据采集系统简单到只需要一块数据采集卡,把它插在微机的扩展槽内,并辅以应用软件,就能实现数据采集功能,但这并不会对基于单片机为核心的数据采集系统产生影响,并随着单片机的性能的逐步提高,其应用范围也必将越来越宽广。
本课题设计的数据采集系统是基于单片机AT89C52为控制核心的数据采集系统,采用新型数字传感器、利用了总线技术、可以与上位机通信等特点。
实验证明,采用AT89C52开发的系统性能可靠、成本较低、软件设计灵活简单、硬件接口功能丰富,具有扩展性好、通用性强等优点,能实现对多路温度模拟通道信号的数据采集与处理,并将采集的数据送到LCD显示器显示等功能。
关键词:
单片机;
传感器;
LCD;
数据采集系统
Abstract
Withthedevelopmentofnationaleconomy,peopleneedallthefurnace,heattreatmentfurnaces,reactorsandboilerstomonitorandcontroltemperature,usingsinglechiptocontrolnotonlyhavecontroloftheirconvenience,simplicity,andflexibilityadvantagesofalarge,substantialincreaseintemperaturebutalsochargedwiththetechnicalindicators,whichcangreatlyimprovethequalityandquantity.
Singlechipmicro-computerasabranchofapowerful,anti-interferenceability,highreliability,goodflexibilityandeasyindevelopment,makestheMCUcorebaseddataacquisitionsysteminmanyareashasbeenwidelyused.Currenttothecoreoftheprogrammablecomputerdataacquisitionandprocessingtechniquesasdataacquisitiontechnologyhasbeenrapiddevelopment.andinsuitablemicrocomputer(suchastheIBMPCseries)usedinboard-leveldataacquisitionproductshavealsoappearedinlargenumbers.Theformationofasimpledataacquisitionsystemtoonlyonedataacquisitioncard,itinsertedtheexpansiontankinthecomputer,andsupportedbyapplicationsoftware,canachievedataacquisitionfunctions,butthiswillnothavethecorebasedonsinglechipdataacquisitionsystemimpact,andwiththegradualimprovementoftheperformanceofSCM,itsusewillbecomeincreasinglybroadscope.
Thistopicdesign'
sdataacquisitionsystemisbasedonmonolithicintegratedcircuitAT89S52isthecontrolcoredataacquisitionsystem,usedthenewdigitalsensor,tousethebussingtechnique,tobepossiblewithcharacteristicsandsoonsuperiormachinecorrespondence.Theexperimentprovedthatusesat89C52developmentthesystemperformancetobereliable,thecostislow,thesoftwaredesignnimblysimple,thehardwareinterfacefunctiontoberich,hastheextensiontobegood,versatilitystrongandsoonmerits,canrealizetothemulti-channeltemperatureanalogchannelsignaldataacquisitionandprocessing,andwillgatherthedatadeliversfunctionsandsoonLCDmonitordemonstration.
Keywords:
MCU;
LCD;
dataacquisitionsystem
目录
引论1
1 方案论证2
1.1 传感器部分2
1.2 单片机的选择3
2 硬件电路设计4
2.1 主要芯片及器件4
2.2 AT89C52型单片机的功能特点4
2.3 DS18B20型温度传感器与单片机的连接设计7
2.4 1602型LCD模块及其使用说明15
2.5 与PC机通信电路19
3 软件设计22
3.1 单片机主控制流程图22
3.2 DS18B20温度测量程序设计流程图23
3.3 液晶显示流程设计图24
3.4 单片机串口发送流程设计25
主要参考文献28
附录29
附录129
引论
在工、农业生产和日常生活中,对温度的测量及控制占据着极其重要地位。
首先让我们了解一下多点温度检测系统在各个方面的应用领域:
消防电气的非破坏性温度检测,电力、电讯设备之过热故障预知检测,空调系统的温度检测,各类运输工具之组件的过热检测,保全与监视系统之应用,医疗与健诊的温度测试,化工、机械等设备温度过热检测。
温度检测系统应用十分广阔。
利用单总线的特点可以方便的实现多点温度的测量,轻松的组建传感器网络,系统的抗干扰性好、设计灵活、方便,而且适合于在恶劣的环境下进行现场温度测量。
单片机通过匹配DS18B20序列号的方式锁定位于传感器网络中不同区位的传感器,然后读取该传感器的温度数据,再将获取的温度数据加以处理送给液晶显示系统,液晶显示器显示出该区位的温度示数,同时单片机也将获取到的数据通过串口送到上位机进行数据的分析和存储。
本系统可以应用在大型工业及民用常温多点监测场合。
如粮食仓储系统、楼宇自动化系统、温控制程生产线之温度影像检测、医疗与健诊的温度测试、空调系统的温度检测、石化、机械等领域。
1方案论证
1.1传感器部分
温度检测系统有着共同的特点:
测量点多、环境复杂、布线分散、现场离监控室远等。
若采用一般温度传感器采集温度信号,则需要设计信号调理电路、A/D转换及相应的接口电路,才能把传感器输出的模拟信号转换成数字信号送到计算机去处理。
这样,由于各种因素会造成检测系统较大的偏差;
又因为检测环境复杂、测量点多、信号传输距离远及各种干扰的影响,会使检测系统的稳定性和可靠性下降。
多点温度检测系统的设计关键在于两部分系统中,采用单片温度传感器,比如AD590,LM35等。
但这些芯片输出的都是模拟信号,必须经过A/D转换后才能送给单片机,这样就使得测温装置的结构较复杂。
另外,这种测温装置的一根线上只能挂一个传感器,在进行多点温度测量时占用单片机较多的I/O口资源,不利于系统的扩展。
而且实现这种测量方案时,也要用到复杂的算法,一定程度上也增加了软件实现的难度。
温度传感器应用范围广泛、使用数量庞大,也高居各类传感器之首。
采用热敏电阻,可满足40摄氏度至90摄氏度测量范围,但热敏电阻精度、重复性、可靠性较差,对于检测1摄氏度的信号是不适用的,而且在温度测量系统中需要增加AD转换电路。
所以,本次设计不采用这个方案。
在多点测温系统中,传统的测温方法是将模拟信号远距离采样进行AD转换,而为了获得较高的测温精度,就必须采用措施解决由长线传输,多点测量切换及放大电路零点漂移等造成的误差补偿问题。
采用数字温度芯片DS18B20测量温度,输出信号全数字化。
便于单片机处理及控制,省去传统的测温方法的很多外围电路。
且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。
在0—100摄氏度时,最大线形偏差小于1摄氏度。
DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS1820和微控制器AT89C52构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。
这样,测温系统的结构就比较简单,体积也不大,且由于AT89C52可以带多个DSB1820,因此可以非常容易实现多点测量.轻松的组建传感器网络。
综上所述采用温度芯片DS18B20测量温度,可以体现系统芯片化这个趋势。
部分功能电路的集成,使总体电路更简洁,搭建电路和焊接电路时更快。
而且,集成块的使用,有效地避免外界的干扰,提高测量电路的精确度。
所以集成芯片的使用将成为电路发展的一种趋势。
本方案应用这一温度芯片,也是顺应这一趋势。
1.2单片机的选择
在选择单片机方面,现在市面上用的比较多的几种单片机之中我选用的是AT89C52型单片机,AT89C52单片机价格低廉,输入输出口丰富,无需再另外扩展,简化了外围电路。
256B内部RAM,8KB内部ROM,程序存储空间大,防止由于字模过多而造成存储空间不够。
另外由于前期开发需要多次的写入、擦除,而89C52可以完成1000次写/擦,故满足要求。
且由于AT89C52可以带多个DSB1820,因此可以非常容易实现多点测量,轻松的组建传感器网络。
从而使得整个测温系统结构简单体积恰当。
单片机与传感器的连接问题上由于可以由单片机和每个传感器单独相连也可以通过总线让单片机和多个传感器相连,为了使整个系统更加简单,耗材更少,也为了使系统的线路更加清晰明了就选择了通过总线让单片机与传感器相连的方式。
2硬件电路设计
2.1主要芯片及器件
本系统的硬件以单片机为控制核心,还有传感器、时钟芯片、液晶显示电路三部分。
如图2.1。
2.2AT89C52型单片机的功能特点
由ATMEL公司生产的AT89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
在单芯片上,拥有灵巧的8位CPU和在线系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、有效的解决方案。
AT89C52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
而且,它还具有一个看门狗(WDT)定时/计数器,如果程序没有正常工作,就会强制整个系统复位,还可以在程序陷入死循环的时候,让单片机复位而不用整个系统断电,从而保护你的硬件电路。
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
见图2.2。
图2.2AT89C52引脚图
(1)单片机AT89C52的主要性能参数:
①与MCS-51单片机产品兼容
②8K字节在系统可编Flash
③1000次擦写周期,掉电标识
④全静态操作:
0Hz~33Hz
⑤三级加密程序存储器
⑥32个可编程I/O口线
⑦三个16位定时器/计数器,看门狗定时器
⑧八个中断源,双数据指针
⑨全双工UART串行通道
⑩低功耗空闲和掉电模式,掉电后中断可唤醒
(2)片机管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门流。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
P3口也可作为AT89S52的一些特殊功能口,见表2.1所示:
表2.1P3各口线的第二功能表
管脚
备选功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
(外部中断0)
P3.3
(外部中断1)
P3.4
T0(记时器0外部输入)
P3.5
T1(记时器1外部输入)
P3.6
(外部数据存储器写选通)
P3.7
(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次
有效。
但在访问外部数据存储器时,这两次有效的
信号将不出现。
当
保持低电平时,在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,
将内部锁定为RESET;
端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(
)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
2.3DS18B20型温度传感器与单片机的连接设计
(1)DS18B20传感器的特性
在传统的模拟信号远距离温度测量系统中,需要很好的解决引线误差补偿问题、多点测量切换误差问题和放大电路零点漂移误差问题等技术问题,才能够达到较高的测量精度。
另外一般监控现场的电磁环境都非常恶劣,各种干扰信号较强,模拟温度信号容易受到干扰而产生测量误差,影响测量精度。
因此,在温度测量系统中,采用抗干扰能力强的新型数字温度传感器是解决这些问题的最有效方案,新型数字温度传感器DS18B20具有体积更小、精度更高、适用电压更宽、采用一线总线、可组网等优点,在实际应用中取得了良好的测温效果。
美国Dallas半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。
全部传感元件及转换电路集成在形如一只三极管的集成电路内。
一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。
现在,新一代的DS18B20体积更小、更经济、更灵活。
使你可以充分发挥“一线总线”的优点。
目前DS18B20批量采购价格仅10元左右。
(2)传感器与单片机的两种连接方式
在传感器与单片机的连接方式的选择上一般有两种选择方案,如图2.3所示此方案设计中每一个DS18B20传感器占用一个I/O口,因而在编写程序时需要针对每一个传感器进行初始化,发送温度转换命令等等增加了软件设计的繁琐性,而且在进行温度的循环检测时,每检测一个点的温度时都要进行一次温度转换(DA18B20完成温度转换一次大约需要0.5秒时间),这样就会大大影响整个系统数据采集和传输的实时性,而且也极大的浪费了单片机I/O口资源。
图2.3连接方式1
而另外一种方案中,该方案设计中多个传感器通过单线多点的方式连接起来构成一个传感器网络,并通过一根总线与单片机的I/O连接起来。
见图2.4当单片机向总线发送初始化命令,温度转化命令时,网络中所有的传感器都可以接收到命令并作出响应,与方案一相比这种方案大大的加快了系统的实时响应速度。
图2.4连接方式2
但此设计方案需要事先获取到传感器网络中每一个传感器的64位序列号,在设计程序时需要在程序段中建立序列号列表,将每一个传感器的序列号与其位置对应起来。
当我们需要获取某一点的温度数据时,我们用查表的方式找到该点传感器的序列号,然后通过匹配序列号命令锁定该传感器。
该系统中单片机通过匹配序列号的方式,锁定传感器网络中的某一个传感器,然后通过采取串口通信协议从数据总线上获取该点的温度数据,单片机将获得的温度数据加以处理送给液晶显示系统并显示出该点的温度示数,同时单片机也将温度数据通过串口送到上位机进行分析和存储。
我们常用PC机作为上位机,单片机做下位机,单片机完成数据的采集与过程控制,PC机完成数据的显示、管理、以及控制模型的优化等。
PC系列微机可利用异步通信适配器实现串行通信。
异步通信适配器的核心是通用异步接收发生器UART,配以电平转换电路和控制逻辑电路,其端口地址范围为3F8H—3FFH或2F8H—2FFH。
异步通信适配器可以与Modem进行配合来实现远距离通信。
当某一点的温度超过该区设定的温度上限时,报警电路将启动告诉管理员该处温度超标。
所以我们选取此方案。
(1)DS18B20单总线数字化温度传感器
DS18B20支持单总线接口,测量温度范围为-55°
C~+125°
C,在-10~+85°
C范围内,精度为±
0.5°
C。
现场温度直接以单总线的数字方式传输,大大提高了系统的抗干扰性。
适合于恶劣环境的现场温度测量,如:
环境控制、设备或过程控制、测温类消费电子产品等。
与前一代产品不同,新的产品支持3V~5.5V的电压范围,使系统设计更灵活、方便。
而且新一代产品更便宜,体积更小。
(2)DS18B20的主要特性:
①适应电压范围更宽,电压范围:
3.0~5.5V,在寄生电源方式下可由数据线供电。
②独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条线即可实现微处理器与DS18B20的双向通讯。
③DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。
④DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。
⑤温范围-55℃~+125℃,在-10~+85℃时精度为±
0.5℃。
⑥可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温。
⑦在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。
⑧测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。
⑨负压特性:
电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
(3)DS18B20的外形和内部结构见图2.5:
图2.5DS18B20内部结构图
DS18B20内部结构主要由四部分组成:
64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
DS18B20内部结构如图所示
DS18B20的外形及管脚排列见图2.6所示。
(4)DS18B20引脚定义:
①DQ为数字信号输入/输出端;
②GND为电源地;
③VDD为外接供电电源输入端(在寄生电源接线方式时接地)。
(5)DS18B20工作原理:
DS18B20的读写时序和测温原理与DS1822相同,只是得到的温度值的位数,
图2.7DS18B20测温原理框图
因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。
DS18B20测温原理见图2.7所示。
图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。
高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。
计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
图6中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。
(6)DS18B20有4个主要的数据部件:
①光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。
64位光刻ROM的排列是:
开始8位(28H)是