《智能红外遥控暖风机设计_毕业设计说明.doc》由会员分享,可在线阅读,更多相关《智能红外遥控暖风机设计_毕业设计说明.doc(36页珍藏版)》请在课桌文档上搜索。
1、.智能红外遥控暖风机设计内容摘要:本论文的设计将涉及到单片机主控电路的设计,液晶显示的驱动,红外遥控技术的设计实现,温度的检测以及控制。这几个的设计都是日常生活生产中比较典型的应用模块。例如在智能化家用电器的应用方面:如洗衣机、空调、电视机、录像机、微波炉、电冰箱、电饭煲,红外遥控暖风机以及各种视听设备等等。通过这些设计的过程,我们将系统地学习单片机在日常生产中的设计应用的方法,旨在锻炼自己的运用理论知识转换成实际应用的的能力。单片机遥控暖风机控制系统设计是个系统的项目开发,每个环节的设计,每个模块的设计都将直接影响整个项目的开发进程。通过论文的设计我们将学会对项目的模块化设计的开发方法。关键
2、词:红外遥控 红外编码解码 单片机Design for vending machines PLC system Abstract: This paper will be involved in the design of the single chip microcomputer to control circuit design, liquid crystal display driver, infrared remote control technology design and implementation, temperature testing and control. These
3、a few of the design are daily life is typical application in production module. For example in the intelligent household appliances application: such as washing machine, air conditioning, television, video, microwave oven, refrigerators, electric cooker, infrared remote control heater and various au
4、dio-visual equipment and so on. Through the design process, we will system to study the microcomputer in the daily production design application method, is designed to develop their own theory knowledge conversion into actual application ability. Single chip microcomputer control system design is a
5、remote control heater system project development, each link of the design, the design of each module will directly affect the whole project development process. Through the design of the paper we will learn to the project of the modular design method of the development.Keywords:Infrared remote contr
6、ol Infrared coding and decoding Single-chip microcomputer.目 录前言11 系统分析11.1需求分析11.2需求分析的标准21.3功能性分析21.4 设计目标21.5 系统整体结构31.6 开发工具介绍32 系统设计42.1 系统设计的原则42.2 系统设计的方法43 硬件系统的详细设计43.1 键盘输入模块43.2 红外控制系统模块53.3 红外接收处理器电路93.4 液晶显示模块114 软件系统设计144.1 键盘扫描的流程图154.2 定时器的流程图154.3 主程序的流程图154.4 主程序的编写165 结束语39参考文献40.智
7、能红外遥控暖风机设计前言 本文利用高温超导热霸做制热材料,利用80C51单片机实现主要电路的处理和控制。此外还利用各种智能芯片完成相应的辅助功能,应用高级C语言编程软件,完成单片机的事务处理和中断控制。应用软件的设计减少硬件的设计的复杂度和减少开发系统的成本。本文应用硬件和软件的有机结合,实现暖风机的智能控制。温度的采集和处理,液晶显示的控制,红外遥控的控制实现和键盘的输入是本文主要研究的内容。1 系统分析1.1 需求分析为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求。对所开发的项目需求进行深入的理解是开发工作获得成功的前提条件。需求分析的任务还不是确定系统完成它的工作,而是仅仅
8、确定系统必须完成哪些工作,也就是对目标系统提出完整,准确,清晰,具体的要求。需求分析是整个项目开发最重要的步骤。需求分析如果做得不到位,以后的开发进程必定受到影响,甚至出现返工或没有在计划的时间内完成开发的任务。1.2 需求分析的标准对于硬件的开发和设计,首先要做的工作就是做好需求分析。开发人员要从实际的情况出发,完全考虑普通用户的使用习惯和使用的要求,尽量做到所开发的产品能完全满足用户的需求。并且使产品尽可能地超出现有的同类或延长使用的周期。 对不同的控制对象,硬件设计的具体要求有所不同,但是基本的标准大体是一样的: 满足用户的要求:硬件设计要满足用户的实际要求,使用的方法要符合用户的使用习
9、惯。 性能需求:指系统要满足的定时约束,响应时间,信息量,安全性。 可靠性和可用性需求:系统的可靠性与可用性密切相关,它量化用户的使用程度1.3 功能性分析红外遥控液晶暖风机系统主要的功能是在一定的范围实现内无线控制暖风机,并且将温度的数值实时地显示在液晶屏幕上。使暖风机可以完成如下的功能:电热丝加热。暖风机分档加热,可以满足复杂环境的暖风热度的要求。吹风/散热风扇。开机后风扇将电热丝加热的空气吹出,形成热风;关机时电热丝停止加热,30S后停止风扇,防止局部受热,设备老化。 可控制摇头。控制暖风机的摇头,可以自主地对各个方向吹暖风。 液晶实时显示温度。利用液晶显示屏显示实时工作的暖风机吹风温度
10、。 可以遥控。利用红外遥控器读对暖风机进行遥控控制。 LED报警。当温度高于某个设定值时候,LED报警启动。1.4 设计目标 红外遥控液晶暖风机系统是具有实际使用功能的家庭日常用品设备。系统的实际目标是利用现代的语言开发技术,利用现在集成芯片技术的广泛应用。利用软件的辅助开发,降低硬件设计的难度,节约开发产品的劳动力,降低产品的开发成本和减少开发周期。使产品具有更大的市场价值。本系统应达到以下目标: 在硬件方面:硬件设计是系统开发比较重要的步骤。硬件设计的合理科学对软件的编写起到促进作用。如果硬件设计顺利科学地完成,那么软件的调试必将大大减少时间。硬件设计主要还是考虑在芯片的选型方面。根据系统
11、的要求,选择满足要求的芯片。此外尽量选择自己熟知的芯片。硬件的设计一定达到简化电路的设计。尽量降低系统的复杂度。对整个流程进行合理的,有效的划分,使系统的后期维护更加方便。 在软件方面:软件的编写一定实现模块化的编程。开发具有独立功能而且和其他模块之间没有过多的相互作用的模块,就可以做到模块的独立性。换句话说,希望设计这样的软件结构,使得每个模块完成一个独立的特定的字功能,并且和其他的模块之间的关系很简单。这就是软件设计的最终目标,也是软件设计所能达到的质量要求。其外,要求运用现在流行的开发语言,保证软件的可读性和可维护性。1.5 系统整体结构图1.5-1 系统整体结构示意图1.6 开发工具介
12、绍对于红外遥控液晶暖风机系统,开发的工具的选取同样的重要。首先应考虑软件的调式环境和硬件的电路设计和仿真。本系统软件的开发使用的工具有Keil uvision2集成开发环境。uvision 1 是16位的软件,连接实际上是DOS命令行的,不能在windows NT和windows 2000上使用。后来KEIL 公司推出新的32位的软件,可以运行在windows NT,windows 2000,windows ME,windows 9X。uvision2 IDE基于Windows的开发平台,包含一个高效的编辑器,一个项目管理器和一个MAKE工具。uvision2支持所有的Keil C51工具,包
13、含C编译器,宏汇编器,连接/定位器,目标代码到HEX转换器。Keil C51编译器具有如下一些优越性:C51源程序经过优化编译后的代码,其效率接近与汇编语言生成的代码.支持851系列单片机,提供对所有外围硬件部件的操作。无论在有无工作寄存器区转换的情况下,C51都能产生快速中断代码。支持多种衍生单片机产品上的双数据指针及高速算术单。能够在整个应用程序中执行全局寄存器优化。所有应用工具均可产生详细警告信息和错误信息,帮助用户处理难以寻找的问题。支持再入功能和寄存器的独立代码,便于中断服务程序和多任务应用程序的执行。采用分组方式执行代码分组和调式,用户程序代码可以轻松突破64K空间的限制。本系统还
14、使用Easy 51Pro编辑器。使用串口通讯,芯片自动判别,编程过程中的擦除、烧写、校验各种操作完全由编程器上的监控芯片89C51控制,不受PC配置及其主频的影响,因此烧写成功率高可以达到100,烧写速度很快并且烧写速度和微机的档次无关。2.采用57600高速波特率进行数据传送,编程速度可以和一般并行编程器相媲美,经测试,烧写一片4K ROM的AT89C51仅需要9.5S,而读取和校验仅需要3.5S4.软件界面友好,菜单、工具栏、快捷键齐全,全中文操作,提供加密功能,可以保护您的创作产权。5.功能完善,具有编程、读取、校验、空检查、擦除、加密等系列功能;6.40pin和20pin锁紧插座,所有
15、器件全部以第一脚对齐,无附加跳线,对于DIP封装芯片无需任何适配器;7.采用优质锁紧插座,和接触不良等问题彻底说再见,可烧写40脚单片机芯片和20脚单片机芯片8.改进的烧写深度确保每一片C51系列芯片的反复烧写次数都能达到1000以上!内部数据至少保存10年。9.因为采用了9针传口通讯随时随地想烧就烧。 此外还使用到单片机开发板和PROTEL SE 等软件。在整个系统开发过程中,使用的应用软件很多,都是专业性比较强的应用软件。对自己的学习,对自己的知识的积累很大的帮助。2系统设计2.1 系统设计的原则为了使开发的系统在后期阶段易于维护,并且安全可靠,需要遵循一系列的硬件设计原则,才能保障系统的
16、正常完成预期的开发目标。 适应性原则:适应性是系统开发必须遵循的最基本原则。包括两方面,一是要适应用户的要求,二是要主动适应现在的技术环境。 递进原则:红外遥控液晶暖风机系统是复杂的系统设计,因此只能先做一个总体规划,然后分步实施,递进发展。 节约原则:红外遥控液晶暖风机系统设计以降低硬件成本为目标,发挥硬件和软件相结合的设计理念。 可靠性原则:系统开发始终坚持可靠性的原则,开发出性能稳定的硬件系统和软件系统。2.2 系统设计的方法系统设计主要分为硬件系统设计和软件系统设计。硬件系统是设计涉及到硬件电路的设计和优化,电器电路的设计一定遵循系统设计原则。选择满足功能要求的硬件部件。硬件系统的设计
17、是模块化设计,最终将各个模块联合在一起,构成一个完整的电路。3 硬件系统的详细设计3.1 键盘输入模块在单片机应用系统中,通常应具有人机对话的功能,能随时发出各种控制命令和数字输入以及报告应用系统的运行状态与运行的结果。数据或命令的输入方式有多种,有红外扫描输入,语言输入,光电输入等的个。其中键盘输入是应用最广泛的一种。键盘输入方便快捷,而且价格低廉。键盘可以分为独立式和矩阵式两类,每一类按其编码的方法又分为编码和非编码两类。单片机系统中普遍使用非编码式键盘, 这类键盘主要解决以下几个问题: 键的识别; 如何消除键的抖动;键的保护。 独立式按键接口电路配置灵活,软件结构简单,但每个按键必须占一
18、根I/O口线。在按键数较多时,I/O线浪费较大,故只在按键数量不多时才采用这种按键电路。在此电路中按键输入部采用低电平有效,上拉电阻保证了按键断开时,I/O口线有确定的高电平。当I/O口内部有上拉电阻时,外电路可以不配置上拉电阻。通过I/O口连接。将每个按键的一端接到单片机的I/O口,另一端接地,这是最简单的方法,如下图所示是实验板上按键的接法,四个按键分别接到P3.0 、P3.1、P3.2和P3.3,并在P1口接有8个发光二极管。对于这种键程序可以采用不断查询的方法,功能就是:检测是否有键闭合,如有键闭合,则去除键抖动,判断键号并转入相应的键处理。采用中断方式:各个按键都接到一个与非上,当有
19、任何一个按键按下时,都会使与门输出为低电平,从而引起单片机的中断,它的好处是不用在主程序中不断地循环查询,如果有键按下,单片机再去做相应的处理。 在键盘中的按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口就可以构成4*4=16个按键,比直接将端口线用于键盘多出了一倍容量,而且线数越多区别越明显。比如多加一条线就可以构成20个按键。所以按键较多时候,采用矩阵方法做键盘是合理的。 矩阵式结构的键盘显然要复杂一些,识别也要复杂一些。P1.4P1.7做输出线,P1.1P1.3做输入线。列线所
20、接的I/O口则作为输入。这样,当按键没有按下时候,所有的输出端都是高电平,代表无按键按下。行线输出是低电平,一旦有按键按下,输入线就会被拉低,这样,通过读入线的状态就可以知道是否有按键被按下。 行扫描法又称为逐行扫描查询法,是一种最常用的按键识别方法,如流程如下。 判断键盘中有无按键按下:将全部行线P1.1P1.3置低电平,然后检测列线的饿状态。只要有一列电平为低,则表示键盘中键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有的列线均为高电平,则键盘中无键按下。 判断闭合键所在的位置:在确认有按键按下时候,即可进入确定具体闭合键的过程。其方法是依次将行线置为低电平,即在置
21、某根行线为低电平,其他线为高电平。在确定某根行线位置为低电平后,在逐行检测列线的电平状态。若某列为低,则该列线与置为低电平线交叉处的按键就是闭合的按键。 本系统要求有6个按键输入,由于输入按键少,所以选择独立式和矩阵式相差无几。考虑在实现时候软件设计的复杂度,本系统运用独立式的键盘输入方式。3.2 红外控制系统模块红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可
22、靠而且能有效地隔离电气干扰。通用红外遥控系统由发射和接收两大部分组成。应用编/解码专用集成电路芯片来进行控制操作。发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。图3.2-1 红外线遥控系统框图 红外控制系统中的红外发送电路采用NB9148,它是用作通用红外遥控发射器的CMOS大规模集成电路,与NB9149相配完成10个功能控制;与NB9159相配完成18个功能控制;可发射的指令达75个,其中63个是完成连续的指令,可多键组合;12个单发指令,只能单键使用。内部结构主要部分功能描述: 振荡电路 内含CMOS反相器及自偏置电阻,外接陶瓷振荡器或LC
23、串联谐振回路即可组成振荡器。当振荡频率设定为455KHz时,则发射载波频率为38KHz。只有当按键操作时才会产生振荡,以次降低功耗。 键输入 通过K1K6输入和T1T3的时序输出可连接6*3键盘矩阵,在T1这列内的6个键可以任意多键组合成63个状态,输出连续发射处于T2和T3这两列的键均只能单键使用,且每按一次只能发射一组控制脉冲。若一列上的数键同时按下,其优先次序为K1,K2,K3,K4,K5,K6。在同一K线上的键多键功能,若同时按下数键,其优先次序为T1,T2,T3。图3.2-2 键输入示意图 发送命令的格式 发送命令由12位组成,其中C1C3是用户码,用来确定不同的模式。每种组合有3个
24、状态:01。10。11。而00状态不用。H,S1和S2是代表连续发送或单次发送的码,D1D6是状态发送的数据玛。发送命令由12位码组成。其中C1-C3是用户码,用来确定不同的模式,C1和C2的组合与接收电路NB9150相配,C1和C2与接收电路NB9149相配。每种组合有三个状态:01、10和11,而00状态不用。 0”与1”的识别正脉冲的占空比为1/4时,代表0”,正脉冲的占空比为3/4时,代表1”。 图3.2-3 正脉冲的示意图 无论是0还是1被发射时,正脉冲都是被调制在38KHz的,载波的占空比为1/3。这样有利于减少功耗。 图3.2-4 正脉冲示意图 基本发送波形 每发送周期按C1,C
25、2,C3,H.1,S1,S2, D1,D2,D3,D4,D5,D6的次序串行发送,总长度为48a,其中a等于每个码期的1/4。 图3.2-5 波形序列示意图3.3 红外接收处理器电路 控制系统不采用与其配套的接收电路,采用通用的红外接受器接受到调制后的方波脉冲序列,然后由单片机处理并进行相应的控制。单片机的电源采用5V,而由红外接受器接收到的由NB9148发出的经过检波去除8KHz载波后的方波信号的高电平为5V,正好相匹配。 如下图所示,由发光接收元件接收的信号经放大,检波去除38KHZ载波到信号输入端。接收信号输入电路内含斯密特触发器对接信号进行整形。图3.3-1 元件连接示意图 接收信号编
26、码的判断根据9148的编码规则,从编码表中可以看出,接收到的12位编码中,最后6位只有一个。每个循环组成一个编码组,这样每组有6个指令码,第一组16是连续发送的编码,712是第一组单发的编码,1318则是第二组单发编码。具体实施控制的其他外围电路可以根据需要添加。 光电放大电路 光电放大电路如图所示图3.3-2 光电放大电路 振荡电路 发射信号的时间检测和内部工作时钟都由此振荡电路决定。应用NB9149时,只需要简单地在单端振荡端并联R和C到地,即可产生稳定的振荡。振荡电路如下图所示 图3.3-3 振荡电路示意图3.4 液晶显示模块液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控
27、制,有电就显示黑色,这样即可显示出图形。液晶显示器具有厚度薄,适于大规模集成电路直接驱动,易于显示全彩色显示的特点,目前已经被广泛应用在各个领域。 线段的显示点阵图形式液晶由M*N个显示单元组成,假设LCD显示屏有64行,128列,每8列对应一个1字节的8位,即每行由16个字节,共128个点组成,屏上64*16个显示单元与显示RAW区1024字节相对应,每一字节的内容和显示屏上相对应位置的明暗对应。例如屏的第一行的亮暗由RAW区的000H00FH的16字节的内容决定,当000=FFH时,则屏上的左上角显示一条亮线,长度为8个点;当3FGH=FFH时,则屏上的右下角显示一条短亮线;当000H=F
28、FH,001H=00H,002H=FFH,003H=00H,=FFH,=00H时,则在屏的顶部显示一条由8段亮线和8条暗线组成的虚线。这就是LCD显示的基本原理。 在小规模点阵液晶显示模块上使用液晶显示驱动控制器组成液晶显示驱动控制系统是非常有益的。这使得液晶显示模块的硬件电路简单化,从而降低模块的成本。但是这也是同时提高了对软件功能的要求,也就是说,许多显示功能如光标,字符库,闪烁等都需要由软件编制而成。HD61203和HD61202就是这类液晶显示驱动控制器件套件。他们必须配套使用,通常有12864和19264两种规格。HD61202的电特性: HD61202是带显示存储器的图形液晶显示列
29、驱动控制器,它的特性是内置64*64位的显示存储器,显示屏上各个象素的显示状态与显示存储器的各位数据一一对应,显示存储器的数据直接作为图形显示的驱动信号。显示数据为1”,相应的像素点显示;显示数据0”相应的象素就不显示。同时HD61202配备了一套显示存储器的管理电路和与计算机接口电路,允许计算机直接访问显示存储器,也就是说HD61202可以直接与计算机的总线连接。但是HD61202不能独立工作,因为它本身不能生成显示时序,所以HD61202需要与相应的带振荡器和显示时序的行驱动器配套使用才能形成一个完整的液晶驱动和控制系统。这个系统将省去计算机与驱动器之间的液晶显示控制器,由此组成液晶显示模
30、块的驱动和控制必然大大降低模块的成本。 12864液晶模块共有两片HD61202作为列驱动器。CSA跟HD612021的CS1相连,CSB跟HD612022的CS1相连,因此CSA,CSB选通组合信号CSACSB=01选通1,CSACSB=10选通2。在12864中,两片HD61202的ADC均接高电平,RST也接高电平,这样在使用12864时就不必考虑着两个引脚的作用。内置的HD61202图形液晶显示模块与单片机的连接方式有两种,一种为直接访问方式,一种为间接访问方式 直接访问方式 硬件电路直接访问方式就是将液晶显示模块的接口作为存储器或I/O设备直接挂在单片机总线上,单片机以访问存储器或I
31、/O设备的方式操作液晶显示模块的工作。直接访问方式的接口实用电路如图所示。在图中,单片机80C51通过高位地址A11P2。3控制CSB,A10控制CSA,以选通液晶显示屏上各个区的控制器HD61202;同时80C51用地址A9P2。1作为R/W信号控制数据总线的数据流向;用地址A8P2。0作为D/I信号控制寄存器的选择;E信号由80C51的P2。7产生。这样就实现了单片机对内置HD61202图形液晶显示模块的电路连接。电位器用于显示对比度高的调节。 间接方式访问 硬件电路:间接控制方式是单片机通过自身的或系统中 的并行接口与液晶显示模块连接,如8031的P1和P3口或8255等并行接口芯片以及
32、像74LS373类锁存器等。单片机通过对这些接口的操作,以达到对液晶显示模块的控制。这种方式的特点是电路简单,控制时序由软件实现,可以实现高速单片机与液晶显示模块的接口。实用电路如图所示。在图中电路中以8031的P1口作为数据口,P3.0RxD为CSA, P3.1为CSB, P3.2 为D/I ,P3.3INT1为R/W 和P3.4为E等信号。 由于在BUSY和REST状态时,除读指令外,其他指令均不产生作用,因此在程序中,对HD61202进行操作前都要判忙,以确定是否可以对液晶进行操作。初始化部分,先送先显示指令,关闭所有显示,然后开显示指令,为显示做准备,最后设置起始行。清屏部分,先进行页
33、地址设计,之后进行列地址操作,分别清除左右半屏,即对RAM进行擦除操作。3.5 温度检测与控制 由DALLAS半导体公司生产的DS18B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。它具有体积小,接口方便,传输距离远等特点。 数字温度传感器DS18B20的测温范围为一55+125 C,精度为05 C,测量的温度值用9 12位数字表示,最大转换时间为750 ms,温度超标报警的上、下限值,DS18B20的转换分辨率均可由用户设定,并能长期保存。DS18B20的另一特点是在没有外部电源下操作的能力,电源
34、由总线为高电平时DQ脚上的上拉电阻提供,此时VCC脚接地。也可用传统方式供电,即将外部电源接在VCC脚上即可。CPU对DS18B20的访问流程是:先对DS18B20初始化,再进行ROM操作命令,最后才能对存储器操作,数据操作。DS18B20每一步操作都要遵循严格的工作时序和通信协议。如主机控制DS18B20完成温度转换这一过程,根据DS18B20的通讯协议,须经三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。 温度检测处理芯片有上图两种封装模式,本文应用前者封装模式。3.6 继电器控制电路 继电器控
35、制电路包括电热丝开关和暖风机功能继电器控制电路。如图3.6-1所示:图3.6-1 继电器控制电路示意图 暖风机功能继电器控制电路的基本组成包括:应用两组继电器,分别控制风扇的转动和摇头控制开关。三极管为NPN型三极管,其集电极与继电器的开关相连,提供开启继电器必须的电流。基极与单片机的管脚相连,因此,继电器的开启电流实际是由单片机控制的。4 软件系统设计系统的软件设计包括红外信号的处理程序,键盘的输入处理程序,温度的采集和处理程序还有液晶显示的驱动程序。软件系统开发的基本流程包括系统的功能分析,功能模块的划分,流程图和最终的代码编写。4.1键盘扫描的流程图图 4.1-1 键盘扫描的流程图4.2
36、 定时器的流程图 图4.2-1 定时器的流程图4.3主程序的流程图图4.3-1 主程序的流程图 4.4 主程序的编写#include#includesbit RST=P20;sbit CLK=P21;sbit DQ=P22;sbit TSOR=P23;sbit ALERT=P24;sbit RS=P27;sbit RW=P26;sbit EN=P25;static unsihned char temp1,temp2;/温度值的整数部分,小数部分static unsihned char pos,posset;/数字电位器电位值,设定值static unsihned char min,sec;/分
37、钟,秒static unsihned char count;/ 中断计时T0static unsihned char minset;/设定的分钟数static unsihned char status1,status2;/状态标志bit stop,timeover;/定时停止,结束static char line0=00:00”;static char line1=c w;#define REGINT 0x06 /红外线间隔Unsighned char bdata Message; /定义存放消息标志的可位寻址字节sbit RedMsg= Message0; /红外遥控消息sbit RedRe
38、ad= Message1; /位接收过程标志sbit RedBit= Message2; /接收到的位值sbit RSend= Message3; /红外接收中重新发送标志unsighed char bdata RedDatal,RedDataH;/*存放遥控的字数据,低4位存放接收到的位的位移,高12位从低到高存放接收到的位*/ /*RedDataH 字节低6位代表指令,只有一个1,C1C3是用户码,H表示连续,S1,S2分别表示第一,第二组单发*/sbit RedData0=RedDataL4; /C1sbit RedData1=RedDataL5; /C2sbit RedData2=Re
39、dDataL6; /C3sbit RedData3=RedDataL7; /Hsbit RedData11=RedDataH0; /D6sbit RedData10=RedDataH1 /D5sbit RedData9=RedDataH2;/D4sbit RedData8=RedDataH3;/D3sbit RedData7=RedDataH4;/D2sbit RedData6=RedDataH5;/D1sbit RedData5=RedDataH6;/S2sbit RedData4=RedDataH7;/S1unsighned char bdata State; /状态字节sbit RedC
40、ontrol=State6; /遥控状态unsighned char data RedCon,Timer;unsighned int nTimer; /定时整形参数void initinterupt; void keyboarddelay; /键盘输入函数/*LCD驱动函数*/void delayl; void delays;void writecommand;void writedata;void showchar;void showstring;void initlcd;/*键盘程序*/unsigned char getkey;/*温度传感器驱动*/void delay15;void de
41、lay60;void delay100ms;void write0ts;void write1ts;bit readts;void resets;void witebts;unsigned char readbts;void gettempts;/*主程序*/void mainchar code str1=HELLO WORLD!char code str2=2007-5-31”unsigned char I;sp=0x50;alert=0;tsor=1;delayl;initlcd;delayl;showstring;showstring;fori=0;idelay100ms;initint
42、erupt;minset=10;posset=0;min=minset;pos=posset;sec=0;count=0;P1=0xF0;satatus1=0;status2=0;stop=1;timeover=0;changepos;inits;whilegettempts;line10=0x20;i=temp1;if9alert=1;if9line10=0x31;i-=100;line11=i/10+0x30;line2=i%10+0x30;line14=temp2+0x30;offor0;pos-changepos;nop;nop;timeover=0;posset=0;ifposset
43、forposset;pos-changepos;nop;nop;else ifposfor;poschangepos;nop;nop;changepos;i=pos;line19=0x20;if99line19=i/100+0x30;i=i%100;line110=i/10+0x30;line111=i/10+0x30;showstring;line05=min/10+0x30;line06=min%10+0x30;line08=sec%10+0x30;line09=sec%10+0x30;showstring ;delay100ms;void initinteruptTOMD=0x21;TL
44、1=0xFD;TH1=0xFD;PX0=1;EA=1;ES=1;PCON=0;TR1=1;SCON=0X50;TL0=0x00;TH0=0x4C;EX0=1;IT0=1;void kayboarddelayunsigned char I,j;i=0x40;j=0xFF;whilewhile;int0_process interrupt 0 using 0unsigned char keyunsigned char keyboard=TP;unsigned char step3=1,2,5;EA=0;key=getkey;switchcase 0;stop=!stop;min=minset;sec=0;break;case 1:case 2:case 3:if minset+=stepkey-1;if60minset=0;min=minset;break;case 5;case 6;case 7;if