简易温度计项目报告.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
简易温度计项目报告

简易温度计 团队成员:蒋颂 刘其聪 摘要 【关键词】 单片机 DS18B20 LCD1602 使用STC89C52控制处理温度传感器DS18B20的信号,并驱动1602显示实时温度。 [keyword] single-chip DS18B20 LCD1602 Using STC89C52 to control and process signal that DS18B20 generates ,meanwhile it drive LCD1602 display contemporary temperature 目录 摘要 ………………………………………………………………………………1 前言 ………………………………………………………………………………3 设计要求…………………………………………………………………………3 任务分析…………………………………………………………………………总体设计…………………………………………………………………………硬件设计…………………………………………………………………………软件设计…………………………………………………………………………检测调试…………………………………………………………………………7………………………………………………………………………………8 参考文献…………………………………………………………………………8 附录 ………………………………………………………………………………9 前言 本作品电源部分采用一块节3.7V 18650锂电池,温度测量范围-55℃~+55℃,电路板及各元件使用厚纸板固定及包装定型。 设计要求 利用单片机软硬件资源控制温度传感器完成温度检测,并将转换结果在液晶显示屏上显示。具体要求如下: 温度测量范围-30℃ 测量精度:0.1℃ 利用字符型液晶模块显示当前温度值任务分析 根据设计要求可知在该系统中单片机控制功能比较简单,因此从成本上考虑选用STC。 由于热电偶电路硬件接口复杂、调试难度大、检测精度较低且元器件参数变化影响等等缺点,所以本系统设计拟采用单总线数字式温度传感器 显示模块选用 总体设计 据任务分析,该测温系统设计需一个温度检测电路、一个液晶显示电路、单片机最小系统电路、电源电路。系统结构图如下: 硬件设计 软件设计 检测调试 电路板检查: 对照元器件表,检查所有元器件的规格、型号有无装配错误。按照原理图检查接线是否有错,集成电路模块有无反接等故障。 接通电源:检查电源电压和极性无误后给电路板上电。上电后检查各引脚电位是否正常。 Proteus仿真:打开proteus,装载本系统的硬件仿真图,将keil软件开发环境下编译生成的 将符合设计要求的源程序编译后生成的 设计总结 参考文献[1] 杨志忠 《数字电子技术》[M] 高等教育出版社[2]张筱云 李淑萍《单片机原理及接口技术项目教程》 [M] 苏州大学出版2012.8 [3]李金祥 顾小晶 《实用C语言程序设计教程》 [M] 中国电力出版社 2010.6 附录: #includereg51.h #includelcd.h #includetemp.h void LcdDisplay(int); void main() { LcdWriteData(C); while(1) { LcdDisplay(Ds18b20ReadTemp()); // Delay1ms(1000);//1s钟刷一次 } } void LcdDisplay(int temp) //lcd显示 { unsigned char datas[] = {0, 0, 0, 0, 0}; //定义数组 float tp; if(temp 0) //当温度值为负数 { LcdWriteCom(0x80); //写地址 80表示初始地址 LcdWriteData(-); //显示负 //因为读取的温度是实际温度的补码,所以减1,再取反求出原码 temp=temp-1; temp=~temp; tp=temp; temp=tp*0.0625*100+0.5; } else { LcdWriteCom(0x80); //写地址 80表示初始地址 LcdWriteData(+); //显示正 tp=temp;//因为数据处理有小数点所以将温度赋给一个浮点型变量 //如果温度是正的那么,那么正数的原码就是补码它本身 temp=tp*0.0625*100+0.5; } datas[0] = temp / 10000; datas[1] = te

文档评论(0)

jiqinyu2015 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档