基于单片机的智能空调设计_第1页
基于单片机的智能空调设计_第2页
基于单片机的智能空调设计_第3页
基于单片机的智能空调设计_第4页
基于单片机的智能空调设计_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科论文目录TOC\o"1-3"\h\u摘要 IAbstract II引言 11系统整体设计 31.1系统方案设计 31.2系统工作原理 32硬件设计 52.1电源模块设计 52.1.1电源模块选择 52.1.2电源模块电路设计 52.2单片机模块设计 52.2.1单片机型号选择 52.2.2单片机模块电路设计 62.3按键模块设计 72.3.1按键模块选择 72.3.2按键模块电路设计 72.4显示模块设计 72.4.1显示模块选择 72.4.2显示模块电路设计 72.5温度传感器模块设计 82.5.1温度传感器选择 82.5.2温度传感器模块电路设计 82.6红外传感器模块设计 92.7继电器模块设计 93软件设计 113.1系统主程序设计 113.2LCD液晶显示子程序设计 113.3温度控制子程序流程 124系统调试 134.1软件调试 134.2实物调试 13结论 15参考文献 16附录1原理图 18附录2源程序代码 19致谢 31本科论文摘要为了研究智能空调更简便的智能控制与管理操作,实现空调节能环保效果,对空调温度控制、感知人数等各个方面技术进行完善,利用数字[1]和模拟电路控制技术[2]以及微处理器控制技术实现了硬件和软件的集成。以STC89C52单片机为核心,温度传感器、红外传感器、继电器加以辅助进行设计,使设计运行稳定。温度控制系统的设计是为了处理社会上存在的某些浪费现象,从而节省能源。空调设置为手动和自动两种模式,其中自动模式是利用红外传感器检测人体信号,实时显示室内人数,根据室内人数控制空调的开关;手动模式是设置温度的上、下限值,根据当前室内温度,空调自动制冷或者制热,风扇转动或者加热片发热。结果表明,微机控制技术的应用,使硬件与软件相结合,大大提高了室内空调的使用功能,大大简化了温度控制及其日常运行;不仅不同区域的用户完全满足了房间内环境温度调节的不同要求,而且空调能够完全智能自动调节室内的环境温度,使得室内空调系统具有环保节能、操作更简单、无任何机械控制装置、安全防护性能更强等五大特点,采用单片机控制技术降低了系统成本,方便了实际的控制操作,提高了室内空调所用能源的综合利用率。关键词:智能空调;单片机控制;传感器;继电器

