智能温度测量仪单片机课题设计报告.docx

上传人:b****8 文档编号:29491939 上传时间:2023-07-23 格式:DOCX 页数:21 大小:183.56KB
下载 相关 举报
智能温度测量仪单片机课题设计报告.docx_第1页
第1页 / 共21页
智能温度测量仪单片机课题设计报告.docx_第2页
第2页 / 共21页
智能温度测量仪单片机课题设计报告.docx_第3页
第3页 / 共21页
智能温度测量仪单片机课题设计报告.docx_第4页
第4页 / 共21页
智能温度测量仪单片机课题设计报告.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

智能温度测量仪单片机课题设计报告.docx

《智能温度测量仪单片机课题设计报告.docx》由会员分享,可在线阅读,更多相关《智能温度测量仪单片机课题设计报告.docx(21页珍藏版)》请在冰豆网上搜索。

智能温度测量仪单片机课题设计报告.docx

智能温度测量仪单片机课题设计报告

 

【摘要】

随着现代工业技术的迅猛发展,工业上的各种技术指标精度的要求也越来越高,在众多的指标中,温度的测量是一个永恒的话题,只有了精确地温度测量,才能把加热和散热的工作做得更好。

本课题是智能温度测量仪设计,由单片机AT89C51芯片为核心,和LED数码管显示,ADC0809转换器和辅以必要的电路,构成的一个单片机智能温度测量仪。

本设计详细介绍了智能温度测量仪的工作原理,硬件电路组成,软件设计的思路。

主要包括以下几个模块:

传感器模块、A/D转换模块、LCD显示器模块、单片机控制模块、和报警器模块等组成。

能够智能对环境温度随时随地检测与显示,当环境温度超出预警值时,发出声报警。

 

【关键词】:

AT89C51单片机、模数转换、温度采集。

第一章绪论

课题背景及意义

温度是工业对象中主要的被控参数之一,特别是在冶金、化工、制药、机械等行业中,广泛使用各种加热炉,热处理器、浓缩烘干炉等。

因此,温度的精确测量工作将极大地推动工业的发展。

本小组的课题设计任务主要就是温度的采集与测量。

指标要求

该课题中的智能温度测量仪主要有如下的指标要求:

(1)本次设计的温度测量范围:

0~100℃;

(2)实时显示温度值,保留1位小数;

(3)温度超过给定值时声光报警;

总体方案论证

一般,对温度的采集测量的方式有很多种,但大多体现在软件的设计上。

对温度的模拟信息的读取,根据AT89C51单片机功能强大者一特点可以分为中断方式、查询方式、和延时方式。

采用中断方式的关键是,把A/D转换器的结束标志线与AT89C51单片机的外部中断引脚INTO或者INT1相连。

这样,启动A/D转换后,单片机可以继续执行其他程序,一旦A/D转换完成,即通过INTO或者INT1引脚向单片机申请中断采集信息,读出采样值。

查询方式在现在用的最多的一种方式,主要就是用单片机的I/O口与A/D转换器的控制引脚相连,通过利用程序给控制引脚发送脉冲对A/D转换器进行读数。

这种方式对像温度这样的在短时间一般不会发生较大变化的信息的采集很方便。

一般来说,设计时已经将A/D转换器芯片选定,则转换过程所需要的时间也是定值,此时,可以采用延时方式,通常,延时的时间定得略大于转换时间,以确保读数的准确无误。

至于采用软件方式还是硬件方式延时,则各有利弊。

软件方式编程简单,但需要花费机时;采用定时器则需要对其进行初始化编程,但延时过程不占用机时。

根据课题的要求,经过深入讨论,这里,本设计采用最常用的查询方式来采集温度的信息并显示。

第2章系统的功能与硬件设计

在整个的设计中,硬件应该说是实现预定功能的基石,只有硬件的准确无误,软件部分才能发挥出相应的作用,整个设计才算是完整的。

硬件主要由以下部分:

传感器采集电路、A/D转换器转换电路,单片机控制电路、数码管显示电路、声光报警电路等。

下面就各个电路的原理和各元器件的性能、功能、等因素进行分析、比较,最终确定型号的选用。

传感器采集电路

