摘 要
随着科技水平和人们生活质量的不断提高,汽车渐渐变成人们出现的工具的常见选择。同时汽车的舒适性也逐
渐成为了人们选购汽车的一项重要指标,但是当前常见的汽车空调控制方式是手动来操作控制,但在酷热的夏日或
者是寒冷的冬日,车内温度都不符合人们的舒适温度,如果进入汽车内再开启空调来调节车内温度,那么需要驾驶
员花费大量时间等待空调的运行,才能让汽车内温度达到人体的舒适温度的范围,而如果不等待大量时间,选择边
开车边空调,车内不符合人体舒适的温度将会造成驾驶员心情下降,使得驾驶的风险性提高。因此,研究汽车空调
远程控制系统,实现远程控制汽车空调,提前调节汽车内温度,对驾驶的舒适性和安全性都有所提高。本设计系统
主要使用单片机作为核心控制元件,使用GSM通信模块进行远程通信,使用DS18B20温度传感器来作为温度检测单
元,用户可以通过手机发送短信来查询汽车内温度和调节模式来控制温度。
关键词:单片机;GSM无线通信;传感器
1绪论
1.1课题研究背景
随着科技水平和人们生活质量的不断提高,汽车渐渐变成人们出现的工具的常见选择。汽车的舒适性也逐渐成
为了人们选购汽车的一项重要指标,但是当前常见的汽车空调控制方式是手动来操作控制,但在酷热的夏日或者是
寒冷的冬日,车内温度都不符合人们的舒适温度,进车再控制空调,需要驾驶员等待大量时间让空调运行,才能让
汽车内温度达到人体的舒适温度,而如果不等待大量时间,选择边开车边空调,车内的温度会造成驾驶员心情下
降,驾驶的风险性提高。因此,研究汽车空调远程控制系统,实现远程控制汽车空调,提前调节汽车内温度,对驾
驶的舒适性和安全性都有所提高。
当前主要的远程无线控制方式有红外通信,蓝牙技术,GSM通信等技术技术。
红外通信抗干扰能力强,主要使用在短距离的通信上,比如常见的各种遥控器。红外通信需要对着接收器发送
信号,而且发送的信号穿透能力差,难以穿透物体,受日光、环境照明的影响,导致传输距离有缺陷。由于红外通
信难以穿透物体且传输距离受限,因此不符合汽车远程空调控制的要求。
蓝牙通信是指一种可以用于进行短距离通信的电子产品与其它电子产品部件之间短距离通信传输的无线电技
术,利用蓝牙可以完成手机、电脑、游戏手柄、车载音响等移动电子设备的互通,许多设备的设备都支持蓝牙技
术,蓝牙的安全性和抗干扰能力强,能够向下版本兼容。而汽车的远程空调系统控制则要求远程控制,蓝牙技术只
可支持短距离设备之间点对点的无线通信,有效通信的范围是10米内,因此蓝牙通信也不适用本设计的远程控制。
GSM全球通信标准即是全球通用移动电话通讯系统,是一项源于英文欧洲的全球性移动通信技术的标准,是一项
第二代全球通信技术系统,其核心目的之一就是希望让整个全球各地运营商可以通过共同协议使用这一个全球性移
动电话网络标准,让任何用户仅可以通过使用一个手机终端就完全可以同时联系到整个全球范围任何每一个同样带
有该手机功能的所有其他用户。GSM系统提供了便捷便宜的短信息服务通信方式,其主要流程是,用户把短信息发送
请求提交到附近的基站,再由用户附近的基站发送短信息的请求到对方附近的基站,然后再由对方附近的基站向对
方发送短信息。
1.3系统设计的主要任务
本套系统设计用于实现远程自动控制的汽车空调,分为系统硬件组成设计部分和控制系统软件集成设计两个部
分。基本参数硬件的设计部分是使用STC89C52RC单片机来处理控制系统内的风扇直流电机信号和接收由DS18B20温度
传感器来检测控制器的工作温度,然后在四位显示数码管上显示出当前的测量温度,用按键设定和调节对应的值,
由GSM无线通信模块传输。软件设计部分主要使用C语言编写系统程序,和绘制系统电路图。能实时监测和手动调节
当前的车内温度,并在屏幕上显示当前温度。能实现风速控制和空调模式控制,调节空调的风速档位和空调模式切
换。能远程开启空调,用户能通过无线技术,远程控制空调来调节温度。远程查询车内环境,用户能通过无线技
术,远程查询车内温度。远程调节空调温度,用户能通过无线技术,远程调节空调温度。
2系统总体设计
本设计是为了能查询汽车内温度并远程控制车内空调功能,下面对系统的设计进行功能需求分析和方案研究和
方案选择。
2.1系统功能需求分析
接收信号功能:当接收远程发送的信号时,由信号模块接收信号并解调,再将编码传给单片机。在汽车上使用
单片机接收远程数据并进行解析数据,传达控制指令到汽车空调系统。
数据显示功能:能监测当前的车内温度,并在屏幕上显示当前温度。
执行控制功能:单片机接收到控制信号的编码后,执行相应的控制方式来控制汽车空调。
车内温度调节功能:根据接收的信号来控制汽车的空调,完成相应的汽车内温度的调节。
2.2设计方案对比
2.2.1方案一
使用热敏电阻作为检测温度的核心元件,热敏电阻根据温度的变化产生微弱变化的电压信号,并通过AD转换器
转变为数字信号后,再由运算放大器放大将数据传给单片机,单片机对该数字信号在程序查询对应的设定值执行相
应的操作,并且将检测温度实时在数码管上,然后根据温度判断是否调节风扇。
2.2.2方案二
使用了数字式的DS18B20温度传感器来作为温度自动检测装置的主要核心元件,检测温度的数据传给单片机后。
单片机对该数据进行分析并判断,将检测温度在数码管显示温度。用户发送短信到GSM模块,GSM模块传输数据到单
片机,然后单片机执行相应的命令,返回用户汽车内的温度,控制风扇风速模式。
方案一,在温度的检测元件方面使用上了热敏电阻,具有了价格较为便宜,且测温元件很容易进行购买组装的
众多优点,但是需要外接AD数模转换器,在外部硬件多一个元件,而且热敏电阻在温度检测中存在失真会导致在人
所处的环境中难以检测出细微的温度差别,从而导致在温度控制中会发生较大的温度偏差。所以该方案不适合本系
统。
方案二,由于数字式集成温度传感器DS18B20电路内部的模块设计的高度的集成化,DS18B20电路中使用到的外部接
口通常是通过单用串口的通信总线方式可以做到大幅地简化了整个电路接口间的外部电路连接,且也由于它内部大
量的模块集成在了用于AD放大与转化电路的模块内从而大幅度减少了在外部电路放大和转化回路中存在的误差,并
且同样也正是由于采用其能够直接的检测到温度传感器上的电路原理技术上与用传统的热敏电阻器直接用来检测温
度热电偶的工作原理一样也同样有着其技术本质性方面的根本的不同,使得了其系统对温度信号的分辨及判别能力
都极之高。简化了系统程序设计,因此该方案适用于本系统。
2.3系统总体方案设计
本系统设计主要由温度传感器检测、单片机控制模块及风扇直流电机执行元件三部分组成。总体系统设计如下
图所示。
DS18B20温度传感器可以在检测出当前环境温度的实时温度信息后,再回转到由一个8个位宽的数码管温度显示
的模块内来自动显示其实际温度,按键电路用于检验单片机的控制系统是否正常,直流风扇模块为执行单元,通过
控制直流风扇执行不同的指令来调节温度,GSM模块用于与用户的远程通信。
远程查询温度,用户使用手机发送指令短信到GSM模块,GSM模块接收指令后向单片机传输数据,然后再由单片
机返回DS18B20温度传感器检测的数据给GSM模块,再发送回用户。流程图如下所示。
用户远程控制控制,用户通过短信发送指令到GSM模块,GSM模块向单片机传输数据,单片机分析指令,完成相应控
制命令。流程如下图。
3系统模块的硬件设计
系统中主要应用器件主要包括温度传感器、单片机、风扇直流电机。辅助元件还包括电阻、电容、电源、按钮
按键等。
基于单片机的汽车远程空调控制原理:单片机控制器按照编程的程序执行,系统中的传感器探测到温度,转换
器将信息传输到单个芯片,将温度显示再数码管上,GSM短信接受远程发送的指令,执行相应的命令。
3.1单片机最小系统设计
图 31是单片机最小系统原理图,单片机的最小系统部分设计是实现单片机高效率运行工作的基础。
单片机最小系统电路主要由电源电路,时钟电路和复位电路一起构成。复位电路由按键、电阻和电容组成,不
但可以通过电容元件上电来完成复位,还可以通过设置的复位按键来手动复位。时钟电路它一般是用一种电路由两
个晶体振荡器单元电路和另外两个电容元件来构成,振荡器元件能够独立产生另一个时钟脉冲信号输出电路来实现
直接输出给单片机程序以提供时钟信号。
单片机最小系统是单片机设计最重要的部分,在单片机最小系统的基础上增添元件如温度传感器、风扇、GSM
等,来实现所需要的功能。在最小系统上可以通过外接端口连接元件使其完成更复杂的功能,以达到本设计要求的
的功能。
图 31单片机最小系统原理框图
STC89C52MCU芯片带有ROM / EPROM,芯片内部构造不复杂且运行稳定。为了形成最小的系统,52MCU芯片可以连
接到时钟电路和复位电路。但由于52MCU芯片集成度,最小应用系统只可以当做小型控制系统。
3.1.1STC89C52RC单片机介绍
STC89C51是一种具有极强低功耗特点的CMOS 8位微控制器,有32个的I/O口、三个16位的定时器和/和计数器。
STC89C52单片机的内存比较大能够达到8K,可以满足本设计的电子电路设计和使用要求。单片机相当于一台微
型的计算机,高度集成了I/O口、逻辑处理电路和中断功能等,STC89C52是51单片机的升级版本,在内存和性能上都
有了很大提升。
STC89C52单片机功能引脚说明:
控制引脚
RST/VPP:单片机的复位引脚
ALE/PROG:控制单片机的地址锁存
PSEN:控制单片机外部存储器的选通
EA/VPP:控制单片机内外存储器的选用
电源引脚:
VCC:单片机电源输入直流+5V
GND:单片机电源的负极
晶振引脚
XTAL1:外部脉冲电路的输入接口
XTAL2:外部脉冲电路的输出接口
输入/输出引脚
STC89C52RC单片机的I/O口主要分为4组:P0、P1、P2和P3,每一组又分为8个控制位,具体如下:
P0口: P0.0~P0.7
P1口: P1.0~P1.7
P2口: P2.0~P2.7
P3口: P3.0~P3.7,可选作为通用的I/O输出口,同时也具有第二输出功能。
3.1.2STC89C52RC单片机电源电路
电源电路是单片机最小系统的最重要一部分,电源电路给单片机以及单片机连接的温度传感器、风扇、数码管
显示器等其他元件等供电。
在单片机电源电路设计上,单片机使用USB供电,能便捷的供电,同时标准的5V作为单片机的供电。
本设计电源电路连接是单片机VCC端口接电源正极,GND端口接电源负极。
3.1.3STC89C52RC单片机复位电路
单片机系统的复位电路主要是用来将整个电路系统恢复到系统初始化时的电路而设计,系统开机运行之后的第
一步操作通常也是要将整个系统重新复位,类似计算机的重新启动。它让芯片所有程序重新回到初始设置的方式开
始运行。
复位电路有通电自动复位和按键式复位两种方式。
通电复位式是用单片机电路在外部通电启动的时候,外部电源给复位式电路里的一个电容元件做充或放一个电
位来自动完成复位实现动作的。
单片机通常还会设置一种按键复位电路,这种设计是为了防止程序卡死以及一些不符合设计的bug出现,在单片
机运行的任何状态都能实现复位。
机械按键复位的电路图如图 33所示,本电路设计所用到的主要是机械按键的手动键复位的方式。使用手动的按
键复位方式,不仅使用方面便捷且稳定可靠,而且在电路连接的方面也相对简单。利用机械按键K1的常开引脚,并
联一个10微法的电解电容,两个元件一端连接直流电源的正极,另一端连接10K电阻,电阻之后连接电源负极,同时与单片机的复位引脚RST连接,使用电路产生的高电平对单片机实现复位功能。
3.1.4STC89C52RC单片机时钟电路
时钟电路顾名思义就是能够独立生成一个时钟讯号电路,主要由晶体振荡器元件、晶振控制芯片元件和电容元
件三种元件所构成。
STC89C52单片机的时钟信号有内部时钟和外部时钟两种方式。
本电路设计所采用到的主要是单片机内部的时钟电路,其外部连接电路方式就是通过在单片机上的XTAL1端口和
在XTAL2端接口之间连接的12MHz频率的外部石英晶体,晶体振荡器然后就会内部生成时钟脉冲信号。同时在晶体振
荡器后连接的容量为30 pF的 C3和C4电容来稳定芯片频率,以确保时钟电路电路能稳定使用。
3.1.5STC89C52RC中断技术概述
中断控制技术主要是实现在运行系统主程序的同时能够实时地检测中断请求的信号,发现中断请求后停止主程
序的运行并保存主程序运行的信息,同时运行中断请求的处理程序,然后在完成中断请求的程序后返回主程序中断
的位置继续运行。中断控制要求单片机能正确及时并迅速地处理响应中断服务请求源发送出来的中断服务的请求,并
保证作出的快速正确响应、及时准确处理。例如一个只要按下按键就切换LED的亮灭的程序,如果单片机一直扫描这
个按键,那么程序将会卡住在扫描那,而不会执行其他操作,那如果使用了中断技术来检测按键的触发,那单片机
可以在运行其他程序的同时检测按键状态。
3.2温度采集电路设计
在温度采集方面传感器的选择上有热敏传感器和DS18B20两种选择,热敏电阻是根据温度来改变电压信号,且数
模转换才能传出数字信号,与此对比DS18B20内部集成数模转换功能,单串口通信,同热敏电阻相比简单很多,同时
具有体积小,抗外部干扰能力强,测量精度高的特点。
DS18B20数字温度传感器采用单针串口通信和输出方式,只需要将设备所接收数据的端口接温度传感器DQ端口,
就可以实现单片机和温度传感器两个元件之间的数据互通,接线方便,而且DS18B20数字温度传感器内部集成模拟信
号转换数字信号模块,不需要其他外接元件。DS18B20数字温度传感器的工作电压为3.0-5.5V,温度测量范围为-
55℃~125℃,当电源接到了DS18B20的GND端口、同时DS18B20VCC接到了电源负极造成反接时,温度传感器芯片不会
因为发热而烧毁,接反只会导致温度过高从而造成不能正常工作。
DS18B20内部结构主要有四部分:64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。其管
脚有三个,其中DQ为温度数据的I/O端,GND为接直流电源的负极,VCC为接直流电源的正极。
3.2.1DS18B20温度传感器的工作流程
DS18B20温度传感器内部集成了A/D数模转换和温度检测的功能,所以不需要另行增加的额外电路元件,直接连
接电路就可独立使用,芯片温度控制功能简单方便,本系统设计中使用的单片机通过P1.6端口可和DS18B20模块的DQ
端口直接相连,单片机就可以读取DS18B20的数据,其过程如下:
1)、复位
温度传感器进行复位,单片机给P1.6端口低电平,时间大于1S,温度传感器就会复位。
2)、存在脉冲
温度传感器复位操作完成后,单片机给P1.6,端口高电平,温度传感器总线电平变高,准备接受下一步的脉
冲。DS18B20芯片的存在脉冲一般为一个几十微妙的低电平,本设计通过连接的单片机P1.6端口发送给DS18B20,脉
冲被温度传感器接受到后,则是代表该单片机和DS18B20温度传感器之间已经完成了温度数据通信协议,单片机可以
开始读取DS18B20温度传感器元件测量的温度数据。
3)、单片机发送ROM指令
DS18B20芯片内集成了多个存储区,其中包括ROM 只读存储区和RAM 数据暂存区等。ROM操作指令的长度是8位,
通过单片机向DS18B20芯片依次发送ROM操作指令,主要作用是对片内存储区的64位光刻ROM进行相应操作。
4)、单片机发送存储器操作指令
单片机向芯片发送完成ROM操作指令之后,就下来就是发送RAM 数据暂存区的操作指令。RAM操作指令的长度同
样是8个位,通过单片机向芯片依次发送以下6条操作指令:写RAM数据、读RAM数据,复制RAM数据到EEPROM、转换温
度、复制EEPROM中的报警值到RAM和工作方式的切换。
5)、执行数据的读写
对ROM和RAM的操作指令执行完成之后,下一步就是对数据的读写。芯片数据的读写操作需要严格按照读写的时
序操作。
3.3手动控制电路设计
单片机的按键设计方式有独立式和矩阵式两种设计方式,矩阵式的按键设计例如4X4的矩阵按键,这种方式可以
有效节省单片机的端口资源,4X4的矩阵按键一般只需要8个端口资源就可以完全实现16个按键的设计,但是它编程
方面上非常复杂,需要采用循环扫描的方式来判断按键的序列,同时也需要单片机中断控制技术的循环的检测按
键,而且硬件方面的线路连接上也比较复杂。另一种独立式按键,单独的端口控制一个按键,相较矩阵式端口占用
多,但连接线路非常简单。
在按键使用的过程中,无论采用是矩阵式按键还是单独式按键,都会有波动的信号,这种抖动现象一般会持续
10~200毫秒的时间,这是由于机械按键在按下和抬起的过程中,因为开关闭合和断开时的延时,或者是因为弹片的
变形等原因造成。要消除按键波动,才能够准确控制读取按键的控制命令,达到想要的运行效果。在去抖动方面,
本设计采用软件去抖动,使用查询按键的状态,如果发现状态改变,再软件延时10~200毫秒以避开抖动,再次检测
按键状态,如果恢复则是干扰信号,如果依旧改变则是按键按下。
本设计使用了3个按键,目的是模拟空调的手动控制的方式,按键的电路设计如下图,其中按键K1连接P3.5,功
能是切换模式,分别为显示温度,设置温度下限和设置温度上限;按键K2连接单片机P3.6,其作用是设置温度,执
行加操作;按键K3连接单片机P3.7,作用是设置温度,执行减操作。
3.4显示模块电路设计
本设计中的显示模块电路采用四位8段共阴极数码管元件,数码管的显示方式是利用人眼的视觉暂存现象,让每
段数码管显示非常短暂,又用于人眼暂存将每段的数码管显示部分连接起来,就成了一组稳定显示的数字。这种数
码管便宜,控制方面,显示清楚,被广泛使用,它是一个共阴极的数码管,采用动态扫描方式扫描方式是用其接口
电路把所有数码管的8个比划段a~g和dp同名端连在一起,在轮流点亮数码管的位扫描过程中。
3.5风扇模块电路设计
单片机端口的电压难以直接风扇驱动风扇,所以风扇模块需要采用三极管将单片机的电压信号放大来驱动,放
大单片机的端口电压方式设计中采用的是两个三极管,三级管将信号放大,然后传输到风扇下图是该模块电路:
图311 风扇驱动模块
本设计的风扇模块电路连接的是单片机的P1.0端口。
3.6远程模块电路设计
3.6.1GSM概述
GSM通信即全球移动通讯系统,是源于欧洲的移动通信技术标准,是第二代通信技术系统,其目的就是让全球各
地可以共同使用一个移动电话网络标准,让用户可以使用手机就可以联系到全球任何一个带有手机的其他用户。GSM
系统提供了便捷便宜的短信息服务通信方式,其主要流程是,用户把短信息发送请求提交到附近的基站,再由用户
附近的基站发送短信息的请求到对方附近的基站,然后再由对方附近的基站向对方发送短信息。
短消息简称短信,GSM系统提供给手机或终端设备等用户的一种通信方式,用户每次最多能够发送和接收160个英文或者数字字符的数据,如果发送的数据是中文字符,只能是70个。短信的使用和业务在全球都非常广泛,因为
其操作方法和价格,都是比较方便和廉价。利用短消息的优势,在生活的各个方面应用短消息。本设计中,在接收
温度传感器检测温度上,应用短信息实现无线远程信息温度的发送,让用户能够远程得知汽车能的温度,来控制空
调的运行。
3.6.2SIM900A介绍
SIM900A无线通信模块不仅支持接收和发送短信能而且还提供GPRS的使用方法,通过插入SIM卡和连接发射天线
等辅助设备,即可实现模块的发送短信、接收短信和拨打电话等功能功能。SIM900A的尺寸大小为50mm48mm28mm,
所需要的的供电是5V1A直流电源,正常的工作环境温度在-30℃到80℃之间,模块具体的功耗是根据实际的工作环境
和网络情况和质量来变化的。SIM900A模块是2G模块,支持所有的2G卡,支持大部分的3G与4G的手机卡,不支持电信
营业厅的卡。
SIM900A控制接口非常简单,只有两个通信端口,使用方便,一般都提供电源接口、SIM卡槽接口、RS232数据通
信口,通常都是利用AT指令进行控制。模块上与SIM卡相关的信号线有5条。
SIM900A使用的AT命令一般被分分为三类,基础类命令类、参数类命令类、扩展类命令类,所有的命令都以AT开
头。基础类AT命令为“AT”或者“AT&”格式,“”是命令,“”是一个或多个参数。比如AT命
令,都被省略了。
SIM900A的扩展类命令类型和响应有:
测试命令:AT+=?,该测试命令用途是用于查询设置命令或系统内部程序设置的参数以及其取值范围。
查询命令:AT+?,该命令用于返回参数的当前值。
设置命令:AT+=<…>,该命令用于设置用户自定义的参数值。
执行命令:AT+,该命令可以用于读取受GSM模块内部程序控制的不可变参数。
3.6.3无线模块与单片机接口电路
如图 318所示,SIM900A模块的RXD端口接单片机TXD端即P3.1,SIM900A模块的TXD接单片机的RXD即P3.0。本设
计的GSM是为了用户能查询温度和控制空调模式来控制温度。
4系统的软件设计
4.1软件编译环境选择
本设计的系统是使用单片机作为控制核心,使用软件编写的程序来控制单片机,通过硬件和软件的相互结合以
实现系统的功能,所以本系统需要模拟元件的仿真图的软件和编写程序的软件一起实现本系统功能。
本设计在软件程序方面运用Keil uVision2软件来编写程序,它能够很好的兼容C语言的编写方式,对C语言有一
定的识别功能,能提供清晰的结构层次。C语言的功能性比汇编语言更好,不仅在编写方面相对于汇编语言更简单,
而且在程序的阅读理解方面等其他方面都比较有优势。所以利用C语言编写方式能提高本设计编程效率和缩短研究编
写程序的时间。Keil uVision2的集成主要包括了编程器、汇编器、实时操作器、项目管理和调节器,提供了程序编
译功能,能够使编写的程序直接转变为HEX文件,能直接烧录到单片机或者导入程序仿真工程图里进行系统功能测
试。
4.2主程序工作流程图
程序流程图的目的是为了让其他人简单容易的了解硬件工作步骤和软件设计流程,能清晰明了的看懂系统的工
作流程。要实现根据当前温度实时的控制风扇的状态,需要在程序中不时的判断当前温度值是否超过设定的动作温
度值范围。
显示模块驱动程序使四位8段数码管显示数字。主程序流程图如下图所示。
本设计系统的流程,首先先进行系统初始化,然后系统开始读取温度传感器的温度数据,读取的温度数据将会
现在在显示模块上,在根据设定的温度上下限温度值,对风扇进行大风、弱风或无风的操作,在程序中同时检测通
信串口的数据,接收远程控制模块来自用户的指令,然后执行相应的操作。
4.3软件模块的设计
4.3.1测温模块的程序设计
本设计系统要实现根据当前温度实时的控制风扇的状态的功能,首先需要在程序中设置一个函数,该函数的功
能是不断的判断检测的实时温度是否超过程序中设定的温度范围或者用户设定的温度范围,如果低于范围则设定控
制风扇为关闭,如果检测温度在设定的温度范围内则让风扇处于弱风状态,使环境温度能维持在所需要的温度范
围,如果检测温度超过了设定的温度范围内则调节风扇处于大风状态,让风扇全速运行进行降温操作。
温度传感器的工作流程,首先需要初始化,在程序的设计上将单片机P1.6赋值到DQ变量上,让DQ等于1接着再延
时,然后在让DQ变为0再延时,最后将DQ设置为1延时后再判断DQ的值,如果为0初始化成功,如果值为1初始化失
败。接着读取DQ的数据,由于DQ是一个一个的传输数据,所以程序方面需要设置一个读取DQ端单个字节的函数,然
后发送读取温度命令,开始读取温度数据,其中需要进行温度转换操作,然后验证数据是否正确,正确读取温度数
据后结束。
4.3.2手动控制模块的程序设计
硬件设计上设置了3个按键,然后在程序上为这三个按键一次进行端口赋值变量,将模式切换设置键赋值到K1变量上,将“加”键赋值到K2变量上,将“减”键赋值到K3变量上。然后在程序中定义一个自动扫描按键的函数,该
函数的功能为,检测到模式切换K1按键的按下,程序将会在显示温度,设置温度上限和设置温度下限的三种模式中
依次循环切换,检测到“加”键K2和“减”键K3的按键按下时,程序会先判断当前模式是否为设置温度上限或者设
置温度下限,如果处于设置温度上限或者设置温度下限的模式,按下“加”键K2,程序中的设定值温度将会加一,
按下“减”键K3,程序中的设定值温度将会减一。程序中的下限温度值不能高于程序中的上限温度值,其程序中的
上限温度值和下限温度值处于10℃到30℃,因为这个温度范围满足一般使用要求。
在程序方面,本设计对于检测按键的按下还使用了程序中设定的延时函数进行了防止抖动的处理,具体方法为
首先判断是否按键变成低电平,检测变为了低电平的同时延时一小段时间再进行检测,消除抖动带来的错误影响。
4.4无线通信实现设计
4.4.1查询温度短信的发送和接收
AT即Attention,AT指令就是指从移动数据终端设备上向移动PC设备上发送的执行的指令,主要用于通信控制。每一
次发送的命令行只有一个命令,内容最多1056个字符。用户可以使用AT命令来控制通信模块的使用。
本文以发送中文短信的AT 指令为例,以下是操作步骤:
1)、AT;//通信模块在上电完成之后,先发送大写的“AT”字母给芯片,同步波特率。
2)、AT+CMGF=0;//发送中文短信的PDU模式;
3)、AT+CMGS=22; //设置发送短信的内容长度;
4)、“0891683108701705F011000B813113872903F80008A708706B707E62A58B66”;//表示发送“温度查询”中文短
信,给19977245883手机号码。
5)、1A;//发送十六进制的1A,表示本次的短信发送已经结束。
SIM800L通信模块其他基本AT指令的功能和使用方法如下表的表4-1所示:
表 41AT指令表
AT指令 功能描述
AT+CPMS? 查询模块存储器的当前状态
AT+CMGR=1 读取短信息,1表示短信息的序号
AT+ CMGD=1 删除短信息,1表示短信息的序号
AT+ CMGF=1 设置短信息为文本模式
ATD13888888888; 拨打13888888888的电话号码
ATH 本地主动挂断电话的呼叫
利用以上程序提供出来的单片机串口AT指令,可以轻松快速地实现与单片机控制模块SIM900A串口通信系统和控
制模块间串行的串行自动拨号等操作命令和串口自动发送的中文短信命令等,通过单片机串口通信或者串口调试助
手软件,将AT指令发送给SIM900A模块,如果指令执行结果成功,会以“OK”的响应形式返回,如果指令执行失败或
者指令格式错误,则以“ERROR”的响应形式返回。
4.4.2远程控制流程
当单片机开始工作时,GSM模块开始初始化,然后GSM会检测有没有接入SIM卡,成功接入SIM后,单片机读GSM模
块的串口数据,GSM模块检测用户发送的信息,有信息在检测是否是用户发送的信息,如果是在检测是设定温度还是
查询温度,根据指令执行相应的操作。流程如下图所示。
GSM模块整个流程为:
(1)初始化:系统启动首先对单片机,串口和SIM900A进行初始化,使系统所有的模块处于工作的状态。
(2)读串口数据:这是需要单片级不断循环读取的一部分。系统所有模块初始化后,单片机从RXD和TXD端口接
收一个字符串,这个字符串的长度、格式和内容是固定的,单片机用+CMTI的格式来确定是不是SIM的信息。
(3)判断:GSM模块接收到信息还是要多次的确定,首先是否是主人发送的信息,是否是查询温度,是否是设
定温度,然后才是执行命令。
(4)执行:经过判断后,单片机开始执行相应的操作。
(5)继续读取串口数据:完成读取信息并执行完成命令后,系统将会回到初始化,继续不断的读取串口信息,
反复进行读串口数据、判断和执行的程序。
5系统功能测试
前面的章节对硬件模块进行了分析,接下来进行编写系统程序,在使用Keil uVision2软件进行系统调试,然后
再用Keil uVision2编译,然后根据软件调试弹出的BUG提示修改程序,直至编译成功。检查硬件电路接线准确性,
将调好的源程序下载到STC89C52RC单片机芯片和无线模块中。用Proteus软件绘制单片机各元件组成的系统仿真图,
将编写程序的编译生成“hex”文件下载到单片机中进行仿真。通过这样仿真测试来看电路是否能正常运行,是否能
完成本设计所需要达到的功能。
5.1系统仿真测试
用Proteus软件绘制仿真图,然后在KeiL uVision2编写好程序后编译生成HEX文件,导入仿真图中的单片机中开
始运行调试,单片机P1.0端口控制风扇,P3.5端口连接按键,控制风扇模式,P3.6端口按键实现加温度操作设置,
P3.7端口按键实现减温度操作,P1.6端口连接DS18B20温度传感器,接收温度数据,P0.0~P0.7端口连接数码管显示器,控制数据的显示。无线模块的读、写引脚分别接单片机P3.1、 P3.0引脚,按键受单片机P1.6、P1.7、P3.2引脚
控制。
如下图所示,系统接上电源后,数码管显示器会显示当前风扇档位和当前检测温度,中间使用“-”符号隔开。当前
温度处于设定的温度上限和温度下限之间,所以显示的是1档,代表风扇是中风状态。
图 51系统仿真原理图1
5.2硬件功能测试
5.2.1按键功能测试
本设计系统按键方面设置了四个,一个用于复位,一个用于调节温度上下限模式切换,还有两个用于温度上下
限调节的加和减。
在调试过程中按下调节温度减按键,出现了连续的减温度设置,突然地减少了几个值,查看程序发现在检查按
键的延时函数设置时间较短,达不到去抖动的效果,然后更改延时函数,适当增加延时量,按键测试能正常运行,
但延时时间也不应该过长,不然会导致按下按键,设置无用。
上图是按键按下的前后对比图,前面是正常显示状态的图,后面是按下切换模式设置的按键的图。
6总结与展望
本设计系统是利用单片机作为控制核心来完成远程控制的空调系统,远程调节汽车内温度。从硬件系统的设计
和软件源代码的编写到最后用Proteus软件进行系统仿真,再到单片机开发板上每个元件的焊接,然后在完成的电路
板上进行个模块的测试,最后在完成整个系统实现的功能的过程中,实际上就是把在大学里中所学到的各种技术和
知识有机完整的融合串连在一起了。本设计系统采用单片机为控制核心,使用DS18B20作为温度传感器检测温度模块
来检测环境温度,实现了根据环境温度变化调节不同的风扇电机转速,并能通过两个独立的按键调节不同的设置温
度,从而改变环境温度与设置温度的差值,实现了模拟汽车空调的效果。再以GSM模块做远程控制设计,来实现远程
控制的效果。