AbstractInordertostudythemoreconvenientintelligentcontrolandmanagementofintelligentairconditioning,andrealizetheenergysavingandenvironmentalprotectioneffectofairconditioning,theairconditioningtemperaturecontrol,thenumberofpeopleperceivedandotheraspectsofthetechnologytoimprove,theuseofdigitalandanalogcircuitcontroltechnologyandmicroprocessorcontroltechnologytoachievetheintegrationofhardwareandsoftware.STC89C52microcontrollerasthecore,temperaturesensor,infraredsensor,relaytoassistthedesign,sothatthedesignoperationstability.Thetemperaturecontrolsystemisdesignedtosaveenergybydealingwithsomewasteinsociety.Theairconditioningissetintwomodes:manualandautomatic.TheautomaticmodeUSESinfraredsensorstodetectthehumanbodysignal,displaysthenumberofpeopleintheroominrealtime,andcontrolstheswitchoftheairconditioningaccordingtothenumberofpeopleintheroom.Themanualmodeistosettheupperandlowerlimitsoftemperature.Accordingtothecurrentindoortemperature,theairconditionerwillbecooledorheatedautomatically,andthefanwillrotateortheheaterwillgenerateheat.Theresultsshowthattheapplicationofmicrocomputercontroltechnologycancombinethehardwareandsoftware,greatlyimprovethefunctionofindoorairconditioning,andgreatlysimplifythetemperaturecontrolanditsdailyoperation.Differentpartsoftheusernotonlyfullymeetthedifferentrequirementsoftheroomtemperatureadjustment,andairconditioningcanfullyintelligentautomaticadjustindoortemperature,makeindoorairconditioningsystemhastheenvironmentalprotectionandenergysaving,simpleoperation,withoutanymechanicalcontroldevice,safetyperformanceisstrongerandsoonfivebigcharacteristics,controlledbysinglechipmicrocomputertechnologytoreducethesystemcost,convenientoperation,theactualcontrolcanimprovetheindoorairconditioningcomprehensiveutilizationoftheenergyused.Keywords:Intelligentairconditioning;Singlechipcontrol;sensor;relay引言二十一世纪是人类科学信息技术迅速进步发展的黄金时代,电子技术和微控制器技术[3]的广泛应用涉及规模空前广泛。随着信息科技和工业生产的不断进步发展,需要用来测量不同的物体温度,因此,温度一词在人们生产和生活之中已经出现并且其使用量和频率也在不断地增多。相应地,温度控制和测量也已经成为了人们生活中和生产中频繁地被使用的两个词语,与此同时,它们一直在所有部门发挥重要的指导作用。在日益发达的现代工业中,为了保证正常的工业生产,必须实时测量和自动控制空气温度的变化。在现代农业中,用于大棚蔬菜养殖大棚的长期恒温储水保产。温度控制不仅给我们提供了一个舒适的工作环境,在工业节能环保方面也已经取得了一些重大成果。本设计以STC89C52单片机为核心,温度传感器测试温度、红外传感器感知人数、继电器加以辅助进行设计,使设计运行稳定。智能温度管理系统已被重新设计和安装,以处理目前在社区中发生的一些不良现象,即大量使用能源的浪费。利用红外温度传感器自动检测整个房间的人数,然后温度传感器自动确定空调温度下的整个房间的温度,最后通过继电器自动控制空调制冷、制热。微处理器控制技术降低了系统成本,简化了设计操作,提高了空调的整体能源效率。现代智能空调不仅利用数字和模拟电路技术,而且利用微处理器技术实现软硬件的结合。它改进了空调并简化了空调的操作,满足了用户对环境温度的不同要求,并完全适应了空调所处的环境。因此,空调的特点是节能、操作简单、安全。随着电子产品的快速发展,低价和温度控制系统越来越受到消费者的青睐。中国的空调行业继续快速发展。随着改革开放,国民经济迅速发展,空调产品从“奢侈生活”逐步过渡到日常生活。对国内空调行业的发展具有重要的激励作用。中国空调市场正在成熟,广大用户认准实用性好、性价比高的空调。空调行业正在稳步发展,支持政策实施的空调制造商和分销商增加了第三和第四阶段的扩张。国内空调市场逐步发展,新型空调得到了研究和开发。空调行业不断发展,空调企业也在不断发展。在技术方面,从引进到不断创新。空调的绿色化、智能化、网络化和信息化等发展使空调市场发展前景十分乐观。本设计以采用单片机为设计核心,设置手动和自动两种模式。其中自动模式主要是通过利用红外传感器[4]自动检测室内人体体温信号,实时自动显示室内人数,根据室内人数自动控制室内空调的开关;手动模式主要是通过设置温度的上、下限值,根据当前温度,空调自动制冷或者制热。当室内温度下降且低于系统设置的温度下限值时,继电器[5]自动控制空调制热,加热片发热;当室内温度高于系统设置的温度控制上限值时,继电器控制空调制冷,风扇转动降温。空调自动制冷或者制热的主要前提条件是室内有人,当室内没有人时,空调自动关闭,达到节能的主要效果。设计思路为:系统的硬件设计,主要从元器件的选择和其电路原理图进行设计;设计绘制单片机主控模块电路原理图;设计各功能模块电路并绘制原理图;设计程序流程图,编写程序;进行调试,修改完善。设计将重点解决的问题有:(1)选择单片机作为主控模块控制器;(2)选择符合系统需要的温度传感器用来检测温度;(3)选择符合系统需要的红外传感器用来感知人数;(4)继电器控制模块控制空调制冷、制热,根据设计绘制原理图;(5)选择合适的LCD显示当前温度值、人数、温度上下限值。1系统整体设计1.1系统方案设计本设计主要通过对温度测量来进行制冷或制热,从而降低或升高室内温度。所以主要通过两种方案对测温电路的选择来设计系统方案。方案一:采用PT100进行温度测量。PT100传感器[6]用于测量随温度变化的铂电阻和某些功能的特性。它具有抗振特性,稳定性好,精度高,抗高压等特点。但更复杂的是,测量到的温度变化将取决于采集的电压或电流,单片机将通过A/D转换[7]后的电压或电流用于数据处理,然后显示测量的温度。需要使用A/D转换电路设计,这也意味着电阻的值和热电路的计算更加困难,空调机内部中高密度的集成电路以及电子器件更容易出现较大的误差从而影响空调性能。方案二:采用DS18B20进行温度测量。DS18B20传感器简化了采用微处理器的数据处理和测量控制,避免了由于传统采用温度自动测量方法的许多外围集成电路。该系列芯片产品可广泛作为各种工业电磁温度计的测量重要元件,具有良好的双向线性温度形状。温度自动测量管理系统的整体结构相对简单,体积适中。由于软件采用单片机控制,可以对各种软件过程进行自动编程,实现各种复杂算法和各种逻辑控制,并且软件体积小、安装方便。结合上述两种方案,采用方案二,通过DS18B20温度传感器测量实时温度可以符合我们的实际应用需求。因此,选择方案二作为总体方案设计。1.2系统工作原理本设计以STC89C52单片机为核心控制设计,应用了测温技术、红外感知技术、LCD显示设计技术、继电器控制设计技术和按键功能设计技术。单片机连接各类传感器和控制电路设备,进而实现各种功能运行。总体设计框图如图1.1所示。继电器制热继电器制冷LCD液晶显示STC89C52继电器制热继电器制冷LCD液晶显示STC89C52单片机红外传感器电源模块按键模块温度传感器图1.1系统总体设计框图DS18B20温度传感器实时检测室内温度,传送数字信号给STC89C52单片机,红外计数传感器自动检测室内人体活动信号,实时显示室内使用人数,根据室内人数自动控制空调开关。室内有人时,温度传感器实时检测室内温度达到低于系统设置的室内温度下限值时,继电器控制空调制热,加热片自动发热;温度传感器实时检测室内温度达到高于系统设置的室内温度上限值时,继电器控制空调制冷,风扇转动降温。当室内无人时,空调自动关闭,达到节能的主要效果。按键模块可以手动设置温度的上限值和下限值,过程中检测到的实时温度和人数都在LCD液晶显示器上显示出来。2硬件设计2.1电源模块设计2.1.1电源模块选择方案一:采用5V蓄电池做电源。蓄电池产品具有稳定的工作电压、便宜的使用价格,可靠性高。由于其产品体积过大、使用寿命时间短、需要长时间保养维护,故必须舍弃。方案二:采用3节南孚电池共4.5V做电源。不仅可以满足所有单片机、传感器的工作电压,而且使用干电池安装更换方便。因此,选择方案二,采用3节南孚电池共4.5V做电源。2.1.2电源模块电路设计电源输入模块使用4.5V电源进行供电,电路简单、稳定。电源模块由二极管、电阻、自锁开关和直流电源构成。二极管灯亮显示电源是否正常通电,电阻起到自动限流、二极管保护器的作用,自锁电源开关按下后,二极管亮,输出电源,系统正常运行;自锁开关再次按下后,二极管灭,停止电源输出。电源电路原理图如2.1所示。图2.1电源电路原理图2.2单片机模块设计2.2.1单片机型号选择方案一:采用MSP430作为主控制器,MSP430[8]是一种16位的混合信号处理器[5],具有非常小的输出功率和低消耗的巨大优点,同时集成了许多控制电路,提供“单一”混合数字信号处理解决办法。MSP430F149是一个16位、超低功耗的混合型单片机,并且可靠性高,易于使用的优点。但价格太高,故舍弃。方案二:采用STC89C52作为主控制器,STC89C52[9]是8051单片机增强型,可以满足设计要求。因此,选择方案二,采用STC89C52作为主控制器。2.2.2单片机模块电路设计STC89C52单片机可以真正做到它的指令集和代码与传统的8051完全相互兼容。工作电压在3.2V-5.6V的最大适用范围,实际使用工作频率最高可直接达到48MHz,含有40个引脚、32个通用I/O口。单片机引脚图如图2.1所示。图2.2单片机引脚图单片机最小系统原理图如图2.3所示。图2.3单片机最小系统原理图时钟晶振电路:由于单片机在运行中处理任何复杂的事件都可能需要一定的时序,时钟晶振电路为单片机系统稳定的运行时序提供了保障。时钟晶振电路主要组成部分是由一个晶振以及两个晶振电容共同构成,其中晶振12MHz,电容30pF,电容起到了帮助晶振进行起振的作用。复位电路:在单片机最小系统中,复位电路连接单片机的RST引脚。RST引脚作为系统复位端,当按下复位按键时,系统无论进行到哪里都需要停止当前运行状态,重新开始运行。2.3按键模块设计2.3.1按键模块选择方案—:采用矩阵式键盘[10],它由行和列组成,按钮位于行和列的交点处。电路复杂,编程难,故舍弃。方案二:采用独立式按键电路,独立式按键采用机械弹性复位,具有体积小的优点,电路设计较为容易。因此,选择方案二,独立式按键电路。2.3.2按键模块电路设计按键可以通过按下按钮来激活开关并释放按键来释放开关,其原理是通过点击按钮上的金属弹簧来连接。三个按键分别是功能键,可以选择所需设置;加键,增加温度的数值;减键,降低温度的数值。按键电路原理图如图2.4所示。图2.4按键电路原理图2.4显示模块设计2.4.1显示模块选择方案一:采用数码管显示作为显示模块,数码管只适用于显示数字,故舍弃。方案二:采用LCD液晶显示作为显示模块,LCD1602液晶显示器[11]具有强大的数字显示功能,可以同时显示16*2个字符,功耗低,抗干扰能力强。因此,选择方案二,LCD液晶显示作为显示模块。2.4.2显示模块电路设计本设计采用LCD1602液晶显示器,该显示器由单片机进行驱动,其数字显示功能强大,可以同时显示多量的英文数字和各种文字、图形等,显示清晰且美观,价格也十分便宜,最佳的工作电压大约为5V。显示器的命令操作插脚和数据插脚分别与单片机的不同引脚相连接。显示模块电路原理图如图2.5所示。图2.5显示模块电路原理图2.5温度传感器模块设计2.5.1温度传感器选择方案一:采用PT100作为测温电路的温度传感器。PT100传感器主要适用于嵌入式测量电路中随环境温度变化的嵌入式铂电阻和某些特殊功能的铂电阻特性。它在设计上具有良好的抗振特性、稳定性好、精度高、抗高压等诸多特点。但使用起来比较复杂,故舍弃。方案二:采用DS18B20作为测温电路的温度传感器。DS18B20温度传感器化了采用微处理器的数据处理和测量控制,避免了由于传统采用温度自动测量方法的许多外围集成电路。可以对各种软件过程进行自动编程,实现各种复杂算法和各种逻辑控制,并且软件体积小、安装方便。因此,选择方案二,DS18B20温度传感器。2.5.2温度传感器模块电路设计本设计采用DS18B20温度传感器测量实时温度,传递数字信号给单片机,再由单片机输出给显示器显示。DS18B20温度传感器的DATA脚与单片机P13引脚相连接。温度传感器模块电路原理图如图2.6所示。图2.6温度传感器模块电路原理图2.6红外传感器模块设计本设计采用的红外计数传感器,感知室内人体信号,传递给单片机,显示器实时显示室内人数,根据室内人数控制空调的开关。hongwai1和hongwai2两个传感器分别与单片机P32和P33引脚相连接。红外传感器模块电路原理图如图2.7所示。图2.7红外传感器模块电路原理图2.7继电器模块设计继电器模块采用PNP型S8550三极管[12]进行驱动。继电器制冷:制冷模块采用风扇进行制冷,当红外传感器感知到人体信号时,温度传感器自动确定整个房间的温度,当检测到的温度高于设置温度上限值时,单片机输出电流,三极管作为开关饱和导通,继电器得电导通,空调开始制冷,风扇高速转动,同时D1亮起。继电器制冷电路原理图如图2.8所示。图2.8继电器制冷电路原理图继电器制热:制冷模块采用加热片进行制热,当红外传感器感知到人体信号时,温度传感器自动确定整个房间的温度,当检测到的温度低于设置温度下限值时,单片机输出电流,三极管作为开关饱和导通,继电器得电导通,空调开始制热,加热片快速升温加热,同时D2亮起。继电器制热电路原理图如图2.9所示。图2.9继电器制热电路原理图3软件设计213003.1系统主程序设计主程序流程图如图3.1所示,开机后液晶初始化,定时器[13]初始化,红外计数传感器统计人数,温度传感器采集并读取温度,显示器显示人数、温度,继电器制冷制热,按键设置温度上限值和下限值。人数统计液晶初始化人数统计液晶初始化定时器初始化出去-1进来+1300ms采集一次数据读取温度值显示人数温度继电器制冷制热NY按键设置温度开始结束图3.1主程序流程图213003.2LCD液晶显示子程序设计LCD显示当前温度、温度上限值、温度下限值、人数。上电初始化,读取人数和温度,将实时采集的数据显示在显示器上。LCD液晶显示程序流程图如图3.2所示。系统初始化系统初始化单片机处理数据设置温度上、下限值温度、人数采集LCD显示屏显示开始图3.2LCD液晶显示程序流程图3.3温度控制子程序流程主要功能是在读取当前温度数据并判别温度的上下限数值后,用继电器制冷制热进行环境温度控制。系统完成初始化后由单片机判断当前温度在与设定的温度值相对比,如果温度过高进行制冷,反之如果温度过低进行制热。温度控制程序流程图如图3.3所示。系统初始化系统初始化判断当前温度继电器制冷YN温度是否过高开始图3.3温度控制程序流程图4系统调试4.1软件调试本设计基于单片机控制,使用的单片机型号为STC89C52单片机,编译的语言以C语言[14]为主,编译软件为Keil4。Keil4[15]使用的基本方法,首先需要建立一个新的项目,选择使用的单片机类型,编写一个新的单片机程序,编写完程序后进行编译,编译就是检测程序是否有错误和警告[16],警告不会影响程序的运行。在编译程序之后,生成.hex文件。Keil4编译环境图如图4.1所示。图4.1Keil4编译环境图调试时遇到的问题及解决方法:(1)程序汇编时出现丢失符号的情况,需要仔细查找对应的“{}”,确保前后均在;(2)程序汇编时含有中文标点符号,需要将中文标点符号改成英文;(3)程序汇编[17]时出现字母“O”和数字“0”混杂。汇编时一定要注意细节。4.2实物调试根据本设计要求,对实物设计功能进行整体测试。观察是否有缺焊、漏焊现象,焊点是否饱满;使用万用表[18]调试。首先查看电源管脚电路是否短路,然后测量管脚[19]是否连接正确,有没有接线错误;进电后查看每个元器件是否正常工作,然后测试各元器件功能。DS18B20温度传感器正常采集温度[20],红外计数传感器正常采集人数,显示屏显示数值,按键功能可以实现,继电器制冷风扇转动,继电器制热电热片发热。经过测试后系统运行正常,没有出现问题。实物展示图如图4.2所示。图4.2实物展示图

