温度传感器实训报告.docx

上传人:安*** 文档编号:19204810 上传时间:2022-06-05 格式:DOCX 页数:26 大小:20.42KB
返回 下载 相关 举报
温度传感器实训报告.docx_第1页
第1页 / 共26页
温度传感器实训报告.docx_第2页
第2页 / 共26页
点击查看更多>>
资源描述

《温度传感器实训报告.docx》由会员分享,可在线阅读,更多相关《温度传感器实训报告.docx(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、温度传感器实训报告二、实训经过1、电路实现功能:由电脑USB接口供电,可以外接6V16V的直流电源。通过温度传感器18B20作为温度传感器件,测出改实际温度,再由芯片为封装AT89C2051单片机进行数据处理,通过数码管显示温度值。温度显示和控制的范围为:-55oC到125oC之间,精度为1oC,也就是显示整数。假如你设定报警的温度为20oC,则当环境温度到达21oC时,报警发光二极管发光,同时继电器动作。假如你不需要对温度控制报警,能够将报警温度值设置高些。假如控制的是某局部的温度,可将18B20用引线引出,但距离不宜过大,注意其引脚绝缘。.电路的构成该电路有电源、按键控制模块、信号处理、驱

2、动模块、显示模块、检测。.电路原理图RST1P3.0(RXD)2P3.1(TXD)3XTAL24XTAL15P3.2(INT0)6P3.3(INT1)7P3.4(T0)8P3.5(T1)9GND10P3.711P1.012P1.113P1.214P1.315P1.416P1.517P1.618P1.719VCC20IC1AT89C2051C230PC130PJZ12MR110K+C310UFVCCAN3AN2AN1R34.7KR44.7KR24.7KP1P2P3P1P2P3Q18550VCCJDQLED3R52KV11N4148R64.7KVCCP3.7P3.7Q28550Q38550Q485

3、501234J3USB+C4470UFC5104vccA1B2C3D4E5F6G7DP8P19P210P3118.8.8.LED2LED-3R7R13R8R9R11R10R12220*7D1D2D3D4D5D6D7D1D2D3D4D5D6D7123J1IN1GND2OUT3IC3L780512J10LED1R14470VCC3I/O2GND1IC2DS18B20五、元件清单及功能介绍名称规格编号主要功能或作用按钮6X6X5AN1、AN2、AN3调节报警温度的值电容30PC1、C2单片机时钟振荡电容10UFC3单片机复位电容470UFC4电源滤波电容104C5电源滤波单片机20P座AT89C20

4、51IC1CPU温度传感器DS18B20IC2温度传感器稳压块L7805IC3电路工作于+5V接线座3P5.0J1外电路控制接线座接线座2P5.0J2外接电源接线USB电源插座USBJ3电脑供电插座晶体12MJZ单片机时钟振荡一位共阳数码管0.56LED1摄氏温度符号显示三位共阳数码管0.56LED2温度值显示发光二极管3MMLED3报警发光指示兼Q1偏置三极管8550Q1、Q2、Q3、Q4Q1:报警时驱动继电器;Q2Q3Q4:数码管驱动电阻10KR1单片机复位电阻220和470R7R13和R14数码管限流,其中R14=470电阻4.7KR2、R3、R4、R6三极管基极和温度传感器偏置电阻2K

5、R5三极管Q1基极偏置二极管1N4148V1续流,保护Q1跳线X1、X2用元件引脚连继电器5V2AJDQ温度到达报警值时触点动作PCB板73MMX85MMUSB电源线连接电脑USB口6、程序:/*-温度控制器V1.5显示为三个共阳极LED温度传感器用单总线DS18B20CPU为2051,四个按键,分别为UP,DOWN,SET温度调节上限为125度,下限为-55度只能用于单只18B20-*/#include#include#defineKey_UPP3_0/上调温度#defineKey_DOWNP3_1/下调温度#defineKey_SETP1_7/设定键温度设定,长按开电源#defineRel

6、ayOutPortP3_5/继电器输出#defineLEDPortP1/LED控制口#defineLEDOneCP3_2/LEDDS1控制百位#defineLEDTwoCP3_3/LEDDS2控制十位#defineLEDThreeCP3_4/LEDDS3控制个位#defineTMPortP3_7/DS1820DataPortunsignedcharcodeLEDDis=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF,0xBF;/0-9的LED笔划,0xFF为空,0xF7为负号staticunsignedcharbdataStateR

7、EG;/可位寻址的状态寄存器sbitDS1820ON=StateREG0;/DS1820能否存在sbitSetTF=StateREG1;/能否是在温度设置状态sbitKeySETDown=StateREG2;/能否已按过SET键标识sbitPowTF=StateREG3;/电源电源标识sbitKeyTF=StateREG4;/键盘能否允许/sbitKeySETDowning=StateREG5;/SET能否正在按下staticunsignedcharbdataTLV_at_0x0029;/温度变量高低位staticunsignedcharbdataTHV_at_0x0028;staticsig

8、nedcharTMV;/转换后的温度值staticunsignedcharKeyV,TempKeyV;/键值staticsignedcharTMRomV_at_0x0027;/高温限制staticsignedcharTMSetV_at_0x0026;/温度设定值staticunsignedcharKSDNum;/SET键连按时的收集次数staticunsignedcharIntNum,IntNum2,IntNum3;/中断发生次数,IntNum用于SET长按检测,IntNum2用于设定状态时LED闪烁staticsignedcharLED_One,LED_Two,LED_Three;/LED的

9、显示位LED_One为十位,LED_Two为个位staticunsignedcharSign;/负号标识voidmain(void)voidInitDS1820(void);/定义函数voidROMDS1820(void);voidTMVDS1820(void);voidTMRDS1820(void);voidTMWDS1820(void);voidTMREDS1820(void);voidTMERDS1820(void);voidReadDS1820(void);voidWriteDS1820(void);voidDelay_510(void);voidDelay_110(void);voi

10、dDelay_10ms(void);voidDelay_4s(void);voidV2ToV(void);StateREG=0;/初始化变量SetTF=1;PowTF=1;/关电源THV=0;TLV=0;TMV=0;KeyV=0;TempKeyV=0;KSDNum=0;IntNum=0;IntNum2=0;IntNum3=0;LED_One=0;LED_Two=0;InitDS1820();/初始化ROMDS1820();/跳过ROMTMERDS1820();/E2PRAM中温度上限值调入RAMInitDS1820();/初始化ROMDS1820();/跳过ROMTMRDS1820();/读出

11、温度指令ReadDS1820();/读出温度值和上限值TMSetV=TMRomV;/拷贝保存在DS18B20ROM里的上限值到TMSetVEA=1;/允许CPU中断ET0=1;/定时器0中断打开TMOD=0x1;/设定时器0为形式1,16位形式TH0=0xB1;TL0=0xDF;/设定时值为20000us20msTR0=1;/开场定时while(1);/定时器0中断外理中键扫描和显示voidKeyAndDis_Time0(void)interrupt1using2TH0=0xB1;TL0=0xDF;/设定时值为20000us20ms)LEDPort=0xFF;if(!Key_UP)KeyV=1

