基于51单片机红外非接触测温仪阈值报警设计

本文详细介绍了采用51单片机STC89C52设计的红外测温仪系统,包括硬件选择如MLX90614ESF非接触温度传感器和1602液晶显示模块,以及控制方案的比较与选择,如单片机型号、报警方式和显示方式。系统能实时显示温度并具备报警功能。
摘要由CSDN通过智能技术生成

1.1课题背景及其意义 

红外测温仪采用非接触式手段,突破了传统测温模式,具有不扰动被测物体温度分布场,温度分辨率高、响应速度快、测温范围广,稳定性好、可同时测量环境温度和目标温度的特点。本设计拟采用51单片机为控制核心,负责控制启动温度测量,接收测量数据 ,计算温度值,并根据取得键值控制播放显示过程,主要由光学系统、光电探测器、信号放大器及51单片机信号处理、显示输出等部分组成实现。该课题能够考察我对单片机及其外围电路与软件编程、计算机辅助设计软件等知识的学习和掌握水平,使我在硬件设计及实现、辅助设计软件等方面的应用能力得到全面的训练和提高。

1.2单片机应用的发展及现状 

在20世界50年代中期,全世界第一台用数字运算方式的计算机,自从美国著名大学实验室研究出来,从此以后电子计算机经过飞速的成长,主要有以下四个时期:第一代是电子管控制时期,第二代是晶体管控制时期,第三代是采用集成电路控制时期,第四代是采用超大规模集成电路控制时期。目前使用的计算机都是采用第四代超大规模集成电路控制方式的,由于是有很好的性能,主要表现在性价比高,体积小,性能稳定等特点;例外计算机发展趋向功能强大化,体积越小化,系统稳定化和功能人性化。体积越小化是目前计算机主要的研究方向,其中主要研究的是把控制器的组成部分融合在一块集成板上,因此就诞生了广泛大规模的集成控制器的微小电子计算机——简称单板小型数字控制器,英文缩写为MCU,因为MCU的主要运用场所是高性能智能化电子产品上,主要是大多数产品都是要内含嵌入的设备的系统。现在全世界有能力制造出数字控制器MCU的公司商主要是很多大型的国际公司,国内也有一些上市公司进行生产和研究数字控制器MCU,每个公司生产出来的单片机都有各自的特色,主要运用场合也不尽相同 。

1.3本文的主要研究内容及论文结构安排

  1. .主要介绍本设计的课题背景及国内外研究状况;
  2. .主要说明系统方案的选择;

第3章.主要介绍硬件电路的组成及使用方法;

第4章.主要介绍软件设计;

第5章.主要介绍硬件调试。

第二章 方案的设计与论证

2.1控制方案的确定

本设计由STC89C52单片机电路+1602液晶显示电路+MLX90614ESF红外非接触温度检测电路+按键电路+蜂鸣器报警电路。

2.2控制方式的选择

2.2.1 单片机芯片的选择

方案一

采用可编程逻辑器件CPLD作为控制器,CPLD可以实现各种复杂的功能、规模大、密度高、体积小、稳定性高、I/O资源丰富、易于进行功能扩展。采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模控制系统的控制核心。但本系统不需要复杂的逻辑功能,对数据的处理速度的要求也不是非常高。且从使用及经济的角度考虑,最终放弃了此方案。

方案二

采用ST公司的STC89C52单片机作为主控制器,STC89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程 Flash 存储器。该单片机功耗低、接口丰富,成本低廉,完全能满足本设计要求。

方案三

采用单片机芯片控制MSP430单片机是美国德州仪器(TI)推出的一种16位超低功 耗的混合信号处理器(Mixed Signal Processor),主要是针对实际应用需求,把许多模拟电路、数字电路和微处理器集成在一个芯片上,以提供“单片”混合信号处理的解决方案。MSP430F149是一个16位的、具有精简指令集的、超低功耗的混合型单片机,具有可靠性高、功耗低、扩展灵活、体积小、价格低和使用方便等优点,广泛应用于仪器仪表、专用设备智能化管理及过程控制等领域,有效地提高了控制质量与经济效益,已成为众多单片机系列中一颗耀眼的新星。然而其成本太高,故舍弃。