我们选用的是AD590温度传感器,AD590产生的电流与绝对温度成正比,它可接收的工作电压为4V-30V,检测的温度范围为-55℃-+150℃,它有非常好的线性输出性能,温度每增加1℃,其电流增加1uA。

在AD590的温度变化范围内,经过10KΩ之后采样到的电压变化在-之间,不超过5V所参考的电压范,因此我们采用参考电压+5V。

由此可计算出经过A/D转换之后的摄氏温度显示的数据为:

如果(D*2350/128)<2732,则显示的温度值为-(2732-(D*2350/128))

如果(D*2350/128)≥2732,则显示的温度值为+((D*2350/128)-2732)

AD590温度与电流的具体关系如下表所示

摄氏温度

AD590电流

经10KΩ电压

0℃

uA

10℃

uA

V

20℃

uA

V

30℃

uA

V

40℃

uA

V

50℃

uA

V

60℃

uA

V

100℃

uA

V

表2-1AD590温度与电流的关系

由于本次设计的温度测量范围是0~100℃,所以在对我们而言,温度传感器给出的电压值就是~之间。

这里我们不难发现一个问题,传感器给出的电压差值只有1V,而我们A/D转换器的参考电平VREF(+)是5V,也就是说我们不能充分利用A/D转换器,导致转换精度不高,所以这种直接由温度传感器给模拟信号的方式并不可行。

针对此问题,本设计采用了UA741运算放大器对传感器的电压信号进行了稳压、放大、反向,把模拟信号由~变成了0~5V,这样就实现了与A/D转换器的参考电压相同,精度就提高了。

具体电路接线图如下:

图2-1传感器采集电路图

2.2A/D转换器转换电路

ADC0809是含8位A/D转换器、8路多路开关,以及与微型计算机兼容的控制逻辑的CMOS组件,ADC0809的转换方法为逐次逼近型,其精度是1LSB,具有较高的转换速度和精度,受温度影响小,能较长时间保证精度,重现性好,功耗较低,是过程控制比较理想的器件。

ADC0809模数转换器的引脚功能如下:

⏹IN0~IN7:

8路模拟量输入。

⏹A、B、C:

3位地址输入,3个地址输入端的不同组合选择八路模拟量输入。

⏹ALE:

地址锁存启动信号,在ALE的上升沿,将A、B、C上的通道地址锁存到内部的地址锁存器。

⏹msb~lsb:

八位数据输出线,A/D转换结果由这8根线传送给单片机。

⏹OE:

允许输出信号。

当OE=1时,即为高电平,允许输出锁存器输出数据。

⏹START:

启动信号输入端,START为正脉冲,其上升沿清除ADC0808的内部的各寄存器,其下降沿启动A/D开始转换。

⏹EOC:

转换完成信号,当EOC上升为高电平时,表明内部A/D转换已完成。

⏹CLK:

时钟输入信号,0809的时钟频率范围在10~1200kHz,典型值640kHz。

电路接线图如下:

图2-2A/D转换电路图

在实际操作中遇到的关于ADC0809转换器用法的问题有以下几点值得注意:

⏹CLK时钟输入信号引脚的接法,ADC0809转换速度取决于芯片的时钟频率,ADC0809的时钟频率范围是10~1280KHZ。

一般,我们用得更多的是用单片机的时钟经分频后送至A/D转换器的CLK引脚。

时钟分频器我们用的是4013,把从单片机ALE端引出的2MHZ(频率为振荡器频率的1/6)进行4分频后就可满足转换器时钟的需要。

分频电路如下:

图2-3分频电路图

⏹关于数字通道的输出引脚,初学者一般喜欢把DO~D7直接与单片机的I/O的低位到高位相连,比如与P0~P7相连。

殊不知,这样连恰恰和正确的连法相反,得不到正确的输出。

这种错误往往是致命的,因为这种连线错误很容易犯,但是在以后的线路检查中很难被发现,导致硬件电路不能正常工作。

在ADC0809中用DO~D7表示引脚2-1~2-8。

⏹ADC0809中的参考电源有两个引脚:

VREF(+)和VREF(-)。

根据模拟量输入信号的极型不同,这两个参考电源的接法也不同。

当模拟量信号为单极性时,VREF(-)端接模拟地,VREF(+)端接参考正电源。

当模拟量信号为双极性时,VREF(+)和VREF(-)则端分别接参考电源的正、负极性端。