12、;if(!Key_DOWN)KeyV=2;if(!Key_SET)KeyV=3;/KeySETDowning=0;/去除if(KeyV!=0)/有键按下Delay_10ms();/延时防抖按下10ms再测if(!Key_UP)TempKeyV=1;if(!Key_DOWN)TempKeyV=2;if(!Key_SET)TempKeyV=3;if(KeyV=TempKeyV)/两次值相等为确定接下了键if(KeyV=3)/按下SET键,如在SET状态就退出,否则进入/KeySETDowning=1;/表明SET正在按下PowTF=0;/电源标识开if(!KeyTF)if(SetTF)SetTF=

13、0;/标识位标识退出设定InitDS1820();/初始化ROMDS1820();/跳过ROMTMWDS1820();/写温度上限指令WriteDS1820();/写温度上限到DS18B20ROMWriteDS1820();/写温度上限到DS18B20ROMWriteDS1820();/写温度上限到DS18B20ROMInitDS1820();/初始化ROMDS1820();/跳过ROMTMREDS1820();/温度上限值COPY回E2PRAMelseSetTF=1;if(!KeySETDown)/没有第一次按下SET时,KeySETDown标识置1KeySETDown=1;elseKSDN

14、um=KSDNum+1;/前一秒内有按过SET则开场计数if(SetTF)/在SET状态下if(KeyV=1)&(!KeyTF)TMSetV=TMSetV+1;/上调温度if(KeyV=2)&(!KeyTF)TMSetV=TMSetV-1;/下调温度if(TMSetV=125)TMSetV=125;if(!KeyTF)&(IntNum3=0)KeyTF=1;/当键盘处于可用时,锁定if(KeySETDown)/在2秒内按下了SET则计中断发生次数用于长按SET时计时用IntNum=IntNum+1;if(IntNum55)/中断发生了55次时大约1.2秒75为1.5秒左右IntNum=0;Ke