故选择方案二。

2.2.2声音报警电路方案的选择

方案一

采用语音集成芯片ISD4004报警,由于ISD4004需要扩充喇叭驱动电路且其本身控制比较繁琐、电路比较复杂,稳定性差。基于以上考虑,所以放弃了此方案。

方案二

通过蜂鸣器实现报警电路,具有电路简单,性能可靠、稳定等优点,最重要的是低成本,故选择方案二。

方案三

采用音乐片作为本系统门铃的音乐模块,音乐芯片是一种比较简单的语音电路,它通过内部的振荡电路,再外接小量分立元件,就能产生各种音乐信号,音乐芯片是语音集成电路的一个重要分支,目前广泛用于音乐卡、电子玩具、电子钟、电子门铃、家用电器等场合。其具有电路简单,成本低廉等优点。

故选择方案二。

2.2.3显示方案的选择

方案一

采用LED数码管动态扫描,LED数码管价格适中,对于显示数字十分合适,采用动态扫描法与单片机连接时,虽然占用的单片机口线少,电路简单,性价比较高。

然而本设计显示数据较多,数码管明显不符合要求,故舍弃。

方案二

采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,若采用在显示数字显得太浪费,且价格也相对较高,所以在此也不用此种作为显示。 

方案三

LCD液晶显示,由单片机驱动,它主要用来显示大量数据、文字、图形,能够显示的位数多,显示得清晰多样、美观,同时液晶显示器的编写程序简单,价格便宜,故采用此种方案。

采用1602液晶显示屏,该液晶显示屏的显示功能强大,内置192种字符,可显示大量符号、数字,清晰可见,而且功率消耗小寿命长抗干扰能力强。

故选择方案一。

2.2.4温度采集模块的选择

方案一

采用PT100铂电阻温度传感器,此传感器属于电阻式传感器,它的电阻随着温度的变化而变化。这种温度传感器有零度电阻值和电阻变化率,它性能比较稳定,测量范围达到-200℃~850℃,但是使用它要复杂的转换关系,要清楚的知道电阻和温度之间的关系。其采集电路主要采用的是电阻分压网络,在电阻分压网络的设计上,由于定值电阻随着测量环境温度变化时,其阻值会有所变化,这就会给系统带来误差,使系统采集的温度值产生偏差,并且其电压值要进行AD转换,增加了系统的复杂程度。PT100自身体积较大,温度变化时,反应速度会优先减慢,如果环境变化温度较快时,将会有部分的中间温度会被直接过滤掉,使实时温度信息不准,实时性较差。

方案二

采用AD590,AD590是现在温度测量较为常见的温度传感器,测量精度高、温度范围宽,但是成本很高,一般的廉价应用上不会使用。AD590是电流型温度传感器,在检测温度变化时,其两端的输出电流会有相应的改变。应用方法,一般是采用在输出端接一个定值电阻(当然这也要温漂较低的电阻),在测量电阻两端的电压(电压值=AD590输出电流×定值电阻阻值),这与PT100的测量方式相同,使用AD转换器,将模拟电压值转换为数字量。当然AD590的体积也稍大,也会有高速温度变化时产生出滤波效果,实时性降低。

方案三

采用DS18B20, DS18B20是数字式的温度传感器,测量的温度范围较广,精度高,成本低,稳定性较好。DS18B20采用单总线通信,减少了I/O的占用数量,减少了外围电路,通信简单。DS18B20的集成度高,体积较小。因为其体积小,可以测量到的温度值变化快,实时性就好。

方案三

选择MLX90614ESF非接触式红外测温模块对温度进行测量,真正实现了非接触式测温。本传感器体积小,成本低,易集成。可以无线测温。(医用)高精度校准,在所需的温度范围精度为0.1°C,分辨率为0.01°C。有单个 和双重区域版本。SMBus兼容数字接口用于快速读取温度并可建立传感器网络。

故选择方案四。

3.1系统的功能分析及体系结构设计

3.1.1系统功能分析

本设计由STC89C52单片机电路+1602液晶显示电路+MLX90614ESF红外非接触温度检测电路+按键电路+蜂鸣器报警电路。

