温度检测实训报告.doc_第1页
温度检测实训报告.doc_第2页
温度检测实训报告.doc_第3页
温度检测实训报告.doc_第4页
温度检测实训报告.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

温度传感器运用实训报告班级: 应电1131班 指导老师: 宋晓虹 组员: 刘媛媛、王海芳 满兴华、谢道权(M组) 2013/4/23一、电路介绍该电路是由18B20温度传感器作为温度传感器材,由AT89C51 单片机进行数据处理,由0.56寸的三位共阳数码管显示温度值。外接5V16V的直流电源供电。温度显示范围没有限制,只设了个30C的报警温度,精度为0.1C。P1.0和P1.2接了两个按键,可对报警温度进行加和减。二、设计思路通过18B20温度传感器作为温度传感器材,设计电路,编写程序,通过实训,进一步了解温度传感器以及相关应用。三、电路原理图四、实物图五、元件清单及功能介绍名称规格编号主要功能或作用按钮6X6X5AN1、AN2、AN3调节报警温度的值电容30PC1、C2单片机时钟振荡电容10UFC3单片机复位电容470UFC4电源滤波电容104C5电源滤波单片机AT89C51IC1CPU温度传感器DS18B20IC2温度传感器晶体12MJZ单片机时钟振荡一位共阳数码管0.56LED1摄氏温度符号显示三位共阳数码管0.56LED2温度值显示三极管8550Q1、Q2、Q3、Q4、Q5Q1:报警时驱动数码管;Q2Q3Q4Q5:数码管驱动蜂鸣器电阻10KR1单片机复位电阻220和470R7R13和R14数码管限流,其中R14=470电阻4.7KR2、R3、R4、R6三极管基极和温度传感器偏置电阻2KR5三极管Q1基极偏置跳线X1、Xn用元件引脚连PCB板73MMX85MM六、源程序代码/*DS18B20数码管显示程序*/#include#include#define uchar unsigned char#define uint unsigned int#define nop _nop_()sbit dq=P36; /温度的DQ脚与P36sbit wx1=P24; /数码管驱动sbit wx2=P25;sbit wx3=P26;sbit wx4=P27;sbit P1_7=P17; /蜂鸣器报警sbit k1=P10; /tamp+sbit k2=P12; /tamp-uchar tamp=30; /报警温度uchar T,xs;uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0x70;void delay10us() uchar i; for(i=1;i0;i-) void delay_us(uchar dus) uchar mm;for(mm=0;mmdus;mm+) _nop_;void delay_ms(uint dms)int mmm; for(mmm=0;mmmdms;mmm+) delay_us(230);/* DS18B20初始化复位 */void ds_rst() dq=0;delay_us(110); /延时480 usdq=1;delay_us(110);/* 单线写一字节 *void write_ICcmd(uchar dat)uchar i;for(i=0;i=1;delay_us(10); /延时45us/* 单线读一字节uchar read_ICdata()uchar i=0;uchar dat=0;for(i=8;i0;i-)dq=0;dat=1;dq=1;if(dq) dat|=0x80;delay_us(10); /延时45us return (dat);/* 温度读取 *void read_TMP()uchar a=0,b=0;ds_rst();write_ICcmd(0xcc); / 跳过ROMwrite_ICcmd(0x44);/温度转换为数据ds_rst();write_ICcmd(0xcc);write_ICcmd(0xbe);/读取温度指令a=read_ICdata(); /温度低八位,最小位为0.0625 摄氏度b=read_ICdata(); /温度高位,高四位为正负号,1111xxxx为负。0000xxxx为正,后四位为温度的高四位T=a;T=(T&0xF0)4;T=T+(b&0x0F)4); /T为小数点前的数值xs=(a&0x0F)*6.25; /xs为小数点后的数值的100倍 /* 共阳数码管显示 *void wenduxianshi()wx1=0; /十位显示P0=tableT/10;delay_us(500);wx1=1;wx2=0;/各位加小数点显示P0=tableT%10+0x80;delay_us(500);wx2=1;wx3=0;/小数显示P0=tablexs/10;delay_us(500);wx3=1;wx4=0;/字母C显示P0=table12;delay_us(500);wx4=1; /* 按键扫描 *void keyscan() if(k1=0) delay_us(10); if(k1=0) tamp=tamp+1; if(k2=0) delay_us(10); if(k2=0) tamp=tamp-1; /* 蜂鸣器报警 *void beep() P1_7=0; delay_us(10); P1_7=1; delay_us(10);/* 主函数 *void main()while(1)read_TMP(); /调用温度读取函数wenduxianshi();/调用数码管显示函数 keyscan(); /调用按键扫描 if(tamp=T) beep(); /调用蜂鸣器报警实训感想:通过此次实训,我知道了基于51单片机的DS18B20测温电路的基本原理。另外,我觉得要成功的完成一个小产品,在有的设计理念和电路图后,进行仿真验证是必不可少

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论