基于单片机温度检测与红外遥控控制系统的设计讲解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于单片机温度监测与红外线遥控控制系统的设计
摘要:本文介绍了以STC12C5A60S2单片机为核心CPU的温度监测与红外线遥控控制系统。
对系统功能阐述后,画出系统总体的原理图设计,以此为基准完成系统各模块部分的硬件设计,并且对系统的软件设计附有详细的流程图说明和源程序注释。
通过对系统的相关调试,最终实现了系统所要求的功能。
凭借该系统实现的功能相对稳定性和数据运行结果的精确性,使其具备了很好的开发潜力和发展前景。
关键词:STC12C5A60S2单片机;温度检测与控制;红外遥控
Design of digital thermometer based on single chip
microcomputer
Abstract: Introduced to STC12C5A60S2 microcontroller CPU temperature monitoring with infrared remote control systems. After the system functions described, draw schematics overall system design, hardware design as a benchmark to complete each module part of the system, and the system software design with detailed instructions and source code flowchart comment. Through the system related to debugging, and ultimately achieve the required functionality of the system. With this system functions to achieve the results relative stability and accuracy of data, it has a very good development potential and development prospects.
Key words: STC12C5A60S2 microcontroller; Temperature measurement and control; Infrared remote control
1 引言
温度,我们再熟悉不过的一个名词,越来越受到人们的青睐,而在其相关领域的
研究也日益影响着现代生活的节奏和改变着现代生活的质量。
特别是近些年来,不论是人们的生活环境还是各种工作环境都对温度有了进一步的要求,对温度控制的精度要求也越来越精确,所有这些都为以单片机为温度控制系统中心枢纽环节产生奠定了重要基础。
单片机,作为现在温度控系统制的核心部件,开始被电子爱好者和电子科技公司广泛应用和推广。
由于单片机作为高新技术方面研究的一个特殊电子产品,它的各种优良的特性,比如,小巧灵活的设计,操作起来简单,可靠性相对稳定等等,都是其得到了电子相关领域的充分开发重要原因,并以此为载体开始进行各方面研究领域的拓展。
针对本文的设计研究和实现过程,就是将单片机作为为其中心控制系统的CPU,进而展开了一系列的操作,如温度检测和控制。
以STC12C5A60S2单片机为控制系统,通过遥控设定温度限度,将实际温度利用温度传感器采集得到,经过A/D转换后,送到单片机进行行下一步的读写操作,比方说,液晶显示、报警处理等等。
由于这个设计操作以及编程相对来说难度不大,但其活性方面比较好以及实现的功能相对可靠,从而使这方面的的研究在温度控制领域得到广泛的应用。
2 系统方案要求及总体设计
温度控制系统的不断向前发展,对的温度控制方面的要求也变的更加苛刻,其中在智能化研究和小型化的制造方面是最集中也最显著的体现。
STC12C5A60S2作为新一代单片机,它普通51单片机的基础上进行了加强,使其在运算速度、功率损耗和抗干扰方面都得到了极大改善。
首先,它在运算速度方面的提高,极大地缩短了运行时间,工作效率也就相对得到提升。
其次,功率损耗的降低,不仅节约了资源,也延长了元器件的使用寿命。
最后,超强干扰,保证了实验结果的准确性,避免了不必要的误差和错误。
在温度采集方面,温度采集信息的准确度直接影响着研究结果的可靠性。
本设计利用DS18B20温度传感器进行温度采集,可直接输出温度的数字信号,便于单片机进行处理,缩短了采集信息进行转化所需要的时间。
DS18B20传感器具有灵活的控制方式、操作起来比较简单和测温范围比较广,最重要的是其在监测数据方面的精确度,是它在各个领域得到普遍使用的一个重要原因。
2.1设计系统的功能要求
作为温度控制系统的控制中枢,单片机控制着整个系统的各个模块功能的实现与否,所以单片机的读/写操作占据重要地位。
首先通过编码好的红外遥控对温度进行设定,是温度保持在一定的范围,然后将
采集到模拟信号经DS18B20传感器内部的模/数转换,转换后的数字信号送到单片机处理,并与先前的设定的温度进行比较,最后根据比较结果,由单片机发出下一步的命令(报警、电机工作等等)。
对于采集到的温度,若小于设定最低温度色指示灯亮,蜂鸣器报警;若大于设定温度上限启动电机(相当于风扇)进行降温,直到恢复到温度上限以下停止工作,指示灯亮;蜂鸣器报警若温度正常,指示灯亮,不再进行其他操作。
在检测温度的过程中,随时可以设定温度的上限值。
2.2 设计系统的总体设计
对于本设计,大致可以分为硬件与软件两部分内容的研究。
对于硬件部分,主要包括几个重要模块设计。
一,单片机最小系统,了解单片机可以正常工作的最小模块,以此为基础进行下一步的各项研究。
二,温度检测,对采集的温度模拟信号在内部实现模/数转换,以便交予单片机处理。
三,红外遥控器,利用遥控器对温度进行限度设定,保证温度在正常的范围。
四,LCD显示,实时显示当前的温度和设定的温度限度。
五,直流电机,将直流电机看成是降温的载体,惊醒降温操作。
六,温度报警,超出温度限定后,蜂鸣器进行报警,在提醒工作人员的同时,启动相关操作。
软件方面的设计,主要是对各个模块的功能进行C语言编程,以及最后的模块程序的整合和调试等等。
根据软硬件方面的设计,大致的画出温度控系统的结构框图,如图1所示。
图1 温度监测与红外控制系统框图
3 硬件系统设计
3.1硬件总体原理图设计
由设计系统的功能要求,进行原理图的设计。
主要是利用Altium Designer软件画出温度检测与红外遥控控制的原理,如图2所示。
在此原理图中,以STC12C5A60S2作为温控统的主控芯片,采用DS18B20传感器、LCD1602、红外遥控、直流电机和蜂鸣器来构成系统的辅助功能模块,将各模块整合后完成最后的原理图设计。
在原理图的设计时,应特别注意以下三个:1.连线时,注意元件热点引脚连接好会出现加重加粗颜色的点,尽量不要直接让两个元件引脚直接相连。
2.要重新对所有的元件进行标识,这样操作起来方便,也便于管理。
3.对整个原理图各部件布局的处理,尽可能将各模块放在制定画好的区域,便于进行相关功能的查询。
图2 温度检测与红外控制系统原理图
3.2 单片机系统设计
3.2.1 STC12C5A60S2单片机简介
时钟周期为1T的STC12C5A600S2是由宏晶科技生产的新一代单片机,它具有处理速度相对较高(速度比普通的51单片机提高了7-12倍),功能损耗比较低和抗干扰性特别强的特点。
它的内部有专用复位电路,PWM调制,A/D转换等功能,对于电机有强干扰设置。
STC12C5A60S2单片机的主要几项使用信息如下:
1).工作电压比较宽限,在3.3V到5.5V之间都可以正常工作。
2).频率适用范围也比宽限,大约在0到36Hz之间。
3).随机存储器RAM可以集成1280B。
4).该芯片总共的通用端口数目是44个,根据按下RST键后可以设置不同的状态模式,分为四种。
5).关于时钟源,即可以使用外部精度比较高的晶体/时钟,也可以使用其内部有电阻和电容组合的振荡器,用户使用时钟源是可以根据自己设计的要求进行自由选
择,但要注意使用内部振荡器的相关电压和温度要求。
6).内部自带四个16位的定时器,其中两个定时/计数器与51系列的完全兼容,有定时器T0、定时器T1和独立的波特率发生器。
7).I/O端口P3.4可以作为T0的溢出输出时钟口,P3.5可以作为T1的溢出输出时钟口.
8).有两路PWM(及PCA可编程计数器阵列。
9).内部有8路且为10位精度的A/D转换。
关于STC12C5A60S2引脚图(图3)及功能如下:
.
图3单片机引脚图
RST:复位按键。
XTAL1:XTAL1用作内部时钟工作电路的输入与反向振荡放大器的输入。
XTAL2:XTAL2用作反向振荡器的输出。
P0口:P0口是一个三态双向口,可作为地址/数据分时复用端口,也可作为通用的I/O端口;当选择的控制信号为高电平时,对于P0口被用来作地址/数据的分时复用总线时,可以分成两种情况:一是地址或数据的输出在P0口进行完成输出,二是数据从P0口进行完成输入;一般情况下,当为低电平的控制信号时,P0 口可作为通用I/O 接口来使用;对于P0口的每一位端口,它的输出级的负载能力有限,只能具有具有8个LSTTL,且输出电流不大于800uA[3]。
P1口:P1口是准双向口,它只能作为通用I/O接口使用;P1的结构与P0口不同,他的输出只有一个场效应管V1与内部上拉电阻组成;对于P1口的输入输出原理特性,与P0口作为I/O接口使用时基本上是一样的,当其输出是,可以提供电流负载,它不必像P0口那样需要接上拉电阻;P1口的输出级具有4个LSTTL负载能力[3]。
P2口:当P2口作为准双向口时,它基本上算是有两种工作用途:所谓通用的I/O 接口使用或者作为高8位地址线来使用;当它与P1口进行比较时,它的特别之处是:在P2口输出的驱动电路上比P1口多了一个模拟转换开关MUX和反相器。
当控制信号为高电平,P2口作高八位地址总线使用,访问偏外存储器的高8位地址A8-A15由P2口输出;当控制信号为低电平,P2口作准双向通用I/O接口;P2口的输出级具有4个LSTTL负载能力[3]。
P3口:对于P3口来说,它具有8个管脚,而且这8个管脚都是带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流;对于P3口的空座状态而言,当它写入的是高电平,就会被被内部的上拉成为高电平,并可以用作输入口;而其作为输入口使用的时侯,由于外部的下拉使其成为低电平,P3口会输出电流(ILL),同时也是由于上拉电阻的缘故,一些特殊功能口也是由P3口来提供,其具体的功能作用如表1所示[3]。
ALE / PROG :地址锁存信号的输出端。
PSEN:这是一个选通信号引脚,被用来作为对外部程序存储器的选择。
当外部程序存储器获取地址的时候,在每一个机器周期内它会使使PSEN端口两次有效。
但是,在对于内部数据存储器进行访问时,PSEN信号将不会再出现这两次的有效信号。
3.2.2 单片机最小系统
单片机最小系统,或者称为最小应用系统,一般是指采用最少的元器件来组成的,同时可以正常工作的系统。
一般来说,最小系统一般应包括单片机、晶振电路和复位
电路。
因而当拥在实际的系统中时,可以将STC12C5A60S2首先想到,并用它作为最小应用系统的主控芯片时,复位电路和时钟电路完全可以使它正常工作。
根据最小应用系统的定义,可以初步设计出最小系统的原理图,如图4所示。
要特别注意,在设计单片机系统电路时,晶振电路时必不可少的环节。
因为,在单片机系统中,所有的工作都是在一个时钟下同步工作的,时钟的快慢决定了系统的工作效率,而系统时钟是有晶振电路来提供的,可以说晶振电路是单片机系统的核心。
在单片机系统电路中,复位电路是单片机系统正常运行且保持稳定性的最主要内部因素之一。
所以单片机在正常工作前,必须进行复位操作。
进行复位操作时,可以清楚的知道它开始时候的原始状态,对启动系统是非常的有用。
图4 单片机最小系统原理
关于设计单片机的复位电路的大致过程是这样的:通常采用一个一定宽度的外部复位脉冲添加给外部因引脚RST,进而实现复位操作。
对于上电复位电路来说,他充分的利用了一个充电效应,使RC电路来进行工作。
当给单片机上电的时候,通过对复位电路加一个相对短暂的高电平信号来使RST进行工作,并且对于这个高电平信号来说,他将会伴随着电容的变化而变化,比如随其充电而逐渐降低,对于高电平持续的时间的控制和控制RC电路的充放电时间来。
对于单片机工作的时钟形式,当对其加的是其内部时钟模式的时,对引脚XTAL1和引脚XTLA2利用晶体振荡器来连接,两个电容采用并接的方式使其同时接地即可。
外部时钟模式是指采用了一个外部的振荡器来使其产生时钟信号来工作。
注意当直接给单片机使用时,由于单片机是不同的,所以要用不同的外部时钟信号接入。
3.3 温度采集系统
3.3.1 温度传感器DS18B20简介
DS18B20是属于DALLAS公司名下的温度传感器芯片。
它是一个采用一条数据总线来实现信息交流的数字化温度传感器,并且具有3个引脚TO-92小体积封装形式。
由于DS18B20温度的测量范围大约在-55℃到+125℃之间,转换精度为9-12之间任一个的可编程A/D转换,测量温度的最小分辨率可以达到0.0625℃。
对于被测温度采用16位补码方式进行串行输出,它的工作电源有远端引入和寄生电源方式产生两种形式。
当用到多个DS18B20温度传感器时,可以通过并联到3根或2根线上,而且CPU 通常仅仅采用一根端口的数据线来实现与多个DS18B20的通信,这是其芯片所带来的独特好处,并且其占用微处理器的端口相对较少。
凭借DS18B20的这些特性,它越来越被广泛的用在了各种领域,例如民用领域、工业领域、军事领域等等,通过它来实现温度测量,对于测控系统、控制仪器和比较庞大的设备都比较常用。
3.3.2 温度传感器DS18B20主要特性
DS18B20主要的相关特性如下:
1.DS18B20的工作范围比较广泛,大约在3.0V到5.5V之间就可以正常工作,
对于其供电方式,一般采用的是寄生电容的供电方式,在此供电方式下,
用一根数据线与一个电容连接就可以实现。
2.DS18B20采用的是是类似与“半双工”的工作方式,用一根数据线即可完成
与单片机的数据通信。
3.DS18B20采集温度的范围广且精度比较高。
他可以对-55℃到+125范围内
的温度进行测量,而在-10℃+80℃的测量精度为上下浮动5℃,相对来说,
适用的范围比较广泛。
4.采用编程的方式可以实现9到12位的分辨率,与其相对应的的分辨温度
是0.5℃到0.0625℃,误差很小,所以可以利用编程实现他的高精度测量。
5.由于分辨率对温度转换时间的影响,当采用高位的分辨率时所用的时间比
较长。
但其所需要时间也是比较短的,例如,当采用分辨率12位的时候,
可以在750ms内完成模拟温度信号与数字温度信号的转换;若采用低位分
辨率,所需时间更少。
6.对于常见的电源正负极接反的情况,不会造成传感器的损坏,只是不能正
常工作,所以相对来说也比较安全耐用。
3.3.3 温度传感器DS18B20引脚与结构
对于DS18B20引脚封装图,如图5所示,可以采用的封装形式两种不同形式,其详细说明如下所述:
图5 DS18B20实物图和引脚
●VDD:VDD为其电源对外引脚。
若采用上述的计生供电方式,将VDD与
GND直接连接即可。
●GND:GND为其与电源的接地引脚。
●DQ:DQ为其与单片机等处理器进行信息交流的数据输入与输出引脚。
●NC:这个引脚没有使用。
对于DS18B20内部主要的组成元件,大致可以分为四个部分:采用光刻的64位ROM64,传感器,可以进行温度报警的温度报警触发器(具有非易失性)和自身配置的寄存器元件。
其内部结构图如图6所示。
图6 DS18B20结构图(内部)
3.3.4 DS18B20与单片机接口设计
DS18B20与单片机的连接,通常采用的供电模式是靠独立供电来进行工作,它们的连接原理图如图7所示。
在原理图中,DS18B20与单片机连接是通过一根总线相连接,其中DQ引脚接单片机的P3.0端口,VCC接正极,GND接负极,单片机通过P3.0端口读取所测量的温度。
图7 温度传感器与单片机连接原理图
3.4 LCD1602显示系统
3.4.1 LCD简介
通常我们经常提到的液晶显示器,就是说的LCD显示器。
对于它的工作原理是采用液晶显示,对信号进行处理后,可将光线的传输方向改变,从而实现信息的液晶显示。
总体来说,大致可分为三种类型的液晶显示器,各个类型的显示器可以根据场合需要用于不同工作环境。
体积相对较小、重量相对较轻、功耗又特别的低、可以显示的内容特别的丰富等等很多的实用特点,使LCD显示器在众多的系统设计中受到青睐,从而使其得到了在电子领域的广泛应用。
3.4.2 LCD结构介绍
针对本设计,采用的是字符型液晶显示器模块LCD1602。
LCD1602可以用来对字母、数字、符号等各种信息的专门显示,它属于点阵式液晶显示类型。
它显示的字符的模式是利用两行16个字5*8的点阵图形来完成。
LCD1602的内部结构主要分为三部分:一是LCD的控制器,二是LCD的驱动器,三是LCD的显示装备,其内部大致结构框图如图8所示。
图8 LCD1602的内部结构
对LCD1602内部的各个组成部分分析:首先它采用HD44780作为其控制器,然后采用HD4410作为其驱动器,最后采用的是将集控制器、驱动器于一体的HD44780,作为其字符显示控制驱动所特有的集成电路。
扩展显示字符位用HD44100来实现。
其中字符型液晶显示控制器采用的电路中最具代表的的为HD44780。
LCD1602是平常使用较为普遍的液晶显示模块之一,它的主要特点如下所述:
● 1602显示的字符块是利用若干个5*8的点阵模块来实现,一个点阵块为一个
字符位,而且字符与行距见得宽度为一个点的大小。
● LCD1602采用的主控芯片一般为HD44780,或者利用其他类型兼容芯片来
作为主控芯片。
● 他的内存中带有192种字符。
● 随机存储器RAM中自定义的字符有64个,可以根据需要将其定义为5*8或
者4*11的字符。
● 1602自带有标准的接口,与单片机连接起来特别方便。
● 它采用电源的供电方式为+5V供电。
3.4.3 LCD1602与单片机的接口设计
如图9是LCD1602与STC12C5A60S2单片机的接口原理图。
在原理图中LCD1602的数据线与单片机的P1.0~P1.7口相连,RS与单片机的P2.0项链,R/W与单片机的P2.1相连,E端与单片机的P2.2相连。
图9 单片机同LCD1602的连接原理图
3.5 红外线遥控系统
3.5.1 红外线遥控简介
目前,各种遥控通信手段层出不穷,而在众多的遥控手段中,一种最广泛使用的遥控通信手段就是红外线遥控。
相对于其他遥控手段,红外遥控具有体积不大、功能
损耗较低、成本不高同时功能强大的特点。
正是由于红外遥控通信的这种特点,在家用录像机和彩电之后,开始被更广泛应用在更多的家电设备和工业设备之中,例如:空调、录音机、音响等各种家庭电器中,都采用了红外遥控。
而在工业领域的设备之中,由于工作条件比较恶劣,采用红外遥控可以再高压、粉尘、辐射等条件下隔离电气干扰安全可靠的正常工作。
我们平常使用的红外遥控主要有发射和接收两大部分组成,并采用了专用的集成电路芯片对电路进行控制,关于其发射接收框图入土10所示。
其中发射部分主要包括键盘矩阵、编码调制、LED 红外发送器;接收部分主要包括包括光、电转换放大器、解调、解码电路。
图10 红外线遥控系统框图
3.5.2 红外线遥控原理介绍
红外遥控的整个控制过程为:首先对发射器的键盘矩阵通过发射芯片进行一定的编码调制,当有键码按下时,红外线二极管就会发出不同信号的红外线光,由于单片机不能识别光信号,必须将其转化成电信号,然后将电信号传经过解调和解码后,将生成的二进制码送给单片机,最后通过单片机对二进制信号的处理,执行遥控器键码要实现的功能操作。
当发射器有遥控码按下时,根据遥控码的不同,红外线二极管发出不同信号的红外线光,这些红外线光就是遥控码的表现形式。
遥控码是采用脉宽调制(所谓脉宽调制就是在频率不变的条件下,改变信号中高低电平所占的时间比)的串行码,根据时间信号将其转化成为单片机可以识别的二进制代码。
关于二进制数“0”、“1”的生成方式主要是根据时间周期中的高低电平持续时间的占用比来实现,其大致的实现方式可以以用直观的波形图来表示[14],其波形图11。
bit”0”bit“1”
0.565ms 0.565ms
1.125ms m
2.25ms
图11 遥控码的“0”和“1”
发射器可以产生二进制代码,这些代码是由“0”和“1”组成,并组成了32位的码
制,形成了可以被识别的信号,然后经过固定的载频开始进行二进制的调制,这样对于发射的效率的提高有很大促进作用,而且可以对于电源的功耗进行降低;其中关于遥控信号进行编码的波形图如图12所示[14]。
图12遥控信号编码波形图
遥控编码的前16位是识别码,是为了区分不同设备而设置的专门识别信号,以防出现遥控码的乱码情况。
后十六位是数据码和数据反码,代表的是键码所要实现功能的部分信息[14]。
通过遥控器的按键,可以周期性的发出一系列同种32位组成的二进制码,其中“0”与“1”个数的不同,所代表的信息和持续的时间也不同。
如图13是发射波的波形图[14]。
图13 遥控连发信号波形
一般情况下,一次按键的时间都会超过36ms,这种情况下使发射器内部的芯片在振荡器的作用下激活,进行编码脉冲的发射。
编码脉冲包括一个引导、一个结果码、高8位地址码、低8位地址码、8位数据码和这8位数据的反码。
如果按键按下未松开接下来发射的代码(又叫连发码)仅有起始码和结束码组成,如图13所示[14]。
图13 引导码(左)和连发码(右)
接收电路一般是使用一种具有接受和放大红外线功能红外线接收器它不用再接
其他的电路元件就可以完成从红外线接收到输出与TTL电平信号兼容的所有工作。
接收器的引脚图如图14所示,仅有3个对外的引脚:OUT引脚直接接单片机的I/O口、GND引脚接系统的地线和Vcc引脚接系统的电源正极。
图14接收器引脚
红外线接收器与单片机连接的引脚图与数字化温度传感器DS18B20基本一致这里不再单独画出了。
3.6 蜂鸣器
在单片机系统中,最常用的一种提示和报警系统就是蜂鸣器,主要是因为采用蜂鸣器进行提示和报警的设计相对来说比较简单,而且对其功能要求比较低。
在使用蜂鸣器报警时,通常使用压电式蜂鸣器,它与单片机的接口一般使用三极管来对蜂鸣器接口驱动,如图15所示。
它的工作情况为:当P1.0输出为高电平“1”,驱动器的输出为低电平,蜂鸣器鸣叫;当P1.0输出为低电平“1”,驱动器的输出为高电平,蜂鸣器停止。
图15 使用三极管驱动的蜂鸣器接口
3.7 直流电机系统
3.7.1 直流电机简介
根据直流电机的定义,直流电机是利用直流电能来进行各种机械性的工作。
相对于其他电机,具有启动快和制动效果好的特点,非常适合在大范围内平滑调速,因而它在电力拖动领域中的调速和快速改变转向方面得到了特别多的应用。
只要在直流电机的两个控制端之间加上有点压差的电压就会转动,改变加在两端的电压就可以改变转动方向,而在负载变化不大的时候,加在直流电机两端的电压大小与其速度近似成正比。
单片机控制直流电机的基本方法是脉冲宽度调制,主要是通过改变直流电机电枢电压的接通时间与通电周期的比值(即经常说到的占空比)来控制电机速度。
脉冲宽度调制也叫PWM调制。
改变占空比的方法有三种:
●定宽调频法:在不改变高电平所维持的时间的条件下,通过改变低电平的导
通时间,进而改变调制电压的频率实现调制。
●调宽调频法:在不改变低电平所维持的时间的条件下,通过改变高电平的导
通时间,进而改变调制电压的频率实现调制。
●定频调宽法:这种方法是同时改变高低电平的维持时间,但是高低电平持续
时间的总和保持一定,同时调制电压频率不变。
对于前两种调制方法,他们都改变了调制电压的频率。
弱调制电压频率与电机的频率在一定范围相差不大时,会造成系统的震荡,从而会使系统不能正常的工作,因此,当我们实际运用时,一般会采用定宽调频法。
3.7.2 直流电机与单片机的接口设计
本设计采用驱动芯片来驱动直流电机,其与单片机的连接原理图如图16所示。
由于驱动直流电机需要很高的直流电流,若不采用单独供电,会使单片机的其他系统瘫痪,不能正常工作,因而要对直流电机进行单独供电。