1、液晶实时显示MLX90614ESF检测的环境温度值和被测物体温度值,显示中E环境温度,O物体温度。

2、可以通过按键设置温度的阈值,如果MLX90614检测到的温度高于设置的阈值,则蜂鸣器报警,否则,蜂鸣器不报警。

3.1.2系统总体结构

   本系统具体框图如下图所示:

系统原理框图

3.2模块电路的设计

3.2.1 STC89C52单片机核心系统电路设计

 STC89C52RC是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K字节系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但是做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。

一、STC89C52主要特性如下:

(1)8K字节程序存储空间;

(2)512字节数据存储空间;

(3)内带4K字节EEPROM存储空间;

(4)可直接使用串口下载。

二、STC89C52主要参数如下:

(1)增强型8051单片机,6时钟/机器周期和12 时钟/机器周期可以任意选择,指令代码完全兼容传统8051;

(2)工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V 单片机);

(3)工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作 频率可达48MHz;

(4)用户应用程序空间为8K字节;

(5)片上集成512 字节RAM;

(6)通用I/O 口(32个),复位后为:P1/P2/P3 是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O口用时,需加上拉电阻;

(7)ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片;

(8)具有EEPROM功能;

(9)共3个16 位定时器/计数器。即定时器T0、T1、T2;

(10)外部中断4路,下降沿中断或低电平触发电路,Power Down 模式可 由外部中断低电平触发中断方式唤醒;

(11)通用异步串行口(UART),还可用定时器软件实现多个UART;

(12)工作温度范围:-40~+85℃(工业级)/0~75℃(商业级);

(13)PDIP封装。

三、STC89C52单片机相关引脚说明:

(1)VCC:供电电压。

(2)GND:接地。

(3)P3.0 RXD(串行输入口)

(4)P3.1 TXD(串行输出口)

(5)P3.2 /INT0(外部中断0)

(6)P3.3 /INT1(外部中断1)

(7)P3.4 T0(记时器0外部输入)

(8)P3.5 T1(记时器1外部输入)

(9)P3.6 /WR(外部数据存储器写选通)

(10)P3.7 /RD(外部数据存储器读选通)

(11)RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

(12)ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

(13)/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

(14)/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

(15)XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

(16)XTAL2:来自反向振荡器的输出。

单片机引脚图如下图所示:

STC89C52单片机引脚图

四、STC89C52单片机最小系统说明:

STC89C52单片机最小系统电路由复位电路、时钟电路和电源电路。拥有这三部分电路后,单片机即可正常工作。单片机最小系统原理图如下图所示。

单片机最小系统原理图

  1. VCC和GND为单片机的电源引脚,为单片机提供电源:
  2. 复位电路由按键S1、电解电容EC1和电阻R1组成。具有手动按键复位和上电自动复位功能。系统上电复位按键接口采集到两个高端信号后进行手动复位,就是非自动的按键复位;系统检测到的电压由低电平上升到高电平的一段时间后,在这段时间过后,系统通过电阻与接地之间形成一条通路,然后自动把高电平进行拉低,使得单片机从高电位变为低电位,从而就是给单片机自动进行复位即上电复位。
  3. 时钟电路由晶振Y1、瓷片电容C1和C2组成。有控制芯片的数字电路正常工作是少不了TIME(时钟)电路的,我们需要时钟电路自动发出系统时间,让控制芯片正常工作。给控制芯片正常工作的时钟信号,一般把这种工作方式称为“拍”,以至于让整个控制系统能正常工作,由于要保证控制系统能正常工作,提高他的工作能力,我们经常用11.0592MHZ晶振和30PF的电容进行组合,电容为了帮助晶振起振的,满足了数字控制器上电以后可以正常工作。
  4. JD1为单片机的下载接口。

3.2.2 5V电源电路设计

本系统选择5V直流电源作为系统总电源,为整个系统供电,电路简单、稳定。DC为电源的DC插座,可以直接接USB电源线,一端插在DC插座上,另外一端可以插在5V电源上,如电脑USB、充电宝、手机充电器等等。LED为红色LED灯,作为系统是否有点的指示灯,电阻为1K电阻,起到限流作用,保护LED灯,以防电流过大烧坏LED灯。SW为自锁开关,开关按下后,红灯亮,此时系统电源5V直流输出。开关再次按下后,红灯灭,此时系统电源无5V电源输出。