2.3单片机控制电路

本设计的核心处理器是采用Atmel公司的AT89C51单片机。

AT89C51单片机主要特征如下:

(1)8位CPU

(2)内置4K字节可重复编程Flash,可重复擦写1000次

(3)完全定态操作:

0Hz~24Hz,可输出时钟信号

(4)256B的片内数据存储器

(5)32根可编程I/O线

(6)2个16位定时/计数器

(7)中断系统有6个中断源,可编为两个优先级

(8)一个全双工UART(通用异步接收发送器)I/O口

(9)具有两种节能模式:

闲置模式和掉电模式

其引脚如下图,

图2-4AT89C51单片机引脚图

单片机控制的主电路包括:

(1)系统时钟电路;

(2)系统复位电路;(3)显示电路;(4)对ADC0809转换电路的控制电路四部分组成。

其硬件系统框图如图所示。

图2-5单片机控制电路图

2.3.1单片机时钟电路

系统时钟电路的设计如图所示。

由于图中的C11、C12电容起着系统时钟频率调和稳定的作用,因此,在本系统的实际应用中我们选择参数为30pF,并保证电路具有良好的对称性。

同时,要保证其温度系数要尽可能的低。

资料表明,这两个电容元件对系统的检测误差有较大的关系。

图2-6单片机时钟电路

2.3.2系统复位电路的设计

我们采用的是RC复位方式。

RC复位电路的实质是一阶充放电电路。

但是我们在实际设计中,通常C1取值为10μF以上,R1通常取值10KΩ左右。

因为我们实践发现,R1如果取值太小,例如1KΩ,则会导致RST信号驱动能力变差而无法使系统可靠复位。

复位电路分为上电复位(下图左)和上电复位兼手动复位(下图右)。

复位电路虽然简单,但是它的作用非常重要,一个单片机小系统能否正常工作,首先要看能否复位成功。

图2-7单片机复位电路图

2.4LED数码管显示电路

8段LED数码管是智能化测量仪器中简单而常用的显示设备。

它的优点是价格低、寿命长,对电压电流的要求低及容易实现多路显示等。

LED显示器的控制方式有静态显示和动态显示2种。

这里我们采用4位共阴数码管动态显示方法以节约I/O线,简化显示电路。

数码管工作时,逐位扫描轮流显示,但每个LED管的扫描时间非常短,由于人的视觉暂留,所以从宏观上看起来仍是所有器件都在显示。

图2-8LED数码管显示电路图

在位码处,我们可以加上NPN三极管增大数码管的驱动电流,使数码管显示更亮。

在数码管位选脚与单片机I/O接口时加上大约1千欧姆的电阻。

在数码管段选脚与单片机I/O口接口处加上大约510欧姆的电阻。

在使用数码管时我们还应该要知道其段码是共阴还是共阳,以便在程序中做出相应的段码。

 

2.5声光报警电路等

声光报警器进行实时监测;当温度值超过预先设定的报警值时,系统发出声光报警。

声报警通过驱动蜂鸣器发声实现;光报警通过发光二极管闪烁实现。

如下电路图,SPEAKER是蜂鸣器、LED是发光管、Q5是PNP的三极管。

一般I/O口输出高电平时驱动能力不够(需要接上拉电阻R26)。

图2-9声光报警电路图

第3章系统的软件设计与分析

本设计中需要通过软件实现的功能主要有对ADC0809转换器模数转换的控制,对数字信号转换成对应的十进制温度值,对LED数码管的数据显示,对声光报警电路的控制。

在这里我们对ADC0809接收到把模拟信号转换成的数字信号表示的十进制温度值要进行预先的设定,当数字信号每加1,我们设定的温度值要上升相应的值。

对ADC0809转换器引脚的控制

3.1.1ADC0809转换器的数字量输出及控制线

ST为转换启动信号。

当ST上跳沿时,所有内部寄存器清零。

下跳沿时,开始进行A/D转换,在转换期间,ST应保持低电平。

EOC为转换结束信号,当EOC为高电平时,表明转换结束,否则,表明正在进行A/D转换。

OE为输出允许信号,当OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。

D7-D0为数字量输出线。

CLK为时钟输入信号线。

因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供。

VREF(+)和VREF(-)为参考电压输入。