结论通过以上分析,采用STC89C52单片机作为主控制器完全符合本设计的控制需求。STC89C52单片机可以真正做到它的指令集和代码与传统的8051完全相互兼容,它不但展现了应用单片机最小系统的灵活性,而且还具有多功能性。采用单片机作为本次项目核心设计,运用DS18B20温度传感器采集实时温度,根据系统设置的温度上限值和温度下限值,继电器进行实时制冷或制热;通过红外计数传感器采集人数,根据室内人数控制空调的开关,当室内人数为零时,空调自动关闭,大大节约了能源。本设计应用了测温技术、红外感知技术、LCD显示设计技术、继电器控制设计技术和按键功能设计技术。本设计以采用单片机为设计核心,设置手动和自动两种模式。其中自动模式主要是通过利用红外传感器自动检测室内人体体温信号,实时自动显示室内人数,根据室内人数自动控制室内空调的开关;手动模式主要是通过设置温度的上、下限值,根据当前温度,空调自动制冷或者制热。当室内温度下降且低于系统设置的温度下限值时,继电器自动控制空调制热,加热片发热;当空调室内温度高于系统设置的温度控制上限值时,继电器控制空调制冷,风扇转动降温。空调自动制冷或者制热的主要前提条件是室内有人,当室内没有人时,空调自动关闭,达到节能的主要效果。采用单片机控制技术降低了系统成本,方便了实际的控制操作,提高了室内空调所用能源的综合利用率。

