水温测量课程设计.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
水温测量 摘 要:设计一种基于AT89C51单片机的温度测量及报警电路,该电路采用DS18B20作为温度监测元件,测量范围0℃-~+100℃,使用LED模块显示,能设置温度报警上下限。 关键词:温度测量;DS18B20;AT89C51 1. 引言 1.1 问题的提出 随着人们生活水平的提高,对生活环境的要求也越来越高,家用电器越来越趋向于自动控制控制乃至于智能控制,针对目前家庭的实际需要,自动控制水温报警系统比较方便实用,本文通过51系列单片机来实现一种控制水温报警系统的设计。 1.2 设计目的 1. 巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力。 2. 培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力。 3. 通过对课题设计方案的分析、选择、比较、熟悉单片机用系统开发、研制的过程,软硬件设计的方法、内容及步骤。 2. 系统设计与原理 2.1 结构设计与分析[1] 系统基本方框图 1.主控制器 图1:AT89C51单片机部分 单片机AT89C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要 。 2.温度传感器 图2:数字温度传感器DS18B20 温度传感器采用DS18B20温度传感器。DS18B20输出信号全数字化。便于单片机处理及控制,在0—100 摄氏度时,最大线形偏差小于1 摄氏度,采用单总线的数据传输,可直接与计算机连接。 3.报警电路 图3:上下限报警电路 采用两个LED发光二级管,超出设定范围二极管发光。 4.显示电路 图4:LED显示模块 显示电路采用LED液晶显示数码管,从P3口RXD,TXD串口输出段码。显示电路是使用的串口显示,这种显示最大的优点就是使用口资源比较少,只用p3口的RXD,和TXD,串口的发送和接收,四只数码管采用74LS164右移寄存器驱动,显示比较清晰。 3. 设计结果与数据 3.1 单元电路调试 图5:程序调试、编译 图6:LED测试正常 图7:温度报警显示正常 3.2 系统联调 1.当温度在正常范围内时,LED显示温度,二极管不发光 2.当温度低于报警下限(40°C)时,LED显示温度,绿色二极管发光。 3.当温度高于报警上限(90°C)时,LED显示温度,红色二极管发光。 4. 结论与心得 4.1 设计结论 4.2 心得 参考文献 [1] 李群芳,张士军,黄建.单片微型计算机与接口技术[M].第三版,北京:电子工业出版社,2008.5 [2] 胡键.单片机原理及接口技术实践教程[M].第一版,北京:机械工业出版社,2004.8 [3] 彭伟.单片机C语言程序设计实训100例:基于8051+Proteus仿真[M].第一版,北京:电子工业出版社,2009.6 附件 : 完整电路图 程序: #includereg51.h #define uchar unsigned char #define uint unsigned int uchar i; sbit lcdrs=P3^0; sbit lcdrw=P3^1; sbit lcden=P3^2; sbit d1=P1^0; sbit d2=P1^1; uchar code t0[]=the temperature ; uchar code t1[]= is ; uchar code wendu[]=0123456789; //利用一个温度表解决温度显示乱码 sbit DQ = P3^7;//定义ds18B20总线IO //液晶显示模块 void delay(uint z) { uint x,y; for(x=100;x1;x--) for(y=z;y1;y--); } void write_com(uchar com) { lcdrs=0; P2=com; delay(5); lcden=1; delay(5); lcden=0; } void write_date(uchar date) { lcdrs=1; P2=date; delay(5); lcden=1; delay(5); lcden=0; } void init_lcd() { lcden=0; lcdrw=0; write_com(0x38); write_com(0x01); write_com(0x0c); write_com(0x06); write_com(0x80); for(i=0;i16;i++) { write_date(t0[i]); delay(0);

文档评论(0)

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

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

1亿VIP精品文档

相关文档