




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于单片机的数字温度计设计摘要:本文设计了一种基于单片机控制的数字温本设计度计,本设计所介绍的数字温度计与传统温度计相比,具有读数方便,测温范围广,输出温度采用数字显示。该设计控制器使用单片机AT89S51,测温传感器使用DS18B2Q用共阳极LED数码管显示,能够 准确达到要求。温度计电路设计控制器采用单片机AT89S51, 具有低电压供电和体积小等特点,温度传感器采用DS18B2Q DS18B20温度传感器是美国最新推出的一种温度传感器,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现读数方式,仅需要一个端口引脚进行通信,内部存储器还包括一个高速暂存RAM 和一个非易失性的可电擦
2、除的EERAM.显示电路采用LED 动态显示方式。关键词:单片机; DS18B20 ;超限报警;LED 显示;前言随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高, 要为现代人工作、科研、 生活、 提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。温度是日常生活、工业、 医学、 环境保护、化工、 石油等领域最常用到的一个物理量。测量温度的基本方法是使用温度计直接读取温度。最常见到得测量温度的工具是各种各样的温度计,例如:水银玻璃温度计,酒精温度计,热
3、电偶或热电阻温度计等。它们常常以刻度的形式表示温度的高低,人们必须通过读取刻度值的多少来测量温度。利用单片机和温度传感器构成的电子式智能温度计就可以直接测量温度,得到温度的数字值,既简单方便,有直观准确。1 总体方案设计1.1 设计方案论证针对本课题的设计任务,进行分析得到:本次设计用温度传感器进行温度的测量,转化了的温度信号由传感器直接得到了数字信号。该数字温度计的设计,在总体上大致可分为以下几个部分组成:1.单片机控制电路;2.温度传感器;3.开关控制电路;4.LED 显示电路。可以使用热敏电阻之类的器件利用其感温效应,在将随被测编辑版 word温度变化的电压或电流采集过来,进行 A/D转
4、换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非 常容易想到的,所以可以采用一只温度传感器 DS18B20此传感器,可以很容易直接读取 被测温度值,进行转换,就可以满足设计要求。从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单, 故采用了方案二。系统原理框图如图1所示。图1系统原理框图1.2 硬件构成1.21 主控制器AT89C51具有以下标准功能:8K字节FLASH,256字节RAM, 32位I/O总线,看门狗定时器2
5、个数据指针,3个 16位定时器、计数器,一个6向量2级中断结构,全双工用行口,片内晶振及时钟电路。P0 口: P0 口是一个8位漏极开路的双向I/O 口。作为输出口,每位能驱动8个TTL 逻辑电平。对P0 口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时, P0也被作为低8位地址/数据使用。在这种模式下,P0具有内部上拉电阻。在FLASH编 程时,P0 口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部 上拉电阻。P1 口: P1 口是一个具有内部上拉电阻的 8位双向I/O 口,P1输出缓冲器能驱动4个 TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把
6、端口拉高,此时可以作为输入口使用。作为输入口使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。P2 口: P2 口是一个具有内部上拉电阻的 8位双向I/O 口,P2 口输出缓冲器驱动4 个TTL逻辑电平。对P2端口写1时,内部上拉电阻把端口拉高,此时可以作为输入口使 用。作为输入口使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。1.22 数码管显示显示电路采用共阳LED数码管,从P3 口 RXD,TXD串口输出段码。1.23 温度传感器DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传 感器, 与传统的热敏电阻等测温元件相比,它能直接读出被测温度,
7、并且可根据实际要求通过简单的编程实现91 2位的数字值读数方式。DS18B20的性能特点如下:a.独特的单线接口仅需要一个端口引脚进行通信;b.多个DS18B20可以并联在惟一的三线上,实现多点组网功能;c.无须外部器件;d.可通过数据线供电,电压范围为 3.05.5V;e.零待机功耗;f.温度以9或1 2位数字;g.用户可定义报警设置;h.报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;1 .负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;DS18B20温度传感器的内部存储器还包括一个高速暂存R AM和一个非易失性的可电擦除的EERAM o高速暂存RAM的结
8、构为8字节的存储器,结构如图 3所示。头2个 字节包含测得的温度信息,第3和第4字节T H和T L的拷贝, 是易失的,每次上电复位 时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图3所示。低5位一直为1 , TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0 ,用户要去改动,R1和R 0决定温度转换的精度位数,来设置分辨率。图2DS18B20字节定义DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。 因此
9、,在实际应用中要将分辨率和转换时间权衡考虑。高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以 16位 带符号扩展的二进制补码形式存储在高速暂存存储器的第1、 2字节。单片机可以通过单 线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625c/LSB形式表示。当符号位S = 0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制; 当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。 表
10、2是一部分温度值对应的二进制温度数据。DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。 若T>TH或T<TL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作 出响应。因此,可用多只 DS18B20同时测量温度并进行报警搜索。在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。主机ROM的前56 位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是 否正确。DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很 小,用于产生固定频率的脉冲信号送给减法计数器1 ;高温度
11、系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测 量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55C所对应的一个基数分别置入减法计数器1、 温度寄存器中,计数器1和温度寄存器被预置在-55c 所对应的一个基数值。编辑版 word减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1 ,减法计数器1的预置将重新被装入, 减法计数器 1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此
12、循环直到减法计数器计数到 0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致 被测温度值。2硬件电路设计2.1 主控制器单片机AT89S51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足 电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。AT89C51是一种低功耗,高性能的8位微控制器,具有8K在系统可编程FLASH存 储器。使用Atmel公司高密度非易失性存储器技术制造, 与工业80C51产品指令和引脚完 全兼容。片上FLASH允许程序存储器在系统可编程
13、,亦适于常规编程器。在单芯片上, 拥有灵巧的8位CPU和在系统可编程FLASH,使得AT89S52为众多嵌入式控制应用系统 提供高灵活,超有效的解决方案。P10Pilpi©P1 iP1J>XTAL1PO.QTADOPO 1/AD1P9 2/AD2XTAL2P0 3JAD3n.4AMP0.5MB8POLADSRSTP0 7/AD7P2WABP1VA9P2 2/AT0PSENaleP24A12EAP2册EP2&AT4P2 Z'ATSPIOP3 0WCDP11PJI.TKDM2内犷师P13P3WT1PIAP3.VTOP1JSpismpiepaawRP17P3 7
14、71;DU19172S丁7-Lrr i杏二1148P20 ?1113博R3编辑版word图3主控制器电路2.2 显示电路显示电路采用集成的数码管,为共阳极结构,采用动态显示,P1 口作为输出编码端,P2.0到P2.7作为位选控制端,其中P1做输出端口需要上拉电阻,通过设置不同的段码可 以显示温度,可以对温度进行实时检测。图4显示电路小编辑版word2.3 数据采集电路DS18B20的内部结构主要包括:寄生电源,温度传感器,64位激光ROM和单总线接 口,存放中间数据的高速暂存器 RAM,用于存储用户设定温度上下限值得 TH和TL触发 器,存储和逻辑控制,8位循环冗余码发生器等七部分。DS18B
15、20测量温度时使用特有的温度测量技术, 将被测温度转换成数值信号,测量结 果将存入温度寄存器中。12图5数据采集电路2.4 报警电路当温度超过设定的上下限温度时,蜂鸣器会发出声响,下图为报警电路LS1R210kSOUNDERT图6报警电路3软件设计3.1 主程序设计系统的主程序主要用来初始化一些参数,对DS18B20的配置数据进行一系列的设定另外对DS18B20的状态不断的查询,以读取当前的温度值,并对温度进行处理,温度值 的BCD码处理后,将其段码送显示缓冲区,以备定时扫描服务程序处理。图7主程序流程图3.2 温度转换程序读出温度子程序的主要功能是读出 RAM中的9字节,在读出时需进行 CR
16、C校验, 校验有错时不进行温度数据的改写。其程序流程图如下所示。图8温度转换流程图3.3 温度显示程序和报警电路程序此程序是将采集到得数据用LED数码管显示,然后将实际温度与设置的报警上下限 进行比较,决定是否发出报警信号。由于 T为实际温度的绝对值,TH,TL也是温度的绝 对值,因此判断大小关系时,要通过正负号来确定。编辑版word图9温度显示流程图图10报警程序流程图4调试分析4.1软件调试本次设计采用的是keil仿真器进行软件调试,此系统可以开发应用软件,以及对硬件 电路进行诊断、调试等。它的具体功能是可以进行 CPU仿真,可以单步、跟踪、断点和 全速运行,而且,程序的编译过程中,可以对
17、设计软件进行自诊断,并自动给出故障原因。 同时用户调试程序时,可以通过窗口观察寄存器的工作状况,以便及时发现和排除编程中可能出现的错误。软件的调试是利用keil软件,模块化调试,通过观察存储单元数据的变化,查找并解 决程序的语法和逻辑错误,具体的调试步骤如下:1 .把系统的各个模块在仿真软件中逐个调试,如数据采集模块、显示模块等。2 .对各个需要赋值模块调试时,赋入初值,单步调试,观察数据窗口,看输出结果 是否为设计时想要的结果。3 .把各个模块组合起来,全速运行,看程序是否能流畅的,是否能实现设计的系统 的所有功能。4.1软硬联调本设计是采用Proteus软件实现电路图设计和仿真的,Prot
18、eus软件与Keil软件联合使 用,实现设计要求。在Keil软件中创建新文件,输入所编写的 c语言程序并保存,在编译源程序无误后, 会产出相应的” .HEX”文件;将所生成的” .HEX”文件加载到已绘制好的 Proteus原理 图中,使Proteus与Keil真正连接起来,实现联合调试。调试结果下15所示。、图11仿真测试图5结论及进一步设想根据实验结果,本设计基本完成了设计要求,但上下限阈值的设置过于繁琐,在原有结构的基础上,可以更简化。本课程设计的主要任务是设计一个89C51 单片机为核心的数字温度计。从确定课设题目,到查阅质料确定总体方案设计,硬件电路仿真的设计,硬件电路的优化,软件的
19、设计,软件的优化,检验仿真电路,调试软件程序,到最后的软硬件联调, 都是我努力去完成的。在最后的仿真电路图中达到了我想要的结果,并且对串口通讯有了更一步的认识。对单片机也有了更加深刻的了解。对以后很好的应用单片机打下了深刻的基础。参考文献1 刘复华 .单片机及其应用系统.北京:清华大学出版社,19922 韩志军 .单片机系统设计与应用实例.北京:机械工业出版社,20103 余永全 .ATMEL89 系列单片机应用技术.北京:北京航空航天大学出版社,20024 马中梅 .单片机的C 语言程序设计.北京:北京航空航天大学出版社,19995 胡汗才 .单片机原理及系统设计.北京:清华大学出版社,20
20、026李华.MCS-51单片机实用接口技术.北京:北京航空航天出版社大学,19997 方彦军,孙建.智能仪器技术及其应用.北京:化学工业出版社,20038 孙传友 .测控系统原理与设计.北京:北京航空航天大学出版社,20029 刘守义等.单片机应用技术.西安:西安电子科技大学出版社,200210 何立民 .单片机高级教程.北京:北京航空航天大学出版社,2000编辑版 word课设体会经过了两个星期的课设,让我对以前学的理论知识有了较深的体会,要用理论指导实践, 在实践中发现自己的不足之处,不断完善自己。这一周的课程设计让我体会到很多东西,不仅仅是知识本身的,更多的是自己动手能力和逻辑思维能力的
21、锻炼,同时,也知道自己还有许多要学的东西。在社会实践中,单片机是一个热门的话题,所以我要认真学习单片机的知识,这对我们找工作是很有帮组的,遇到问题并不可怕关键是我们要找到方法去解决问题,一定要勤于动手, 这样自己才会有提高。当然在这次宝贵的课程设计活动中,经验才是对于我们最大的收获,而且还增强了自身对未知问题以及对知识的深化认识的能力,用受益匪浅这个词语来概括这次难忘的活动我觉得再合适不过了。但是, 光是完成了作品还是不可以自我满足的, 在从一开始的时候就怀着将作品制作得更加人性化,更加令人满意,更加地使功能完美又方便地被应用领域这个最终目的下,随着对单片机这门学科的认识加深,到达了拓展的程度
22、,我想这个目的将在不远的时期内被实现。最后感谢老师及同学在这两个星期对我的帮助。U119 XTAL1P0.0/AIP0.1/AI濯D438218293031、P101 <P112 P123 P134 P145 :P15678XTAL2RSTPSEN ALE EAAT89C5112附录1电路原理图RP1P0.2/ADP0.3/ADP0.4/ADP0.5/AD;P0.6/ADIP0.7/ADP2.0/AP2.1/AP2.2/A-P2.3/A-P2.4/A,P2.5/A-P2.6/A-P2.7/A1733643V355不:372334455667786 _ _73281 89P1.0P1.1P
23、1.2P1.3P1.4P1.5P1.6P1.7PPAU21LS1SOUNDER5672P52P3 22 2P P1 02 24VC( DQ GNDJ=L.-0 0-43P30 2R1 cn 10kESPACK-80 P30;4 P23821 P20822 P219 W.AA923 P22DS18B20押P2#7 P26428 P271XE1 11P3.1/TXD- _ 12P3.2/IN.寻2P3.0/R:13P3.3/IN七P34T碳P3.5/T4P3.6/WR16D17P3.7/RR210kR3 cn 200l/Q12N2926编辑版word附录2元件清单元件名称型号数量单片机AT89C5
24、11温度传感器DS18B20数码管7SEG-MPX8-CA1按键BUTTON16电阻RES10三极管2N29261蜂鸣器SOUNDER13 程序源#include<reg51.h>#define uchar unsigned char#define uint unsigned intucharcodetable=0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x8e;uchar code address=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7
25、f;sbit DQ=P3A0;sbit dot=P1A0;sbit fm=P3A5;uchar a,i,temp1,temp2,c,t1,t2,yz1,yz2;bit flag,flag1;uint temp;void delay(uint m)while(m-);void Init()uchar i=0;DQ=1;delay(8);DQ=0;delay(80);DQ=1;delay(14);i=DQ;delay(20);uchar read_byte()uchar byte=0;for (i=0;i<8;i+)/ 先传低位DQ=0;byte>>=1;DQ=1;if(DQ)
26、byte|=0x80;delay(4);return(byte);void write_byte(uchar byte)for (i=0;i<8;i+)/ 先传低位DQ=0;byte>>=1;DQ=CY;delay(5);DQ=1; void read_temp()Init();write_byte(0xcc);write_byte(0x44);delay(10);Init();write_byte(0xcc);write_byte(0xbe);temp1=read_byte();temp2=read_byte();void ds()read_temp();temp=temp
27、1&0x0f;if(temp2>127)flag=1;/ Skip ROM/ 启动温度转换/Skip ROM/ 读取温度寄存器/ 低位/ 高位temp1=temp1;temp2=temp2;temp=temp1&0x0f;temp+=0x01;temp=temp*625;temp1=temp1&0xf0; / 取整数部分temp1=temp1/16;temp2=temp2*16;temp1+=temp2;if(flag)temp1+=0x01;void xs()for(i=0;i<4;i+)/ 显示小数部分P2=addressi;P1=tabletemp%1
28、0;delay(750);temp/=10;P2=0xef;/ 显示整数部分P1=tabletemp1%10;dot=1;delay(750);if(temp1/100|temp1/10)/ 高位去 0P2=0xdf;P1=tabletemp1/10%10;delay(750);if(temp1/100)/ 高位去 0P2=0xbf;P1=tabletemp1/100%10;delay(800);if(flag) / 加负号P2=0x7f;P1=0x02;delay(750);flag=0;void bj()fm=1;delay(100);fm=0;delay(100);void jp()uc
29、har t,tempt,p;P0=0xfe;tempt=P0;tempt=tempt&0xf0;if(tempt!=0xf0)switch(tempt)case(0xe0):flag1=0;flag=0;p=1;break; /shangxiancase(0xd0):flag1=0;flag=1;p=2;break; /xiaxiancase(0xb0):flag1=0;a+;t=1;break;case(0x70):flag1=0;a+;t=2;break;while(temp!=0xf0)tempt=P0;tempt=tempt&0xf0;P0=0xfd;tempt=P0;tempt=tempt&0xf0;if(tempt!=0xf0)switch(tempt)case(0xe0):flag1=0;a+;t=3;break;case(0xd0):flag1=0;a+;t=4;break;case(0xb0):flag1=0;a+;t=5;break;c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 磨机橡胶衬里项目可行性研究报告方案可用于立项及银行贷款+201
- 2025年农业灌溉渠道工程建设投资可行性研究报告
- 中国虹膜剪行业市场前景预测及投资价值评估分析报告
- 2025年中国天然石墨锂离子电池负极材料项目创业投资方案
- 再生资源建设项目立项申请报告
- 2025年微电网群储能系统与电力市场交易策略研究报告
- 2025年低空经济社群经济下的飞行爱好者社区社区教育功能研究
- 2025年低空经济对城市居民生活便利性提升策略研究
- 深圳低空经济中心2025年低空空域管理技术创新报告
- 中国碳氢树脂项目商业计划书
- 秦皇岛职业技术学院工作人员招聘考试真题2022
- 信息安全实训系统用户手册
- 2023年成人学位英语高频词汇
- 樊登读书会市级分会运营手册OK
- 车辆装卸运输规定(2篇)
- GB/T 11376-2020金属及其他无机覆盖层金属的磷化膜
- 卫生医疗机构消毒培训教学课件
- 心血管疾病介入诊疗技术规范
- 陈明主讲中医妇科经验方
- 毕业论文:电气自动化技术毕业论文
- 教改项目项目结项汇报
评论
0/150
提交评论