3.1.2ADC0809应用说明

(1)ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。

(2)初始化时,使ST和OE信号全为低电平。

(3)送要转换的哪一通道的地址到A,B,C端口上。

(4)在ST端给出一个至少有100ns宽的正脉冲信号。

(5)是否转换完毕,我们根据EOC信号来判断。

(6)当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。

图3-1控制引脚流程图

3.2对数字信号转换成对应的十进制温度值

把温度A/D值变换为供显示的BCD码值,格式为,我们注意到,第三位多了个小数点,这并不是就说我们处理的数里面应该有小数,实际上我们用了一个小技巧,我们让第三位数码管的小数点位每次扫描的时候都亮,而单片机实际处理的数还是整数。

前面提到我们可以通过运算放大电路把传感器的的输入电压变成0~5V,这样标度变换原理为:

A/D满量程(5V)对应的温度为℃,则任意温度A/D值NA/D对应的实际温度TX=NA/D/2。

 

3.3对LED数码管的数据显示

这里我们采用的是动态显示4位数码管,每个数码管之间相差1ms逐次显示,看到的就是4位数码管同时显示温度值。

利用单片机内部的定时器溢出中断实现每隔对显示数据进行更新。

图3-2数据显示流程图

 

3.4对声光报警电路的控制

单片机把读入的数字信号和我们预先设定的值进行比较,这里我们设置了上限50℃,下限10℃的报警值,当温度大于等于50℃或者小于等于10℃,给予声光报警。

图3-3声光报警流程图

第4章系统调试与分析

智能温度测量仪的调试工作主要从三方面入手:

一是硬件的调试;二是软件的调试:

三是综合调试。

在调试过程中发现存在问题,分析原因,并及时修改设计方案和对系统进行修改于完善,从而达到预定的效果。

硬件的静态调试

静态调试就是指在没有加电、加载的情况下对系统进行调试。

(1)首先检测电路有无短路,短路对元器件的损坏是最严重的

(2)检测各模块内连接是否正确,模块内各元器件在电路中连接极性是否正确,模块与模块之间连接是否正确,有无断路等情况。

(3)检测单片机引脚及其外围电路连接是否正确。

在静态调试过程中,发现了如下问题:

ADC0809芯片的引脚和单片机的相应的引脚连接出现错误,个别焊接点出现虚焊节点断路等问题。

硬件动态调试

当静态调试结束后,已经能确保各器件电气连接正确,接下来就是加电调试,检测各模块以及整个电路是否能达到设计预期,即所谓的动态调试。

在动态调试中也发现许多问题,如数码管不能正常显示数据和显示的亮度不够,原来加电压后是有些引脚间的锡焊距离太近,导致短路,有些阻值也不合适,驱动电流太小。

软件调试与分析

软件的调试主要是对数码管显示的延时和段码的共阴还是共阳的修改。

综合调试

在硬件和软件调试完成后,最后就是综合调试了,这是最复杂也是最难的过程,因为在此阶段将对整个设计进行综合检验,电路设计、软件等是否合理都能通过这个环节反应出来。

本设计经过多次的调试,也涉及到了对硬件和软件的再次修改,最终能基本上达到实验目的。

 

第4章设计体会

经过一周多的时间,本次设计在本小组成员的共同努力下,基本上达到了要求。

这次课题设计给我留下很深刻的记忆,这不仅是对书本知识的实践操作,还检验了一个人的面对困难时的心态,尤其是在最后的调试阶段,没有耐心是成不了成绩的。

在疑惑和困难面前我们一定要保持一颗坚定地信心,相信错误在等待着我们的发现,而且我们也一定能检查到错误并且将它修改。

在整个设计过程,我们不能对某个设计地方还存在疑虑,只有对整个过程有了充分的了解,实验才能出来效果。

感谢这次的课题设计和指导老师的耐心讲解与帮助,让我受益匪浅。

在实验中我们应该尤其注意一下两个方面:

⏹对各个模块要有充分的了解,并写出与其相对应的正确程序。

⏹在硬件线路焊接时,我们不能随心所欲,注意力要高度集中,焊错线路不易检测出来,给后面的调试工作带来巨大的工作量,应该要尽量避免虚焊和短路的发生,最好的方法是每焊接一根线,就用万用表检测一根,确保万无一失。

