欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    基于单片机的智能空调节电控制器毕业设计论文(C语言编程).doc

    • 资源ID:2385290       资源大小:3.99MB        全文页数:59页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于单片机的智能空调节电控制器毕业设计论文(C语言编程).doc

    目录第1章引言11.1传感器的概述和应用前景11.2课题目的和意义21.3课题的主要组成和设计要求3第2章方案比较与论证42.1设计思路42.2方案设计比较42.3方案的确定7第3章硬件电路设计53.1设计思路与方法53.2基本功能模块电路63.2.1温度采集模块63.2.2系统控制模块93.2.3数据存储模块93.2.4显示模块103.2.5红外发送与接收模块123.2.6单片机引脚分配图14第4章系统程序设计15第5章设计演示结果265.1硬件演示效果27第6章结论与展望306.1结论306.2结束语30致谢31参考文献32附录一系统原理图33附录二程序清单34智能空调节电控制器本文摘要本文设计了一种基于STC89C52单片机能学习各种32位空调遥控指令并自动依据检测到的温度调节空调的运行状态的空调控制装置的实现方案,以及硬件设计和软件设计的方法。本设计充分利用了单片机价格低、功能强、抗干扰性能好等优点。针对环境温度检测和空调红外控制给出了实用的硬件设计和软件编程,成功实现了控制器对空调的智能控制。整个装置采用DS18B20实时采集环境中的温度,同时显示在数码管上;用红外线发射与接收与空调进行数据指令通信,将外部中断扑捉到得指令信号存储到掉电非易失性外部E2PROM存储器中,单片机根据实时采集到的温度向空调发送相应的指令信号。关键词:单片机,DS18B20温度采集,红外通信,I2C总线通信Intelligent Air Conditioning Power ControllerAbstract: This text has designed a Implementation Scheme, which is an air-conditioning control device based on STC89C52 micro-controller, it can learn all kinds of 32 bits air-conditioning remote control instructions and adjust the air-conditionings running automaticly according to the temperature detected. The design makes full use of low cost single chip, functional strength, and good anti-jamming, For infrared temperature detection and control of air conditioning gives practical hardware design and software programming, the controller successfully intelligent control for air conditioning. DS18B20 real-time collection by the device temperature of the environment, also shows that in the digital tube, Infrared emitting and receiving instructions and air conditioning for data communication, Will have instructions to capture the external interrupt signal to the power-down non-volatile memory storage external E2PROM, SCM collected under real-time temperature of the air conditioning to send the appropriate command signals.Keywords: SCM, DS18B20 temperature acquisition, Infrared Communication, I2C bus communication第1章引言随着“信息时代”的到来,作为获取信息的手段传感器技术得到了显著的进步,其应用领域越来越广泛,对其要求越来越高,需求越来越迫切。传感器技术已成为衡量一个国家科学技术发展水平的重要标志之一。因此,了解并掌握各类传感器的基本结构、工作原理及特性是非常重要的。1.1传感器的概述和应用前景由于传感器能将各种物理量、化学量和生物量等信号转变为电信号,使得人们可以利用计算机实现自动测量、信息处理和自动控制,但是它们都不同程度地存在温漂和非线性等影响因素。传感器主要用于测量和控制系统,它的性能好坏直接影响系统的性能。因此,不仅必须掌握各类传感器的结构、原理及其性能指标,还必须懂得传感器经过适当的接口电路调整才能满足信号的处理、显示和控制的要求,而且只有通过对传感器应用实例的原理和智能传感器实例的分析了解,才能将传感器和信息通信和信息处理结合起来,适应传感器的生产、研制、开发和应用。另一方面,传感器的被测信号来自于各个应用领域,每个领域都为了改革生产力、提高工效和时效,各自都在开发研制适合应用的传感器,于是种类繁多的新型传感器及传感器系统不断涌现。温度传感器是其中重要的一类传感器。其发展速度之快,以及其应用之广,并且还有很大潜力。温度是一种最基本的环境参数,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。测量温度的关键是温度传感器,温度传感器的发展经历了三个发展阶段:传统的分立式温度传感器,模拟集成温度传感器,智能集成温度传感器。目前,国际上新型温度传感器正从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展。文章将介绍智能集成温度传感器DS18B20的结构特征及控制方法,并对以此传感器,AT89C52单片机为控制器构成的温度测量装置的工作原理及程序设计作了详细的介绍。该装置适用于人民的日常生活和工、农业生产用于温度测量。DS18B20介绍及优点由DALLAS半导体公司生产的DS18B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。它具有体积小,接口方便,传输距离远等特点。 1DS18B20性能特点 DS18B20的性能特点:采用单总线专用技术,既可通过串行口线,也可通过其它I/O口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位),测温范围为-55-+125,测量分辨率为0.0625, 内含64位经过激光修正的只读存储器ROM,适配各种单片机或系统机,用户可分别设定各路温度的上、下限,内含寄生电源。 2DS18B20内部结构 DS18B20内部结构主要由四部分组成:64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,高速暂存器。64位光刻ROM是出厂前被光刻好的,它可以看作是该DS18B20的地址序列号。不同的器件地址序列号不同。 3. DS18B20控制方法 在硬件上,DS18B20与单片机的连接有两种方法,一种是Vcc接外部电源,GND接地,I/O与单片机的I/O线相连;另一种是用寄生电源供电,此时UDD、GND接地,I/O接单片机I/O。无论是内部寄生电源还是外部供电,I/O口线要接5K左右的上拉电阻。CPU对DS18B20的访问流程是:先对DS18B20初始化,再进行ROM操作命令,最后才能对存储器操作,数据操作。DS18B20每一步操作都要遵循严格的工作时序和通信协议。如主机控制DS18B20完成温度转换这一过程,根据DS18B20的通讯协议,须经三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。1.2课题背景和意义现有办公室的空调由于人为控制上下限的温度值,有时候为了图舒服将温度设的很低,而且在无人的时候常常忘记关掉空调,特别是在一些大型的公共场所,这不仅仅会造成电能的浪费,还会对人的身体健康不利,基于这种背景空调节电控制器就有它的用场了,它通过自动实时监测环境的温度判断是否达到上下限值从而自动通过发射学习到得红外指令信号来控制空调的制冷、加热和开关机来达到节能的目的。在传统的温度检测系统中大都采用模拟温度传感器(例如AD590)一般经前端放大、AD变换和数据修正等过程。经实践应用分析发现:传统电路设计上存在电源干扰、滤波不可靠,线路过于复杂、无屏蔽措施等不可靠因素。DS18B20在芯片的内部自带模拟和数字转换电路的,使用起来非常的方便。它采用单线传输技术,另外,温度的分辨率可以选择9到12位的分辨率。因此采用单总线数字温度传感器DS18B20可将温度直接转化为串行数字信号供微机处理,而且在单总线上可以挂多片DS18B20,微机只需一根端口线就能与多片DS18B20进行通信,而且由于它体积小的优点,因此占用的PCB板面积很小,电路也很好设计。因此,由单片机和DSI8B20构成的分布式多点温度检测系统改变传统的温度采样模式,具有可靠性高、线路简单、测量精度高、功能便于扩展等优点。本设计应用性和实用性都比较强,只要应用不同的传感器就可以用到不同的系统中,比如压力监测、风速、湿度等等,并且通信采用的是红外信号,在使用时基本上不用改变原有的设备。并且在设计完了以后,控制器会根据编程自动控制空调调节环境的温度在设置的温度范围内,具有智能控制的功能。为了提高对传感器和红外信号发送和接收的认识和了解,尤其是对红外通信的深入研究以及其用法与用途,基于实用、广泛和典型的原则而设计了本器件。本文利用单片机结合传感器技术以及红外信号的使用而开发设计了这一控制器。文中传感器理论、红外通信技术、单片机实际应用有机结合,详细地讲述了利用DS18B20传感器探测环境温度的过程以及红外指令信号的发送与接收。1.3课题的主要组成和设计要求本设计系统包括温度采集模块,系统控制模块,数据存储模块,显示模块,红外信号扑捉与发送模块五个部分。文中对每个部分功能、实现过程作了详细介绍。整个系统的核心是进行温度监测和红外信号指令的扑捉与发送。设计要求如下:设计制作一个办公室空调节电控制器来控制办公室空调的电源。具体要求如下:1) 14°28°内不能开启空调;2) 低于14°时允许开启制热,达到18°时自动关闭,自然降温到14°时又允许开启;3) 高于28°时允许开启制冷,达到24°时自动关闭,自然升温到28°时又允许开启;第2章方案比较与论证2.1 设计思路智能空调节电控制器是由微控制器获取温度传感器数据,并通过红外通信技术对环境内的空调进行相应的控制。在设计之时首先要对整体架构要有个清晰地了解,针对控制现场的实时性和可靠性要求,应着重考虑MCU的选型,时钟频率是否有特殊要求,内存以及ROM的需求,内部功能模块的特殊功能等;其次是温度传感器的选择,可以从两个方面来考虑。第一,使用AD芯片对温度信号采样,第二,直接使用数字温度传感器;为了满足系统的多功能以及可视化要求,考虑采取何种自控显示控制的方法;再者是考虑到与空调的通信方式的选择,可以选择数据线的通信方式或者红外通信的方式。2.2 方案设计比较方案一:直接在空调的控制装置中加入温度传感器的温度检测电路,同时加入相关的程序。这种方案的硬件电路和相关的程序编写是最简单的,但操作起来也是最麻烦的,因为它要拆开空调,从新安装电路,下载程序,这是最不实用的一种。方案二:采用独立的模块,用具有硬件I2C总线控制单元的单片机和温度传感器检测电路构成一个独立的模块,通过判断检测到的不同的温度值来控制空调的运行,而它们的连接采用数据线的方式,单片机上只要一个用来控制的I/O口就行。此方案虽然在安装上没有方案一麻烦,但也要拆开空调,采用数据线的控制方式能够保证数据的传输的稳定性和不被干扰,同时也省去了红外指令学习的需要,但在位置上受到了限制,只能在一定的范围内安装,如果需要远距离安装,它的成本也会不低,同时具有硬件I2C总线控制单元的单片机本身成本就高一些。方案三:同样采用独立的模块,直接用不具有硬件I2C总线控制单元的51单片机和温度传感器检测电路构成一个独立的模块,通过判断检测到的不同的温度值来控制空调的运行,同时这次我们采用红外通信的方式,这也就要求模块能够学习存储不同红外遥控器的指令,并且依据检测到的温度像空调发送不同的空调指令,因而在硬件电路上还要加上红外接收和红外发送的电路,以及外部的存储器。 方案三采用红外通信的方式和单片机软件模拟I2C总线,相对来说电路与编程是最复杂的一种,但是可操作性和可维护性是最好的,并且同样能够学习适用大部分的空调,通过红外信号的传输控制方式对装置的安装也非常的方便,既不需要拆动空调,只要在红外敏感的范围内对安装的位置也没要求,安装的成本也不会提高,而51单片机也是目前市场上最成熟,最经济实惠的一款单片机,对它的应用也是最方便的。 2.3方案的确定从上面方案的比较来看,方案三不但满足功能要求,而且系统的实时性比较高,抗干扰能力也较好,性价比较高。根据以上方案的对比,以及根据实验环境和设备的情况,综合考虑后,最终选定第3套方案。第3章整体电路设计3.1设计思路与方法电路设计仿真软件有很多种,像Multisim,Proteus,Protel等,我选择用Protel dxp作为我的电路制图软件,因为:1. Protel DXP是第一个将所有设计工具集于一身的板级设计系统,电子设计者从最初的项目模块规划到最终形成生产数据都可以按照自己的设计方式实现。2. 通过设计输入仿真、PCB绘制编辑、拓扑自动布线、信号完整性分析和设计输出等技术融合,Protel DXP为电路设计提供了全面的设计解决方案。3. Protel DXP不是单纯的PCB(印制电路板)设计工具,而是由多个模块组成的系统工具,分别是SCH(原理图)设计、SCH(原理图)仿真、PCB(印制电路板)设计、Auto Router(自动布线器)和FPGA设计等,覆盖了以PCB为核心的整个物理设计。该软件将项目管理方式、原理图和PCB图的双向同步技术、多通道设计、拓朴自动布线以及电路仿真等技术结合在一起,为电路设计提供了强大的支持。软件选择后,然后就是要对系统功能模块化,把系统分成若干不同功能的模块,然后分别绘制所需的模块。因此根据实际情况,可以将本系统分为如下几个部分:温度采集模块,系统控制模块,数据存储模块,数码管显示模块,红外接收模块,红外发送模块。整个装置的框架图如图3.1所示。32位红外遥控器AT89C52 温度数据采集 温度数据处理 红外信号扑捉 红外指令发送24C02 红外指令信号发送和接收模块 温度采集 DS18B20 状态显示:红色亮:加热绿色亮:制冷蓝色亮:关机温度显示 被控空调、图3.1 控制器框架图 根据各基本模块的设计,设计了系统整体电路图,系统原理图请详见附录A。3.2基本功能模块电路3.2.1温度采集模块 1. DS18B20基本介绍该模块使用DS18B20数字温度传感器,没有采用传统的热敏电阻和AD转换等方式进行温度采集,简化了电路结构,并且也提高了可靠性和稳定性。DS18B20可组网数字温度传感器芯片封装而成,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。外形图如图3.1所示。图3.2 DS18B20外型图DS28B20内部存贮器(如图3.3示)由一个高速暂存RAM和一个非易失性,电可擦除EERAM组成,后者存贮高低温度和触发器TH和TL。图3.3 DS18B20存贮器结构图每一DS18B20包括一个唯一的64位长的ROM编码,由于多个传感器可以漏极开路的形式挂载在一根总线上,因此主机搜索不同的ROM编码就可以找到不同的传感器,ROM编码格式如图3.4所示。主机进行ROM操作时,必须提供五种操作命令之一:1)Read ROM(读ROM),2)Match ROM(符合ROM),3)Search ROM(搜索ROM),4)Skip ROM(跳过ROM),Alarm Search(告警搜索)。8位CRC编码48位序列号8位产品系列编码 MSB LSB MSB LSB MSB LSB (最高有效位) (最低有效位)图3.4 ROM编码格式温度采集模块最重要的是要弄清传感器是怎样把温度进行数字化的。在DS18B20内部完成提供0.5的分辨率,温度读数以16位、符号扩展的二进制补码读数形式提供。数据在单线接口上串行发送。温度是以1/2LSB(最低有效位)形式表示时,产生以下9位格式,如图3.5所示:图3.5 DS18B20内温度数据格式为了达到更高的精度,则在对DS18B20测温原理进行详细分析的基础上,采取直接读DS18B20内部暂存器的方法,将DS18B20的测温分辨率提高到0.010.1。首先用读暂存器指令(BEH),读出0.5为分辨率的温度测量结果,然后切去测量结果中的最低有效位(LSB),得到所测实际温度整数部分T1,然后用BEH指令读取计数器1的计数剩余值M1和每度计数值M2。考虑到DS18B20测量温度的整数部分是以0.25、0.75为进位界限的关系,实际温度T可以用下式计算得到:T=(T1-O.25)+(M2-M1)/M22. 温度采集模块电路根据DS18B20技术参数,温度采集模块电路设计如图3.6所示。DS18B20采用+5V电源供电,而不采用数据线供电的寄生电源供电形式,目的在于减少温度转换和数据读取的时间,提高传感器的工作效率。DS18B20数据传输端口漏极开路,因此多个DS18B20可以进行“线与”,挂载在同一条数据线上。数据线使用上拉电阻连接到VCC,以满足电平转换期间提供足够的电流。其中数据端接单片机引脚P1.7。图3.6 温度采集电路3.2.2系统控制模块1. 内部时钟电路。MCS-51芯片内有一个高增益反向放大器,XTAL1,XTAL2引脚分别为该反向放大器的输入端和输出端,在芯片的外部通过这两个引脚跨接石英晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。如图3.7所示。图3.7 内部时钟电路 电路中的电容C1、C2的取值对振荡频率输出的频率值、稳定性及振荡电路起振速度有少许影响,C1、C2可在20PF-100PF之间选择,外接陶瓷振荡器时典型取值为47PF,取60PF-70PF时振荡器有较高的频率稳定性。晶体振荡频率可在1.2M-12M之间选择,根据实际情况,选择11.0592MHZ。2. 系统复位电路MCS-51单片机的复位操作有两种方式:上电复位和上电按钮复位。通常因为系统运行的需要,常常需要人工按钮复位,复位电路如图3.8所示,只需要将一个常开按钮开关并联于上电复位电路,按下开关一定时间就能使RST引脚端为高电平,从而使单片机复位。图3.8 系统复位电路3.2.3数据存储模块在此模块中,使用24C02作为扩展数据存储器,把DS18B20的ROM信息保存到里面。1. 24C02基本介绍24C02是一个2K存储空间的COMS EEPROM,内部含有256个8位字节,16字节页写缓冲器。它支持IIC总线数据传送协议,通过器件地址输入端A0,A1和A2最多可以实现将8个24C02连接到总线上。对24C02进行操作,必须严格掌握读写时序。2. IIC总线工作原理IIC总线在传送数据过程中共有三种类型信号,他们分别是:开始信号、结束信号和应答信号。开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。  结束信号:SCL为低电平时,SDA由低电平向高电平跳变,结束传送数据。   应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况做出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。I2C规程运用主/从双向通讯。器件发送数据到总线上,则定义为发送器,器件接收数据则定义为接收器。主器件和从器件都可以工作于接收和发送状态。 总线必须由主器件(通常为微控制器)控制,主器件产生串行时钟(SCL)控制总线的传输方向,并产生起始和停止条件。SDA线上的数据状态仅在SCL为低电平的期间才能改变,SCL为高电平的期间,SDA状态的改变被用来表示起始和停止条件。数据存储模块电路设计如图3.9所示,SCK时钟线和SDA数据线经上拉电阻接+5V电源。图3.9 数据存储模块3.2.4显示模块1. 温度数据显示部分图3.10所示模块使用8位一体共阴极数码显示管作为显示器,单片机输出信号不能直接接入数码管,因为此时I/O口输出电流并不能驱动数码管。因此必须在数码管输入端接驱动,驱动的接法有多种,可以使用上面模块电路中所使用的方法,直接经上拉电阻接到电源,还有一种方式就是接驱动芯片,满足信号的电平转换。此模块中采用信号经驱动芯片74LS244输出到数码管。而单片机P0口输出信号作为数码管段选信号,显示数字或者字符,P2口输出信号作为数码管位选信号,用来选择哪个数码管亮或灭。其中后五位数码管用来显示温度数据,末尾两位为小数显示,第三位为带小数点的整数显示。第六位为负数字符“-”显示。最高三位显示DS18B20编号,用来显示当前DS18B20的温度数据,如“no 1”等编号。图3.10 显示模块2. 工作状态显示部分 图3.11 工作状态提示电路如图3.11示,发光二极管D1用来表示发送加热指令后的状态,并配合扬声器LS1一声提示;发光二极管D2表示发送制冷指令后的状态;发光二极管D3表示发送开关指令后的状态;并且每次成功发送指令后都会配合扬声器LS1一声提示。3.2.5红外发送与接收模块1. 红外发送模块 考虑到成本的因素,我采用的是软件调制发射的方法。 一般红外电视遥控器的输出都是用编码后串行数据对3840kHz的方波进行脉冲幅度调制而产生的。 当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征: 采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”。 上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制,然后再通过红外发射二极管产生红外线向空间发射。一般电视遥控器的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的红外遥控设备,防止不同机种遥控码互相干扰。后16位为8位的操作码和8位的操作反码,用于核对数据是否接收准确。 根据红外编码的格式,发送数据前需要先发送9ms的起始码和4.5ms的结果码。 遥控串行数据编码波形如下图所示: 图3.12 数据0和1的宽度 图3.13 红外信号0和1的调制示意 图3.14 一条红外信号的指令 2. 红外接收模块接收电咱我们使用一化红外接红外接收管TL0038,不需要任何外接无件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,实物如图3.15所示:图3.15 红外一体化接收头实物图TL0038接收到38kHz红外信号时,输出端输出低电平,否则为高电平。从接收端出来的数据波形如图3.16所示:图3.16 解调出来的指令信号整个红外发送以及与单片机的接口原理图如图3.17: 图3.17 红外发射与接收部分P3是TL0038的原理框图,它的数据端直接接到单片机的P32外部中断0口,发送端口则接到P31端,为增大发射功率加了一个三极管放大电流。3.2.6 电源部分由于控制器是一个独立的模块,因此我们设计时采用了从220V市电独立供电的方式,先用变压器将交流电降到24V,再用二极管桥式整流,输出的电压输入到三端线性稳压芯片7805输出5V的系统所需电压,电源部分的电路原理图如图3.18: 图3.18 电源模块原理图3.2.7单片机引脚分配图 图3.19为单片机引脚分配图。引脚分配说明如下:X1,X2分别接时钟振荡电路的输入输出;RST为复位信号输入端;SCL,SDA为存储器24C02的时钟线,数据线;P2.5,P2.6,P2.7接绿、红、蓝发光二极管;P3.7接扬声器;P1.4为多路DS18B20数据输入输出及控制端口;P0为数码管数据端口;P1.1,P1.2,P1.3为数码管位控制端;P3.1,P3.2为红外信号接收和发送端口。图3.19 单片机引脚分配 上面5个模块将下位机硬件分成了几个部分,每个部分都对硬件做了较详细的介绍,至于下位机整体的电路图请详见附录A。第4章系统程序设计我把软件分成了以下几个部分:红外指令信号的扑捉识别、红外指令信号的调制发射、E2PROM外部存储器的存取、温度传感器的温度的检测及数码管显示和单片机的主程序。4.1 红外指令信号的扑捉识别由于采用的是红外一体化接收头,它的输出信号就是单片机能够识别的TTL电平,因此我采用定时计数的方式来区别0和1,用下降沿的外部0中断来扑捉红外指令信号。首先检测判断是否是主遥控器的指令信号,继而根据不同的指令可以学习存储不同的遥控器的加热、制冷和开关机指令,这样在学习完指令后控制器就可以根据检测到得不同的温度值向空调发送不同的指令信号,实现智能控制和节能的效果。红外指令信号的扑捉识别的程序流程图如图4.1: 图4.1 红外信号扑捉程序流程图整个红外指令信号的扑捉程序放在外部中断0的中断服务程序中。4.2 红外指令信号的调制发射当单片机检测到的温度达到设定的临界值时,单片机就要通过红外发送电路向空调发送已经学习过的相应的指令信号。考虑到成本的因素,我决定采用软件调制发射的方式。由于我的主控遥控器是32位编码,因此本控制器只能识别32的遥控器指令信号,依据红外一体化接收的解调原理,发射时在低电平部分发射38K的脉冲信号,高电平则不发信号,发送38K的脉冲信号时采用定时器2定时26us。程序流程图如4.2:图4.2 红外指令信号的调制发射流程图4.3 温度传感器的温度的检测及数码管显示1. 温度采集部分是系统的核心之一,关于这一部分在硬件电路设计中有详细的介绍。而DS18B20温度传感器的操作必须掌握严格的时序,这一点非常重要,当初设计之时我就在这里下了很大功夫。控制好时序就能编写相应功能的子函数对DS18B20进行操作。由于DS18B20采用的是1Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。 DS18B20的复位时序如图4.3所示:图4.3 复位时序图DS18B20的读时序如图4.4所示:对于DS18B20的读时序分为读0时序和读1时序两个过程。对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。图4.4 读时序图DS18B20的写时序如图4.5所示:对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。图4.5 写时序图在整个控制器程序的运行过程中采用定时器0定时,每隔1S实时采集一次环境的温度值并用数码管显示,下面对几个DS18B20重要的函数进行介绍。void WriteOneChar(unsigned char dat); /写一个字节数据到DS18B20unsigned char ReadOneChar(void); /读取一个字节数据void Init_DS18B20(void); /初始化DS18B20unsigned char ReadTemperature(void) /获取当前温度值,并计算 4.4 24C02-E2PROM外部存储器的存取24C02采用的是I2C总线方式。4.4.1 I2C总线介绍I2C总线是由PHILIPS公司推出的一种总线标准,它是同步信号的一种特殊形式,具有接口线少、控制简单、器件封装形式小、通信速率较高等优点。在主从通信中,可以有多个I2C总线器件同时接到I2C总线上,所有与I2C兼容的器件都具有标准的接口,通过地址来识别通信对象,使他们可以经由I2C总线自由通信。I2C总线由数据线SDA和时钟线SCL两条线构成通信线路,既可发送数据,又可接收数据。在CPU和被控IC之间,IC和IC之间都可进行双向传送,最高传送速率为400kps,各种器件均并联在总线上,但是每个器件均有唯一的地址,在信息传输过程中,I2C总线上并联的每个器件既是被控器(或主控器),又是接收器(或发送器),这取决于它所完成的功能。CPU发出的控制信号分为地址码和数据码两部分:地址码用来选址,即接通需要控制的电路,数据码是通信的内容,这样各IC电路虽然挂在同一条总线上,却彼此独立。4.4.2 I2C总线硬件结构图 下图为I2C总线硬件结构图,其中,SCL是时钟线,SDA是数据线。总线上各器件均采用漏极开路结构与总线相接,因此SCL和SDA都需要上拉电阻,总线在空闲状态下均保持高电平,连接到总线上的任意器件输出的低电平,都将使总线的信号变低,即各器件的SDA和SCL都是线与的关系。 图4.6 I2C总线系统硬件结构图 I2C总线支持多主和主从的工作方式,通常为主从工作方式,在主从工作方式下,系统中只有一个主控制器(单片机),其他器件都是具有I2C总线的外围从器件。在主从工作方式中,主控制器启动数据的发送,产生时钟信号,发出停止信号。4.4.3 I2C总线通信格式下图为I2C总线上进行一次数据传输的通信格式 图4.7 I2C总线上进行一次数据传输的通信格式4.4.4 数据位的有效性规定I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟信号为低电平时,数据线上的高电平或低电平的状态才允许变化,如下图所示: 图4.8 I2C总线数据位的有效性规定4.4.5 发送启动信号在利用I2C总线进行数据传送时,首先由主机发出启动信号,启动I2C总线。在SCL为高电平期间,SDA出现上升沿则为启动信号。此时,具有I2C总线的从器件会检测到该信号,启动时序如下图所示: 图4.9 I2C总线启动时序图4.4.6 发送寻址信号主机发送启动信号后,再发出寻址信号。器件地址有7位和10两种,这里只介绍7位的地址寻址方式。寻址字节的位定义如下图所示,寻址信号由一个字节构成,高7位为地址位,最低位为方向位,用以表明主机与从器件的数据传输方向,方向位为0,表明主机接下来对从器件进行写操作;方向位为1,表明主机接下来对从器件进行读操作。 图4.10 寻址字节的位定义主机发送地址时,与主机连接的从机都将这7位地址码与自己的地址比较,如果相同,则认为自己正被主机寻址,根据R/W位将自己设定为发送器或接收器。从机的地址有固定部分和可编程部分组成。在一个系统中可能希望接入多个相同的从机,从机地址中可编程部分决定了可接入总线该类器件的最大数目,如一个从机的7位寻址位有4位为固定位,3位为可编程位,则只能寻址8个同类的器件,即可以有8个同样的器件接入到I2C总线中。4.4.7 应答信号I2C总线协议规定,每传送一个字节数据(含地址及命令字)后,都要有一个应答信号,以确定传送的数据是否被对方收到。应答信号由接收设备产生,在SCL为高电平期间,接收设备将SDA拉为低电平,表示数据传送正确,产生应答,时序图如下所示:4.4.8 数据传输图4.11 I2C总线应答时序图主机发送寻址信号并得到从器件应答后,便可以进行数据传输,每次一个字节,但每次传输都应得到应答信号后再传输下一个字节信号。4

    注意事项

    本文(基于单片机的智能空调节电控制器毕业设计论文(C语言编程).doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开