15、ySETDown=0;if(KSDNum=55)/如一直长按了SET1.2秒左右RelayOutPort=1;/关闭继电器输出PowTF=1;/电源标识关LEDOneC=0;LEDTwoC=0;LEDThreeC=0;LEDPort=0xBF;/显示-Delay_4s();/延时LEDOneC=1;LEDTwoC=1;/关显示LEDThreeC=1;Delay_4s();IntNum=0;IntNum2=0;IntNum3=0;KSDNum=0;KeyV=0;TempKeyV=0;/清空变量准备下次键扫描if(!PowTF)InitDS1820();/初始化ROMDS1820();/跳过ROM

16、TMVDS1820();/温度转换指令Delay_510();Delay_510();/延时等待转换完成InitDS1820();/初始化ROMDS1820();/跳过ROMTMRDS1820();/读出温度指令ReadDS1820();/读出温度值V2ToV();/转换显示值if(TMVTMSetV)/根据收集到的温度值控制继电器RelayOutPort=0;elseRelayOutPort=1;if(SetTF)IntNum2=IntNum2+1;/用于闪烁计数if(IntNum250)IntNum2=0;if(KeyTF)IntNum3=IntNum3+1;/用于防止按键连按if(Int

17、Num325)IntNum3=0;KeyTF=0;if(SetTF)&(IntNum24;THV=THV7;/取符号elseSign=TMV7;if(Sign)if(SetTF|!Key_SET)LED_One=(TMSetV-1)/100;/SET状态下显示设定值LED_Two=(TMSetV-1)-LED_One*100)/10;LED_Three=(TMSetV-1)-LED_One*100-LED_Two*10;elseLED_One=(TMV)/100;/转换百位值LED_Two=(TMV)-LED_One*100)/10;LED_Three=(TMV)-LED_One*100-LE

18、D_Two*10;elseif(SetTF|!Key_SET)LED_One=(TMSetV)/100;/SET状态下显示设定值LED_Two=(TMSetV-LED_One*100)/10;LED_Three=TMSetV-LED_One*100-LED_Two*10;elseLED_One=(TMV)/100;/转换百位值LED_Two=(TMV-LED_One*100)/10;LED_Three=TMV-LED_One*100-LED_Two*10;/转LED字段if(LED_One)/超过百时十位的处理LED_Two=LEDDisLED_Two;elseif(LED_Two=0)LED_Two=LEDDis10;elseLED_Two=LEDDisLED_Two;if(Sign)LED_One=LEDDis11;elseif(LED_One=0)LED_One=LEDDis10;elseLED_One=LEDDisLED_One;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 策划方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