基于单片机的液晶温度显示器的设计Word
基于MCS-51单片机的液晶显示设计

基于MCS-51单片机的液晶显示设计随着科技的不断发展,电子产品的智能化和小型化需求越来越迫切,因此单片机成为了不可或缺的主要元器件之一。
在众多单片机中,MCS-51单片机由于性能稳定默默无闻地成为了不少工程师的首选。
液晶显示器则是我们日常生活中不可或缺的显示元件之一。
MCS-51单片机设计时可以采用液晶显示来呈现一些基本的信息,如时间、日期、温度、湿度等。
首先需要选择一个适合的液晶模块,本设计选择了1602带背光的液晶模块,其具有亮度高、阅读方便、光学效果好的特点。
当选购好液晶模块之后,需要连接到MCS-51单片机上。
最基本的设计连接如下:- 1602的VSS接地。
- 1602的VDD接+5V电源。
- 1602的VO接一个0-5V变移电位器的中间点,并将其中一端连VSS,另一端接VDD即可。
- 1602的RS与单片机的P1.0相连。
- 1602的RW接地,表示写。
- 1602的E与单片机的P1.1相连。
- 1602的D0-D3不接。
然后就可以开始编写程序。
本设计采用Keil C编译器编写,程序如下:```#include<reg52.h>#define LCD_data P0 // 数据口定义sbit rs = P1^0; //RS接口sbit rw = P1^1; //RW接口sbit en = P1^2; //EN接口void init(); // 初始化函数void write_command(unsigned char command); // 向液晶显示屏写指令函数void write_char(unsigned char dat); // 向液晶显示屏写数据函数void delay_5us(); // 等待函数void delay_do(unsigned char i); // 延时函数/** 初始化函数 **/void init(){write_command(0x38); // 在两行八列的模式下显示。
(完整word版)基于单片机数字温度计开题报告

此次的多功能数字温度计不同于以往的传统数字温度计,它明显改善了数字温度计的性能,包括温度采集的速度和测量精度大幅度提高,测量温度的范围也得到了明显的提高。如果继续提高测量精度,可以直接作为工业测温仪器使用,由美国DALLAS半导体公司新研制的DS18B20型高分辨力智能温度传感器,能输出12位二进制数据,其分辨力高达0.0625℃,测温精度为±0.1℃。随着单片机、温度传感器和数码管显示驱动等技术的不断发展,要实现更加高的精度、显示速率快的数字温度计将很快能够实现。
4.课题的意义
本课题研究的重要意义在于生产过程中随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确而又迅速的获得这些参数,就需要受制于现代信息基础的发展水平。在三大信息信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)中,传感器属于信息技术的前沿尖端产品,尤其是数字温度传感器技术,在我国各领域已经应用的非常广泛可以说是渗透到社会的每一个领域,与人民的生活和环境的温度息息相关
2.课题背景
单片机自问世以来,性能不断提高和完善,其资源又能满足很多应用场合的需要,加之单片机具有集成度高、功能强、速度快、体积小、功耗低、使用方便、价格低廉等特点,因此,在工业控制、智能仪器仪表、数据采集和处理、通信系统、高级计算器、家用电器等领域的应用日益广泛,并且正在逐步取代现有的多片微机应用系统。单片机的潜力越来越被人们所重视。特别是当前用CMOS工艺制成的各种单片机,由于功耗低,使用的温度范围大,抗干扰能力强,能满足一些特殊要求的应用场合,更加扩大了单片机的应用范围,也进一步促使单片机性能的发展。而现在的单片机在农业上页有了很多的应用。随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。
基于液晶显示的单片机温度控制设计

. ... . 《基于液晶显示的单片机温度控制设计》实习报告专业班级:电子信息科学与技术11级组长:彪组别:一组员:邢路飞王晓东李梁刚蔡云云李德龙宋文杰指导教师:谢艳新王海波学期:2013-2014学年第1学期实习地点:组成原理及单片机实验室《基于液晶显示的单片机温度控制设计》实习报告一、实验目的随着现代科技的不段发展,对温度测量的工具越来越多并且精度也是越来高,但随着生活水平的不段提高,越来越多的人健康的关注倍加重视,特别是对暖空气的变化更加注意,在此我们特设计有关温度控制的系统,通过它可以设置度的上下限,当温度低于所设的温度的下限或是高于所设的温度的上限时就会发生报警,因此可以提醒您要注意温度变化。
本制作轻巧灵便适合在私人家庭中运用,使用时可以通过四个按键的作用来设置系统初值,即可达到准确提醒您的作用。
二、设计题目:基于液晶显示的单片机温度控制设计三、功能描述本次设本系统主要研究的是利用MCS-51系列单片机中的AT89C51单片机来实现温度检测及控制,通过对89C51的P1口的高4位设置上限值、下限值、,因考虑到在设置温度TH和TL,所以本次设计采用四个按键来控制,通过按键之间的协调作用来完成温度设置值,由于温度的不同我们采取不同的信息来作为信号处理,所以在硬件电路中用蜂鸣器来报警做为提醒实现温度从IN0输入89C51的P1口低4位设置报警系统。
ADC0809实现模拟输入到数字量的转换,通过1602数码管显示数据。
四、系统硬件设计4.1时钟振荡电路时钟振荡电路如图1所示。
图1 时钟振荡电路图4.2测温电路测温电路如图2所示。
图2 测温电路图4.3复位电路复位电路如图3所示。
图3 复位电路图4.4 报警电路报警电路如图4所示。
图4 报警电路图4.5显示电路显示电路如图5所示。
图5 显示电路图五、系统软件系统5.1主程序设计主程序流程图如图6所示。
图6 主程序流程图5.2液晶显示程序设计液晶显示程序流程图如图7所示。
(完整word版)基于89C52单片机和液晶显示的温度测量系统

JIANGSU TEACHERS UNIVERSITY OF TECHNOLOGY测控系统综合训练基于单片机和液晶显示的温度测量系统学院名称:电气信息工程学院专业:测控技术与仪器班级:08测控2班姓名:董亮学号:08314237指导教师:王久龙2011年12月基于单片机及液晶显示的温度测量系统摘要:本文将介绍一种基于单片机控制的数字温度测量系统,本温度计属于多功能温度计,可以软件预设置上下报警温度,当温度不在设置范围内时,可以报警。
本文设计的数字温度计具有读数方便,测温范围广,测温精确,液晶显示,适用范围宽等特点。
它的主要组成部分有:AT89C52单片机、温度传感器、温度显示电路、温度报警电路等。
关键词:温度测量;温度传感器;液晶显示;仿真目录前言 (1)第一章设计目的及设计要求 (2)1.1 设计目的 (2)1.2 设计要求 (2)第二章设计方案论证 (3)2.1 总体设计原理 (3)2.2 单片机AT89C51介绍 (3)2.3 温度传感器的选择 (5)2.4 显示元件的选择 (7)第三章硬件电路设计 (8)3.1 时钟振荡电路 (8)3.2 测温电路 (8)3.3 复位电路 (8)3.4 报警电路 (9)3.5 显示电路 (9)第四章软件设计 (10)4.1 主程序设计 (10)4.2 液晶显示程序设计 (10)4.3 温度采集程序设计 (11)第五章安装调试与分析 (12)结束语 (13)参考文献 (14)附录 (15)附录一系统仿真图 (15)附录二实物组装图 (16)附录三元器件清单 (17)附录四程序清单 (18)前言在这个信息化高速发展的时代,单片机作为一种最经典的微控制器,单片机技术已经普及到我们生活、工作、科研等各个领域,已经成为一种比较成熟的技术。
随着科技的不断进步,在工业生产中温度是常用的参数,而采用单片机来对这些参数进行测量与控制已成为当今的主流,现代社会对各种信息参数的准确度和精确度的要求也在不断增长,而如何准确而又迅速的获得这些参数就取决于现代信息基础的发展水平。
(完整word版)基于AT89C51单片机数字温度计的设计

基于AT89C51单片机数字温度计的设计一、项目概述在生活和生产中,人们经常要用到一些测温设备,但是传统的测温设备具有制作成本高、硬件电路和软件设计复杂登缺点。
基于AT89C51的数字温度计具有制作简单、成本低、读数方便、测温范围广等优点,应用前景广泛。
二、项目要求基于AT89C51的数字温度计的具体要求如下:1.温度值用LED显示。
2.测温范围为-30~100℃,且测量误差不大于±0.5℃。
3.成品的体积、质量尽可能小。
三、设计框图及流程图1 主控制器单片机AT89S51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。
2 显示电路显示电路采用4位共阳LED数码管。
3温度传感器DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
DS18B20的性能特点如下:●独特的单线接口仅需要一个端口引脚进行通信;●多个DS18B20可以并联在惟一的三线上,实现多点组网功能;●无须外部器件;●可通过数据线供电,电压范围为3.0~5.5V;●零待机功耗;●温度以9或12位数字;●用户可定义报警设置;●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件; ●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;DS18B20采用3脚PR -35封装或8脚SOIC 封装,其内部结构框图如下图所控制器使用单片机AT89C51,测温传感器使用DS1820,用4位共阳极LED 数码管以动态扫描法实现温度显示,电路图如图1所示:图1.电路原理图五、软件设计1.程序流程图主程序的主要是负责温度的实时显示,读出并处理DS1280测量的当前温度值,温度测量每1s进行一次。
基于51单片机温度检测LCD显示课程设计报告

大连民族学院单片机系统课程设计题目:温度计的设计班级:电子105姓名:赵萌同组人:张瑛笛指导教师:李绍民设计日期:一设计内容及要求设计内容:基于单片机的室内温度检测LCD显示要求:测量温度55℃—125℃温度上下限TH:32℃TL:16℃温度报警:超出温度上下限BEEP报警二设计方案测温部分:采用18B20作为温度传感器,有一个由高低电平触发的且不因掉电而丢失的报警功能。
控制部分:89S52最小系统显示部分:1602液晶显示,模块内的字符发生存储器存储了160个不同的点阵图形,先是方便,同时好可以进行时间的显示。
三硬件系统设计电源时钟晶振原理图I/O接口AT89S52是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS -51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S52具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
外围电路工作原理及硬件图四软件系统设计软件流程框图系统设计原理:本次课程设计是基于单片机的数字温度计设计,在开始课程设计的时候我们要理解并掌握对单片机的开发,学会使用KEIL及Proteus等仿真软件。
根据设计任务要求选择好器件,编写好程序运行成功之后进行软件联调,验证系统是否正确。
通过筛选,我们组选用单片机AT89S52作为主控制系统;用1602液晶显示模块芯片作为温度数据显示装置;智能温度传感器采用DS18B20器件作为测温电路主要组成部分。
基于单片机的温度计设计程序(液晶)

/*-----------------------------------------------名称:18B20温度测量报警内容:在LCD1602第一行可以显示当前温度,第二行显示设定的温度区间,超过此温度区间,蜂鸣器报警。
温度区间可以通过用户按键设置------------------------------------------------*/#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#include<math.h>#include<INTRINS.H>#define uchar unsigned char#define uint unsigned int/******************************************************************//* 定义端口*//******************************************************************/sbit led1=P1^0;// 温度超出范围指示灯sbit led2=P1^1;sbit buzzer=P1^3;//蜂鸣器引脚sbit DQ=P1^4;//ds18b20 端口sbit RS = P2^4;//1602数据/命令选择端(H:数据寄存器L:指令寄存器)sbit RW = P2^5;//1602读/写选择端sbit E = P2^6;//1602使能信号端sbit key1=P3^4;//用户按键sbit key2=P3^5;sbit key3=P3^6;sbit key4=P3^7;/******************************************************************//* 全局变量*//******************************************************************/int temp;//测得温度char temp_max=40,temp_min=10;//设定的温度char TempH,TempL;uchar flag_get,num=0;uchar code tab[]={'0','1','2','3','4','5','6','7','8','9'};//液晶显示uchar tab1[]="min:010 max:040";//液晶第二行显示内容uchar str[8];/******************************************************************//* 延时函数*//******************************************************************/void delay1(uint i)//短延时函数{while(i--);}void delay(uint z) //长延时函数{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}/******************************************************************/ /* DS18B20 初始化*/ /******************************************************************/ void Init_DS18B20(void){uchar x=0;DQ = 0; //单片机将DQ拉低delay1(480); //精确延时大于480usDQ = 1; //拉高总线,等待delay1(10);x=DQ; //稍做延时后如果x=0则初始化成功x=1则初始化失败delay1(5);}/******************************************************************/ /* DS18B20读一个字节*/ /******************************************************************/ uchar ReadOneChar(void) // DS18B20读一个字节{uchar i=0;uchar dat = 0;for (i=8;i>0;i--){DQ = 0; // 给脉冲信号dat>>=1;DQ = 1; // 给脉冲信号,主机在读时隙期间必须释放总线if(DQ)dat|=0x80;delay1(5);}return(dat);}/******************************************************************//* DS18B20写一个字节*//******************************************************************/void WriteOneChar(uchar dat) //DS18B20写一个字节{uchar i=0;for (i=8; i>0; i--){DQ = 0;DQ = dat&0x01;//取最低位delay1(5);DQ = 1;dat>>=1;//左移}delay1(5);}/******************************************************************//* DS18B20读取温度*//******************************************************************/uint ReadTemperature(void) //DS18B20读取温度{uchar a=0;uint b=0;uint t=0;Init_DS18B20();//DS18B20初始化WriteOneChar(0xCC); // 跳过读序号列号的操作WriteOneChar(0x44); // 启动温度转换delay1(200); //延时以求信号的稳定Init_DS18B20(); //DS18B20再次初始化WriteOneChar(0xCC); //跳过读序号列号的操作WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器)前两个就是温度a=ReadOneChar(); //低位b=ReadOneChar(); //高位b<<=8; //b左移8位t=a+b; //把a与b结合,放在16位的t中return(t);}/******************************************************************//* LCD1602写命令操作*//******************************************************************/void WriteCommand(uchar com){delay(5);//操作前短暂延时,保证信号稳定E=0;RS=0;RW=0;P0=com;E=1;delay(5);E=0;}/******************************************************************/ /* LCD1602写数据操作*/ /******************************************************************/ void WriteData(uchar dat){delay(5); //操作前短暂延时,保证信号稳定E=0;RS=1;RW=0;P0=dat;E=1;delay(5);E=0;}/******************************************************************/ /* LCD1602初始化程序*/ /******************************************************************/ void InitLcd(){uchar i;delay(15);WriteCommand(0x38); //display modeWriteCommand(0x38); //display modeWriteCommand(0x38); //display modeWriteCommand(0x06); //显示光标移动位置WriteCommand(0x0c); //显示开及光标设置WriteCommand(0x01); //显示清屏WriteCommand(0x80+0x40);//将光标移到第二行for(i=0;i<16;i++)//显示初始化内容{WriteData(tab1[i]);delay(10);}}/******************************************************************/ /* 蜂鸣器报警程序*/ /******************************************************************/ void alarm(){if(TempH>=temp_max)//当温度高于设置的最高温报警{ buzzer=0;delay(50);buzzer=1;delay(50);led1=0;led2=1;}else if(TempH<temp_min)//当温度低于设置的最低温报警{buzzer=0;delay(50);buzzer=1;delay(50);led1=1;led2=0;}else//报警解除{buzzer=1;led1=1;led2=1;}}/******************************************************************/ /* 显示测得的温度*/ /******************************************************************/ void handle_T(){uchar i;str[0]=0x20;//显示为空str[1]=tab[TempH/100]; //百位温度str[2]=tab[(TempH%100)/10]; //十位温度str[3]=tab[(TempH%100)%10]; //个位温度,带小数点str[5]=tab[TempL];str[4]='.';str[6]=0xdf;str[7]='C';if(flag_get==1) //定时读取当前温度{flag_get=0; //清标志位temp=ReadTemperature();//读取温度值if(temp&0x8000){str[0]=0xb0;//负号标志temp=~temp; // 取反加1temp +=1;}TempH=temp>>4; //由权重表知移4位就是整数位TempL=temp&0x0F;TempL=TempL*6/10;//小数近似处理alarm(); //判断是否需要报警}WriteCommand(0x80+0x04);//光标指向第一行第一个字符for(i=0;i<8;i++)// 显示{WriteData(str[i]);delay(10);}}void display_range(uchar add,int t){uchar i;if(t<0){str[0]=0xb0;//负号标志}elsestr[0]=tab[abs(t)/100]; //百位温度str[1]=tab[(abs(t)%100)/10]; //十位温度str[2]=tab[(abs(t)%100)%10]; //个位温度WriteCommand(0x80+0x40+add);for(i=0;i<3;i++){WriteData(str[i]);delay(5);}}/******************************************************************/ /* 独立键盘扫描函数并显示设定的温度*/ /******************************************************************/ void keyscan(){uchar flag1=0,flag2=0;//有按键按下标记P3=0xff;//拉高P3口,以读取P3口的值if(key4==0)//最高温加{delay(5);//延时消抖if(key4==0){temp_max++;if(temp_max>=85)temp_max=85;}while(!key4);//松手检测flag1=1;}if(key3==0)//最高温减{delay(5);if(key3==0){temp_max--;if(temp_max<=temp_min)temp_max=temp_min;}while(!key3);flag1=1;}if(key2==0)//最低温加{delay(5);//延时消抖if(key2==0){temp_min++;if(temp_min>=temp_max)temp_min=temp_max;}while(!key2);//松手检测flag2=1;}if(key1==0)//最低温减{delay(5);if(key1==0){temp_min--;if(temp_min<=-10)temp_min=-10;}while(!key1);flag2=1;}if(flag1)//如有设置最高温度的键按下,更新设定的温度{flag1=0;// 清标记display_range(0x0d,temp_max);}if(flag2)//如有设置最低温度的键按下,更新设定的温度{flag2=0;// 清标记display_range(0x04,temp_min);}}/****************************************************************/ /* 主函数*/ /******************************************************************/ void main(){TMOD|=0x01;//定时器设置TH0=0xef;//装初始值TL0=0xf0;EA=1;// 开总中断ET0=1;//允许定时器0中断TR0=1;//开定时器0中断InitLcd();//lcd1602初始化flag_get=1;while(1){handle_T();// 处理温度:获得、显示、报警keyscan(); //独立按键扫描}}/******************************************************************/ /* 定时0中断处理程序,用于温度检测间隔,大约1秒测一次温度*/ /******************************************************************/ void timer0(void) interrupt 1 using 1{TH0=0xef;//定时器重装值TL0=0xf0;num++;if (num==50){num=0;flag_get=1;//标志位有效,开始测温}}。
基于单片机的空调温度控制系统设计毕业论文(设计)word格式

基于单片机的空调温度控制系统设计作者姓名:杨耀武专业名称:信息工程指导教师:黄宇讲师摘要在自动控制领域中,温度检测与控制占有很重要地位。
温度测控系统在工农业生产、科学研究和在人们的生活领域,也得到了广泛应用。
因此,温度传感器的应用数量居各种传感器之首。
目前,温度传感器正从模拟式向数字集成式方向飞速发展。
本论文概述了温控器的发展及基本原理,介绍了温度传感器的原理及特性。
分析了DS18B20温度传感器的优劣。
在此基础上描述了系统研制的理论基础,温度采集等部分的电路设计,并对测温系统的一些主要参数进行了讨论。
同时在介绍温度控制系统功能的基础上,提出了系统的总体构成。
针对测温系统温度采集、接收、处理、显示部分的总体设计方案进行了论证,进一步介绍了单片机在系统中的应用,分析了系统各部分的硬件及软件实现。
利用Proteus7.6进行了可行性的仿真,利用单片机开发板验证在实际电路中能起到的效果。
试验证明,这套温度控制器具有较强的可操作性,很好的可拓展性,控制简单方便。
课题初步计划是在普通环境下的测温,系统的设计及器件的选择也正是在这个基础上进行的。
关键词:DS18B20 单片机温度控制1602液晶显示AbstractIn the automatic control area,temperature monitoring and controling have a very important position. The temperature monitoring system has a wildly applying in industry, agriculture, science reasearching and daily life of people. Therefore, the number of applying of the temperature monitoring comes first of all kinds of sensor. At present, the temperature monitoring is transformed from analog type to digital integrated type with a very fast speed.This paper introduces the developing and fundamental of the temperature monitoring, including the character of this kind of sensor. It also analyses the advantage and disadvantage of the temperature monitoring which named DS18B20. On that basis, the paper also has a further analysis of the theoretical basis of the system developing and the circuit design of temperature monitoring. Besides, some discussions about the important parameters also took on desk. At the same time, the auther of this paper also puts forward the composition of totality about this system, which including the different function of the thermometer system. Then a detailed analysis which is about the applying of Microcontrollers and the applying of different parts made by different hardwares and softwares in the system. In order to check the maneuverability and the expansibility of the Microcontrollers system, the auther used Proteus 7.6 to do the testing and got a pretty good result.This system puts the temperature measured in normal situation as a confirm condition. All design and selection of component is also based on this suppose.keywords: DS18B20, Microcontrollers, Temeperature Controling, 1602 Liquid Crystal Display目录摘要 (I)Abstract ......................................................................................... I I 目录 .............................................................................................. I II 前言 .. (1)1 系统总体设计方案及功能 (2)1.1 温度传感器产品分类与选择 (2)1.1.1 常用的测温方法 (2)1.1.2 温度传感器产品分类 (2)1.1.3 温度传感器的选择 (4)1.2 总体方案的确定 (6)1.3 系统实现框图 (7)2 系统单元电路设计 (7)2.1 系统工作原理 (7)2.2 系统相关硬件及模块介绍 (8)2.2.1 温度采集电路 (8)2.2.2 信号处理与控制电路 (9)2.2.3 温度显示电路 (10)2.2.4 按键功能设置电路 (11)2.2.5 继电器控制电路 (12)2.2.6 存储数据电路 (12)2.2.7 报警、音乐电路 (13)2.2.8 电动机电路 (13)3 仿真软件介绍 (15)3.1 Keil uVision2软件 (15)3.2 Proteus软件 (16)4 系统硬件设计 (18)5 系统软件设计 (20)5.1 DS18B20数据通信概述 (20)5.2 LCD1602液晶数据显示概述 (23)5.2.1 接口信号说明 (23)5.2.2 控制器接口说明 (23)5.2.3 控制接口时序说明 (25)5.3 存储器24C02数据存储概述 (26)5.3.1 I2C 总线的定义 (26)5.3.2 I2C 总线的时序 (27)5.3.3 数据传送 (27)5.4 软件程序设计 (28)6 仿真及实验结果 (31)6.1 程序调试过程中遇到的问题及解决办法 (31)6.2 调试结果 (32)总结 (34)致谢 (35)参考文献 (36)附件1 系统硬件电路图 (37)附件2 系统软件程序 (38)前言现代信息技术的三大基础是信息采集控制(即温度控制器技术)、信息传输(通信技术)和信息处理(计算机技术)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于单片机的液晶温度显示器的设计[摘要]本文主要介绍了一个基于AT89C51单片机的测温系统,详细描述了利用液晶显示器件LCD1602和传感器DS18B20开发测温系统的过程,对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,特别是数字温度传感DS18B20的数据采集过程。
[关键词]AT89C51;DS18B20 ;LCD1602Based on single chip microcomputer temperature of liquid crystal display designAuthor:Zhou WeiTao(Garde11 class4 Major Communication, School of Physics and Telecommunication Engineering, Shaanxi University of Telechnology ,shaanxi hanzhong 723000)Tutor: Liu Yafeng[Abstract]This paper mainly introduces a temperature measurement system based on AT89C51, describes in detail using LCD1602 LCD display device and sensor DS18B20 temperature measurement and control system in the development process, focusing on sensor under the single chip microcomputer hardware connection, software programming and the flow diagram of each module system are analyzed in detail, especially the digital temperature sensor DS18B20 the data collection process.[Key words] AT89C51; DS18B20; LCD1602引言温度是生活及生产中最基本的物理量,它表征的是物体的冷热程度。
自然界中任何物理、化学过程都紧密地与温度相联系。
在很多生产过程中,温度的测量和控制都直接和安全生产、提高生产效率、保证产品质量、节约能源等重大技术经济指标相联系。
自18世纪工业革命以来,工业过程离不开温度控制。
温度控制广泛应用于社会生活的各个领域,如家电、汽车、材料、电力电子等。
温度控制的精度以及不同控制对象的控制方法选择都起着至关重要的作用。
随着社会的进步和工业技术的发展,温度因素在社会生活各个方面已不容忽视。
由于许多产品对温度范围要求严格,而目前市场上普遍存在的温度检测仪器大都是单点测量,同时有温度信息传递不及时、精度不够的缺点,不利于工业控制者根据温度变化及时做出决定,在这样的形式下,开发一种能够同时测量多点,并且实时性高、精度高,能够综合处理多点温度信息的测量系统就很有必要。
在单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术条件下,我们可以基于89S51单片机,利用液晶显示器件以及DS18B20温度传感器等器件,通过温度传感器在单片机下的硬件连接,软件编程即可设计DS18B20温度传感器系统。
该系统可以方便的实现实现温度采集和显示,并可根据需要任意设定上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。
DS18B20与AT89C51结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。
1内容1.1课程设计题目基于DS18B20的温度传感器1.2课程设计目的通过基于MCS-51系列单片机AT89C51和DS18B20温度传感器检测温度,熟悉芯片的使用,温度传感器的功能,数码显示管的使用,汇编语言的设计;并且把我们这一年所学的数字和模拟电子技术、检测技术、单片机应用等知识,通过理论联系实际,从题目分析、电路设计调试、程序编制调试到传感器的选定等这一完整的实验过程,培养了学生正确的设计思想,使学生充分发挥主观能动性,去独立解决实际问题,以达到提升学生的综合能力、动手能力、文献资料查阅能力的作用,为毕业设计和以后工作打下一个良好的基础。
1.3设计任务和要求以MCS-51系列单片机为核心器件,组成一个数字温度计,采用数字温度传感器DS18B20为检测器件,进行单点温度检测,检测精度为±0.5摄氏度。
温度显示采用LCD1602显示,两位整数,一位小数。
图1.1系统总体仿真图1.4方案选择与论证根据设计任务的总体要求,本系统可以划分为以下几个基本模块,针对各个模块的功能要求,分别有以下一些不同的设计方案:1.4.1温度传感模块方案一:采用热敏电阻,热敏电阻精度、重复性、可靠性较差,对于检测1摄氏度的信号是不适用的,也不能满足测量范围。
在温度测量系统中,也常采用单片温度传感器,比如AD590,LM35等。
但这些芯片输出的都是模拟信号,必须经过A/D转换后才能送给计算机,这样就使测温系统的硬件结构较复杂。
另外,这种测温系统难以实现多点测温,也要用到复杂的算法,一定程度上也增加了软件实现的难度。
方案二:采用单总线数字温度传感器DS18B20测量温度,直接输出数字信号。
便于单片机处理及控制,节省硬件电路。
且该芯片的物理化学性很稳定,此元件线形性能好,在0—100摄氏度时,最大线形偏差小于1摄氏度。
DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器AT89C51构成的温度装置,它直接输出温度的数字信号到微控制器。
每只DS18B20具有一个独有的不可修改的64位序列号,根据序列号可访问不同的器件。
这样一条总线上可挂接多个DS18B20传感器,实现多点温度测量,轻松的组建传感网络。
综上分析,我选用第二种方案。
图1.2 温度传感模块仿真图1.4.2显示模块方案一:采用8位段数码管,将单片机得到的数据通过数码管显示出来。
该方案简单易行,但所需的元件较多,且不容易进行操作,可读性差,一旦设定后很难再加入其他的功能,显示格式受限制,且大耗电量大,不宜用电池给系统供电。
方案二:采用液晶显示器件,液晶显示平稳、省电、美观,更容易实现题目要求,对后续的园艺通兼容性高,只需将软件作修改即可,可操作性强,也易于读数,采用RT1602两行十六个字符的显示,能同时显示其它的信息如日期、时间、星期、温度。
综上分析,我们采用了第二个方案图1.3 显示模块仿真图2系统概述2.1系统的总体设计方案采用AT89S52单片机作为控制核心对温度传感器DS18B20控制,读取温度信号并进行计算处理,并送到液晶显示器LCD1602显示。
按照系统设计功能的要求,确定系统由3个模块组成:主控制器、测温电路和显示电路。
数字温度计总体电路结构框图如图2.1下所示。
图2.1 总体电路结构框图微机系统 8255PCD 显示电路DS18B202.2硬件电路设计2.2.1单片机控制模块该模块由AT89C51单片机组成在设计方面,AT89C51的EA接高电平,其外围电路提供能使之工作的晶振脉冲、复位按键,四个I/O分别接8路的单列IP座方便与外围设备连接。
当AT89C51芯片接到来自温度传感器的信号时,其内部程序将根据信号的类型进行处理,并且将处理的结果送到显示模块,发送控制信号控制各模块。
2.2.2温度传感器模块图2.2 DS18B202.2.2.1 DS18B20原理与分析DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。
与传统的热敏电阻相比,它能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
可以分别在93.75 ms和750 ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。
因而使用DS18B20可使系统结构更趋简单,可靠性更高。
他在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。
以下是DS18B20的特点:(1)独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
(2)在使用中不需要任何外围元件。
(3)可用数据线供电,电压范围:+3.0∽+5.5 V。
(4)测温范围:-55 - +125 ℃。
固有测温分辨率为0.5 ℃。
(5)通过编程可实现9-12位的数字读数方式。
(6)用户可自设定非易失性的报警上下限值。
(7)支持多点组网功能,多个DS18B20可以并联在惟一的三线上,实现多点测温。
(8)负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
图2.3 DS18B20的测温原理2.2.2.2 DS18B20的测温原理DS18B20的测温原理如图2.3所示,图2.3低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图2.3还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 ℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在 -55 ℃所对应的一个基数值。
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
图中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。
另外,由于DS18B20单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重要。