资源描述:
《数字温度计设计-开题报告书.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数字温度计设计开题报告364.1设计要求●利用温度传感器(DS18B20)测量某一点环境温度. ●测量围为-50℃~+50℃,精度为±0.5℃. ●用LED数码管进行实际温度值直读显示. 2.扩展功能 ●能够根据需要任意设定温度的上下限报警功能 .364.2硬件设计1设计思想以51单片机为主控制器,以数字式温度传感器DS18B20为传感元件,以LED数码管作为显示器件实时显示测量温度。数字式温度计测温围在-50℃~50℃,误差在±0.5℃以。温度测量间隔时间选择1 s 。 通过键盘扩展,实现温度上下限值的设定及温度报警功能。对温度采样值实现数字滤波。通过硬件或软件方法实
2、现时间显示。2主要元器件介绍:单片机AT89C51温度传感器DS18B204位共阳LED数码管3功能电路介绍主控制器: 单片机AT89C2051具有低电压供电和小体积等特点,两个端口刚好满足电路系统的设计需要。 显示电路:显示电路采用4位共阳LED数码管,从P1口输出段码,列扫描用P3.0~P3.3口来实现,列驱动用9012三极管。电路图 温度计电路设计原理图如上图所示,温度计的控制器使用单片机AT89C51,温度传感器使用DS18B20,用4位共阳极LED数码管以动态扫描法实现温度显示。 图中有3个独立式按键可以分别调整温度的上下限报警设置,图中蜂鸣器可以在被测温度不在上下限
3、围时,发出报警鸣叫声音,同时LED数码管将没有被测温度显示,这时可以调整上下限,从而测出被测的温度值。364.3软件设计1设计思想数字温度计设计的应用程序由主程序,LED显示子程序,温度检测程序组2软件流程图3源程序ds18b20数码管动态显示头文件*功能:通过定时器0延时是数码管动态显示*编程者:ZPZ*编程时间:2009/10/2**********************************************************************/#ifndef__ds18b20_display_H__//定义头文件#define__ds18b20_d
4、isplay_H__#defineuintunsignedint//变量类型宏定义,用uint表示无符号整形(16位)#defineucharunsignedchar//变量类型宏定义,用uchar表示无符号字符型(8位)sbitwei1=P2^4;//可位寻址变量定义,用wei1表示P2.4口sbitwei2=P2^5;//用wei2表示P2.5口sbitwei3=P2^6;//用wei3表示P2.6口sbitwei4=P2^7;//用wei4表示P2.7口ucharnum=0;//定义num为全局无符号字符型变量,赋初值为‘0’ucharcodetemperature1[]
5、={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//定义显示码表0~9ucharcodetemperature2[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//带小数点的0.~9.ucharcodetemperature3[]={0x00,0x80,0x40,0x76,0x38};//依次是‘不显示’‘.’‘-’‘H’‘L’/*****************************延时子函数******************************/v
6、oiddisplay_delay(uintt)//延时1ms左右{uinti,j;for(i=t;i>0;i--)for(j=120;j>0;j--);}/**************************定时器1初始化函数***************************/voidtimer1_init(bitt){TMOD=0x10;//设定定时器1工作在方式1,最大定时65.53msTH0=0x3c;//定时器赋初值,定时50msTL0=0xb0;EA=1;//开总中断ET1=1;//开定时器1中断TR1=t;//局部变量t为1启动定时器1,为0关闭定时器1}/**
7、************************定时器1中断函数*****************************/voidtimer1()interrupt3{TH0=0x3c;//重新赋初值,定时50msTL0=0xb0;num++;//每进入一次定时器中断num加1(每50ms加1一次)if(num<5){s=1;if(w==1){beer=1;led=1;}else{beer=1;led=1;}}else//进入4次中断,定时200ms时若报警标志位w为‘1’则启动报警,不为