参考文献[1]卢重庆,蒋崇瀚.探析计算机高速数字电路设计技术及优化措施[J].电子世界,2020(05):164-165[2]杨皓翔.模拟电子技术与数字电子技术的比较分析[J].数字技术与应用,2019,37(08):200+202[3]蔡金苹.单片机技术在智能电子产品中的应用探讨[J].科技创新导报,2019,16(28):97-98[4]易金桥,黄勇,廖红华,谭建军,姜胜林.热释电红外传感器及其在人员计数系统中的应用[J].红外与激光工程,2015,44(04):1186-1192[5]BergerMartin,KnittlFrankChristian,BauerSophie,WinterGeorg,MaulideNuno.ApplicationofRelayC−HOxidationLogictoPolyhydroxylatedOleananeTriterpenoids[J].Chem,2020[6]王青.基于PT100的温度测控系统的设计与仿真[J].计算机测量与控制,2019,27(09):47-50+56[7]吕小凤,杜丹,张万玉.一种A/D转换电路的设计与应用[J].无线电工程,2019,49(11):1004-1008[8]陈博行,马俊,方卫强.基于MSP430F149的智能温度采集系统设计[J].自动化与仪器仪表,2020(04):93-96[9]袁晓文.STC89C52单片机在智能窗控制系统的应用[J].计算机产品与流通,2020(01):116[10]陶有军.矩阵键盘的一种简捷高效识别算法[J].单片机与嵌入式系统应用,2019,19(09):43-45+49[11]史静,李煜.一种基于单片机和LCD1602的多行文本显示方法[J].科技视界,2017(20):61-62[12]魏秀芳,张国恒.PNP型三极管内部载流子的传输过程及电流放大原理[J].甘肃高师学报,1999(02):13-15[13]柯小路,杨东华,王继生,李洋.一种软件化雷达定时器设计方法[J].现代雷达,2020,42(03):45-48[14]刘雯.C语言程序设计[J].通讯世界,2020,27(04):114-115[15]臧胜超.基于EPA的工业控制器的设计[D].大连交通大学,2013[16]杨都,张光旭,赖东锋,叶铁英,黄佳星.基于ARM-Linux的空调智能语音控制系统设计与实现[J].日用电器,2019(09):20-23[17]王代君,马钰杰.汇编语言程序设计实验平台的设计[J].信息通信,2019(11):146-147[18]黄承喜,欧俊延.一种万用表防误测量装置设计与实现[J].电工技术,2020(07):109-111[19]左建中,张新荣,王刚,张钢.集成电路芯片管脚尺寸自动检测的研究与实现[J].制造业自动化,2000(09):28-29+40[20]郑三婷.温度传感器DS18B20在温度计设计中的应用[J].电子制作,2019(12):92-93附录1原理图

