简易温度计的项目的报告.docVIP

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
简易温度计的项目的报告

简易温度计 团队成员:蒋颂 刘其聪 摘要 【关键词】 单片机 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 附录: #include<reg51.h> #include"lcd.h" #include"temp.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;

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档