[毕业设计精品]基于18b20的温度采集系统.doc
《[毕业设计精品]基于18b20的温度采集系统.doc》由会员分享,可在线阅读,更多相关《[毕业设计精品]基于18b20的温度采集系统.doc(39页珍藏版)》请在三一办公上搜索。
1、基于18b20的温度采集系统目录摘要3一、设计任务和要求3二、系统方案3三、方案设计与论证4四、程序流程图8五:元器件清单19六、结果分析19七、总结20八、设计体会与今后的改进意见20附录:.摘要本文介绍了基于DS18B20的温度实时采集与显示系统的设计与实现。设计中选取单片机STC89C52作为系统控制中心,数字温度传感器DS18B20作为单片机外部信号源,精度较好的数码管来显示温度。利用单片机程序来完成对STC18B20与AT89C52的控制,最终实现温度的实时采集与显示。 关键词:DS18B20 STC89C52 温度采集 数码管Abstract: This paper introdu
2、ces the temperature based on STC18B20 real-time data acquisition and display system design and implementation. Design of STC89C52 as system selection single-chip microcomputer control center, and digital temperature sensor DS18B20 as external sources, microcontroller accuracy than good digital tube
3、to display temperature. Using microcontroller program to accomplish DS18B20 and AT89C52 single control temperature, and finally achieve the real-time data acquisition and display. Keywords: DS18B20 AT89C52 single temperature gathering digital tube.一、设计任务和要求1、利用DS18B20实现温度采集,并用数码管显示。能实现温度上下限的设置,并能够超限
4、报警2、 硬件设计部分,根据设计的任务选定合适的单片机,根据控制对象设计接口电路。设计的单元电路必须有工作原理,器件的作用,分析和计算过程;3、软件设计部分,根据电路工作过程,画出软件流程图,根据流程图编写相应的程序,进行调试并打印程序清单;4、原理图设计部分,根据所确定的设计电路,利用Protel工具软件绘制电路原理图,提供元器件清单。5、编写报告。进行成果验收。 二、系统方案方案一:由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A
5、/D转换电路,感温电路比较麻烦。方案二:进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。三:方案设计与论证1温度采集模块方案一:采用瑞士Sensirion公司研制的SHT11型智能化湿度/温度传感器,它采用CMOSens专利技术(CMOS和传感器技术的融合),外形尺寸小。它具有I2C总线接口,接口电路简单,并具有数字式输出、免调试、免标定、一致性好的特点。
6、其电路原理图如图1所示。因其价格较贵,所以不采用此方案。图1 SHT11电路原理图方案二:采用DALLAS公司推出的一线式数字温度传感器DS18B20,该芯片的管脚简单,无需外围硬件设备即可进行温度测量,与单片机交换信息仅需一根I/O口线,多个DS18B20可以并联到3根或2根线上,实现多点测温。CPU只需1根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可以节省大量的引线和逻辑电路。温度测量范围为-55125,固有测温分辨率为0.5,符合本设计的要求,可编程为912位A/D转换精度,用户可自设定非易失性的报警上下限值,支持多点组网功能。具有负压特性,电源极性接反时,温度计不会因
7、发热而烧毁,只是不能正常工作而已。被测量温度用符号扩展的16位数字量方式输出,而且其体积较小,方便焊接,因此采用此方案。其电路图如图2图2 温度采集电路图2显示电路模块单片机扫描键盘得到功率预置值,通过P0的8位IO口控制选定数码管,P2的8位IO口控制数码管显示,将该值送到LED显示器中显示。其硬件原理如图3所示。但此方案设备体积大,功耗大,因此不建议在实际应用中选用此方案。图3:显示模块3报警模块此模块原理简单,使用单片机的一个IO口控制蜂鸣器的响灭。如图5三极管主要是做驱动用的。因为单片机的IO口驱动能力不够让蜂鸣器发出声音,所以我们通过三极管放大驱动电流,从而可以让蜂鸣器发出声音,当I
8、O口输出低电平,三极管导通,集电极电流通过蜂鸣器让蜂鸣器发出声音,当输出低电平时,三极管截止,没有电流流过蜂鸣器,所以就不会发出声音。图4:报警模块4按键模块按键模块主要是为了达到如下两个个功能:(1) 乙机任意控制甲机就行温度的转换;(2) 在不需要查询温度时乙机可以控制甲机断电,到需要时在对其供电,以达到节约电能的目的。(3) 控制乙机自身的开关以及复位作用。(4) 原理图如下:其中,S控制乙机自身的开关。S1.S2与K1控制甲机的开关。(5) S3.S4控制甲机是否就行温度转换。图5:按键模块5最小系统模块其工作电路图6所示图6 51最小系统模块电路图电路设计文档甲机原理图乙机原理图四:
9、程序流程图甲机主程序甲机主程序的主要功能是等待接收乙机是否发送启动温度转换的命令,是,则开始就行温度转换,并发送给乙机。其程序流程见图8所示。串口初始化定时器中断初始化i=1?Y接收数据赋予i开定时器T0i=2?N关定时器T0开始源程序如下:void main()TMOD=0X21;TH1=0Xfd;TL1=0xfd;TH0=0x3c;TL0=0XB0;TR0=0;TR1=1;SCON=0x50;EA=1;ET0=1;while(1)while(!RI)i=SBUF;RI=0;if(i=1)TR0=1;else if(i=2)TR0=0; 温度采集子程序此程序就是启动温度转换,并返回温度值。返
10、回温度值数据读取处理温度转换18B20初始化源程序如下:uchar ReadTemperaure()uchar TH,TL,zong;init_18b20();xie(0xcc);xie(0x44);delay(125);init_18b20();xie(0xcc);xie(0xbe);TL=du();TH=du();zong=(TH4);return zong;写入子程序此程序目的是将命令或数据写入18B20内,写入endY数据右移if i=0得到显示数据低位i=8写入初始化N源程序如下:void xie(uchar dat)uchar i;DQ=1;delay(1);for(i=8;i0;
11、i-)DQ=0;DQ=dat&0x01;delay(5);DQ=1;dat=1;delay(4);读取子程序结束返回右移1位If (i0)读出DQ只赋给变量高位功能是从18B20内读出自己所要得数据读出初始化YN源程序如下:uchar du()uchar temp=0,i;for(i=8;i0;i-)/DQ=1;/delay(1);DQ=0;temp=1;DQ=1;delay(1);if(DQ) temp|=0x80;delay(5);return temp;中断函数此函数比较重要,温度的读取与传输都在此函数中。TH0,TL0初始化t+t=20?t=0;温度转换YN将温度发送给乙机结束源程序如
12、下:void zhongd() interrupt 1 TH0=0x3c;TL0=0XB0;t+;if(t=20)t=0;i=ReadTemperaure();SBUF=i;while(!TI);TI=0;TI=0;乙机:主函数:串口通线初始化S1=0?给甲机发送01;b=1;YS2=0?Y给甲机发送02;b=0;S3=0?a取反,当a=1时,jdq取反。Yb=1?Y显示温度i30?Y驱动蜂鸣器N关闭蜂鸣器NNNNN源程序如下:void main()uchar a=0,b=0;TMOD=0X20;TH1=0Xfd;TL1=0xfd;/TL0=0XF0;/TH0=0xF0; SCON=0x50;
13、 TR1=1;/TR0=0;/ET0=1;EA=0;ES=1;jdq=0;while(1)if(!s1)SBUF=0X01;while(TI=0);TI=0;EA=1;b=1;if(!s2)EA=0;SBUF=0X02;while(TI=0);TI=0; wei=1;P0=0xff;wei=0;b=0;if(!s3)delayms(10);while(!s3);a=!a;jdq=!jdq; if(b)disp(i);if(i=30)fmq=0;else fmq=1;显示函数:将收到的温度用数码管显示。num+第num个数码管显示显示温度的第num位延时5ms源程序如下:void disp(un
14、signed char temperature)static unsigned char num=0;num+;num=num%3;wei=1;P0=tablewnum;wei=0;P0=0x00;duan=1;switch(num)case 2:P0=tabledtemperature%10;break;case 1:P0=tabledtemperature/10%10;break;case 0:P0=tabledtemperature/100;break; default: ;duan=0;P0=0XFF;delayms(5);中断函数:传输作用就是为了接收甲机传送的温度。i=SUBFRI
15、=0;结束源程序如下:void zhongd2()interrupt 4RI=0;i=SBUF;P1=i; 甲机源程序:#include#define uchar unsigned char #define uint unsigned intvoid disp(unsigned char temperature);sbit DQ=P22;unsigned char i=20;uchar t;void delay(uchar time)uchar n=0;while(n0;i-)DQ=0;/delay(1);DQ=dat&0x01;delay(5);/10DQ=1;dat=1;delay(4);
16、uchar du()uchar temp=0,i;for(i=8;i0;i-)/DQ=1;/delay(1);DQ=0;temp=1;DQ=1;delay(1);if(DQ) temp|=0x80;delay(5);return temp; uchar ReadTemperaure()uchar TH,TL,zong;init_18b20();xie(0xcc);xie(0x44);delay(125);init_18b20();xie(0xcc);xie(0xbe);TL=du();TH=du();zong=(TH4);return zong;void main()TMOD=0X21;TH1
17、=0Xfd;TL1=0xfd;TH0=0x3c;TL0=0XB0;TR0=1;TR1=1;SCON=0x50;EA=0;ET0=1;while(1)while(!RI)i=SBUF;RI=0;if(i=1)EA=1;else if(i=2)EA=0; / disp(i);void zhongd() interrupt 1 TH0=0x3c;TL0=0XB0;t+;if(t=20)t=0;i=ReadTemperaure();SBUF=i;while(!TI);TI=0;TI=0;乙机源程序:#include#define uchar unsigned char #define uint uns
18、igned int code uchar tabled=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71; code uchar tablew=0xfe,0xfd,0xfb,0xf7,0xef,0xdf;sbit duan=P26; sbit wei=P27;sbit s1=P34;sbit s2=P35;sbit s3=P36;sbit fmq=P23;sbit jdq=P24;uchar i=0;void delayms(unsigned char z)unsigned char
19、 i;while(z-)for(i=112;i0;i-); void disp(unsigned char temperature)static unsigned char num=0;num+;num=num%3;wei=1;P0=tablewnum;wei=0;P0=0x00;duan=1;待添加的隐藏文字内容1switch(num)case 2:P0=tabledtemperature%10;break;case 1:P0=tabledtemperature/10%10;break;case 0:P0=tabledtemperature/100;break; default: ;duan
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计精品 毕业设计 精品 基于 18 b20 温度 采集 系统

链接地址:https://www.31ppt.com/p-4146768.html