附录2源程序代码#include<reg52.h>#include"lcd1602.h"#include"eepom52.h"#defineucharunsignedchar#defineuintunsignedintsbitRelay=P3^7;//制热IO口的定义sbitzhileng=P3^6; //制冷IO口的定义sbitdq=P1^3; //18b20IO口的定义uchara_a;uinttemperature;bitflag_300ms;ucharkey_can; //按键值的变量ucharmenu_1;//菜单设计的变量uintt_high=500,t_low=400;bitflag_lj_en; //按键连加使能bitflag_lj_3_en; //按键连3次连加后使能加的数就越大了ucharkey_time,flag_value;//用做连加的中间变量bitkey_500ms;ucharflag_clock; //温度报警变量ucharzd_break_en,zd_break_value;//自动退出设置界面ucharmenu_shudu=20;//用来控制连加的速度sbitjin_1=P3^2; //进来传感器1sbitchu_1=P3^3; //出去传感器1uintzong_rs;//总人数uinttongd1_jl;//通道1进来的人数uinttongd1_cq;//通道1出去的人数uchart1_value;//通道1用做判断是进来还是出去的变量uchart1_zk;//通道1人走开uchart1_j_xd;//通道1进消抖uchart1_c_xd;//通道1出消抖uchart1_qans_qx;//通道1延时取消uintt1_qans_value;//通道1延时取消/***********************1ms延时函数*****************************/voiddelay_1ms(uintq){ uinti,j; for(i=0;i<q;i++) for(j=0;j<110;j++);}/******************把数据保存到单片机内部eepom中******************/voidwrite_eepom(){ SectorErase(0x2000); byte_write(0x2000,t_high%256); byte_write(0x2001,t_high/256); byte_write(0x2002,t_low%256); byte_write(0x2003,t_low/256); byte_write(0x2055,a_a); }/******************把数据从单片机内部eepom中读出来*****************/voidread_eepom(){ t_high=byte_read(0x2001); t_high<<=8; t_high|=byte_read(0x2000); t_low=byte_read(0x2003); t_low<<=8; t_low|=byte_read(0x2002); a_a=byte_read(0x2055);}/***********************18b20初始化函数*****************************/voidinit_18b20(){ bitq; dq=1; //把总线拿高 delay_uint(1); //15us dq=0; //给复位脉冲 delay_uint(80); //750us dq=1; //把总线拿高等待 delay_uint(10); //110us q=dq; //读取18b20初始化信号 delay_uint(20); //200us dq=1; //把总线拿高释放总线}/*************写18b20内的数据***************/voidwrite_18b20(uchardat){ uchari; for(i=0;i<8;i++) { //写数据是低位开始 dq=0; //把总线拿低写时间隙开始 dq=dat&0x01;//向18b20总线写数据了 delay_uint(5); //60us dq=1; //释放总线 dat>>=1; } }/*************读取18b20内的数据***************/ucharread_18b20(){ uchari,value; for(i=0;i<8;i++) { dq=0; //把总线拿低读时间隙开始 value>>=1; //读数据是低位开始 dq=1; //释放总线 if(dq==1) //开始读写数据 value|=0x80; delay_uint(5); //60us 读一个时间隙最少要保持60us的时间 } returnvalue; //返回数据}/*************读取温度的值读出来的是小数***************/uintread_temp(){ uintvalue; ucharlow; //在读取温度的时候如果中断的太频繁了,就应该把中断给关了,否则会影响到18b20的时序 init_18b20(); //初始化18b20 write_18b20(0xcc); //跳过64位ROM write_18b20(0x44); //启动一次温度转换命令 delay_uint(50); //500us init_18b20(); //初始化18b20 EA=0; write_18b20(0xcc); //跳过64位ROM write_18b20(0xbe); //发出读取暂存器命令 EA=1; low=read_18b20(); //读温度低字节 value=read_18b20();//读温度高字节 value<<=8; //把温度的高位左移8位 value|=low; //把读出的温度低位放到value的低八位中 value*=0.625; //转换到温度值小数 returnvalue; //返回读出的温度带小数}voidtongd1_display(){/*******************通道1处理********************/ if(t1_value==0) { if(jin_1==0) { t1_j_xd++; if(t1_j_xd>=3) { t1_j_xd=0; t1_value=1; t1_zk=0; t1_qans_qx=1; t1_qans_value=0; } } else t1_j_xd=0; if(chu_1==0) { t1_c_xd++; if(t1_c_xd>=3) { t1_c_xd=0; t1_value=2; t1_zk=0; t1_qans_qx=1; t1_qans_value=0; } } else t1_c_xd=0; } else { if(t1_qans_qx==1) { t1_qans_value++; //5ms if(t1_qans_value>400) //2s t1_value=0; } if(t1_value==1) { if((chu_1==0)&&(t1_zk==0)) { tongd1_jl++;//通道1进来的人数加1 zong_rs=tongd1_jl-tongd1_cq; t1_zk=1; t1_qans_value=0; t1_qans_qx=0; } if(t1_zk==1) //人走开 { if(chu_1==1) { t1_value=0; t1_zk=0; } } } if(t1_value==2) { if((jin_1==0)&&(t1_zk==0)) { if(tongd1_jl>tongd1_cq) tongd1_cq++;//通道1出去的人数加1 zong_rs=tongd1_jl-tongd1_cq; //计算总人数 t1_zk=1; t1_qans_value=0; t1_qans_qx=0; } if(t1_zk==1) //人走开 { if(jin_1==1) { t1_value=0; t1_zk=0; } } } }}/*************定时器0初始化程序***************/voidtime_init() { EA=1; //开总中断 TMOD=0X01; //定时器0、定时器1工作方式1 ET0=1; //开定时器0中断 TR0=1; //允许定时器0定时}/****************独立按键处理函数************************/voidkey(){ staticucharkey_new=0,key_old=0,key_value=0; if(key_new==0) { //按键松开的时候做松手检测 if((P1&0xf0)==0xf0) key_value++; else key_value=0; if(key_value>=10) { write_eepom(); key_value=0; key_new=1; flag_lj_en=0; //关闭连加使能 flag_lj_3_en=0; //关闭3秒后使能 flag_value=0; //清零 } } else { if((P1&0xf0)!=0xf0) key_value++;//按键按下的时候 else key_value=0; if(key_value>=7) { key_value=0; key_new=0; flag_lj_en=1; //连加使能 zd_break_en=1;//自动退出设置界使能 zd_break_value=0;//自动退出设置界变量清零 key_time=0; } } key_can=20; if(key_500ms==1) { key_500ms=0; key_new=0; key_old=1; } if((key_new==0)&&(key_old==1)) { switch(P1&0xf0) { case0xe0:key_can=4;break; //得到k1键值 case0xd0:key_can=3;break; //得到k2键值 case0xb0:key_can=2;break; //得到k3键值 case0x70:key_can=1;break; //得到k4键值 } } key_old=key_new; }/****************按键处理数码管显示函数***************/voidkey_with(){ if(key_can==4) { menu_1++; if(menu_1>=3) { menu_1=0; } if(menu_1==0) { write_com(0x0c);//关闭光标 } if(menu_1==1) { write_sfm3_18B20(2,2,t_high); write_com(0x80+0x40+5);//将光标移动到秒个位 write_com(0x0f);//显示光标并且闪烁 } if(menu_1==2) { write_sfm3_18B20(2,10,t_low); write_com(0x80+0x40+13);//将光标移动到秒个位 write_com(0x0f);//显示光标并且闪烁 } menu_shudu=20; } if(menu_1==1) //设置高温报警 { if(key_can==3) { if(flag_lj_3_en==0) t_high++; //按键按下未松开自动加三次 else t_high+=10; //按键按下未松开自动加三次之后每次自动加10 if(t_high>990) t_high=990; write_sfm3_18B20(2,2,t_high); write_com(0x80+0x40+5);//将光标移动到秒个位 write_com(0x0f);//显示光标并且闪烁 } if(key_can==2) { if(flag_lj_3_en==0) t_high--; //按键按下未松开自动加三次 else t_high-=10; //按键按下未松开自动减三次之后每次自动减10 if(t_high<=t_low) t_high=t_low+1; write_sfm3_18B20(2,2,t_high); write_com(0x80+0x40+5);//将光标移动到秒个位 write_com(0x0f);//显示光标并且闪烁 } write_eepom(); } if(menu_1==2) //设置低温报警 { if(key_can==3) { if(flag_lj_3_en==0) t_low++; else t_low+=10; if(t_low>=t_high) t_low=t_high-1; write_sfm3_18B20(2,10,t_low); write_com(0x80+0x40+13);//将光标移动到秒个位 write_com(0x0f);//显示光标并且闪烁 } if(key_can==2) { if(flag_lj_3_en==0) t_low--; else t_low-=10; if(t_low<=10) t_low=10; write_sfm3_18B20(2,10,t_low); write_com(0x80+0x40+13);//将光标移动到秒个位 write_com(0x0f);//显示光标并且闪烁 } write_eepom(); } }/********************菜单对应的处理函数***********************/voidmenu_dispaly(){ if((menu_1==1)) //对光标不处理,要不然光标不会显示在正确的位置 { write_com(0x80+0x45);//将光标移动到 write_com(0x0f);//显示光标并且闪烁 }elseif((menu_1==2)) { write_com(0x80+0x4d);//将光标移动到 write_com(0x0f); //显示光标并且闪烁 }}/****************控制函数***************/voidclock_h_l(){if(zong_rs>=1){ if(temperature<=t_low) { Relay=0;zhileng=1;//关闭制冷装置 打开加热装置 } elseif(temperature>=t_high) { Relay=1; //停止加热装置 zhileng=0;//打开制冷装置 } } else { Relay=1; //停止加热装置 zhileng=1;//停止制冷装置 }}voidmain(){ init_1602(); init_1602_dis_csf(); temperature=read_temp(); //先读出温度的值 time_init();//初始化定时器 read_eepom(); write_sfm3_18B20(2,2,t_high); write_sfm3_18B20(2,10,t_low); if(a_a==0xff) //新的单片机初始单片机内问EEPOM { t_high=500; t_low=400; a_a=1; write_eepom(); } Relay=1; //停止加热装置 zhileng=1;//停止制冷装置 delay_1ms(650); temperature=read_temp(); //先读出温度的值 write_sfm3_18B20(1,2,temperature); while(1) { tongd1_display(); if(flag_300ms==1) //300ms处理一次温度程序 { temperature=read_temp(); //先读出温度的值 clock_h_l();//报警函数 flag_300ms=0; write_sfm3_18B20(1,2,temperature); write_renshu(1,10,zong_rs); if(zd_break_en==1) //自动退出设置界面程序 { zd_break_value++;//每300ms加一次 if(zd_break_value>80)//20秒后自动退出设置界面 { menu_1=0; zd_break_en=0; zd_break_value=0; write_com(0x0c);//关闭光标 } } menu_dispaly();//不同级的菜单对应显示1602对应显示不同 } key(); //按键程序 if(key_can<10) { key_with(); //设置控制温度 } }}/*************定时器0中断服务程序***************/voidtime0_int()interrupt1{ staticucharvalue; TH0=0x3c; TL0=0xb0;//50ms value++; if(value%6==0) { flag_300ms=1; //300ms value=0; } if(flag_lj_en==1) //按下按键使能 { key_time++; if(key_time>5)//250ms { key_time=0; key_500ms=1;//500ms flag_value++; if(flag_value>3) { flag_value=10; flag_lj_3_en=1;//3次后1.5秒后连加大些 } } }}致谢在这次毕业设计中,李作纪老师和陈乃周老师对论文从选题、构思到最后定稿的各个环节给予细心指引与教导,使我得以最终完成毕业论文设计。在学习中,老师严谨的治学态度、丰富渊博的知识、敏锐的学术思维、精益求精的工作态度以及侮人不倦的师者风范是我终生学习的楷模,导师们的高深精湛的造诣与严谨求实的治学精神,将永远激励着我。经过了两个多月的努力,我完成了论文的写作。从开始接到论文题目到系统的实现,再到论文文章的完成,每走一步对我来说都是新的尝试与挑战,这也是我在大学期间独立完成的最大的项目。在这段时间里,我学到了很多知识也有很多感受,从一无所知,开始了独立的学习和试验,查看相关的资料和书籍,让自己头脑中模糊的概念逐渐清晰,使自己十分稚嫩的作品慢慢完善起来,每一次改善都是我学习的收获,每一次试验的成功都会让我兴奋好一段时间。在这里,我还要感谢大学四年里在学业上帮助我的所有老师们,是你们四年里孜孜不倦,传道受业解惑,成就了我今天取得的成绩。感谢陪伴我一路走来的同学们,是你们的帮助与包容,让我倍感温暖。在此,谨向老师们致以衷心的感谢和崇高的敬意!最后,我要向百忙之中抽时间对本文进行审阅,评议和参与本人论文答辩的各位老师表示感谢。

