


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、燕山大学课程设计说明书题目智能空调控制系统学院(系):年级专业:学 号:学生姓名:指导教师:教师职称 摘要智能空调控制系统是根据温度传感器采集室内的环境温度与系统的预设值 进行对比,通过控制系统的预先设置,空调进行自动制冷或制热,从而达到了 智能控制的目的。根据人们对生活环境的要求和单片机的应用特性,本文介绍 了应用 STC89C52 单片机进行控制的智能空调控制系统。智能空调控制系统主要由电源电路、液晶显示电路、单片机控制电路、按 键电路、控制指示电路等组成。其工作原理是温度传感器 DS18B20 采集室内温 度传送给单片机,单片机分析数据,控制智能空调加热或制冷。此系统可以通过按键设置空调
2、的温度,使空调对室内进行加温或降温,也 可以对系统预设一个温度值,通过传感器感知室内温度与智能空调的预设温度 值进行对比,通过单片机控制空调对室内进行加温或降温,达到智能空调的自 动控制功能。在定时功能启动的情况下,如果计时时间与定时时间相同,此时 空调相应的状态会自动关闭,把定时时间存在 STC89C52 单片机内部的 EEPROM 中,断电后不会消失,直至通过按键去改变,达到了智能空调的定时 功能。关键词: 智能空调;液晶显示; STC89C52 单片机; ds18b20 温度检测芯片目录1 智能空调控制系统的方案设计 1.1.1 智能空调控制系统 1.1.2 系统工作原理 2.1.2.1
3、 系统功能模块工作原理介绍 2.1.2.2 各功能要求实现的工作原理 2.2 系统功能模块的设计与实现 5.2.1 主控制模块 5.2.1.1 主控制单元模块设计 5.2.1.2 主控制单元工作原理 5.2.2 电源模块设计 6.2.2.1 电源模块概述 6.2.2.2 电源模块的应用 6.2.3 温度检测模块设计 7.2.3.1 温度传感器的选取 7.2.3.2 DS18B20 概述 7.2.3.3 温度检测单元电路 8.2.4 显示模块设计 1.02.4.1 1602 液晶显示器概述 1.02.4.2 显示模块电路 1.52.5 模块设计 1.72.5.1 键盘电路功能设定 1.72.5.
4、2 矩阵键盘电路工作原理 1.72.6 外围驱动电路模块设计 1.82.6.1 驱动电路 1.82.6.2 JQC-3FF 继电器 1.83 系统软件设计 2.0.4 系统测试及结果分析 2.34.1 系统测试 2.34.2 系统测试结果及分析 2.5结 论 2.6.心得体会 错. 误 !未定义书签。参考文献 错. 误 !未定义书签。附 录 2.8.1智能空调控制系统的方案设计本系统以单片机 STC89C52为核心,采用电源模块、温度采集、键盘 输入、液晶显示、驱动电路等,实现了基于空调温度控制系统。把定时时 间存入单片机 EEPROM中,不易丢失。人机交互采用按键输入、液晶显 示,界面友好,
5、易于操作。1.1智能空调控制系统DS18B20温度传感器采集室内温度数据,并将信息反馈给 CPU,单片机分析并与设定的温度值进行比较,通过驱动电路使智能空调调节不同的 工作状态,单片机的工作状态有加热、制冷工作状态。不同的按键S的功能设置为:S2为“加”,S10为“减”,S3启动/ 关闭,S5为启动智能空调制冷状态,S6为调节走时按键,S7为启动智能空调暖风工作状态,S13为开启/关闭定时,S14为调节定时。系统的结构框图如图1-1所示:键盘输入1液晶显示!/单晶振电路'温度检测片复位由路复位电路1 驱动电路机图1-1智能空调控制系统结构框图1.2系统工作原理系统功能模块工作原理介绍电
6、源管理模块将外部交流电通过整流变压器及稳压芯片7805进行稳压,以便提供给各个系统工作模块, 如DS18B20温度传感器、单片机主控 制单元、液晶显示单元、驱动电路单元等。单片机(STC89C52)主控制单元负责整个智能空调控制系统的运行控 制,通过人际交互单元 (按键及液晶显示) 的系统功能设置,用1602液晶 显示器将室内温度显示出来,并且可以通过按键进行调整,实现空调加热 或制冷的工作状态设置,即达到智能空调的手动控制功能。通过DS18B20温度传感器实时检测室温并通过1602液晶显示器显示室温,并将室温与预设值进行对比,实现空调自动制冷或加热,实现了智能空调的自动控制功 能。在定时功能
7、启动的情况下,如果计时时间与定时时间相同,此时,空 调相应的工作状态会自动关闭。把定时时间存在STC89C52单片机内部的EEPROM中,断电后不会消失,直至通过按键去改变,实现了智能空调的 定时加热或制冷功能。各功能要求实现的工作原理1、定时与时间显示刚开始上电时,1602液晶显示器上产生实时时间。此系统运用单片机的定时器功能产生走时,采用的是二十四小时制,在一直通电的情况下,会一直加到23:59:59,然后清零从00:00:00重新开始。若开启定时功能,液晶右下角显示定时时间,在显示器的右上角显示ON,未开启定时功能则显示OFF。液晶显示屏的显示画面,如表1-1所示:表1-1未开启定时或开
8、启定时功能,液晶显示屏显示结果0123456789101112131415OOFNF单片机得电后,其内部定时器会立即开启,在软件程序中设定其相应 的内部定时器的寄存器从而相应的走时会比较准确的记录下来。2、温度检测与显示DS18B20检测的室内温度信号返回给单片机,单片机会相应的处理此温度信号,同时送往液晶显示器显示。提前设定的温度值存在单片机ROM中,单片机处理后,也会在液晶上显示。如表1-2所示,用*表示实时室内温度。表1-2液晶显示屏显示实时室内温度(*为温度值)0123456789101112131415*智能温控就是感温头精确感应,把室内温度的变化传递给中央控制芯片,由芯片控制系统使
9、室内温度达到显示屏上的设定温度,使用者只需要自身的要求而去设定不同的温度即可,以达到最大的智能化控制。3、键盘调节人机交互采用键盘输入。通过键盘输入指令,控制相应的不同状态的切换、时间定时长短的设定。调整时间设定(*表示光标闪烁)如表 1-3所示。表1-3液晶显示的调整时间设定(*为走时时间,为定时时间)0123456789101112131415*通过按键把定时的时间写入单片机的EEPROM中,永久性保存。2系统功能模块的设计与实现2.1主控制模块主控制单元模块设计系统主控制单元,采用AT89C52单片机为主控制芯片,主要包括AT89C52单片机、复位电路、时钟电路、下载电路、电源指示电路。
10、主控制单元工作原理系统主控制单元如图 2-1所示:U1C1GNDHI30pFVcc卜 XTAL1P0.0/AD0P0.1/AD1P0.2/AD2XTAL2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6RSTP0.7/AD7P2.0/A8P2.1/A9P2.2/A10PSENP2.3/A11AIEP2 4/A12EAP2 5/A13P2.6/A14P2.7/A15P1.0/T2P3.0/RXDP1.1/T2EXP3.1/TXDP1 2P3 2/INT0P1 3P3 3/INT1P1.4P3.4/T0P1 5P3 5/T1P1.7P3.7/RD"193718923312
11、612514817AT89C522930-393824252728151610 1113346736 _35 工 "3 -32R1010kGND图2-1系统主控制单元功能电路STC89C52单片机具有256KB的程序存储区、8KBFIashROM,完全满足系统设计需要,按键 S1为复位按键,采用低电平复位,电容 C3与电阻R10组成上电复位电路,为了提高串行通信波特率的准确度,时钟电路采 用12MHZ的晶振和电容 C1、电容C2组成振荡电路。2.2电源模块设计电源模块概述LM7805是常用的三端稳压器,一般使用的是TO-220封装,能提供DC5V 的输出电压,应用范围广,内含过流和过
12、载保护电路。带散热片时能持续 提供1A的电流,如果使用外围器件,它还能提供不同的电压和电流。电源模块的应用电源模块电路如图2-2所示。电源电路主要为系统提供工作TR1TRAN-2P2SLP=1HLS=0.0025hM=1RP=1mU27805RS=1m图2-2电源模块功能电路电源,总电源有 220V输入,通过变压器和整流器输出12V直流电源。但是这个直流电源很不稳定,所以再用一个7805进行稳压,输出稳定的5V直流电源。供单片机、Icd1602等使用。2.3温度检测模块设计231温度传感器的选取温度是一种最基本的环境参数,人民的生活舒适度与环境的温度息息 相关,DS18B20装置适用于人民的日
13、常生活和工业和农业生产用的温度测 量。由半导体公司生产的DS18B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温 度测量及控制仪器、测控系统和大型设备中。DS18B20具有体积小,接口方便,传输距离远等特点。采用数字温度传感器 DS18B20,与传统的热敏电阻相比,它能够直接 读出被测温度并且可根据实际要求通过简单的编程实现912位的数字值读数方式。可以分别在93.75ms和750ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入 DS18B20的信息仅需要一根口线(单 线接口)读写,温度变换功率来源于数据总线,总线本身
14、也可以向所挂接 的DS18B20供电,而无需额外电源。因而使用DS18B20可使系统结构更趋简单,可靠性更高,成本更低。测量温度范围为-55 C+125 C。在-10 C +85 C,精度为土 0.5C。DS18B20的精度较差为土 2 C。现场温度直接以 一 线总线”的数字方式传输,大大提高了系统的抗干扰性。既述1 . DS18B20的性能特点:(1) 采用单总线专用技术,既可通过串行口线,也可通过其它I/O 口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位)。(2) 测温范围是-55 C +125 C。(3) 内含64位经过激光修正的只读存储器ROM。(4)
15、 适配各种单片机或系统机。(5)用户可分别设定各路温度的上、下限。内含寄生电源。2. DS18B20内部结构DS18B20内部结构主要由4部分组成:64位光刻ROM,温度传感器, 非挥发的温度报警触发器 TH和TL ,配制寄存。DS18B20的管脚排列如图 2-3所示。D c c c N -N E J ©图2-3 DS18B20引脚图3. DS18B20引脚功能如下:NC(1、2、6、7、8脚):空引脚,悬空不使用。VDD (3脚):可选电源脚,电源电压范围是35.5V。DQ (4脚):数据输入/输出脚,漏极开路,常态下高电平。温度检测单元电路温度检测单元采用DS18B20实现温度的
16、检测。功能电路如图2-4所示,温度传感器 DS18B20将采集回来的数据经P2.3 口给AT89C52单片机,AT89C52单片机把这些数据进行分析,送至1602液晶显示器上显示温度。P2.32-4 DS18B 20温度检测功能电路具体操作如下:1. DS18B20 初始化。(1) 数据线拉到低电平“ 0 ”。(2) 延时480微妙(该时间的时间范围可以从480到960微妙)。(3) 数据线拉到高电平“ 1 ”。(4) 延时等待80微妙。如果初始化成功则在 15到60微妙时间内产生一 个由DS18B20所返回的低电平“ 0”。根据该状态可以来确定它的 存在,但是应注意不能无限的进行等待,不然会
17、使程序进入死循环,所以要进行超时判断。(5) 若CPU读到了数据线上的低电平“ 0”后,还要做延时,其延时的时间从发出的高电平算起(第(3 )步的时间算起)最少要 480微妙。2控制器写时序。(1) 数据线先置“ 0 ”(2) 延时15微妙。(3) 按从低位到高位的顺序发送数据(一次只发生一位)。(4) 延时60微妙。(5) 将数据线拉到高电平。(6) 重复15步骤,直到发送完整的字节。(7) 最后将数据线拉高。3. 控制器读时序。(1) 将数据线拉低“ 0”(2) 延时6微妙。(3) 将数据线拉高“ 1”释放总线准备读数据。(4) 延时4微妙。(5) 读数据线的状态得到1个状态位,并进行数据
18、处理。(6) 延时30微妙。(7) 重复17步骤,直到读完一个字节。2.4显示模块设计1602液晶显示器概述1液晶显示器简介液晶显示器的主要工作原理是通过电流刺激液晶分子,从而产生点、线、面、并配合背部灯管构成不同的显示画面。各种不同型号的液晶显示器都是按照显示字符的行数或者是液晶显示器点阵的行、列数进行命名的。例如:1602液晶显示器所表述的意思就是, 每行显示16个字符,一共能够有两行进行显示字符。本设计就是应用1602液晶显示器进行显示温度以及定时时间。液晶显示器的英文名称是LiquidCrystal Display,所以液晶显示器又可以叫做LCD,以下的1602液晶显示器都称为LCD1
19、602。字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式液晶显示器,LCD1602以并行操作方式占大多数,但是有的也并行操作方式和串行操作方式同时具有,用户自行选择并口或串口操作。2. LCD1602的基本参数及引脚功能:LCD1602分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的要厚,是否带背光在应用中并无差别,两者尺寸差 别,如图2-5所示:图2-5LCD1602尺寸图3. LCD1602主要技术参数:(1) 显示容量:162个字符芯片工作电压:4.5 5.5V (3)工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V(5)字符尺寸:4.
20、 引脚功能说明:LCD1602采用标准的14脚(无背光)或16脚(带背光)接口,各引 脚接口说明如表2-1 所示:第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时 对比度最高,对比度过高时会产生 “鬼影”,使用时可以通过一个 10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。表2-1 LCD1602引脚接口说明编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据口2VDD电源正极10D3数据口3VL液晶显示偏压11D4数据口4RS数据/命令选择12D5数据口5R/W读/写
21、选择13D6数据口6E使能信号14D7数据口7D0数据口15BLA背光源正极8D1数据口16BLK背光源负极第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当 RS为 低电平R/W为高电平时可以读忙信号, 当RS为高电平R/W为低电平 时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。5. LCD1602的指令说明:LCD1602内部的控制器共有11条控制指令,如表3-2所示。LCD1602液晶模块的读写
22、操作、屏幕和光标的操作都是通过指令编程来实现的。(说 明:1为高电平、0为低电平)表3-2 LCD1602控制指令序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM10要写的数据内容11从CGRAM 或DDRAM 读数11读出的数据内容指令1
23、:清显示,指令码 01H,光标复位到地址 00H位置。指令2 :光标复位,光标返回到地址00H。指令3:光标和显示模式设置I/D:光标移动方向。高电平右移,低电平 左移。S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平 则无效。指令4 :显示开关控制。 D :控制整体显示的开与关,高电平表示开显示, 低电平表示关显示。C:控制光标的开与关, 高电平表示有光标,低电平表示无光标。B :控制光标是否闪烁,高电平闪烁,低电 平不闪烁。指令5:光标或显示移位。S/C:高电平时移动显示的文字,低电平时移动 光标。指令6 :功能设置命令。DL :高电平时为4位总线,低电平时为 8位总线。N :低
24、电平时为单行显示,高电平时双行显示。F:低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7 :字符发生器 RAM地址设置。指令& DDRAM地址设置。指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块 不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。6. LCD1602的RAM地址映射及标准字库表:液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要 先输入显示字符地址, 也就是告诉模块在哪里显示字符,图2-7是LCD1602的内部显示地址。在对液
25、晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块 是否处于忙的状态。图2-7 LCD1602内部显示地址LCD1602液晶模块内部的字符发生存储器(CGROM )已经存储了 160个不同的点阵字符图形,如图3-7所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号等,每一个字符都有一个固定的代码,比如大写 的英文字母“ A ”的代码是01000001B( 41H),显示时模块把地址 41H中 的点阵字符图形显示出来,我们就能看到字母“A”。7. LCD1602的一般初始化(复位)过程:写指令38H :显示模式设置写指令
26、08H :显示关闭写指令01H :显示清屏写指令06H :显示光标移动设置写指令OCH :显示开及光标设置显示模块电路在该系统中显示用到的是 LCD1602液晶显示器。液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在各种小系统中得到了非常广泛的应用。LCD1602是指显示的内容为16X 2,即可以显示2行,每 行16个字符液晶模块(显示字符和数字)。LCD1LM016L7 8 9 0 1 2 141 2 34 5 6图2-8LCD1602与单片机接线电路图2.5模块设计键盘电路功能设定键盘电路图如图2-9所示。图2-9键盘电路图按键S116组成矩阵键盘与单片机AT89C52的
27、P3 口相连接。S2为“加”,S10为“减”,S3启动/关闭,S5为启动智能空调制冷状态,S6为调节走时按键,S7为启动智能空调暖风工作状态,S13为开启/关闭定时,S14为调节定时。矩阵键盘电路工作原理矩阵键盘采用动态扫描的方式:首先给P3.0 口低电平,然后逐列扫描,如果S1键按下则P3.4 口为低电平;然后给 P3.1 口低电平,再逐列扫描, 以此类推,直到 P3.3为低电平,扫描完一次矩阵键盘。2.6外围驱动电路模块设计261驱动电路本系统中AT89C52单片机根据读取的按键值,做出不同的响应动作。单片机只是一个主控方,他的强大功能必须依靠外围器件驱动才能完成,所以本设计中通过三极管
28、VT1(8550),继电器K1后,驱动智能空调的启动 /停止功能,最终使室内的温度保持在一个人为感觉良好的理想状态。通过 控制继电器的通/断即可达到智能空调智能控制的要求。驱动电路图如图2-10所示。图2-10驱动电路图继电器继电器的工作原理实质是通过低电压、小电流控制高电压、大电流。JQC-3FF-5V继电器的触点形式是一开一闭。继电器的工作参数如表3-4所示。表2-4继电器工作参数额定电压:DC-12V额定电流:12触点切换电流:10触点切换电压:1防护特征:塑封式触点负载:大功率应用范围:电磁型号:JQC-3FF-5VDC-1ZS(551)触点形式:一开一闭3系统软件设计系统软件设计采用
29、模块化、结构化的设计思想,使程序便于移植。系 统程序主要包括主程序、系统宏定义、键盘处理函数、LCD显示函数、温度检测、系统控制算法函数。首先系统上电后启动系统功能,此时处于待机状态,S3按下后液晶显示器显示,空调开始工作,然后可以通过人机交互选择系统所运行的功能。系统上电后自动开始走时,开机后显示器显示时间、 室内温度确定值、设定值以及定时时间。通过人机交互选择系统所运行的功能,确定这些数 值是否需要进行改动。当上述所有数值设定好后, 再次通过人机交互选择系统所运行的功能, 把所定时的时间写入到单片机的EEPROM中,把定时功能开启。智能空调控制系统的主程序流程图,如图3-1所示:图3-1主
30、程序流程图智能空调控制系统按键部分的子程序流程图,如图3-2所示:图3-2按键部分的子程序流程图液晶显示部分的子程序流程图,如图3-3所示:图3-3液晶显示部分的子程序流程图4系统测试及结果分析通过两周的设计和制作,本系统成功地实现了设计要求。为验证系统的功能和各项技术指标,下面通过实验对本系统进行功能验证。4.1系统测试i.首先上c电d 液晶显示器不显示。2.S3按下后显示走时,定时、实际温度值等。3.按下IS按键,开启暖风模式,右上角显示1.rb 7D6D5D4D3d2d1DODESR EEV DDV SSV314. 按下S13按键,开启定时模式。LM016L5. 定时模式开启时,按下S1
31、4按键,可调节定时时间。此时光标闪烁。 按下S2或S9可调节时间。7D6d5d4d3d2d1DODESR ELE DDV SS123456 789LCD16. 按LMS66按键,光标在时间处闪烁,此时按下S2或S9可调节时间。7D6D5D4D3d2d1DODE 5W SR EEV DDV CSV彳034.2系统测试结果及分析通过以上的测试数据分析,可以得出以下结论:1、本系统的走时功能,定时功能得以实现。2、本装置使用了矩阵键盘。按键简洁方便,满足人们的习惯。可实 现各个功能的调节与运行。3、走时精确度较高,与现实的时间相差甚小,可以完全作为一个电 子钟使用。走时精确,而就会减小定时长短的失误
32、,更加精确化。禾U用单 片机的自身资源,节省了成本,减少了外围电路的设计。4、温度传感器检测的实时温度准确度较高,可以使室内温度始终保 持在一个比较理想的状态中,使人们的生活更加舒适。5、 在本设计中,为了防止在温控点上压缩机频繁的启动 /关闭,影响 其寿命,温控的精度误差控制在1摄氏度。实践证明,这对室内的温度并没 有明显的影响。结 论本论文分析了智能空调控制系统结构和特点,总结全文,主要的研究工作有以下几个方面:1、对智能空调控制系统的原理和组成进行了详细的介绍,确定了系 统的总体设计方案。2、对智能空调控制系统的控制过程做了准确的算法分析,包括检测 过程中的实时温度、按键复用、驱动等,通
33、过上述分析最终通过程序算法 实现温度的自动控制控制。3、对键盘详细的分析, 采用内部定时器产生实时时钟供显示屏显示, 使其可作为一台精度较高的电子时钟使用。这样节省了成本。4、以AT89C52最小系统板为控制系统,进行并完成了系统要求所需的各硬件模块的原理图,并做了相应的硬件制作调试。采用了DS18B20温度传感器检测实时温度状态,使数据更准确,并对DS18B20温度传感器进行了精确的控制,提高了检测系统的可靠性。5、完成了相关的分析算法程序和各功能模块的应用程序的设计,实 现了温度控制。整个软件的设计采用模块化、结构化设计思想,使程序便 于移植。6、分析了控制系统中可能存在的各种干扰源,在设
34、计控制系统时, 采用硬件和软件抗干扰技术相结合的方法进行了抗干扰设计,保证了控制 系统的可靠性。1 谭浩强,C程序设计.北京:清华大学出版社,2005.07 。2 7805电压转换模块使用说明书。3 DS18B20温度传感器使用手册。4 LCD1602液晶显示模块使用说明书。5 数字电子技术基础。常丹华 主编6 单片机原理及应用技术。张淑清等编著7 百度文库以及网上的各种资料。附录1系统主程序/包含所需头文件#in clude<reg52.h>#i nclude"LCD1602.h"#in clude"ds18b20.h"#defi ne u
35、int un sig ned int#defi ne uchar un sig ned char/uchar key_value;sbit led=P2A2;/电源指示灯uchar p;/定时中断参数uchar key_sca n();/矩阵键盘扫描*定时中断初始化 */void dszd_ in it()TMOD=0x01;TR0=1;TH0=(65535-10000)/256;TL0=(65535-10000)%256;ET0=1;EA=1;*空调启动停止*uchar start()if(key_value=2)/按键s3按下打开/关闭空调delay(500);延时500mskey_val
36、ue=0;s3nu m+;s3n um=s3 num%2;if(s3 num=1)begi n=1;if(s3 num=0)begi n=0;if(s3num=1 &&r=1 &&si num=0&&s2num=0)/开关打开 /并且开启定时并且没有进行调试if(hour=hour_1 &&mi n=min_1) begi n=0;s3num=0;return begi n; void compare。/*室温与设定温度比较*/if(cold=0)制冷模式下if(temper-temp>1)|(temp_temper>
37、1)jidia nqi_1=1;/温差大于一度启动电动机if(temper=temp)室内温度等于设定温度关闭/电动机jidia nq i_1=0;if(hot=0)暖风模式下if(temper-temp>1)|(temp_temper>1)jidia nq i_2=1;/温差大于一度启动电动机if(temper=temp)/室内温度等于设定温度关闭电动机jidia nq i_2=0;/*主程序 *void mai n()dszd_i nit();while(1)key_sca n(); start();write_com(0x08);jidia nq i_1=0;jidia nq
38、i_2=0;cold=0;hot=0;while(begi n)/开定时中断开矩阵键盘扫描/关闭显示/启动前电机关闭/制冷/暖风指示灯关闭ini t();cold=0;hot=1;while(beg in)led=1;write_hms(0,hour);/初始化液晶显示/默认为制冷模式电源指示灯一直亮write_hms(3,mi n);write_hms(6,sec);/显示时间key_sca n();/矩阵键盘扫描start();扫描空调开启/关闭lcd_mode();工作模式LCD_sca n();/更新液晶时间显示lcd_temp();/更新液晶温度显示din gshi();/定时时间显
39、示和调节LcdDisplay(Ds18b20ReadTemp(); 温度检测compare();温度比较,控制电动机起动/关闭定时中断*void TimerO() in terrupt 1TH0=(65536-10000)/256;TL0=(65536-10000)%256;P+;if(p=100)P=0;sec+;if(sec=60)sec=0;mi n+;if(mi n=60)mi n=0;hour+;if(hour=24)hour=0;子程序LCD1602.h#ifndef _LCD1602_H_#defi ne _LCD1602_H_#defi ne uint un sig ned i
40、nt#defi ne uchar un sig ned charuchar key_value;sbit cold=P2A0;/绿灯时制冷指示灯sbit hot=P2A1;/红灯为暖风指示灯sbitjidia nqi_ 1=PUi;sbitjidia nq i_2=P1A2;*定义液晶显示器 *sbit LCDE=P2A7;sbit LCDRS=P2A6;sbit LCDRW=P2A5;uchar nu m,s1 nu m,s2 nu m,s3 nu m,r;uchar hour,m in, sec,hour_1=1, min_1;uchar temper=26;uchar shi,ge;uc
41、har begi n;/液晶显示器第一行显示结果/液晶显示器第二行显示结果uchar code table_1="27/ /26 OFF 0"uchar code table_2="00:00:0000:00"void delay(ui nt z)/1ms 延时函数uint i,j;for(i=0;i<z;i+)for(j=0;j<110;j+);*矩阵键盘扫描程序*/uchar key_sca n()uchar table=0,i; for(i=0;i<4;i+)P3=(0x10<<i);table=P3;table=ta
42、ble&OxOf;if(table!=OxOf)delay (5);/ 去抖table=P3;区分独立键盘table=table&OxOf;if(table!=0x0f)switch(table)case OxOe:key_value=O+i;break;case OxOd:key_value=4+i;break;case 0x0b:key_value=8+i;break;case 0x07:key_value=12+i;break;while(table!=OxOf)松手检测table=P3;table=table&OxOf;return key_value;*液晶显
43、示器写命令 *void write_com(uchar com)LCDRS=O;LCDRW=O;PO=com;delay(5);LCDE=1;delay(5);LCDE=0; void in it()*液晶显示器写数据*/void write_data(uchar date)LCDRS=1;LCDRW=0;P0=date;delay(5);LCDE=1;delay(5);LCDE=0;延时5ms*液晶显示器初始化*/LCDE=0;write_com(0x38); /显示模式设制write_com(0x0c); /开显示不显示光标光标不闪烁write_com(0x06); /当读或写一个字符后地
44、址指针加一,且光标加一 整屏不移动write_com(0x01); / 显示清屏write_com(0x80); /设计数据指针地址 for(num=0; num <16; nu m+)write_data(table_1 nu m);delay(20);延时 20 ms换行write_com(0x80+0x40); /重新设置数据指针for(num=0; num <16; nu m+)write_data(table_2 nu m); delay(20);伴*void write_hms(uchar add,uchar date) uchar shi,ge;shi=date/10
45、;ge=date%10;write_com(0x80+0x40+add);write_data(0x30+shi);write_data(0x30+ge); void write_temp(uchar date)*uchar shi,ge; shi=date/10; ge=date%10;write_com(0x80+0x07); write_data(0x30+shi); write_data(0x30+ge);/*调整液晶显示器时间 *void LCD_sca n()uchar panduan_1;if(key_value=5)/按键S6摁下panduan_1=1;/delay(50);/
46、延时50mswhile(pa ndua n_1)if(key_value=5)delay(500);延时500ms防止加的过快s1nu m+;key_value=0;if(s1 num=1)TR0=0;/停止时间计时write_com(0x80+0x40+1);/重新设置数据指针换行write_com(OxOf);II显示光标光标闪烁if(s1 num=2)write_com(0x80+0x40+4);if(s1 num=3)write_com(0x80+0x40+7);if(s1 num=4)s1num=0;write_com(OxOc);TR0=1;pan duan_仁0;/判断标志位清零
47、退出时间调if(s1 num!=0)if(key_value=1)/ 按键 S2 按下delay(500);延时500ms防止加的过快key_value=0;if(s1 num=1)hour+;烁小时处闪烁处闪烁处闪烁if(hour=24)hour=0;write_hms(0,hour);/光标在小时处闪write_com(0x80+0x40+1); 使光标再回到if(s1 num=2)mi n+;if(mi n=60)mi n=0;write_hms(3,min); /光标在分处闪烁write_com(0x80+0x40+4); 光标再回到分if(s1 num=3)sec+;if(hour=60)sec=0;write_hms(6,sec);光标在秒处闪烁write_com(0x80+0x40+7); 光标再回到秒if(key_value=9)/ 按键 S10 按下delay(500);延时500ms防止减的过快key_value=0;if(s1num=1)hour-;if(hour=-1)hour=23;回到小时处闪烁write_hms(0,hour); /光标在小时处闪烁 write_com(0x80+0x40+1);/ 使
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工具与平台的使用技巧提升计划
- 幼儿园节庆活动安排计划
- 三年级信息技术上册 第十二课 一箭双雕-巧用Shift和Caps Lock键教学实录 川教版
- 物业管理半年工作总结
- 菲林丝印培训
- 2025年小班美术标准教案糖果
- 2023六年级数学上册 四 百分数练习三配套教学实录 北师大版
- 培养幼儿园小班的节俭与环保习惯计划
- 《第一单元 智能机器人 第2课 机器人的基本结构和原理》教学设计教学反思-2023-2024学年初中信息技术青岛版2024第二册
- 四年级上册数学教案-商不变的性质 苏教版
- 【MOOC】高频电子技术-四川信息职业技术学院 中国大学慕课MOOC答案
- 2023年全国中学生生物学联赛试题及详细解析
- 交通法规新规定全文培训
- 【MOOC】电子线路设计、测试与实验(二)-华中科技大学 中国大学慕课MOOC答案
- 兴业银行个人助学贷款协议
- 医院依法执业培训课件
- 注册监理工程师练习题库(附答案)
- 2024年甘肃省公务员录用考试《行测》真题及答案解析
- 2024年广东省公务员录用考试《行测》真题及解析
- 人际交往与人际沟通
- “双循环”视阈下我国稀土产业价值链的逻辑构成与重构路径研究
评论
0/150
提交评论