已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数字温度计设计报告题 目: 数字温度计 班 级: 2010 级电子信息工程技术班 指导老师: 何 乃 味 组 员: 梁家源 20100504006 林家平 20100206033 覃 泽 20100206008 韦志丹 20100206031 目录1、 引言2、 项目设计的任务3、 项目设计的要求4、 项目的硬件设计5、 项目设计的软件流程6、 项目设计的总结7、 项目设计的主程序显示一、引言社会的不断发展,人们生活水平的不断提高。一方面,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。传统的单片机温度控制器用热敏电阻测量温度,须包含模拟测量电路及A/D转换器,且占用单片机的口线多,必要时须增加I/O扩展接口芯片,电路器件多,降低了可靠性。而采用新型的单线数字温度传感器DS18B20测量温度则克服了上述缺点。DS18B20是美国DALLAS半导体公司近年推出的一种改进型智能温度传感器,与传统的热敏电阻相比,它能够直接读出被测温度,并可根据实际要求通过简单的编程实现9-12位的数字值读数方式,无需外加测量电路及A/D转换器,简化了电路;而且从DS18B20读出或写入信息仅需一根口线,大大降低了单片机的硬件资源占用。基于DS18B20的单片机温度控制器具有电路简单、可靠性高的优点。本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机AT89c51,测温传感器使用DS18B20,用LCD1602液晶显示器实现温度显示,能准确达到以上要求。本数字式温度计对温度进行实时测量并显示(华氏与摄氏温度都可显示,通过一按键显示),用户可设定最高限报警温度值和最低限报警温度值,有一定的温度控制功能二、设计任务以单片机为核心器件,设计一个数字式温度计三、设计要求1.测量并显示温度值, 温度测量误差1。2.测量范围:0100。3.用LCD显示当前测量的温度。4.可以通过按键设置上下限报警温度。5.当测量的温度超过设定的上、下限温度时,能启动蜂鸣器和指示灯报警。6.画出硬件电路图并说明电路的工作原理。 7.画出程序设计流程图。 8.编写和调试各模块源程序。 9.完成整个项目源程序的综合调试。 10.用DS18B20实时采集温度信号并显示11.能够通过切换按钮可以切换华氏度和摄氏度显示;四、设计的硬件图 实物图五、设计的软件流程(1)主程序主要是对系统进行初始化,包括复位、液晶显示、按键、温度传感器18b20、振荡器(下图)是主程序的流程图。主程序main():完成键盘扫描、温度值采集及转换、温度值的显示。当温度值高于设定最高限时或低于设定最低限时,驱动声光报警电路进行报警。 主程序流程图1、温度采集程序Get_Tmp():完成DS18B20的初始化并发出温度转换命令,经过指定时间后读取转换的温度值。 2、温度数据处理程序data_process(uint tmp) :将采集到的温度值转换成便于液晶显示的ASCII码值。 温度传感器18B20的介绍(下图)按键扫描程序KEYSCAN:完成键盘的扫描并根据确定的键值执行相应的功能,主要完成最高温度、最低温度的设定LCD液晶显示Vss: +5V电源管脚(Vcc)VDD: 地管脚(GND)Vo: 液晶显示驱动电源(0V5V)DB0DB7:数据线,可以用8位连接,也可以只用高4位连接,节约单片机资源. A:背光控制正电源K:背光控制地RS:数据和指令选择控制端,RS=0:命令/状态;RS=1:数据R/W:读写控制线,R/W=0:写操作;R/W=1:读操作E:数据读写操作控制位,E线向LCD模块发送一个脉冲,LCD模块与单片机之间将进行一次数据交换六、项目总结通过本次项目设计可以让我们了解数字式温度计可以实现我们所规定功能。本系统以AT89C52单片机,温度传感器DS18B20和通用LCD1602显示模块为核心,实现了低功耗高精度便携式数字温度计的设计。DS18B20传感器精度高、互换性好;它直接将温度数据进行编码。从这次的课程设计中,我真真正正的意识到,一切从实践出发,所谓实践是检验真理的唯一真理。在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次课程设计中的最大收获。八、设计的主程序#include #include #define LCD_DATA_PORT P1 /液晶数据接口在P1口#define LCD_RS P1_2 /液晶数据寄存器/指令寄存器端接P1.2#define LCD_EN P1_3 /液晶使能端接P1.3sbit DQ = P11; /DS18B20数据口接P1.1#define uchar unsigned char#define uint unsigned intuchar Data5=0,0,0,0,0;/液晶显示数据缓冲区uchar Data23=0,0,0;/液晶显示数据缓冲区uchar Data33=0,0,0;/液晶显示数据缓冲区uint temp;/存放温度值variable of temperaturechar temp_L=25,temp_H=30;/定义最低高报警温度值,sbit key_set=P20;/sbit key_up=P21;/加1键sbit key_down=P22;/减1键/*函数声明*/void LCD_write_char(uchar Data_or_command,uchar command);/*比较精确的延时函数*/void delay(uchar i) while(-i); /*n毫秒延时函数*/ void delay_nms(uint n) uchar i=0; while(n-) for (i=0;i120;i+); /*液晶初始化函数*/void LCD_init(void) delay_nms(5); LCD_write_char(0x28,0); /选择4位显示模式 LCD_write_char(0x0c,0); /显示屏开 LCD_write_char(0x06,0); /显示地址自动加一 LCD_write_char(0x01,0); /清除屏幕/*液晶使能函数*/void LCD_en_write(void) LCD_EN=0; delay(20); LCD_EN=1; delay(20); LCD_EN=0;/*写命令或写数据函数*/void LCD_write_data(uchar Data_command) uchar temp; temp=Data_command; LCD_DATA_PORT&=0X0f; LCD_DATA_PORT|=temp&0xf0; /写高四位 LCD_en_write(); temp=temp0;i-) DQ = 0; /将总线拉低,要在1us之后释放总线 /单片机要在此下降沿后的15us内读数据才会有效。 _nop_(); /至少维持了1us,表示读时序开始 dat = 1; /让从总线上读到的位数据,依次从高位移动到低位。 DQ = 1; /释放总线,此后DS18B20会控制总线,把数据传输到总线上 delay(1); /延时7us,此处参照推荐的读时序图,尽量把控制器采样时间放到读时序后的15us内的最后部分if(DQ) /控制器进行采样 dat |= 0x80;/若总线为1,即DQ为1,那就把dat的最高位置1;若为0,则不进行处理,保持为0 delay(10); /此延时不能少,确保读时序的长度60us。return (dat);/*写一个字节的数据*/void Write_One_Byte(uchar dat)uchar i = 0;for(i=8;i0;i-) DQ = 0; /拉低总线 _nop_(); /至少维持了1us,表示写时序(包括写0时序或写1时序)开始 DQ = dat&0x01; /从字节的最低位开始传输 /指令dat的最低位赋予给总线,必须在拉低总线后的15us内, /因为15us后DS18B20会对总线采样。 delay(10); /必须让写时序持续至少60us DQ = 1; /写完后,必须释放总线, dat = 1; delay(1); /*温度转换子函数*/uint Get_Tmp()/获取温度get the temperaturefloat tt;uchar a,b;Init_Ds18b20(); /初始化Write_One_Byte(0xcc);/忽略ROM指令Write_One_Byte(0x44); /温度转换指令Init_Ds18b20(); /初始化Write_One_Byte(0xcc); /忽略ROM指令Write_One_Byte(0xbe); /读暂存器指令a = Read_One_Byte(); /读取到的第一个字节为温度LSBb = Read_One_Byte(); /读取到的第一个字节为温度MSBtemp = b; /先把高八位有效数据赋于temptemp 99) temp_L=0; else if(key_down=0)/减1键按下 delay_nms(10); /延时消除抖动 if(key_down=0) while(key_down=0)/调用显示,等待按键放开 ; temp_H+; /减1调整 if(temp_H99) temp_H=0;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 居住区规划案例分享
- 天一大联考皖豫联盟2025-2026学年生物高二上期末调研试题含解析
- 福建省龙岩市高级中学2023年高二上物理期末经典试题含解析
- 2025年内蒙古赤峰市重点高中化学高二第一学期期末复习检测试题含解析
- 山东电子职业技术学院《木材切削原理与刀具》2024-2025学年第一学期期末试卷
- 康复医学科脊柱骨折患者理疗康复培训要点
- 检验科实验室标本采集技术教程
- 泌尿外科膀胱肿瘤手术后护理指南
- 儿童神经母细胞瘤治疗方案培训
- 2025年中级注册安全工程师之安全生产技术基础押题练习试卷A卷附答案
- 国开2024年秋季《形势与政策》大作业答案
- 11J930住宅建筑构造图集
- DL-T2078.2-2021调相机检修导则第2部分:保护及励磁系统
- 低应变桩身完整性检测
- 《耳鼻咽喉外伤》课件
- T-JGXH 006-2020 金属覆盖层 键合插针化学镀镍-磷合金镀层规范和试验方法
- 2024年山东省水利安全生产知识竞赛考试题库(含答案)
- 学生集体外出活动申请及情况记录表
- 品质保证协议书
- GB/T 42535-2023锅炉定期检验
- 年产30万吨合成氨工艺合成工段设计
评论
0/150
提交评论