《基于单片机红外遥控开关的设计知识讲解.doc》由会员分享,可在线阅读,更多相关《基于单片机红外遥控开关的设计知识讲解.doc(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Good is good, but better carries it.精益求精,善益求善。基于单片机红外遥控开关的设计-NANCHANGUNIVERSITY毕业论文设计diplomaprojectandthesis(20092011年)题目:基于单片机红外遥控开关设计英文题目:TheDesignoftheInfrared-controllerBasedonSCM学院:高等职业技术学院系别:信息工程系专业:应用电子技术班级:09级应用电子技术1学生姓名:胡会亮学号:8210909008指导老师:梅光起讫日期:2011年11月1日2012年5月15日二一一年十二月摘要红外遥控技术的出现,不仅大大
2、提高了劳动生产率,降低了成本,而且减轻了人们的劳动强度,改善了劳动条件。红外线遥控器具有体积小、功耗低、功能强、成本低等特点从而成为了当今非常流行的一种控制方式红外遥控器是一种利用红外遥控系统来控制被控对象的系统.整个系统由数字电路和模拟电路两个部分组成。发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括LED红外光发射、解调、解码电路。1通过对设计要求地认真分析和研究,拿出了几种可行方案,最终选定了一个最佳方案。该方案是采用先进的单片机技术实现遥控的主要手段。我们所设计的遥控器能控制5个电器的电源开关,并且可对一路电灯进行亮度的调节。关键字:遥控电路,红外发射,红外接收,单片机A
3、bstractInfraredremotecontroltechnology,notonlygreatlyimprovedlaborproductivity,reducedcosts,andreducethepeopleslaborintensityandimprovetheworkingconditions.Infraredremotecontrolhasasmallsize,lowpowerconsumption,functionality,andlowcostinordertobecomeaverypopularpresent-daycontrol.Theinfraredremoteco
4、ntrolisonekindofuseinfraredremotecontrolsystemcontrolsiscontrolledtheobjectthedepartmentgreenoverallsystemiscomposedbythedigitalcircuitandtheanalogouscircuittwoparts.Launchespartiallyincludingthekeyboardmatrix,thecodedmodulation,theLEDinfraredtransmitter;ReceivespartiallyincludingtheLEDinfraredlight
5、launch,thedemodulation,decodestheelectriccircuit.Afteranalyzingandresearchingontherequestofthedesign,wetakeseveralblueprintandweselectedthebestoneintheend.TheprojectmakeuseofadvancedSCMtorealizetheremotecontrol.Remotecontrollerwedesignedcandominate5electricalsourceswitchesandadjustthebrightnessofone
6、light.keyword:RemotecontrollingcircuitInfraredemissionInfraredreceiving,SCM-目录第一章绪论11.1红外遥控技术的研究和成果11.2本设计的方案和比较3第二章红外遥控控制原理5第三章红外遥控器的硬件系统设计83.1所需要的器件及选择83.1.1显示器件的选择83.1.2按键控制方式的选择83.2电路设计83.2.1红外遥控发射器遥控方式83.2.2发射电路的设计93.2.3发射电路原理图93.2.4红外遥控接收器接收方式103.2.5接收电路原理图103.3系统功能实现方法113.3.1遥控码的编码格式113.3.2遥控
7、码的发射123.3.3数据帧的接收处理12第四章红外遥控器的软件系统设计144.1遥控发射部分144.2遥控接收部分15第五章设计调试185.1调试前不加电源的检查185.2静态检测与调试185.3动态检测与调试185.4调试注意事项19第六章结论20参考文献21致谢22附录(计算机程序清单)23第一章绪论目前市面上的遥控器铺天盖地,对于家电设备的控制,首选的就是红外遥控器,然而技术和经济的发展使得家庭数字化趋势越来越强烈,一对一遥控器(即一个遥控器只能控制一种类型的家电设备)已经不能满足用户要求。多功能红外遥控器就是在普通红外遥控器的基础上,应市场需求而产生的,它能控制不同种类的设备,并且操
8、作方便,深受顾客的欢迎,这也决定了多功能遥控器具有广阔的应用前景。1.1红外遥控技术的研究和成果常用的红外遥控系统一般分发射和接收两个部分。发射部分的主要元件为红外发光二极管。它实际上是一只特殊的发光二极管;由于其内部材料不同于普通发光二极管,因而在其两端施加一定电压时,它便发出的是红外线而不是可见光。目前大量的使用的红外发光二极管发出的红外线波长为940nm左右,外形与普通5发光二极管相同,只是颜色不同。红外发光二极管一般有黑色、深蓝、透明三种颜色。判断红外发光二极管好坏的办法与判断普通二极管一样;用万用表电阻挡量一下红外发光二极管的正、反向电阻即可2。红外发光二极管的发光效率要用专门的仪器
9、才能精确测定,而业余条件下只能用拉锯法来粗略判判定。接收部分的红外接收管是一种光敏二极管。在实际应用中要给红外接收二极管加反向偏压,它才能正常工作,亦即红外接收二极管在电路中应用时是反向运用,这样才能获得较高的灵敏度。红外发光二极管一般有圆形和方形两种。由于红外发光二极管的发射功率一般都较小(100mW左右),所以红外接收二极管接收到的信号比较微弱,因此就要增加高增益放大电路。红外遥控常用的载波频率为38kHz这是由发射端所使用的455kHz晶振来决定的。在发射端要对晶振进行整数分频,分频系数一般取12,所以455kHz1237.9kHz38kHz。1.2本设计的方案和比较根据毕业设计的要求,
10、利用单片机设计一个遥控开关电路,可以拟定以下的几种方案。方案一:(简易红外遥控电路)在不需要多路控制的应用场合,可以使用由常规集成电路组成的单通道红外遥控电路。这种遥控电路不需要使用较贵的专用编译码器,因此成本较低。红外发射部分产生振荡频率红外发射图1.1方案一红外发射部分示意图考虑到本方案电路是简单的单通道遥控器,可直接产生一个控制功能的震荡频率,再通过红外发光二极管发射出去。红外接收部分红外接收解调控制受控电器图1.2方案一红外接收部分示意图当红外接收头接收到控制频率时,由一个电路对其进行解调并产生相应的控制功能。方案二:(利用红外遥控开关电路)用单片机制作一个红外电器遥控器,可以分别控制
11、5个电器的电源开关。红外发射部分:单片机按键控制红外发射图1.3方案二红外发射部分示意图当按下遥控按钮时,单片机产生相应的控制脉冲,由红外发光二极管发射出去。红外接收部分:单片机显示红外接收受控电器电源开关图1.4方案三红外接收部分示意图当红外接收器接收到控制脉冲后,经单片机处理由显示设备显示出当前受控电器的序号。方案比较综上所述通过比较三套方案,方案一未采用单片机控制,功能过于单一,仅能对一路电器进行简单的遥控;方案二的红外线发射/接收控制电路采用单片机来实现,电路简单,实用性强。第二章红外遥控控制原理红外遥控就是把红外线作为载体的遥控方式。由于红外线的波长远小于无线电波的波长,因此在采用红
12、外遥控方式时,不会干扰其他电器的正常工作,也不会影响临近的无线电设备。同时,由于采用红外线遥控器件时,工作电压低,功耗小,外围电路简单,因此它在日常工作生活中的应用越来越广泛。常用的红外遥控系统一般分发射和接收两个部分。常用的红外遥控系统一般分发射和接收两个部分。遥控发射具有键盘矩阵,每按下一个键,即产生具有不同的编码数字脉冲,这种代码指令信号调制在38kHz的截波上,激励红外光二级管产生具有脉冲串的红外波,通过空间的传送到受控机内的遥控接收器。在接收过程中,红外波信号通过光电二级管转换为38kHz的电信号,此信号经过放大、检波、整形、解调、送到解码与接口电路,从而完成相应的遥控功能。图2.1
13、红外遥控原理图发射部分的主要元件为红外发光二极管。它实际上是一只特殊的发光二极管;由于其内部材料不同于普通发光二极管,因而在其两端施加一定电压时,它便发出的是红外线而不是可见光。目前大量的使用的红外发光二极管发出的红外线波长为940nm左右,外形与普通5发光二极管相同,只是颜色不同(如图2.1)。红外发光二极管一般有黑色、深蓝、透明三种颜色。判断红外发光二极管好坏的办法与判断普通二极管一样;用万用表电阻挡量一下红外发光二极管的正、反向电阻即可。红外发光二极管的发光效率要用专门的仪器才能精确测定,而业余条件下只能用拉锯法来粗略判判定2。图2.2红外发光二极管接收部分的红外接收管是一种光敏二极管(
14、如图2.2)。在实际应用中要给红外接收二极管加反向偏压,它才能正常工作,亦即红外接收二极管在电路中应用时是反向运用,这样才能获得较高的灵敏度。红外发光二极管一般有圆形和方形两种2。图2.3红外接收二极管由于红外发光二极管的发射功率一般都较小(100mW左右),所以红外接收二极管接收到的信号比较微弱,因此就要增加高增益放大电路。前些年常用pc1373H、CX20106A等红外接收专用放大集成电路。最近几年不论是业余制作还是正式产品,大多都采用成品红外接收头。成品红外接收头的封装大致有两种:一种采用铁皮屏蔽;一种是塑料封装。均有三只引脚,即电源正(VDD)、电源负(GND)和数据输出(VO或OUT
15、)。红外接收头的引脚排列因型号不同而不尽相同,可参考厂家的使用说明。成品红外接收头的优点是不需要复杂的调试和外壳屏蔽,使用起来如同一只三极管,非常方便。但在使用时注意成品红外接收头的载波频率。红外遥控常用的载波频率为38kHz这是由发射端所使用的455kHz晶振来决定的。在发射端要对晶振进行整数分频,分频系数一般取12,所以455kHz1237.9kHz38kHz。也有一些遥控系统采用36kHz、40kHz、56kHz等,一般由发射端晶振的振荡频率来决定。红外通信是利用950nm近红外波段的红外线作为传递信息的媒体,即通信信道。红外通信的基本原理是发送端将基带二进制信号调制为一系列的脉冲串信号
16、,通过红外发射管发射红外信号。常用的有通过脉冲宽度来实现信号调制的脉宽调制PWM(Pulse-widthmodulation)和通过脉冲串之间的时间间隔来实现信号调制的脉时调制PTM(Pulse-timemodulation)两种方法。简而言之,红外通信的实质就是对二进制数字信号进行调制与解调,以便利用红外信道进行传输;红外通信接口就是针对红外信道的调制解调器。通常发送端采用脉时调制(PTM)方式,将二进制数字信号调制成某一频率的脉冲序列,并驱动红外发射管以光脉冲的形式发送出去;接收端将接收到的光脉转换成电信号,再经过放大、滤波等处理后送给解调电路进行解调,还原为二进制数字信号后输出。对于发送
17、端来说,当无红外脉冲发射时,发送的是二进制数据1;而有红外脉冲发射时发送的是二进制数0。而对于接收端来说,没有接收到红外光,则认为是1;接收到则认为是0。相比之下,96年发布的FIR不再依托UART(UniversalAsynchronousReceiverTransmitter,通用异步收发器),其最高通讯速率有了质的飞跃,可达到4Mbps的水平。FIR采用了全新的4PTM调制解调,即通过分析脉冲的相位来辨别所传输的数据信息,每2个二进制数据位有4种状态,把每个位分为4个相,脉冲出现不同的相位上表示两位数据的不同状态。4第三章红外遥控器的硬件系统设计3.1所需要的器件及选择3.1.1显示器件
18、的选择在单片机应用系统中,使用的显示器主要有LED(发光二极管)和LCD(夜晶显示器)。这两种显示器成本低廉,配置灵活,与单片机接口方便。但是他们也是各有特点的:LED接口非常简单,不需要专用的驱动程序,在设计程序时也非常的简单;LCD显示的字比较丰富,也比较清楚,给人的感觉很好,但是他接口复杂,且要自己造字库,难度不小。对于万用表来说,在配置一些指示灯的前提下,只显示数字就够了,故没必要采用LCD,用LED就够了3.1.2按键控制方式的选择由于本设计所控制的电器数目较少,所以不用外接扩充键盘,直接使用单片机上的接口,直接使用8个点触式开关即可。3.2电路设计用单片机制作一个红外电器遥控器,可
19、以同时分别控制5个电器的电源开关。3.2.1红外遥控发射器遥控方式本遥控发射器采用码分制遥控方式,“码分制”是对信号进行正交编码,利用数学上的正交特性区别不同信号,在频率上、时间上和空间上不分割,接受端根据相应的“码型”来识别和选择所需的信号。码分制红外遥控就是指令信号产生电路以不同的脉冲编码(不同的脉冲数目及组合)代表不同的控制指令。当不同的指令键被按下时,指令信号电路产生不同脉冲编码的指令信号,也就是进行编码,然后经调制电路调制,变为编码脉冲编码脉冲调制信号,再由驱动电路驱动红外发射器发射红外信号5。整体过程如下:指令键指令编码调制驱动红外发射图3.1码分制遥控方式示意图3.2.2发射电路
20、的设计本发射电路采用一个12M的晶体振荡器,产生相对应受控开关的脉冲频率,通过红外发射管发射出去。单片机第9脚(RST)所接的是一个最简单的RC上电复位电路。P3.5接一个三级管发光二级管利用红外光为介质,将控制信以红外光脉冲的形式发射出去,由接收电路再进行放大,解调,信号还原。晶体三极管主要用于放大电路中起放大作用,本设计采用的是一个NPN型的三级管9013,为了得到更大的放大倍数,采用了类似共射级接法。因为从p3.5口出来的为高电压,而三级管9013不能承受此电压,所以采用了一个阻值较大的电阻来起分压作用,从而缓冲了加到三级管上的电压。3.2.3发射电路原理图下图为该系统遥控发射器电路原理
21、图,其中第1脚至第5脚接5个点触式的开关,用来遥控电器电源开关,第9脚为单片机的复位脚,采用简单的RC上复位电路,15脚作为红外线遥控码的输出口,用于输出40kHz载波编码,18,19脚接12MHz晶振56。图3.2发射电路电路图3.2.4红外遥控接收器接收方式红外接收前置放大解调指令解码驱动执行图3.3接收器接收方式示意图由上述可见,红外遥控系统中的指令信号及检出电路,在码分制系统中由编码电路和解码电路构成,而且要有调制和解调的过程,因为码分制系统编码脉冲的频率极低,为超低频,如果不用调制与解调电路,外界突然的光线变化可能会对接收电路造成干扰,产生误动作,系统的抗干扰能力及可靠性就难以保证。
22、12133.2.5接收电路原理图以下是为该系统的遥控接收器电原理图。第1至8接数码管,用来显示被控电器开关的序号,显出数字0至5。第35至39口接作为5个电器的电源控制输出,后接继电器,此处是实现控制电器开关的主要。当有输出电流的时候,电流通过继电器,继电器检测到电流后开启功能,对应的电器电源接通。同时电流流过发光二极管,二极管发光,我们就可以知道控制是否成功。第10脚为50Hz交流市电相位基准输入,第12脚为中断输入口,第11脚用于接收红外遥控码输入信号5611。图3.4接收电路电路图3.3系统功能实现方法3.3.1遥控码的编码格式该遥控器采用脉冲个数编码,不同的脉冲个数代表不同的码,最小为
23、2个脉冲,最大为9个脉冲,为了使接收可靠,第一位码宽为3ms,其余为1ms,遥控码数据帧间隔大于10ms,如下图所示:第11脚输出编码波形48。图3.5第10脚输出编码波形3.3.2遥控码的发射当某个被控电器的电源开关被按下时,单片机先读出键值,然后根据键值设定遥控码的脉冲个数,再调制成40kHz方波由红外线发光管发身出去。发射电路的第15脚的输出调制波如下图所示48:图3.6第15脚输出编码波形3.3.3数据帧的接收处理当红外线接收器输出脉冲帧数据时,第一位码的低电平将启动中断程序,实时接收数据帧。在数据帧接收时,将对第一位(起始位)码的码宽进行验证.若第一位低电平码的脉宽小于2ms,将作为
24、错误码处理。当间隔位的高电平脉宽大于3ms时,结束接收,然后根据累加器A中的脉冲个数,执行相应输出口的操作。下图为红外线接收器输出的一帧遥控码波形图48。图3.8红外线接收器的一帧遥控码波形图第四章红外遥控器的软件系统设计4.1遥控发射部分开始初始化调用键扫描处理子程序图4.1遥控发射主程序上图是遥控发射的主程序,首先初始化程序,然后调用键扫描处理子程序。扫键开始键按下?逐行扫描,按P口值查键号按键号转至相应的发射程序返回NY图4.2扫键过程流程图扫键过程:首先判断控制键是否按下,若有控制键按下则进行逐行扫描,按照P口值查找键号,最后按照键号转至相应的发射程序如下所示。发射开始装入发射脉冲个数
25、(R1)发3ms脉冲停发1ms(R1)-1=0发1ms脉冲停发1ms返回YN图4.3红外信号发射程序红外信号发射过程:首先装入发射脉冲个数(发射时为3ms脉冲,停发时为1ms脉冲),此时若发射脉冲个数为1则返回主程序,若不为1则发1ms脉冲,然后停发1ms脉冲,这样便结束整个发射过程。在实践中,采用红外线遥控方式时,由于受遥控距离,角度等影响,使用效果不是很好,如采用调频或调幅发射接收码,可提高遥控距离,并且没有角度影响。4.2遥控接收部分开始初始化按显示数据设定控制脉冲延时值P3.1=0?调延时程序P2.0至P2.4口输出控制脉冲NY图4.4遥控接收部分主程序遥控接收部分的主程序及初始化及延
26、时过程如上:首先初始化,然后按照显示数据设定控制脉冲延时值,看P3.1口的脉冲是否为0,若不为0则调入延时程序,此时P2.7口输出控制脉冲然后返回;若为0则直接返回。中断开始低电平脉宽2ms接收并对低电平脉冲计数高电平脉宽3ms?按脉冲个数至对应的功能程序中断返回NYNY图4.5图4.5中断过程程序中断过程:首先判断低电平脉宽度是否大于2ms,若脉宽不到2ms,则中断返回;若低电平大于2ms,则接收并地低电平脉冲计数,接下来看判断高电平脉宽度冲是否大于3ms,若脉宽不到3ms,则返回上一接收计数过程;若高电平脉宽大于3ms,则按照脉冲个数至对应功能程序.此时中断返回。4610第五章设计调试控制
27、电路板的安装与调试在整个电路的设计中占有重要位置,它是把理论付诸实践的过程,也是把纸面设计转变位实际产品的必经阶段。对试验阶段的电路板的安装一般有两种方式即焊接方式和面包板插接方式。使用面包板焊接更加方便,容易更换线路和器件,而且可以多次使用。本设计常用的调试仪器有:万用表、稳压电源、示波器、信号发生器等。5.1调试前不加电源的检查对照电路图和实际线路检查连线是否正确,包括错接、少接、多接等;用万用表电阻档检查焊接和接插是否良好;元器件引脚之间有无短路,连接处有无接触不良,二极管、三极管、集成电路和电解电容的极性是否正确;电源供电包括极性、信号源连线是否正确;电源端对地是否存在短路(用万用表测
28、量电阻)。经过上述检查,我们发现我们所设计的电路存在错接和连接处不良接触的问题,经过细心的检查后,解决了上述的一些电路上的问题。5.2静态检测与调试断开信号源,把经过准确测量的电源接入电路,用万用表电压档监测电源电压,观察有无异常现象:如冒烟、异常气味、手摸元器件发烫,电源短路等,如发现异常情况,立即切断电源,排除故障;我们的电路在此项测试中如无异常情况,接着我们又分别测量各关键点直流电压,如静态工作点、放大电路输入、输出端直流电压等是否在正常工作状态下,结果有个别电路不符,经过调整电路元器件参数、更换元器件,使电路最终工作在合适的工作状态;对于放大电路我们还用示波器观察是否有自激发生。结果一
29、切正常。5.3动态检测与调试动态调试是在静态调试的基础上进行的,调试的方法地在电路的输入端加上所需的信号源,并循着信号的注射逐级检测各有关点的波形、参数和性能指标是否满足设计要求,如必要,要对电路参数作进一步调整。发现问题,要设法找出原因,排除故障,继续进行。我们所设计的遥控器电路是采用码分制遥控方式,我们用示波器对发射电路输出端及接收电路输入端的信号波型的进行了检查,发现当按下不同的开关按钮时所显示的波型是不同的。这说明了此电路是工作在正常状态的。5.4调试注意事项经过我们自己动手调试电路。我们从问题之中总结出来一些常用电路调试的注意事项。(1)正确使用测量仪器的接地端,仪器的接地端与电路的
30、接地端要可靠连接;(2)在信号较弱的输入端,尽可能使用屏蔽线连线,屏蔽线的外屏蔽层要接到公共地线上,在频率较高时要设法隔离连接线分布电容的影响,例如用示波器测量时应该使用示波器探头连接,以减少分布电容的影响。(3)测量电压所用仪器的输入阻抗必须远大于被测处的等效阻抗。(4)测量仪器的带宽必须大于被测量电路的带宽。(5)正确选择测量点和测量。(6)认真观察记录实验过程,包括条件、现象、数据、波形、相位等。(7)出现故障时要认真查找原因。第六章结论本篇设计详细介绍了基于单片机的红外遥控开关的工作原理、基本结构;分析了红外遥控技术的原理,清晰的总结出红外发射电路和接收电路的工作原理和技术要求。并针对
31、其特点,采用脉冲个数编码方法,通过设定码宽和遥控码数据帧间隔,成功解决了数据帧接收时的可靠问题。其次,本设计在对现有红外遥控技术的大量文献调研的基础上,提出了运用先进的单片机系统制作多功能红外遥控器,使其在原有控制多个电器开关的基础上,增加了对电灯进行亮度的调光控制的功能,使得本次设计的红外遥控开关更加的有实用性。通过实验表明,在有效距离(8m以内)里我们成功的对5个发光二极管进行了开关控制,LED上的显示随着受控开关变化正常。由于先前进行了严格的器件的挑选,整个红外遥控器系统的灵敏度、测量精度、稳定性都有不错的表现,达到了本次设计的要求。当然,由于时间和本人水平的制约,本设计可能还存在着某些
32、Bug或不足之处!希望各位专家、学者和同学们给予指正。参考文献1李建华.实用遥控器原理与制作.北京:人民邮电出版社,19962苏长赞.红外线与超声波遥控.北京:人民邮电出版社,19953舒经文.最新彩电机芯及其遥控系统的原理与维修.北京:电子工业出版社,19934王明亮等.广播.电视调频发送技术,上、下册.北京:中国广播电视出版社,19935梁延贵.遥控电路可控硅触发电路语音电路分册北京:科学技术文献出版社,20026李华.MCS-51系列单片机实用接口技术.北京:航天航空大学出版社,19997邱关源.电路.高等教育出版社.1989.第三版.8焦李成.电流模式信号处理的进展与展望.电子学报.1
33、992.20(7):87929张肃文,陆兆文.高频电子电路.高等教育出版社.1993.第三版.10康光华,陈大钦.电子技术基础(模拟部分).高等教育出版社.1999.6.第四版.11陈汝全.电子技术常用器件手册.北京:机械工业出版社,199412鲁兵,杨楚民.基于单片机系统的显示接口.机械与电子出版社,199213J.M.Kahn,R.You,“ImagingDiversityReceiversforHighSpeedInfraredWirelessCommunication”.IEEECommunicationsMagazine,p.88(1998).14J.M.Kahn,J.R.Barry
34、,”WirelessInfraredCommunications”Proc.IEEE,vol.85,p.265(1997).15S.Jivkova,M.Kavehrad,”ReceiverDesignsandChannelCharacterisationforMultiSpotHighBitRateWirelessInfraredCommunications”IEEETrans.OnCommunication,vol.49,p.2145(2001).致谢经过几个月的努力,我们在朴老师的耐心帮助和自己的努力下终于完成了此次设计,并按设计要求实现了遥控器的各项功能。通过这次设计使我们从中学到到了很
35、多课本上学不到的知识,了解了红外遥控器的现状和发展趋势,并学会了用单片机开发产品的完整的过程,明白了设计的概念。通过自己亲自去动手和调试我明白的实践的重要性,明白了理论结合实践的含义,同时也大大的提高了自己的动手能力和团队合作能力,这在我以后的工作中都是非常有用的。在这次设计中,朴老师不厌其烦的给我讲解问题和修正错误,在此表示衷心的感谢!附录(计算机程序清单)伪定义:KEYX0EQUP1.0KEYX1EQUP1.1KEYX2EQUP1.2KEYX3EQUP1.3KEYYEQUP0主程序和中断程序入口ORG0000HORGAJMPSTARTORG0003HRETIORG000BHRETIORG0
36、013HRETIORG001BHLJMPINTT1ORG0023HRETIORG002BHRETI初始化程序CLEARMEMIO:CLRADECAMOVP0,AMOVP1,AMOVP2,AMOVP3,ACLRP3.5CLEARMEM:MOVSP,#70HMOVIE,#00HMOVIP,#01HMOVTMOD,#22HMOVTH1,#0F3HMOVTL1,#0F3HSETBEARET主程序START:LCALLCLEARMEMIO;MAIN:LCALLKEYWORKLJMPMAINNOPNOPNOPLJMPSTART;T1中断服务程序INTT1:CPLP3.5RET1KEYWORK:MOVKEY
37、Y,#0FFHCLRKEYX0CLRKEYX1CLRKEYX2CLRKEYX3MOVA,KEYYMOVB,ACLNEA,#0FFHKKEYHITKEYOUT:RET;KEYHIT:LCALLDL10MSMOVA,KEYYCJNEA,B,KEYOUTSETBKEYX1SETBKEYX2SETBKEYX3MOVA,KEYYCJNEA,#0FFH,KEYVAL0SETBKEYX0CLRKEYX1MOVA,KEYYCJNEA,#0FFH,KEYVAL1SETBKEYX1CLRKEYX2MOVA,KEYYCJNEA,#0FFH,KEYVAL2SETBKEYX2CLRKEYX3MOVA,KEYYCJNEA
38、,#0FFH,KEYVAL3LJMPKEYOUT;KEYVAL0:MOVR2,#00HLJMPKEYVAL4;KEYVAL1:MOVR2,#08HLJMPKEYVAL4;KEYVAL2:MOVR2,#10HLJMPKEYVAL4;KEYVAL3:MOVR2,#18HLJMPKEYVAL4;KEYVAL4:MOVDPTR,#KEYVALTABMOVB,ACLRAMOVR0,AKEYVAL5:MOVA,R0SUBBA,#08HJNCKEYOUTMOVA,R0MOVCA,A+DPTRINCR0CJNEA,B,KEYVAL5DECR0MOVA,R0ADDA,R2MOVB,ARLAADDA,BMOVDP
39、TR,#KEYFUNTABJMPA+DPTRKEYFUNTAB:LJMPKEYFUN00LJMPKEYFUN01LJMPKEYFUN02LJMPKEYFUN03LJMPKEYFUN04LJMPKEYFUN05LJMPKEYFUN06LJMPKEYFUN07KEYVALTABDB0FEH,0FDH,0FBH,0F7H,0EFH,ODFH,0BFH,7FH;RET;KEYFUN00:MOVA,#02HLJMPREMOTERET;KEYFUN01:MOVA,#03HLJMPREMOTERET;KEYFUN02:MOVA,#04HLJMPREMOTERET;KEYFUN03:MOVA,#05HLJMP
40、REMOTERET;KEYFUN04:MOVA,#06HLJMPREMOTERET;KEYFUN05:MOVA,#07HLJMPREMOTERET;KEYFUN06:MOVA,#08HLJMPREMOTERET;KEYFUN07:MOVA,#09HLJMPREMOTERET;编码发射程序REMOTE:MOVR1,ALJMPOUT3OUT:MOVR0,#55HOUT1:SETBET1SETBTR1NOPNOPNOPNOPNOPDJNZR0,OUT1MOVR0,#32HOUT2:CLRTR1CLRET1CLRP3.5NOPNOPNOPNOPNOPDJNZR0,OUT2DJNZR1,OUTLCALL
41、DL500MSRETOUT3:MOVR0,#0FFHLJMPOUT1延时513SDELAY:MOVR2,#0FFHDELAY1:DJNZR2,DELAY1RET10ms延时程序DL10MS:MOVR3,#14HDL10MS1:LCALLDELAYDJNZR3,DL10MS1RET;END主程序和中断程序入口ORG0000HLJMPSTARTORG0003HLJMPINTEX0ORG000BHRETIORG0013HRETIORG001BHRETIORG0023HRETIORG002BHRETI初始化程序CLEARMEMIO:CLRADECAMOVP0,AMOVP1,AMOVP2,AMOVP3,
42、ACLEARMEM:MOVIE,#00HSETBEX0SETBEARET;主程序START:LCALLCLEARMEMIOLCALLLOOP;MAIN:JBP3.0,MAINLCALLDLXCLRP2.7LCALLDELAYSETBP2.7LJMPMAINNOPNOPLJMPSTARINTEX0:CLREX0JNBP3.1,READ1READOUTT0:SETBEX0RET1;READ1:CLRAMOVDPH,AMOVDPL,AHARD1:JBP3.1,HARD11INCDPTRNOPNOPAJMPHARD1HARD11:MOVA,DPHJZREADOUTT0CLAAREAD11:INCARE
43、AD12:JNBP3.1,READ12MOVR1,#06HREAD13:JNBP3.1,READ13DECADECAJZFUN0DECAJZFUN1DECAJZFUN2DECAJZFUN3DECAJZFUN4DECAJZFUN5DECAJZFUN6DECAJZFUN7NOPNOPLJMPREADOUTT0;FUN0:CPLP0.0LJMPREADOUTTPFUN1:CPLP0.1LJMPREADOUTTPFUN2:CPLP0.2LJMPREADOUTTPFUN3:CPLP0.3LJMPREADOUTTPFUN4:CPLP0.4LJMPREADOUTTPFUN5:CPLP0.5LJMPREADO
44、UTTPFUN6:CPLP0.6LJMPREADOUTTPFUN7:CPLP0.7LJMPREADOUTTPRET;延时程序DELAY:MOVR0,#OFFHDELAY1:DJNZR0,DELAY1RET;延时10msDL10MS:MOVR1,#14HDL10MS1:LCALLDELAYDJNZR1,DL10MS1RET;调光延时时间控制DLX:MOVR2,BDLX1:LCALLDELAYDJNZZR2,DLX1RET;调光控制程序LOOP:MOVA,P1SUBBA,#0FFHJZLOOP7MOVA,P1SUBBA,#0FEHJZLOOP6MOVA,P1SUBBA,#0FDHJZLOOP5MOVA,P1SUBBA,#0FCHJZLOOP4MOVA,P1SUBBA,#0FBHJZLOOP3MOVA,P1SUBBA,#0FAHJZLOOP2MOVA,P1SUBBA,#0F9HJZLOOP1MOVA,P1SUBBA,#0F8HJZLOOP0RET;LOOP7:MOVB,#01HRETLOOP6:MOVB,#02HRETLOOP5:MOVB,#04HRETLOOP4:MOVB,#06HRETLOOP3:MOVB,#08HRETLOOP2:MOVB,#0AHRETLOOP