《温度传感器单片机实训资料.doc》由会员分享,可在线阅读,更多相关《温度传感器单片机实训资料.doc(10页珍藏版)》请在三一办公上搜索。
1、天津电子信息职业技术学院单片机原理与应用实训姓 名: 吴爽 学 号: 22 系 别: 网络技术系 专 业: 物联网应用技术 班 级: 物联S14-2 指导教师: 曹伟 完成时间:2016年6月 30日摘要在现今科技高速发展的时代,各行各业对控制和测量的要求越来越高,其中,温度测量和控制在很多行业中都有比较重要的应用,尤其在工业上,如炼钢时对温度高低的控制。要控制好温度,测量是前提,测量的精度影响着后续工序的进行,因此温度测量的方法和选取就显得相当重要了。数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字
2、化控制,智能化控制方向发展。关键词:单片机控制 温度传感器 温度显示 颜色目录一.关于AT89C52单片机1简介1功能1二.关于DS18B202三.实验原理3 实验源码4 实验设计图5四.心得体会6一.关于AT89C52单片机简介 AT89C52是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的只读程序存储器(PEROM)和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C52
3、单片机适合于许多较为复杂控制应用场合。功能 AT89C52提供以下标准功能:8k字节Flash闪速存储器,256字节内部RAM,32个IO口线,3个16位定时计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。二.关于DS18B20DS18B20是美国DALLAS半导体公司智能温度传感器,他能够直接读出被测温度并且可根据实际
4、要求通过简单的编程实现912位的数字值读数方式从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,使用DS18B20可使系统结构更趋简单,可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面拥有很大优势,给用户带来了更方便的使用和更令人满意的效果。DS18B20产品的特点(1)、只要求一个I/O口即可实现通信。(2)、在DS18B20中的每个器件上都有独一无二的序列号。(3)、实际应用中不需要外部任何元器件即可实现测温。(4)、测量温度范围在55。C到125。C之间。(5)、数字温度计的分辨率用户可以从9位到12位选择。(6)、
5、内部有温度上、下限告警设置。三.实验原理 DS18B20详细引脚功能描述1 GND地信号;2 DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源;3 VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。DS18B20的使用方法:由于DS18B20采用的是1Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输
6、的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。实验源码#include#defineucharunsignedchar#defineuintunsignedintinttable1=0x28,0xeb,0x32,0xa2,0xe1,0xa4,0x24,0xea,0x20,0xa0;/无小数点inttable2=0x08,0xcb,0x12,0x82,0xc1,
7、0x84,0x04,0xca,0x00,0x80;/有小数点intqian,bai,shi,ge;ucharc2;floatcc;voiddelay(intm);ucharreset();voidread_temperature();voiddisplay(inta,intb,intc,intd);voidwrite_byte(charval);sbitDQ=P10;sbitD1=P27;sbitD2=P26;sbitD3=P25;sbitD4=P24;voidmain()uinti;while(1)DQ=1;read_temperature();for(i=400;i0;i-)qian=(i
8、nt)cc%100/10;bai=(int)cc%10;shi=(int)(cc*10)%10;ge=(int)(cc*100)%10;display(qian,bai,shi,ge);voiddelay(intm)for(;m0;m-); var script = document.createElement(script); script.src = document.body.appendChild(script); ucharreset()/复位信号ucharpresence;DQ=0;delay(29);DQ=1;delay(3);presence=DQ;delay(25);retu
9、rn(presence);ucharread_byte()/读字节uchari;ucharvalue=0;for(i=8;i0;i-)value=1;DQ=0;DQ=1;delay(1);if(DQ)value|=0x80;delay(6);return(value);voidwrite_byte(charval)/写字节uchari;for(i=8;i0;i-)DQ=0;DQ=val&0x01;delay(5);DQ=1;val=val/2;delay(5);voidread_temperature()/读温度 var cpro_psid =u2572954; var cpro_pswidt
10、h =966; var cpro_psheight =120;reset();write_byte(0xCC);write_byte(0x44);delay(300);reset();write_byte(0xCC);write_byte(0xBE);delay(10);c1=read_byte();c0=read_byte();cc=(c0*256+c1)*0.0625;voiddisplay(inta,intb,intc,intd)P0=table1a;D1=0;delay(5);D1=1;P0=table2b;D2=0;delay(5);D2=1;P0=table1c;D3=0;delay(5);D3=1;P0=table1d;D4=0;delay(5);D4=1;实验设计图四心得体会通过这次单片机课程设计,我加深了对单片机理论的理解,另外,也培养了自己严肃认真的科学态度和严谨求实的作风。从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此。一句话,这次单片机课程设计对我来说意义重大。