HYPERLINK电脑快捷知识大全编辑本段一、常见用法F1显示当前程序或者windows的帮助内容。F2当你选中一个文件的话,这意味着“重命名”F3当你在桌面上的时候是打开“查找:所有文件”对话框F10或ALT激活当前程序的菜单栏windows键或CTRL+ESC打开开始菜单CTRL+ALT+DELETE在win9x中打开关闭程序对话框DELETE删除被选择的选择项目,如果是文件,将被放入回收站SHIFT+DELETE删除被选择的选择项目,如果是文件,将被直接删除而不是放入回收站CTRL+N新建一个新的文件CTRL+O打开“打开文件”对话框CTRL+P打开“打印”对话框CTRL+S保存当前操作的文件CTRL+X剪切被选择的项目到剪贴板CTRL+INSERT或CTRL+C复制被选择的项目到剪贴板SHIFT+INSERT或CTRL+V粘贴剪贴板中的内容到当前位置ALT+BACKSPACE或CTRL+Z撤销上一步的操作ALT+SHIFT+BACKSPACE重做上一步被撤销的操作Windows键+L锁屏键Windows键+M最小化所有被打开的窗口。Windows键+SHIFT+M重新将恢复上一项操作前窗口的大小和位置Windows键+E打开资源管理器Windows键+F打开“查找:所有文件”对话框Windows键+R打开“运行”对话框Windows键+BREAK打开“系统属性”对话框Windows键+CTRL+F打开“查找:计算机”对话框SHIFT+F10或鼠标右击打开当前活动项目的快捷菜单SHIFT在放入CD的时候按下不放,可以跳过自动播放CD。在打开word的时候按下不放,可以跳过自启动的宏ALT+F4关闭当前应用程序ALT+SPACEBAR打开程序最左上角的菜单ALT+TAB切换当前程序ALT+ESC切换当前程序ALT+ENTER将windows下运行的MSDOS窗口在窗口和全屏幕状态间切换PRINTSCREEN将当前屏幕以图象方式拷贝到剪贴板ALT+PRINTSCREEN将当前活动程序窗口以图象方式拷贝到剪贴板CTRL+F4关闭当前应用程序中的当前文本(如word中)CTRL+F6切换到当前应用程序中的下一个文本(加shift可以跳到前一个窗口)在IE中:ALT+RIGHTARROW显示前一页(前进键)ALT+LEFTARROW显示后一页(后退键)CTRL+TAB在页面上的各框架中切换(加shift反向)F5刷新CTRL+F5强行刷新目的快捷键激活程序中的菜单栏F10执行菜单上相应的命令ALT+菜单上带下划线的字母关闭多文档界面程序中的当前窗口CTRL+F4关闭当前窗口或退出程序ALT+F4复制CTRL+C剪切CTRL+X删除DELETE显示所选对话框项目的帮助F1显示当前窗口的系统菜单ALT+空格键显示所选项目的快捷菜单SHIFT+F10显示“开始”菜单CTRL+ESC显示多文档界面程序的系统菜单ALT+连字号(-)粘贴CTRL+V切换到上次使用的窗口或者按住ALT然后重复按TAB,切换到另一个窗口ALT+TAB撤消CTRL+Z编辑本段二、使用“Windows资源管理器”的快捷键目的快捷键如果当前选择展开了,要折叠或者选择父文件夹左箭头折叠所选的文件夹NUMLOCK+负号(-)如果当前选择折叠了,要展开或者选择第一个子文件夹右箭头展开当前选择下的所有文件夹NUMLOCK+*展开所选的文件夹NUMLOCK+加号(+)在左右窗格间切换F6编辑本段三、使用WINDOWS键可以使用Microsoft自然键盘或含有Windows徽标键的其他任何兼容键盘的以下快捷键。目的快捷键在任务栏上的按钮间循环WINDOWS+TAB显示“查找:所有文件”WINDOWS+F显示“查找:计算机”CTRL+WINDOWS+F显示“帮助”WINDOWS+F1显示“运行”命令WINDOWS+R显示“开始”菜单WINDOWS显示“系统属性”对话框WINDOWS+BREAK显示“Windows资源管理器”WINDOWS+E最小化或还原所有窗口WINDOWS+D撤消最小化所有窗口SHIFT+WINDOWS+M编辑本段四、“我的电脑”和“资源管理器”的快捷键目的快捷键关闭所选文件夹及其所有父文件夹按住SHIFT键再单击“关闭按钮(仅适用于“我的电脑”)向后移动到上一个视图ALT+左箭头向前移动到上一个视图ALT+右箭头查看上一级文件夹BACKSPACE编辑本段五、使用对话框中的快捷键目的快捷键取消当前任务ESC如果当前控件是个按钮,要单击该按钮或者如果当前控件是个复选框,要选择或清除该复选框或者如果当前控件是个选项按钮,要单击该选项空格键单击相应的命令ALT+带下划线的字母单击所选按钮ENTER在选项上向后移动SHIFT+TAB在选项卡上向后移动CTRL+SHIFT+TAB在选项上向前移动TAB在选项卡上向前移动CTRL+TAB如果在“另存为”或“打开”对话框中选择了某文件夹,要打开上一级文件夹BACKSPACE在“另存为”或“打开”对话框中打开“保存到”或“查阅”F4刷新“另存为”或“打开”对话框F5编辑本段六、桌面、我的电脑和“资源管理器”快捷键选择项目时,可以使用以下快捷键。目的快捷键插入光盘时不用“自动播放”功能按住SHIFT插入CD-ROM复制文件按住CTRL拖动文件创建快捷方式按住CTRL+SHIFT拖动文件立即删除某项目而不将其放入SHIFT+DELETE“回收站”显示“查找:所有文件”F3显示项目的快捷菜单APPLICATION键刷新窗口的内容F5重命名项目F2选择所有项目CTRL+A查看项目的属性ALT+ENTER或ALT+双击可将APPLICATION键用于Microsoft自然键盘或含有APPLICATION键的其他兼容键编辑本段七、Microsoft放大程序的快捷键这里运用Windows徽标键和其他键的组合。快捷键目的Windows徽标+PRINTSCREEN将屏幕复制到剪贴板(包括鼠标光标)Windows徽标+SCROLLLOCK将屏幕复制到剪贴板(不包括鼠标光标)Windows徽标+PAGEUP切换反色。Windows徽标+PAGEDOWN切换跟随鼠标光标Windows徽标+向上箭头增加放大率Windows徽标+向下箭头减小放大率编辑本段八、使用辅助选项快捷键目的快捷键切换筛选键开关右SHIFT八秒切换高对比度开关左ALT+左SHIFT+PRINTSCREEN切换鼠标键开关左ALT+左SHIFT+NUMLOCK切换粘滞键开关SHIFT键五次切换切换键开关NUMLOCK五秒QQ快捷键,玩QQ更方便Alt+S快速回复Alt+C关闭当前窗口Alt+H打开聊天记录Alt+T更改消息模式Ait+J打开聊天纪录Ctrl+A全选当前对话框里的内容Ctrl+FQQ里直接显示字体设置工具条Ctrl+J输入框里回车(跟回车一个效果)Ctrl+M输入框里回车(跟回车一个效果)Ctrl+L对输入框里当前行的文字左对齐Ctrl+R对输入框里当前行的文字右对齐Ctrl+E对输入框里当前行的文字居中Ctrl+V在qq对话框里实行粘贴Ctrl+Z清空/恢复输入框里的文字Ctrl+回车快速回复这个可能是聊QQ时最常用到的了Ctrl+Alt+Z快速提取消息Ctrl+Alt+A捕捉屏幕最常用的快捷键F5刷新DELETE删除TAB改变焦点CTRL+C复制CTRL+X剪切CTRL+V粘贴CTRL+A全选CTRL+Z撤销CTRL+S保存ALT+F4关闭CTRL+Y恢复ALT+TAB切换CTRL+F5强制刷新CTRL+W关闭CTRL+F查找SHIFT+DELETE永久删除CTRL+ALT+DEL任务管理SHIFT+TAB-反向切换CTRL+空格--中英文输入切换CTRL+Shift输入法切换CTRL+ESC--开始菜单CTRL+ALT+ZQQ快速提取消息CTRL+ALT+AQQ截图工具CTRL+ENTERQQ发消息Alt+1保存当前表单Alt+2保存为通用表单Alt+A展开收藏夹列表资源管理器END显示当前窗口的底端HOME显示当前窗口的顶端NUMLOCK+数字键盘的减号(-)折叠所

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论