3.2.3 LCD1602液晶显示模块电路设计

LCD显示器分为字段显示和字符显示两种。其中字段显示与LED显示相似,只要送对应的信号到相应的管脚就能显示。字符显示是根据需要显示基本字符。本设计采用的是字符型显示。系统中采用LCD1602作为显示器件输出信息。与传统的LED数码管显示器件相比,液晶显示模块具有体积小、功耗低、显示内容丰富等优点,而且不需要外加驱动电路,现在液晶显示模块已经是单片机应用设计中最常用的显示器件了。LCD1602可以显示2行16个汉字。

一、LCD1602主要技术参数如下:

(1)显示容量为16×2个字符;

(2)芯片工作电压为4.5~5.5V;

(3)工作电流为2.0mA(5.0V);

(4)模块最佳工作电压为5.0V;

(5)字符尺寸为2.95×4.35(W×H)mm。

二、LCD1602采用标准的14脚,其接口的引脚说明如下:

(1)第1脚:VSS为地电源。

(2)第2脚:VDD接5V正电源。

(3)第3脚:V0为液晶显示器对比度调整端。

(4)第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

(5)第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。

(6)第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

(7)第7~14脚:D0~D7为8位双向数据线。

(8)第15~16脚:空脚

三、控制指令说明

 LCD1602液晶模块内部的控制器共有11条控制指令,说明下表所示:

序号

指令

RS

R/W

D7

D6

D5

D4

D3

D2

D1

D0

1

清显示

0

0

0

0

0

0

0

0

0

1

2

光标返回

0

0

0

0

0

0

0

0

1

*

3

置输入模式

0

0

0

0

0

0

0

1

I/D

S

4

显示开/关控制

0

0

0

0

0

0

1

D

C

B

5

光标或字符移位

0

0

0

0

0

1

S/C

R/L

*

*

6

置功能

0

0

0

0

1

DL

N

F

*

*

7

置字符发生存贮器地址

0

0

0

1

字符发生存贮器地址

8

置数据存贮器地址

0

0

1

显示数据存贮器地址

9

读忙标志或地址

0

1

BF

计数器地址

10

写数到CGRA或DDRAM)

1

0

要写的数据内容

11

从CGRAM或DDRAM读数

1

1

读出的数据内容

表3.1 控制命令表

四、1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)

(1)指令1:清显示,指令码01H,光标复位到地址00H位置

(2)指令2:光标复位,光标返回到地址00H

(3)指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。

(4)指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁

(5)指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标

(6)指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符

(7)指令7:字符发生器RAM地址设置

(8)指令8:DDRAM地址设置

(9)指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。

(10)指令10:写数据

(11)指令11:读数据

3.2.4 蜂鸣器报警电路(低电平有效)设计

有源蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。本系统所采用的报警模块为5V有源蜂鸣器模块,电路中采用三极管9012来驱动,只要单片机控制引脚为低电平,蜂鸣器就会鸣叫报警,反之则不鸣叫,可以通过控制单片机引脚方波输出形式控制蜂鸣器的鸣叫方式。电阻为限流电阻,保护作用。

编程语言选择

由于整个程序比较复杂,且计算量较大,用到了较多的浮点数计算,所以程序的编写采用了C语言。

对于大多数51系列的单片机,使用C语言这样的高级语言与使用汇编语言相比具有如下优点:

  1. 不需要了解处理器的指令集,也不必了解存储器结构。
  2. 寄存器分配和寻址方式由编译器进行管理,编程时不需要考虑存储器的地址和数据类型等细节。
  3. 指定操作的变量选择组合提高了程序的可读性。
  4. 可使用与人的思维更相近的关键字和操作函数。
  5. 与使用汇编语言相比,程序的开发和调试时间大大缩短。
  6. C语言的库文件提供了许多标准的例程。
  7. 通过C语言可实现模块化编程技术,从而可将已编制好的程序加到 新程序中。
  8. C语言可移植性好且非常普及,C语言编译器几乎适用于所有的目标系统,己完成的项目可以

  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白茶丫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值