基于单片机的二氧化碳浓度器设计简易多种传感器信号测试仪设计.docx
- 文档编号:9261365
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:39
- 大小:778.77KB
基于单片机的二氧化碳浓度器设计简易多种传感器信号测试仪设计.docx
《基于单片机的二氧化碳浓度器设计简易多种传感器信号测试仪设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的二氧化碳浓度器设计简易多种传感器信号测试仪设计.docx(39页珍藏版)》请在冰点文库上搜索。
基于单片机的二氧化碳浓度器设计简易多种传感器信号测试仪设计
简易多种传感器信号测试仪设计AD590温度测试仪
摘要
本课题主要介绍了温度测量的硬件电路的设计和相关软件设计。
硬件电路主要包括主控制器,测温电路和显示电路等,控制器采用单片机AT89C51,温度传感器采用美国DALLAS半导体公司生产的AD590,显示电路采用3位共阳极LED数码管以动态扫描法直读显示。
系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据子程序等。
此外,还介绍了系统的调试和性能分析。
关键词:
AD590、ADC0804、AT89C51
绪论
1.1课题背景及意义
一些传感器市场比如压力传感器、温度传感器、流量传感器、水平传感器.称重传感器已表现出成熟市场的特征。
流量传感器、压力传感器、温度传感器.称重传感器的市场规模最大,分别占到整个传感器市场的21%、19%和14%。
传感器市场的主要增长来自于无线传感器、MEMS传感器、生物传感器等新兴传感器。
其中,无线传感器在2007-2010年复合年增长率预计会超过25%。
与传统的温度计相比,由于采用了改进型智能温度传感器AD590作为检测元件,本数字温度计减少了外部的硬件电路,具有低成本和易使用的特点。
AD590温度计还可以在过限报警、远距离多点测温控制等方面进行应用开发,具有很好的发展前景。
AD590是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠
在该论文中,我们通过对单片机和温度传感器的设计,从中学到了许多有用的东西,其中我们明白了如何去设计一个产品,首先要有性价比、良好的适应性,其次要知道设计的关键,最后也懂得了设计与实际的联系
1.2课题的应用前景
温度传感器的应用范围很广,它不仅广泛应用于日常生活中,而且也大量应用于自动化和过程检测控制系统。
目前,全球的传感器市场在不断变化的创新之中呈现出快速增长的趋势。
有关专家指出,传感器领域的主要技术将在现有基础上予以延伸和提高,各国将竞相加速新一代传感器的开发和产业化,竞争也将日益激烈。
新技术的发展将重新定义未来的传感器市场,比如无线传感器、光纤传感器、智能传感器和金属氧化传感器等新型称重传感器的出现与市场份额的扩大。
第二章总体设计方案
2.1总体设计框图
温度传感器采集到的微弱电压信号经过滤波器放大器放大十倍后送入A/D转换器(ADC0804)的输入端。
ADC0804将模拟信号转换为数字信号后传给AT89C51.选用3个共阳极8段数码显示管用于动态显示当前测量温度。
用单片机P1.0至P1.7驱动控制段码,P2.0,P2.1至P2.2驱动三极管实现位选。
驱动器74LS244使LED八段数码管动态显示。
CPU89C51
模数转换器ADC0804
放大电路
传感器
3位数码管显示
图2.1总体设计框图
2.2总体设计方案分析
按功能要求简易传感器信号测试仪可以测量温度,并在3位LED数码管上显示数值。
测量最小分别率为0.019V,测量误差约为0.02V。
按系统功能实际要求,控制系统采用89C51单片机,A/D转换采用ADC0804。
系统除能确保实现要求的功能外,还可以方便地进行压力测量和A/D的转换量的测量、数码显示的功能。
第三章硬件设计原理
3.1总原理图及工作原理分析
简易传感器信号测试仪信号采集是通过温度传感器AD590将温度的变化转换为变化电压,通过有源滤波器进行滤波放大,得到一个稳定的电压信号,信号进过A/D转换、数据处理,最后通过三位数码管显示出来。
电路原理图如图3.1.1所示。
图3.1.1总电路原理图
3.2AD590传感器检测电路单元
1、AD590基本知识
AD590的主要特性:
AD590是美国模拟器件公司生产的单片集成两端感温电流传感器,是一种已经IC化的温度感测器,它会将温度转换为电流。
其规格如下:
a、每增加1℃,它会增加1μA输出电流
b、可测量范围-55℃至150℃
c、供电电压范围+4V至+30V
AD590温度与电流的关系如下表所示
摄氏温度
AD590电流
经10KΩ电压
0℃
273.2uA
2.732V
10℃
283.2uA
2.832V
20℃
293.2uA
2.932V
30℃
303.2uA
3.032V
40℃
313.2uA
3.132V
50℃
323.2uA
3.232V
60℃
333.2uA
3.332V
100℃
373.2uA
3.732V
表3.2.1
AD590的管脚图及元件符号如下图所示:
AD590是电流型温度传感器,通过对电流的测量可得到所需要的温度值。
根据特性分挡,AD590的后缀以I,J,K,L,M表示。
AD590L,AD590M一般用于精密温度测量电路,其电路外形如图1所示,它采用金属壳3脚封装,其中1脚为电源正端V+;2脚为电流输出端I0;3脚为管壳,一般不用。
集成温度传感器的电路符号如图2所示。
AD590相当于一个温度控制的恒流源,输出电流大小只与温度有关,且与温度成正比。
只需一个精密电阻,就可以将电流(温度)信号转化为电压信号,总的灵敏度系数通过该电阻设定。
AD590的温度系数是1μA/K,即温度每增加1K,它会增加1μA输出电流。
其输出电流是以绝对温度零度-273℃为基准,每增加1℃,它会增加1μA输出电流,因此-10℃到100℃时AD590输出电流为263μA到373μA。
ADC0809的输入电压为0-5V,所以需要电流-电压转换电路。
2.AD590的工作原理
在被测温度一定时,AD590相当于一个恒流源,把它和5~30V的直流电源相连
,并在输出端串接一个1kΩ的恒值电阻,那么,此电阻上流过的电流将和被测温度成正比,此时电阻两端将会有1mV/K的电压信号。
数字显示温度计的设计
AD590具有线性优良、性能稳定、灵敏度高、无需补偿、热容量小、抗干扰能力强、可远距离测温且使用方便等优点。
可广泛应用于各种冰箱、空调器、粮仓、冰库、工业仪器配套和各种温度的测量和控制等领域。
下面给出用AD590构成数字显示温度计的设计过程。
在设计测温电路时,首先应将电流转换成电压。
由于AD590为电流输出元件,它的温度每升高1K,电流就增加1μA。
当AD590的电流通过一个10kΩ的电阻时,这个电阻上的压降为10mV,即转换成10mV/K,为了使此电阻精确(0.1%),可用一个9.6kΩ的电阻与一个1kΩ电位器串联,然后通过调节电位器来获得精确的10kΩ。
图3.1.2所示是一个电流/电压和绝对/摄氏温标的转换电路,其中运算放大器A1被接成电压跟随器形式,以增加信号的输入阻抗。
而运放A2的作用是把绝对温标转换成摄氏温标,给A2的同相输入端输入一个恒定的电压(如1.235V),然后将此电压放大到2.73V。
这样,A1与A2输出端之间的电压即为转换成的摄氏温标,运放A3反相并放大5倍输送给A/D转换器。
图3.1.2
将AD590放入0℃的冰水混合溶液中,A1同相输入端的电压应为2.73V,同样使A2的输出电压也为2.73V,因此A1与A2两输出端之间的电压:
2.73-2.73=0V即对应于0℃。
3.3、放大电路
741放大器为运算放大器中最常被使用的一种,拥有反相向与非反相两输入端,由输入端输入欲被放大的电流或电压信号,经放大后由输出端输出。
放大器作动时的最大特点为需要一对同样大小的正负电源,其值由±12Vdc至±18Vdc不等,这里使用±12Vdc的电压。
741运算放大器的接脚配置如图3.1.3
图3.1.3
741运算放大器使用时需于7、4脚位供应一对同等大小的正负电源电压+Vcc与-Vcc,一旦于2、3脚位即两输入端间有电压差存在,压差即会被放大于输出端,唯Op放大器具有一特色,其输出电压值决不会大于正电源电压+Vcc或小于负电源电压-Vcc,输入电压差经放大后若大于外接电源电压+Vcc至-Vcc之范围,其值会等于+Vcc或-Vcc,故一般运算放大器输出电压均具有如图3.1.4之特性曲线,输出电压于到达+Vcc和-Vcc后会呈现饱和现象。
图3.1.4
3.4A/D转换电路单元
ADC0804芯片介绍
图3.1.5:
ADC0804规格及引脚分配图
本设计采用的A/D芯片为ADC0804,它是CMOS8位单通道逐次渐近型的模/数转换器,其规格及引脚图如图3所示,根据手册我们可以得到各个引脚的大致功能如下:
/CS:
芯片片选信号,低电平有效,即/CS=0,该芯片才能正常工作,在外接多个ADC0804
芯片时,该信号可以作为选择地址使用,通过不同的地址信号使能不同的ADC0804芯片,从而可以实现多个ADC通道的分时复用。
/WR:
启动ADC0804进行ADC采样,该信号低电平有效,即/WR信号由高电平变成低电平时,触发一次ADC转换。
/RD:
低电平有效,即/RD=0时,可以通过数据端口DB0~DB7读出本次的采样结果。
UIN(+)和UIN(-):
模拟电压输入端,模拟电压输入接UIN(+)端,UIN(-)端接地。
双边输入时UIN(+)、UIN(-)分别接模拟电压信号的正端和负端。
当输入的模拟电压信号存在“零点漂移电压”时,可在UIN(-)接一等值的零点补偿电压,变换时将自动从UIN(+)中减去这一电压。
VREF/2:
参考电压接入引脚,该引脚可外接电压也可悬空,若外界电压,则ADC的参考电压为该外界电压的两倍,如不外接,则Vref与Vcc共用电源电压,此时ADC的参考电压即为电源电压Vcc的值。
CLKR和CLKIN:
外接RC电路产生模数转换器所需的时钟信号,时钟频率CLK=1/1.1RC,一般要求频率范围100KHz~1.28MHz。
AGND和DGND:
分别接模拟地和数字地。
/INT:
中断请求信号输出引脚,该引脚低电平有效,当一次A/D转换完成后,
将引起/INT=0,实际应用时,该引脚应与微处理器的外部中断输入引脚相连(如51单片机的INT0,INT1脚),当产生/INT信号有效时,还需等待/RD=0才能正确读出A/D转换结果,若ADC0804单独使用,则可以将/INT引脚悬空。
DB0~DB7:
输出A/D转换后的8位二进制结果。
ADC0804模拟转数字对照表
十六进制
二进制
高四位
低四位
相对电压值(2.56V)
分别与满刻度的比率
高四位
低四位
F
1111
15/16
15/256
4.800
0.300
E
1110
14/16
14/256
4.480
0.280
D
1101
13/16
13/256
4.160
0.260
C
1100
12/16
12/256
3.840
0.240
B
1011
11/16
11/256
3.520
0.220
A
1010
10/16
10/256
3.200
0.200
9
1001
9/16
9/256
2.880
0.180
8
1000
8/16
8/256
2.560
0.160
7
0111
7/16
7/256
2.240
0.140
6
0110
6/16
6/256
1.920
0.120
5
0101
5/16
5/256
1.600
0.100
4
0100
4/16
4/256
1.280
0.080
3
0011
3/16
3/256
0.960
0.060
2
0010
2/16
2/256
0.640
0.040
1
0001
1/16
1/256
0.320
0.020
0
0000
0/16
0/256
0
0
表3.4.1
根据以上对照表,可以得出以下结论
如果:
输入模拟量VIN=4V,由上表可知 3.840+0.160=4V数字为11001000=C8H
模数转换器ADC0804的工作分为三个过程:
①,复位中断触发信号
信号 表明ADC0804转换已经结束,它提示单片机随时可以读取转换结果,是ADC0804的一个输出信号。
一般情况下,启动A/D转换前应该复位这个信号,以等待新的转换完成后ADC0804发出新的信号,这样才可以读到新的转换结果。
复位信号的时序如图2中的A,在实现片选(=0)的前提下,使用一个读信号 的下降沿就可以复位信号。
②,启动ADC0804的A/D转换
ADC0804中的A/D转换器在满足一定条件时开始一个转换过程,这个条件就是:
在实现片选(=0)的前提下,引脚上出现的一个上升沿。
启动A/D转换的时序如图2中的B,实现片选以后(=0),使用一个写信号就可以启动一个转换过程。
图中是时间延迟,时间是转换时间。
③,读取转换结果
在A/D转换结束以后,ADC0804的引脚将给出一个低脉冲,如果把这个引脚直接连接到单片机的外部中断引脚P3.或P3.,这个低脉冲将引起单片机中断,单片机可以在中断处理程序中读取ADC0804的转换结果。
实验中我们由CH0输入模拟量,DO输出数字量。
我们把AD0832的CS、CLK、D0、DI端分别连接在P3.3、P3.2,P3.1,P3.0端,所以ADC0804的片选、时钟信号、启动位和配置位均通过置位端口实现。
由于是CH0输入模拟信号,所以配置位为10。
ADC0804为单端输出模式。
由于AD是串行输入输出,故前3个脉冲上升沿完成设置,第4—11个脉冲下降沿后取1位AD转换的结果,在第11—18个脉冲下降沿后第二次取AD转换结果,将两次结果进行比对,如果一致,则完成转换,关ADC0804;如果不一致,则重新开始转换。
经AD转换后,数字量D与温度值的转换如下所示:
本设计中的A/D转换由集成电路0804完成。
0804具有一个模拟电压输入端口。
5脚为中断请求信号输出引脚,该引脚低电平有效,当一次A/D转换完成后,将引起/INT1=0,实际应用时,该引脚应与微处理器的外部中断输入引脚相连(如51单片机的INT0,INT1脚),当产生/INT信号有效时,还需等待/RD=0才能正确读出A/D转换结果。
CLKR和CLKIN引脚是外接RC电路产生模数转换器所需的时钟信号。
/CS引脚为芯片片选信号,低电平有效,即/CS=0,该芯片才能正常工作。
单片机的P1、P2.0~P2.2端口作为3位LED数码管显示控制。
P0端口用作A/D转换数据读入,P2.6、P3.6、P3.7用作0804的A/D转换控制。
为了提高精度,扩大测量范围,在A/D转换前还要将信号加以放大并进行零点迁移,因而一个高稳定性的、高精度的放大电路是必须的。
当温度变化时,AD590会产生电流变化,当AD590的电流通过一个10kΩ的电阻时,这个电阻上的压降为10mV,即转换成10mV/K,为了使此10kΩ电阻精确,可用一个9kΩ的电阻与一个2kΩ的电位器串联,然后通过调节电位器来获得精确的10kΩ。
运算放大器A1被接成电压跟随器形式,以增加信号的输入阻抗,由运放A2减去2.732做零位调整(即把绝对温度转成摄氏温度),最后由运放A3反相并放大5倍输送给A/D转换器。
具体硬件连接图如图3.4所示。
图3.4AD590温度采集及模数转换电路
3.5CPU主控电路单元
1、89C51简介
AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的Flash只读程序存储器和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大的AT89C51单片机能应用许多高性价比的场合,可灵活应用于各种控制领域。
图3.5.189C51封装图
89C51的主要参数
(1)主要特性:
4K字节可编程闪烁存储器;寿命:
1000写/擦循环;数据保留时间:
10年
全静态工作:
0Hz-24Hz,三级程序存储器锁定,128*8位内部RAM,32可编程I/O线,两个16位定时器/计数器,5个中断源,可编程串行通道,低功耗的闲置和掉电模式,片内振荡器和时钟电路
(2)管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下所示。
P3口管脚(备选功能)
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
(3)振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
(4)芯片擦除
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
2、单片机电路设计
●89C51的复位电路:
同时在第9脚引出一个22uF的电容和一个2K的电阻接+5V的电源组成一个复位电路,如图3.4.2所示。
图3.5.2AT89C51复位电路原理图
●89C51的时钟电路:
AT89C51的+5V电源由39脚引入,第19脚接地,第17脚和第18脚间由12MHz的晶振及两个20pF的无极性电路组成一个时钟振荡电路,如图3.4.3所示。
图3.5.3AT89C51时钟电路原理图
3.6显示电路单元
数码管结构
数码管由8个发光二极管(以下简称字段)构成,通过不同的组合可用来显示数字09、字符AF、H、L、P、R、U、Y、符号“”及小数点“”。
数码管的外型结构如图
图3.6.1外型结构
数码管工作原理
共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一起,通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。
当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。
此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。
共阴极数码管的8个发光二极管的阴极(二极管负端)连接在一起,通常,公共阴极接低电平(一般接地),其它管脚接段驱动电路输出端,当某段驱动电路的输出端为高电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。
此时,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。
图3.6.2数码LED显示电路
3.7供电电源电路
本设计中采用了5V电源供电。
图3.7供电电源电路
第四章软件设计分析
4.1系统总流程图
在主程序中,系统上电自动复位以后首先设置堆栈,然后启动ADC0804,开始转换AD590测温电路输入的电信号,待数据转换结束后读入到累加器A,然后进行十进制数据转换调整,输出给显示电路。
主程序流程图如图4所示。
图4.1.1主程序流程图
由于ADC0804转换后的数据是二进制数据,而七段码LED显示器所要显示的数据是十进制数据,因此需要进行二、十进制数据转换。
ADC0804输出的最大转换值为FFH(255),由于运放A3放大5倍,因此本数字温度计的最大测量温度为5.V/5=1.0V,即100℃。
由255*X=100,得知X=0.4,即先乘4再除10。
要将其变成BCD码形式,所以可以先将AD转换结果除以250得到百位数BCD码;余数除以10得到十位数BCD码,余数为小数,如
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 二氧化碳 浓度 设计 简易 多种 传感器 信号 测试仪