1、摘要 IABSTRACT II目 录 III引言 1第一章 1绪论 11.1 课题背景 11.2 非接触测温系统概述 11.3 课题研究的目的及意义 2第2章系统总体概述与构架 22.1 系统总功能概述 22.2 系统硬件总体构架 32.3 系统软件总体构架 3第3章 系统硬件选择与电路设计 43.1 芯片介绍及相关模块及相关电路模块设计 43.1.1 80C51系列单片机简介 43.1.2 MLX90614红外温度传感器测温模块介绍 53.1.3 LCD1602液晶模块介绍 73.1.4蜂鸣器概述 73.2 单片机系统及外围电路的设计 83.1.1 单片机最小系统原理图 83.2.1 传感器
2、电路 93.2.3 温度显示电路 9第4章 软件部分 104.1 系统程序流程图 114.2 温度显示与报警程序 11附录 12引言一般来说,测温方式可以分为接触式和非接触式,接触式测温只能测量被测物体与测温传感器达到热平衡后的温度,所以响应时间长,且极易受环境温度的影响;而红外测温是根据被测物体的红外辐射能量来确定物体的温度,具有影响动被测物体温度分布场,温度分辨率高、响应速度快、测温围广、不受温度上限的限制、稳定性好等特点,近年来在家庭自动化、汽车电子、航空和军事上得到越来越广泛的应用。本文的非接触式测温系统是单片机系统的一种典型应用,要求在不接触物体的情况下对物体的温度进行直接的测量和报
3、警,从而快速直观的了解到物体的温度。本次设计采用80C51单片机为控制核心,并结合传感器模块、显示模块,最后单片机通过判断数字化的传感器温度信号直接控制蜂鸣器声音报警系统。整个系统结构紧密,传输性能高。第1章 绪论1.1 课题背景随着现代科学技术的发展,传统的接触式测温方式以不能满足现代一些领域的测温需求,对非接触、远距离测温技术的需求越来越大。本红外测温系统设计的出发点也正是基于此。1.2 非接触式测温系统概述非接触式红外测温也叫辐射测温,一般使用热电型或光电型探测器作为检测元件。此温度测量系统比较简单,可以实现大面积的测温,也可以是被测物体上某一点的温度测量;可以是便携式,也可以是固定式,
4、并且使用方便;它的制造工艺简单,成本较低,测温是不接触被测物体。具有响应时间短、不干扰被测温场、使用寿命长、操作方便等一系列优点,但利用红外辐射测量温度,也必然受到物体发射率、测温距离、烟尘和水蒸气等外界因素的影响,其测量误差较大。在这种温度测量技术中红外传感器的选择是非常重要的,而且不仅在点温度测量中要使用红外温度传感器,大面积温度测量也可以使用红外温度传感器。本设计正是采用红外温度传感器这种温度测量技术,它具有温度分别率高、响应速度快、不扰动被测目标温度分布场、测量精度高和稳定性好等优点;另外红外温度传感器的种类比较多。发展非常快,技术比较成熟,这也是本设计采用红外温度传感器设计非接触温度
5、测量系统的主要原因之一。1.3 课题研究的目的及意义设计出更加快速、安全且成本低的非接触式测温系统。第2章系统总体概述与构架2.1系统总功能概述非接触式测温系统大体上是由温度传感器、液晶显示和报警器组成,温度传感器的工作原理是传感器输出的电压模拟信号随着被测物体温度与传感器自身温度变化而变化,再传输到单片机显示温度并判断是否报警,后传输到报警器做出响应。系统整体功能如图 2-1所示:图3-2 测温系统功能2.2 系统硬件总体构架测温系统的主要模块:传感器测温模块、单片机控制模块、声音报警模块、温度显示模块、电源模块(图中未显示),如图2-2图2-2 硬件构架图2.3 系统软件总体构架程序初始化
6、结束后,整个非接触式测温系统进入监控状态,温度传感器检测温度并输出电压信号,80C51单片机将经过传感器放大和A/D转换的温度信号成的十进度气体温度与限定值相比较,显示并判断是否报警。如有异常报警则需要手动复位初始化整个系统。系统程序流程图如图2-3图2-3 软件构架图第3章 系统硬件选择与电路设计硬件电路是电路系统的重要组成部分,硬件电路设计是否合理直接影响电路系统的性能。3.1 芯片介绍及相关模块及相关电路模块设计3.1.1 80C51系列单片机简介虽然目前单片机的品种很多,但其中最具代表性的当属Intel公司的MCS-51单片机系列。MCS-51以其典型的结构、完善的总线、SFR的集中管
7、理模式、位操作系统和面向控制功能的丰富的指令系统,为单片机的发展奠定了良好的基础。MCS-51系列的典型芯片是80C51(CHMOS型的8051)。1)80C51单片机特点:a)体积小、重量轻、价格低、耗电少、电源单一。b)抗干扰能力强,可靠性高。c)面向控制,控制功能强,运行速度快。2)80C51单片机引脚及其功能介绍:单片机的40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。a)电源:VCC - 芯片电源,接+5V;VSS - 接地端;b)时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。c)控制线:控制线共有4根:d)ALE/PROG:地址锁存允许/片EPROM编程
8、脉冲 e)ALE功能:用来锁存P0口送出的低8位地址 f)PROG功能:片有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。g)PSEN:外ROM读选通信号。h)RST/VPD:复位/备用电源。i)RST(Reset)功能:复位信号输入端。j)VPD功能:在Vcc掉电情况下,接备用电源。k)EA/Vpp:外ROM选择/片EPROM编程电源。l)EA功能:外ROM选择端。m)Vpp功能:片有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。n)I/O线:80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。 P3口还具有第二功能,用于特殊信号输入输出
9、和控制信号(属控制总线)。3)8051引脚图图3-1 80C51单片机引脚图3.1.2 MLX90614测温传感器介绍MLX90614系列测温芯片通过通远程物体的红外线放射加热,热量由芯片热电偶测得。由红外温度传感器、低噪放大器、A/D转换器、DSP单元、脉冲调制电路及逻辑控制电路构成,热电堆输出的温度信号经过部高性能、低噪声的运算放大器放大后,送给模数转换器(ADC),ADC输出的17位数字经过可编程FIR和IIR低通滤波器(即图中的DSP)处理后输出,该输出作为测量结果保存在MXL90614部RAM存储单元中,可以通过SMBus读取;同时测量结果送到后级数子式脉冲宽度调制电路,将测量结果以
10、PWM的方式输出。部结构图如下。图3-1.1 MLX90614D传感器部结构MXL90614采用4脚罐形封装(TO239),顶端引脚分布视图如图所示,具体引脚功能如下:图3-1.2 MLX90614传感器引脚图VDD:外部电源输入;VSS:地,和外壳相恋;SCL/Vz:当MXL90614为SMBUS模式时SCL为串行输入,为PWM模式时Vz为由外部电路置高电平;SDA/PWM:当MXL90614为SMBUS模式时串行数据输出接口,为PWM模式时做为PWM波输出接口。测温原理:输出时被测物体温度(TO)与传感器自身温度(Ta)共同作用的结果,理想情况下热电元件的输出电压为:其中温度单位均为Kel
11、vin,A为元件的灵敏度常数。3.1.3 LCD1602液晶模块介绍LCD1602是一种工业字符型液晶,能够同时显示16X02即32个字符。LCD1602引脚说明:1) 第1脚:VSS为地电源。2) 第2脚:VDD接5V正电源。3) 第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。4) 第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。5) 第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为
12、低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。6) 第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。7) 第714脚:D0D7为8位双向数据线。8) 第15脚:背光源正极。9) 第16脚:背光源负极.如图 图3-1.3 LCD1602引脚图3.1.4蜂鸣器概述蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“ZZG”、“LB”、“
13、JD”等)表示。蜂鸣器原理图如图图3-1.4 蜂鸣器原理图蜂鸣器驱动电路一般都包含以下几个部分:一个三极管、一个蜂鸣器、一个续流二极管和一个电源滤波电容。1) 蜂鸣器发声元件,在其两端施加直流电压(有源蜂鸣器)或者方波(无源蜂鸣器)就可以发声,其主要参数是外形尺寸、发声方向、工作电压、工作频率、工作电流、驱动方式(直流/方波)等。这些都可以根据需要来选择。2) 续流二极管蜂鸣器本质上是一个感性元件,其电流不能瞬变,因此必须有一个续流二极管提供续流。否则,在蜂鸣器两端会产生几十伏的尖峰电压,可能损坏驱动三极管,并干扰整个电路系统的其它部分。3) 滤波电容滤波电容C1的作用是滤波,滤除蜂鸣器电流对
14、其它部分的影响,也可改善电源的交流阻抗,如果可能,最好是再并联一个220uF的电解电容。4) 三极管三极管Q1起开关作用,其基极的高电平使三极管饱和导通,使蜂鸣器发声;而基极低电平则使三极管关闭,蜂鸣器停止发声。3.2 单片机系统及外围电路的设计3.2.1 单片机最小系统原理图本文所使用的80C51单片机最小系统由晶振电路、复位电路、电源以及串口通信组成。原理图如图图3-2 51单片机最小系统原理图3.2.2 数据采集与处理电路本电路包括红外测温传感器MLX90614模块可以将传感器实时监测的温度模拟信号经过放大以及模数转换转换成80C51单片机可识别的数字化的十六进制温度信号。原理图如图。图
15、3-2.2 传感器模块原理图3.2.3 声音报警电路本电路采用蜂鸣器来报警,当温度达到设定的警戒值或限定值蜂鸣器会发声来报警,以期达到跟好的提示效果。图3-2.3 报警模块原理图3.2.4 温度显示电路本电路采用LCD1602液晶显示被测物体的温度。如图为液晶显示模块原理图。图3-2.4 温度显示模块原理图第4章 软件部分3.1 系统程序流程图非接触式测温系统控制器采用主控芯片为80C51,是测温系统智能化的统一体现。测温系统的软件采用了模块化程序设计方法,系统通过子程序调用,实现各个模块的具体功能。不仅使程序结构清晰,又易于以后进一步扩展它功能。本系统主要包括主程序、温度采集子程序、温度判断
16、、温度显示与报警子程序等。系统流程图如图。图3-1 系统流程图3.2 温度显示与报警程序见附录二附录一 电路原理图附录二 系统程序#includeintrins.h#define uint unsigned int #define uchar unsigned char #define Nack_number 10 /*端口定义* /uchar flag; /LCD 控制线接口 sbit RS=P01; /RS 端 sbit RW=P02; /读写端 sbit LCDE=P35; /使能端 /mlx90614 端口定义 sbit BUZZ=P00; /定义蜂鸣器端口 /定义LCD控制端口 sb
17、it EN =P03;/*数据定义*/ void CALTEMP(uint TEMP);void ReadKey(void);void initInt();void delay1(uint z);void show();uchar key_num;uchar mah5;/*全局变量定义*/bit b20ms,b100ms; /定时标志位 uchar c20ms,c100ms; /定时毫秒数 /* LCD1602 * /向LCD 写入命令或数据* /#define LCD_COMMAND 0 /命令 #define LCD_DATA 1 / 数据 #define LCD_CLEAR_SCREEN
18、 0x01 / 清屏 #define LCD_HOMING 0x02 / 光标返回原点 #define LCD_SHOW 0x04 /显示开 #define LCD_HIDE 0x00 /显示关 #define LCD_CURSOR 0x02 /显示光标 #define LCD_NO_CURSOR 0x00 /无光标 #define LCD_FLASH 0x01 /光标闪动 #define LCD_NO_FLASH 0x00 /光标不闪动 /*设置输入模式* /#define LCD_AC_UP 0x02 /光标右移 AC+ #define LCD_AC_DOWN 0x00 /默认光标左移 A
19、C- #define LCD_MOVE 0x01 /画面可平移 #define LCD_NO_MOVE 0x00 /默认 画面不移动 /* mlx90614 */command mode 命令模式 #define RamAccess 0x00 /对RAM 操作 #define EepomAccess 0x20 /对EEPRAM 操作 #define Mode 0x60 /进入命令模式 #define ExitMode 0x61 /退出命令模式 #define ReadFlag 0xf0 /读标志 #define EnterSleep 0xff /进入睡眠模式 /ram address read
20、 only RAM 地址(只读) #define AbmientTempAddr 0x03 /周围温度 #define IR1Addr 0x04 #define IR2Addr 0x05 #define LineAbmientTempAddr 0x06 /环境温度 /*0x0000 0x4074 16500 0.01/单元 -40 125*/ #define LineObj1TempAddr 0x07 / 目标温度,红外温度 /*0x27ad-0x7fff 0x3559 22610 0.02/单元 -70.01-382.19 0.01 452.2*/ #define LineObj2TempA
21、ddr 0x08 /eepom address EEPROM 地址 #define TObjMaxAddr 0x00 /测量围上限设定 #define TObjMinAddr 0x01 /测量围下限设定 #define PWMCtrlAddr 0x02 /PWM 设定 #define TaRangeAddr 0x03 /环境温度设定 #define KeAddr 0x04 /频率修正系数 #define ConfigAddr 0x05 /配置寄存器 #define SMbusAddr 0x0e /器件地址设定 #define Reserverd1Addr 0x0f /保留 #define Re
22、serverd2Addr 0x19 /保留 #define ID1Addr 0x1c /ID 地址1 #define ID2Addr 0x1d /ID 地址2 #define ID3Addr 0x1e /ID 地址3 #define ID4Addr 0x1f /ID 地址4 /*函数声明* /void start(); /MLX90614 发起始位子程序 void stop(); /MLX90614 发结束位子程序 uchar ReadByte(void); /MLX90614 接收字节子程序 void send_bit(void); /MLX90614 发送位子程序 void SendByt
23、e(uchar number);void read_bit(void); /MLX90614 接收位子程序 void delay(uint N); /延时程序 uint readtemp(void); /读温度数据 void init1602(void); /LCD 初始化子程序 void busy(void); /LCD 判断忙子程序 void cmd_wrt(uchar cmd); /LCD 写命令子程序 void dat_wrt(uchar dat); /LCD 写数据子程序 void display(uint Tem); /显示子程序 void Print(uchar *str); /
24、字符串显示程序 /*主函数* /void main() uint Tem; /温度变量 initInt(); SCK=1; SDA=1; delay(4); SCK=0; delay(1000); init1602(); /初始化LCD while(1) while(b100ms) /每100ms 扫描一次键盘 b100ms=0; ReadKey(); if(key_num=1) /按下1 键时,进行数码管显示 Tem=readtemp(); CALTEMP(Tem); show(); if(key_num!=1) /液晶屏显示 /读取温度 cmd_wrt(0x01); /清屏 Print( Temperature: ); /显示字符串 Temperature:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1