81智能温度计的设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1引言随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用。1.方案论证1.1方案一由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来。1.2方案二进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。1.3最终方案的选择可以发现方案一虽然比较复杂但成本便宜,编译简单。2.方案总体设计与论证智能温度计的基本组成方框如图1所示。主要由温度传感器(温敏二极管),信号调理电路,A/D转换器(A/D574),单片机(80C51),8279键盘输入,LED显示器以及74164,发光二极管(指示工作状态)等组成。温度传感器热敏二极管是把温度转换成电压的器件,温度传感器输出电压的大小随温度的高低变化而变化,热敏二极管在0℃—100℃温度变化范围内,电压值的变化范围从1个毫伏到200个毫伏。信号调理电路的主要功能是把微弱的温2度电压信号放大到(0—2.44)伏的范围内,以适应AD574单极性输入的要求。A/D转换器把放大后的模拟电压信号转换成对应的数字信号。单片机8051是智能温度计的核心部分,一方面控制A/D转换器实现模拟信号到数字信号的转换,另一方面将采集到温度的数字信号,经过计算处理,得到相应的温度值的BCD码,送到74164,由它驱动LED数码管显示器以数字形式显示测量的温度。通过键盘输入要报警的温度上限值,由单片机检测哪一位设定的键盘被按下,单片机可以直接将该位寄存器中的内容自动加一,即可实现相应值的设定。通过缓冲器可以预留出微型打印机的接口和单片机与其他设备的通信接口,由相关的键盘控制打印机与单片机是否连接,并且由相应的键盘控制单片机否是把数据送74164进行显示还是把数据发送至数据端口,与其他设备进行通信。图1系统框图由上图可知系统硬件基本上由传感器信号调理模块,A/D模块,键盘模块,显示模块,工作状态指示模块,以及接口模块组成。而软件设计是紧紧围绕系统的硬件结构展开的,软件主要是配合控制硬件完成预期的设计要求,软件的基本模块也是针对上述硬件结构进行相应操作的。下面具体阐述系统各功能模块的设计。3硬件电路设计温敏二极管信号调理电路A/D转换器单片机工作状态指示打印接口74164键盘LED显示33.1传感器调理电路模块测温传感器选用热敏二极管传感器。这种传感器是利用半导体的温度特性来实现对温度的检测功能。硅二极管的结电压在温度每升高1℃时,电压下降2mV,它属于PN结型温度传感器,它在0℃—100℃温度范围内表现出良好的线性,尺寸小,热时间常数为0.2—2s,灵敏度高,测温范围是-50℃—150℃。信号调理电路中包括电桥和放大部分。将测温二极管放入电桥的一个桥臂,可直接输出传感器相对0℃时的电压输出,再将桥路输出送给AD620的差分输入端,进行50倍的放大,在经过OP07组成的100倍的反相放大电路,使得传感器感受0℃—100℃的温度时,信号调理电路对应输出0—2.44V的电压值,这个电压值正好是AD574的0—10V单端输入电压的范围。图2传感器调理电路模块图图2是传感器调理电路图。该电路的分分辨率为0.1℃,在0℃—100℃范围内精度可达到±0.5℃。该电路的调节,先将传感器放入冰水混合物中,调节W1是调理电路的输出为0;再将传感器放入沸水中,调节W2使调理电路的输出为2.44V。2.44V正好对应AD574输出为999的输入电压(单极性10V输入),这样实现了AD574的输出,正好为外界温度的情况。这样就实现了这样就实现了对温度的有效测量信号的拾获和放大。3.2A/D转换模块设计AD574是12位逐次逼近型的A/D转换芯片。转换时间为25~35μs。4片内有数据输出寄存器,并有三态输出的控制逻辑。其运行方式灵活,可进行12位转换,也可作8位转换;转换结果可直接12位输出,也可先输出高8位,后输出低4位。可直接与8位或16位的CPU接口。输入可设置为单极性,也可设成双极性。片内有时钟电路,无需外部时钟。5图3A/D转换模块图6图3是AD574与单片机接口电路以,它分两次将单极性电压的12位转换结果送给单片机。具体先由单片机发出控制信号,使A/D转换器启动转换,等待转换结束,单片机再分两次将转换数据读到内存中。按上图接法AD574是单极性输入,接成0—+10V的接法,按上图向FF7C写数据,就启动AD574转换器开始转换,检测P1.0口即可查看AD574是否转换结束,从FF7D端口即可读出转换结果的高八位,从FF7F端口中即可读出转换结果的低四位。3.3显示模块设计利用串口和74164驱动LED显示器工作,采用静态显示方式。这种方式可避免采用并行I/O接口占用资源较多的缺点。采用共阳极数码管,因而各位的COM接口接+5V电源,若要显示某字段,则相应的移位寄存器74164输出必须为低电平,由于74164在低电平输出时,允许通过的电流为8mA左右,故不用再加驱动电路了,只需向串口发送要显示三位数的显示控制代码(段码),即可在LED显示器上显示出所要的字符,只需将各位的小数点控制位接低电平,使其显示,其他位的小数点控制位均接高电平即可,注意加限流电阻。如图4所示。图4显示模块原理图3.4键盘模块设计7因为本设计中需要的按键不多,故设计采用独立式按键,分别占用P1.4,P1.5,P1.6和P1.7口。它们分别实现选择是正常运行还是设置模式的功能键,温度上限十位的设置键,温度上限个位的设置键以及温度上限的十分位的设置键。键盘的防抖动可有软件来实现,每个引脚上都引入上拉电阻。原理如图5所示。图5键盘模块原理图3.5状态指示与接口模块设计当测量温度达到了上限温度时,P2.0口输出高电平,驱动报警二极管发光,指示温度已经超过上限值,当温度下降到设定值以下是,P2.0变成低电平,报警解除。当按下打印摁键时,单片机响应外部中断0,进而要打印的数码发送至打印机的数据口,进行打印。打印时,需要先将要打印的字符转换为其ASCII码,将此ASCII送入打印机数据口进行打印。需要注意要将小数点也打印出来,打印完十位和个位再将小数点打印出来,再把十分位进行打印。而扩展接口采用简单的三线式接口,一线为接收数据,一线为发送数据,还有一线为查询状态。由P2.6控制其导通,还是高阻的状态。原理如图6和7所示。8图6打印接口原理图图7扩展口及工作状态原理图3.6硬件电路总体设计将上述功能模块合理有序连接即构成整体图,电路图参见图8。9图8硬件电路总体设计原理图104.软件设计4.1主程序设计主程序流程图如下图9。图9主程序流程图4.2定时中断服务程序设计定时中断服务程序流程图如下图10。开始在LED上显示8和全关做自检初始值设上限为50.0显示缓存清零打开外部中断设置触发方式设置定时器0的工作方式代开外部中断0和定时器T1中断等待外部中断0和定时器T1中断11图10定时中断服务程序流程图4.3外部中断0服务程序设计外部中断0程序流程图如下图11。关定时中断重置定时器初值设置状态?调用显示温度调用显示温度调用显示测量调用设置键处理子程序开中断,中断返回12图11外部中断0服务程序流程图4.4设置键处理程序设计设置键处理子程序流程图如下12。关外部中断0依次打印十位个位打印小数点打印十分位开外部中断0,中断返回13图12设置键处理子程序流程图开始十分位延时十分位个位?延迟个位?个位?延迟个位?值满9值满9值满9清零加1145.课程设计体会经过将近两周的单片机课程设计,终于完成了我的数字温度计的设计,虽然没有完全达到设计要求,但从心底里说,还是高兴的,毕竟这次设计把实物都做了出来,高兴之余不得不深思呀!在本次设计的过程中,我发现很多的问题,虽然以前还做过这样的设计但这次设计真的让我长进了很多,单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,虽然以前写过几次程序,但我觉的写好一个程序并不是一件简单的事,举个例子,以前写的那几次,数据加减时,我用的都是BCD码,这一次,我全部用的都是16进制的数直接加减,显示处理时在用除法去删分,感觉效果比较好,有好多的东西,只有我们去试着做了,才能真正的掌握,只学习理论有些东西是很难理解的,更谈不上掌握。从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次课程设计中的最大收获。15参考文献1石晓晶智能仪器设计讲义,南京:南京理工大学机械学院,20092石晓晶智能仪器设计实验指导书,南京:南京理工大学机械学院,20093张迎新单片机初级教程,北京:北京航空航天大学出版社,20064周杏鹏仇国富现代检测技术,北京:高等教育出版社,20035朱蕴璞孔德仁传感器原理及应用,北京:国防工业出版社,20056周严测控系统电子技术,北京:科学出版社,20077赵新民智能仪器设计基础,哈尔滨:哈尔滨工业大学出版社,20098张国雄测控电路,北京:机械工业出版社,20089寇戈蒋立平模拟电路与数字电路,北京:电子工业出版社,200616附录程序清单:Org0000H;主程序入口地址KS:LJMPSTARTORG0003H;外部中断0服务程序入口地址LJMPINT_0ORG000BH;定时器0中断服务程序入口地址LJMPINT_T0ORG100HTAB1:;字符段码表格DB0C0H,0F9H,0A4H,0B0H,99HDB92H,82H,0F8H,80H,90H,88HDB83H,0C6H,0A1H,86H,0FFHSTART:MOVSP,#60HCLREAMOVR0,#3EH;运行/设置状态寄存器清零MOV@R0,#0HDECR0MOV@R0,#0HDECR0MOV@R0,#0HMOVR0,#20H;20H-22H放初始温度设置上限值50.0MOV@R,#05HINCR0MOV@R0,#0HINCR0MOV@R0,#00HSETBP1.4;设置P1.4—P1.7为输入端口SETBP1.5SETBP1.6SETBP1.7MOVR2,#03H;在LED上显示888DL0:MOVA,#80H;把字符“8”的段码送给累加器AMOVSBUF,A;累加器A循环三次把段码发送到串口,显示DL1:JNBTI,DL1CLRTIDJNZR2,DLOLCALLDELAY;延时MOVR2,#03H;关断所有LEDDL0:MOVA,#80H;把关断的段码送给累加器AMOVSBUF,A;累加器A循环三次把段码发送到串口,关断LEDDL1:JNBTI,DL1CLRTIDJNZR2,DLO;以上完成了自检MOVTHOD,#21H;设置定时器工作方式MOVTL0,#77H;设置定时器初值MOVTHO,#OECHSETBTRO;开定时器中断SETBETOSETBIT;开外部中断0SETBEX0SETBEA;开总中断STA0:LJMPSTA0;等待中断;**********************************17********************************************STA2:LCALLCOMPLCALLCL0LCALLZH0STA3:LCALLSET0JNBF0,STA4LCALLCHENGSTA4:RET;********************

1 / 20
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功