温度传感器实训报告(共19页).doc
《温度传感器实训报告(共19页).doc》由会员分享,可在线阅读,更多相关《温度传感器实训报告(共19页).doc(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上温度传感器实训报告实训报告课 程:信号检测与技术专 业:应用电子技术班 级:应电1131班小组成员:欧阳主、王雅志、朱知荣、周玙旋、周合昱指导老师:宋晓虹老师 2013年 4 月 23 日一、实训目的 了解18b20温度传感器的基本原理与应用二、 实训过程1、电路实现功能:由电脑USB接口供电,也可外接6V16V的直流电源。通过温度传感器18B20作为温度传感器件,测出改实际温度,再由芯片为封装AT89C2051 单片机进行数据处理,通过数码管显示温度值。温度显示(和控制)的范围为:-55C到125C之间,精度为1C,也就是显示整数。如果你设定报警的温度为20C,则当
2、环境温度达到21C时,报警发光二极管发光,同时继电器动作。如果你不需要对温度控制(报警),可以将报警温度值设置高些。如果控制的是某局部的温度,可将18B20用引线引出,但距离不宜过大,注意其引脚绝缘。. 电路的构成该电路有电源、按键控制模块、信号处理、驱动模块、显示模块、检测。.电路原理图.电路仿真图五、元件清单及功能介绍名称规格编号主要功能或作用按钮6X6X5AN1、AN2、AN3调节报警温度的值电容30PC1、C2单片机时钟振荡电容10UFC3单片机复位电容470UFC4电源滤波电容104C5电源滤波单片机(20P座)AT89C2051IC1CPU温度传感器DS18B20IC2温度传感器稳
3、压块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三极管基极和温度传感器偏置电阻2KR5三极管Q1基极偏置二极管1N4148V1续流,保护Q1
4、跳线X1、X2用元件引脚连继电器5V2AJDQ温度达到报警值时触点动作PCB板73MMX85MMUSB电源线连接电脑USB口专心-专注-专业6、程序:/*-温度控制器V1.5显示为三个共阳极LED温度传感器用单总线DS18B20CPU为2051,四个按键,分别为UP,DOWN,SET温度调节上限为125度,下限为-55度只能用于单只18B20-*/#include #include #define Key_UP P3_0 /上调温度#define Key_DOWN P3_1 /下调温度#define Key_SET P1_7 /设定键(温度设定,长按开电源)#define RelayOutPo
5、rt P3_5 /继电器输出#define LEDPort P1 /LED控制口#define LEDOneC P3_2 /LED DS1控制(百位)#define LEDTwoC P3_3 /LED DS2控制(十位)#define LEDThreeC P3_4 /LED DS3控制(个位)#define TMPortP3_7/DS1820 DataPortunsigned char code LEDDis=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF,0xBF; /0-9的LED笔划,0xFF为空,0xF7为负号static
6、unsigned char bdata StateREG;/可位寻址的状态寄存器sbit DS1820ON = StateREG0; /DS1820是否存在sbit SetTF = StateREG1; /是否是在温度设置状态sbit KeySETDown = StateREG2; /是否已按过SET键标识sbit PowTF = StateREG3; /电源电源标识sbit KeyTF = StateREG4;/键盘是否允许/sbit KeySETDowning = StateREG5;/SET是否正在按下static unsigned char bdata TLV _at_ 0x0029;
7、 /温度变量高低位static unsigned char bdata THV _at_ 0x0028;static signed char TMV; /转换后的温度值static unsigned char KeyV,TempKeyV; /键值static signed char TMRomV _at_ 0x0027; /高温限制static signed char TMSetV _at_ 0x0026; /温度设定值static unsigned char KSDNum; /SET键连按时的采集次数static unsigned char IntNum,IntNum2,IntNum3; /
8、中断发生次数,IntNum用于SET长按检测,IntNum2用于设定状态时LED闪烁static signed char LED_One,LED_Two,LED_Three; /LED的显示位 LED_One为十位,LED_Two为个位static unsigned char Sign; /负号标识void main(void)void InitDS1820(void); /定义函数void ROMDS1820(void);void TMVDS1820(void);void TMRDS1820(void);void TMWDS1820(void);void TMREDS1820(void);v
9、oid TMERDS1820(void);void ReadDS1820(void);void WriteDS1820(void);void Delay_510(void);void Delay_110(void);void Delay_10ms(void);void Delay_4s(void);void V2ToV(void);StateREG = 0; /初始化变量SetTF = 1;PowTF = 1;/关电源THV = 0;TLV = 0;TMV = 0;KeyV = 0;TempKeyV = 0;KSDNum = 0;IntNum = 0;IntNum2 = 0;IntNum3 =
10、 0;LED_One = 0;LED_Two= 0;InitDS1820(); /初始化ROMDS1820(); /跳过ROMTMERDS1820(); /E2PRAM中温度上限值调入RAMInitDS1820(); /初始化ROMDS1820(); /跳过ROMTMRDS1820(); /读出温度指令ReadDS1820(); /读出温度值和上限值TMSetV = TMRomV; /拷贝保存在DS18B20ROM里的上限值到TMSetVEA = 1;/允许CPU中断ET0 = 1; /定时器0中断打开TMOD = 0x1;/设定时器0为模式1,16位模式TH0=0xB1;TL0=0xDF;/
11、设定时值为20000us(20ms)TR0 = 1;/开始定时while(1);/定时器0中断外理中键扫描和显示void KeyAndDis_Time0(void) interrupt 1 using 2 TH0=0xB1;TL0=0xDF;/设定时值为20000us(20ms)LEDPort = 0xFF; if (!Key_UP) KeyV = 1; if (!Key_DOWN) KeyV = 2; if (!Key_SET) KeyV = 3;/KeySETDowning = 0; /清除 if (KeyV != 0) /有键按下 Delay_10ms(); /延时防抖 按下10ms再测
12、 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 = 0; /标识位标识退出设定InitDS1820(); /初始化 ROMDS1820(); /跳过ROM TMWDS1820()
13、; /写温度上限指令WriteDS1820(); /写温度上限到DS18B20ROMWriteDS1820(); /写温度上限到DS18B20ROMWriteDS1820(); /写温度上限到DS18B20ROMInitDS1820(); /初始化 ROMDS1820(); /跳过ROM TMREDS1820(); /温度上限值COPY回E2PRAM else SetTF = 1; if (!KeySETDown) /没有第一次按下SET时,KeySETDown标识置1 KeySETDown = 1; else KSDNum = KSDNum + 1; /前一秒内有按过SET则开始计数 if
14、(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 (IntNum 55) /中断发生了55次时(大
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 温度传感器 报告 19
限制150内