基于51单片机的数字温度计

基于51单片机的数字温度计

ID:14637115

大小:194.63 KB

页数:15页

时间:2018-07-29

基于51单片机的数字温度计_第1页
基于51单片机的数字温度计_第2页
基于51单片机的数字温度计_第3页
基于51单片机的数字温度计_第4页
基于51单片机的数字温度计_第5页
资源描述:

《基于51单片机的数字温度计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基于AT89S51的温度计院系:电子与信息工程学院专业:电子信息科学与技术班级:09信本学生姓名:刘辉学号:093621059第一部分设计要求:采用AT89C51单片机和LCD液晶显示器设计一个数字温度计,当外界温度变化时,显示屏上的温度值也随着变化。数字温度计的测温范围为-55°C到125°C之间。第二部分硬件原理框图:AT89C51单片机LCD液晶显示电路晶振振荡电路复位电路温度传感器采集电路电源电路硬件部分主要分为晶振振荡电路、复位电路、LCD液晶显示电路、DS18B20温度传感器采集电路、电源电路等部分组成。第三部分硬件原理图:硬件模块原理图:

2、一、晶振振荡电路该电路是由两个电容和一个晶振组成,晶振产生基本的时钟信号它给单片机提供时钟信号。二、复位电路复位的主要作用是把特殊功能寄存器的数据刷新为默认数据,单片机在运算过程中由于干扰等外界原因造成寄存器中数据混乱不能使其正常继续执行程序或产生的结果不正确时均需要复位,以使程序重新开始运行。一、LCD液晶显示电路经过温度传感器,将采集到的温度信息传给单片机,单片机处理后又将信息发给P0口,P0口与LCD的数据口相连接,液晶屏上会显示采集到的温度值。一、温度传感器采集电路单线数字温度传感器DS18B20测量温度范围为-55°C~+125°C,-10~

3、+85°C范围内,精度为±0.5°C。DS1822的精度较差为±2°C。DS18B20的管脚排列如下:DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地)。根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CP

4、U收到此信号表示复位成功。二、电源电路设计中利用桥式整流和电容滤波以及7805集成稳压来输出+5V电压,以满足AT89C51、LCD1602、DS18B20等器件的工作需求,原理如下:第四部分程序流程图初始化显示调用子程序1s到?初次上电?读出温度值温度计算处理显示数据刷新发温度转换开始命令发DS18B20复位命令发跳过ROM命令发温度转换开始命令结束图2温度转换命令子程序流程图N图1主程序流程图第五部分总结:在本次设计的过程中,我查阅了许多文献资料,从中学到了很多有关系统开发和程序调试方面等的知识。在软件开发过程中掌握了一些技术难题的解决方法和技巧,

5、巩固和加深了所学知识的理解,能够把所学的知识与实践相结合,培养了认真严谨的学习态度,为以后开发软件积累了大量的经验,提高了分析问题和解决问题的能力。但是由于认识上的片面和不足,各方面的条件影响也很多,本设计还有待进一步的完善和优化,这些在以后的学习中要注重积累。第六部分主要程序#include#include#defineuintunsignedint#defineucharunsignedchar#definedelayNOP(){_nop_();_nop_();_nop_();_nop_();}//_nop_

6、()为一个机器周期sbitDQ=P3^3;sbitLCD_RS=P2^0;sbitLCD_RW=P2^1;sbitLCD_EN=P2^2;ucharcodeTemp_Disp_Title1[]="NowTemperature:";//液晶第一行显示的字符ucharTemp_Display_Title2[]="TEMP:";//第二行前半部分显示的字符ucharcodeTemperature_Char[8]={0x0c,0x12,0x12,0x0c,0x00,0x00,0x00,0x00};ucharcodedf_Table[]={0,1,1,2,3,3

7、,4,4,5,6,6,7,8,8,9,9};ucharCurrentT=0;ucharTL,TH;ucharDisplay_Digit[]={0,0,0,0};bitDS18B20_IS_OK=1;voidDelayXus(uintx){uchari;while(x--){for(i=0;i<200;i++);}}bitLCD_Busy_Check()//对LCD进行读写状态检测{bitresult;LCD_RS=0;LCD_RW=1;LCD_EN=1;delayNOP();result=(bit)(P0&0x80);LCD_EN=0;returnre

8、sult;}voidWrite_LCD_Command(ucharcmd)//LCD写指令函数

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。