




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数字温度计摘要 下面的篇章主要介绍通过对AT89C52单片机进行程序设计,DS18B20的详解,并以此为控制核心,同时利用温度传感技术实现对当前温度进行实时测量,并以按键控制温度。此项目主要包括温度传感部分,提示报警部分,开关控制部分及按键控制部分。 同时对项目研究背景及意义进行了分析。关键词:STC89C51,数字控制,温度计,DS18B20目录摘要2目录3绪论3第一章 设计方案和系统组成41.1 设计方案41.2 系统组成5第二章 硬件结构与工作原理62.1硬件结构62.2 温度监测及控制电路7第三章 软件设计103.1 主程序流程图113.2语言介绍11第四章 调试13第五章 结论14第
2、六章 参考文献15绪论 随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它给人带来的方便也是无可置疑的,其中数字温度计就是一个典型的例子。随着人们对它的要求越来越高,要为现代人工作和生活提供更好、更方便的设施就需要从数字单片机技术入手,一切向着数字化控制、智能化控制方向发展。温度测量在物理实验、医疗卫生、食品生产等领域,尤其在热学实验(如:物体的比热容、汽化热、热功当量、压强温度系数等教学实验)中,有特别重要的意义。目前温度计的发展很快,从原始的玻璃管温度计发展到了现在的热电阻温度计、热电偶温度计、数字温度计、电子温度计等等。现在所使用的温度计通常都是精度为1和0.1的水银、煤
3、油或酒精温度计,这些温度计的刻度间隔通常都很密,不容易准确分辨,读数困难,而且他们的热容量还比较大,达到热平衡所需的时间较长,因此很难读准,并且使用非常不方便。本文所介绍的数字温度计与传统的温度计相比,具有读数方便、测温范围广、测温准确等优点,其输出温度采用数字显示,主要供测温要求准确的场所和科研实验室使用。第一章 设计方案和系统组成1.1 设计方案1:温度采集电路温度采集部分要求精确度高,反应灵敏,可采集的范围广,使用方便,而dollar公司生产的DS18B20采用单总线信号输入,同时无转换误差、无传输损耗,测量精度高,长期稳定,可测范围广,适用不同领域。1.单片机控制调节部分它利用了AT8
4、9C52单片机,通过对单片机输入程序,及键位设定,同时它采用四个独立按键,可分别对个位和十分位的温度进行调节,以方便用户调节,同时调节时设定的初始值比正常温度稍微低些,调节时不是从零开始节省了调节的时间,温度的调节控制,满足了智能化的要求。2.适时温度显示此项目采用了SM410564四位数码管,通过温度传感器和单片机交换数据,把当前环境下的温度数据适时传输给数码管,方便用户了解当前温度,为下一步工作做好铺垫。电路模块图示如下:温度控制调节部分温度采集部分电路键盘控制数码管显示1.2 系统组成系统的硬件:1)温度采集及控制电路; 2)键盘输入电路;3)数码显示电路;4)单片机外围电路;5)辅助继
5、电器工作电路;6)蜂鸣提醒及led警示电路;7)插座电路等系统的软件:主要包括温度检测程序,键盘控制程序及继电器控制程序,主要实现自动检测及当前温度自动控制的功能。数码显示独立键盘输入AT89C52单片机DS18B20温度采集警示及提示电部分12m晶振电路复位电路第二章 硬件结构与工作原理2.1硬件结构 根据系统要求画出的原理总图:该电路采用AT89C52单片机为中心控制芯片。AT89C52是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,片内含8K bytes的可反复擦写的PEROM和256bytes的RAM以及通用8位中央处理器和Flash存储单元。AT89C52功能强大,可充分
6、满足该控制器存储等各方面的需求。 AT89C52功能简述:AT89C52提供以下标准功能:8K字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时器/计时器,一个6位向量级中断结构,一个全双工串通信口,片内振荡器及时钟电路。同时,AT89C52可降至的静态逻辑操作,并支持两种软件的可选节电工作方式:空闲方式停止的工作,但允许RAM的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。 AT89C52引脚图AT89C52的参数了解:工作温度 55125储藏温度 65150任一引脚对地电压 17最高工作电压 6.6直流输出电流 152.2 温度监测及控制电路
7、2.2.1温度采集装置:采用串行数字温度传感器DS18B20芯片使其换成脉冲信号,送到89C52的I/O 端口2.7口(编程为计数器工作模式),通过测量输出脉冲频率的大小来换算成温度高低信号DS18B20 外形图和引脚说明1、DS18B20技术性能描述1.1 独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。1.2 测温范围-55125,固有测温分辨率0.5。1.3 支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现多点测温,但当用多个DS18B20时电压驱动不够,一条线最多能驱动大约5个。1.4 工作电源: 35V/D
8、C2:DS18B20温度的读取DS18B20在出厂时已配置为12位,读取温度时共读取16位,所以把后11位的2进制转化为10进制后在乘以0.0625便为所测的温度,还需要判断正负。前5个数字为符号位,当前5位为1时,读取的温度为负数;当前5位为0时,读取的温度为正数。16位数字摆放是从低位到高位。2.2.2温度数码显示: 百位 12 十位 9 个位 8 十分位 6 A 11 B 7 C 4 D 2 E 1 F 10 G 5 DP 3DS18B20采集的温度数据经单片机分析在该数码管上显示。数码管显示控制部分与AT89C52接口电路在内藏控制器的数码显示模块中,已经完成了控制器与数码显示驱动器显
9、示器缓冲区的接口工作。2.2.3. 温度调节设置按键电路:通过四个外围按键与单片机AT89C52直接相连,用户可根据需要设置自己想要控制的正常范围内任意想要温度。2.2.4内部时钟振荡电路及复位电路:此部分为AT89C52的内部时钟电路振荡器。80C52单片机内部带有时钟电路,只需在片外通过XTAL1和XTAL2引脚接入定时控制元件(12MHZ晶振和电容)即可构成一个稳定的自激振荡器。XTAL1和XTAL2分别是80C52内部高增益反响放大器的输入端和输出端 时钟频率为 12MHz.此部分为其使能和复位电路,该电路采用上电自动复位方式,通过复位电容C1的充电来实现,接通电源就实现了系统的复位初
10、始化。第三章 软件设计系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序,按键扫描处理子程序等。3.1 主程序流程图主程序的主要功能是负责温度的实时显示、读出并处理DS18B20 的测量的当前温度值,温度测量每1s 进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图4.1 所示。图4.1 主程序流程图3.2语言介绍3.2.1 汇编语言特点 汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言,作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。高级的汇
11、编器如MASM,TASM等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows的应用程序也是可行的,但这不是汇编语言的长处。汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。MCS-51单片机的这个指令系统中共包括111条指令,可以完成30多种功能。.第四章 调试本次设计系统的调试以程序的调试为主。先编写显示程序并进行硬件的正确性检验,然后分别进行主程序、读出温度子程序、温度转换命令子程序、计算温度子程序和显示数据刷新子
12、程序等的编程及调试。由于DS18B20与单片机采用串行数据传送,因此,对DS18B20进行读/写编程时,必须严格的保证读/写时序,否则将无法读取测量结果。本程序采用单片机C语言编写,用Keil C编译器编程调试。软件调试到数码管能显示温度值,而且在有温度变化时(例如改变传感器的温度值)显示温度能改变。第五章 结论本次课程设计即将进入尾声,回想这两周来的电子设计制作经历,我感触甚是深刻。通过本次课程设计,使我对电子设计及制作产生了较为浓厚的兴趣,这不仅加强了自己对理论知识的理解和巩固,还能提高自己的动手能力,可以说受益匪浅。当然更重要的是,激起了我学好单片机的斗志。本次课程设计主要分为四部分:设
13、计、仿真、调试。这三个步骤在整个课程设计过程中起着重要的作用。本次毕业设计是针对MCS-51系列的单片机芯片STC89C51来设计一个数字温度计,该设计充分利用了温度传感器DS18B20功能强大的优点,如DS18B20可以直接读出被测温度值,进行转换;而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点,大大简化了硬件电路,也使得该数字温度计不仅具有结构简单、成本低廉、精确度较高、反应速度较快、数字化显示和不易损坏等特点,而且性能稳定,适用范围广,因此特别适用于对测温要求比较准确的场所。第六章 参考文献1单片机应用技术(C语言版).电子工业出版社。2 模拟电子技术(第三版
14、)胡宴如 主编。3 数字电子技术(第三版)杨志忠 主编。4 PROTEUS仿真软件应用 张文涛 主编。5 C语言程序设计 清华大学出版社。6 张毅刚.MCS-51单片机应用设计M高等教育出版社。2003-12-1。7 王仲 .单片机原理及其接口技术 M 机械工业出版社,2001.89-120 8 郭力平.MCS-51系列单片机实用接口技术M,人民邮电出版社,2003.23-56 9 李广弟.单片机基础. 北京:北京航空航天大学出版社,2001.8-1010 康光华.电子技术基础模拟部分(第五版),高等教育出版社,2006-1。11 谭浩强.程序设计(第三版),清华大学出版社,2005-7。附录
15、 #include #include /_nop_();延时函数用#define dm P0 /段码输出口#define uchar unsigned char#define uint unsigned intsbit DQ=P27; /温度输入口sbit w0=P20; /数码管4sbit w1=P21; /数码管3sbit w2=P22; /数码管2sbit w3=P23; /数码管1sbit beep=P17; /蜂鸣器指示灯sbit LED=P10;/ 指示灯sbit set=P26; /温度设置切换键sbit add=P24; /温度加sbit dec=P25; /温度减int te
16、mp1=0; /显示当前温度和设置温度的标志位为0 时显示当前温度uint h;uint temp;uchar r;uchar high=35,low=20;uchar sign;uchar q=0;uchar tt=0;uchar scale;/*温度小数部分用查表法*/uchar code ditab16=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09;/小数断码表uchar code table_dm12=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0
17、x07,0x7f,0x6f,0x00,0x40;/共阴LED 段码表0 1 2 3 4 5 6 7 8 9 不亮 -uchar table_dm1=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef; /个位带小数点的断码表uchar data temp_data2=0x00,0x00; /读出温度暂放uchar data display5=0x00,0x00,0x00,0x00,0x00; /显示单元数据,共4 个数据和一个运算暂用/*11us 延时函数*/void delay(uint t)for (;t0;t-);void scan()in
18、t j;for(j=0;j0;i-)DQ=1;_nop_();_nop_(); /从高拉倒低DQ=0;_nop_();_nop_();_nop_();_nop_(); /5 usDQ=val&0x01; /最低位移出delay(6); /66 usval=val/2; /右移1 位DQ=1;delay(1);/*DS18B20 读1 字节函数*/从总线上取1 个字节uchar read_byte(void)uchar i;uchar value=0;for(i=8;i0;i-)DQ=1;_nop_();_nop_();value=1;DQ=0;_nop_();_nop_();_nop_();_
19、nop_(); /4 usDQ=1;_nop_();_nop_();_nop_();_nop_(); /4 usif(DQ)value|=0x80;delay(6); /66 usDQ=1;return(value);/*读出温度函数*/read_temp()ow_reset(); /总线复位delay(200);write_byte(0xcc); /发命令write_byte(0x44); /发转换命令ow_reset();delay(1);write_byte(0xcc); /发命令write_byte(0xbe);temp_data0=read_byte(); /读温度值的低字节temp
20、_data1=read_byte(); /读温度值的高字节temp=temp_data1;temp6348) / 温度值正负判断tem=65536-tem;n=1; / 负温度求补码,标志位置1display4=tem&0x0f; / 取小数部分的值display0=ditabdisplay4; / 存入小数部分显示值display4=tem4; / 取中间八位,即整数部分的值display3=display4/100; / 取百位数据暂存display1=display4%100; / 取后两位数据暂存display2=display1/10; / 取十位数据暂存display1=displ
21、ay1%10; /个位数据r=display1+display2*10+display3*100;/符号位显示判断/if(!display3)display3=0x0a; /最高位为0 时不显示if(!display2)display2=0x0a; /次高位为0 时不显示if(n)display3=0x0b; /负温度时最高位显示-void BEEP()if(r=high&r129)|r128)horl=256-horl;n=1;display3=horl/100;display3=display3&0x0f;display2=horl%100/10;display1=horl%10;display0=0;if(!display3)display3=0x0a; /最高位为0 时不
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 不同多酚调控豌豆淀粉消化性及其肠道益生特性研究
- 燃煤购销合同范本
- 直播招商合同范本
- Geogebra在中职三角函数教学中的应用研究
- 黑白幻灯胶片企业县域市场拓展与下沉战略研究报告
- 基因检测健康管理APP行业跨境出海战略研究报告
- 制药用高压均质机企业制定与实施新质生产力战略研究报告
- 中药现代化创新药物行业深度调研及发展战略咨询报告
- 再生塑料防滑地垫创新行业跨境出海战略研究报告
- 安胎仿制药行业跨境出海战略研究报告
- 航天器用j30jh系列微型矩形电连接器
- 英文版成人机票
- 高原冬季施工保证措施
- 平面简谐波的波函数教程课件
- 曼昆《经济学原理》(微观经济学分册)第8版 全部答案
- 2022《文创产品的设计》PPT演示文稿
- 铁皮板房拆除施工协议书
- 铁路工程施工组织设计.ppt
- 介入科制度汇编
- 工程造价专业毕业实习报告
- 《病理学》教案
评论
0/150
提交评论