附录一

智能温度测量仪的硬件电路图

 

附录二

软件程序:

SLINGEQU30H

SYIEQU31H

SEREQU32H

SSANEQU33H

SSIEQU34H

SWUEQU35H

SLIUEQU36H

SQIEQU37H

STBIT

OEBIT

EOCBIT

ORG0000H

LJMPSTART

ORG000BH

LJMPT0X

ORG0300H

START:

MOVSP,#60H

MOVTL0,#18H

MOVTH0,#63H

MOVTMOD,#0

MOVTCON,#0

SETBTR0

SETBET0

SETBEA

MOV20H,#0

MOV21H,#0

MOV22H,#0

MOV23H,#0

MOVSYI,#0

MOVSER,#0

MOVSSAN,#0

MOVSSI,#0

MOVSWU,#0

MOVSLIU,#0

MOVSQI,#0

MOVR1,#0

CLR

LP0:

MOVR2,#08H

MOVR7,#4

MOVR0,#20H

XIANSHI:

MOVA,R2

MOVP2,A

CJNER0,#21H,ZHUAN

MOVA,@R0

MOVDPTR,#TAB1

MOVCA,@A+DPTR

MOVP1,A

AJMPJIXU

ZHUAN:

MOVA,@R0

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVP1,A

JIXU:

ACALLD1

INCR0

MOVA,R2

RRA

MOVR2,A

DJNZR7,XIANSHI

AJMPLP0

TAB:

DB3FH,06H,5BH,4FH,66H,6DH

DB7DH,07H,7FH,6FH

TAB1:

DB0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH

DB87H,0FFH,0EFH

D1:

MOVR5,#02H

DL:

MOVR6,#0FFH

DL1:

DJNZR6,DL1

DJNZR5,DL

RET

T0X:

NOP;定时到,开中断。

MOVTL0,#18H

MOVTH0,#63H

PUSHACC

PUSHPSW

INCR1

CJNER1,#10,LOOP1;是否到,没有到了则中断返回

MOVR1,#0;是否到,到了则读入数据,清零R1

CLRST

SETBST

CLRST

ADSC:

JNBEOC,ADSC

SETBOE

MOVSLING,P0;从AD0809读入8位数。

CLROE;暂停读入。

MOVA,SLING

CJNEA,#14H,BBAO

AJMPBT

BBAO:

JCBT

AJMPCT

BT:

SETB

AJMPET

CT:

CJNEA,#64H,BAOJ

AJMPDT

BAOJ:

JCET

DT:

SETB

ET:

MOVB,#100

DIVAB

MOVSYI,A

MOVA,B

MOVB,#10

DIVAB

MOVSER,A

MOVSSAN,B;把读入的8位数转换为十进制后,百位数、十位数、个位数分别放入31H、32H、33H中。

MOVA,SSAN

MOVB,#5

MULAB

MOVSSAN,A;把个位数乘以5放回33H。

MOVB,#10

DIVAB

MOVSWU,A

MOVSSAN,B;把33H中的数的个位放回33H,十位放入35H。

AJMPXXZ

LOOP1:

AJMPLOOP

XXZ:

MOVA,SER

MOVB,#5

MULAB

MOVSER,A;把十位数乘以5放回32H。

MOVB,#10

DIVAB

MOVSLIU,A

MOVSER,B;把32H中的数的个位放回32H,十位放入36H。

MOVA,SWU

ADDA,SER

MOVSER,A;把32H的数和35H的数相加放回32H。

MOVA,SYI

MOVB,#5

MULAB

MOVSYI,A;把百位数乘以5放回31H。

MOVB,#10

DIVAB

MOVSSI,A

MOVSYI,B;把31H中的数的个位放回31H,十位放入37H。

MOVA,SLIU

ADDA,SYI

MOVSYI,A;把31H的数和36H的数相加放回31H。

MOV20H,SSAN

MOV21H,SER

MOV22H,SYI

MOV23H,SSI;把相应的参数放入显示单元

LOOP:

POPPSW

POPACC

RETI

END

 

参考文献

曹龙汉刘安才高占国,单片机原理及应用.重庆:

重庆通信学院出版社

潘新民王燕芳,微型计算机控制技术.北京:

电子工业出版社

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 辩护词

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1