1、毕业答辩论文基于单片机的电器遥控器设计毕业设计(论文) 题 目:基于单片机的电器遥控器设计学生姓名:学 号:所在学院:专业班级:届 别:指导教师:目 录前言21控制信息的传递方式2233342总体设计方案4:最简红外遥控电路4:红外遥控开关电路(简单控制)4:利用红外遥控开关电路(复杂控制)563硬件部分设计66777784软件部分设计1313155最后总结186主要参考文献19基于单片机的电器遥控器设计摘 要:遥控,即控制对象的远程控制,使其根据指令执行动作。而如今随着科技的飞速发展遥控控制在生产生活中起到了越来越重要的作用。小到日常生活中的电器控制,大到工业上高危高险作业的遥控以及航天科学
2、上的卫星管控,这些都是遥控的现实应用。基于单片机的遥控器设计采用AT89C51单片机为核心处理器,设计分为发射电路与接收处理电路2个部分。发射端电路采用码分制的信息传输格式并通过红外线载体传递控制信号;接收端通过解码器解码识别发射端发射的红外信号再由单片机AT89C51输出相对应的控制电平控制受控的对象。本设计是以单片机为核心设计的一种智能型红外遥控器,可以对发出的红外信号进行识别与处理。关键词:遥控器;单片机;红外信号;解码器Electric Remote Control Microcontroller Based DesignAbstract: remote control, namely
3、 the controlled object remote control to operate according to instructions. And now with the rapid development of remote control technology plays an increasingly important role in the production of life. Small everyday electrical control, high-risk insurance to large industrial operations, and satel
4、lite remote control on space science, these are the realities of remote applications. With the development of electronic technology using single-chip micro remote control system is an important direction for future development of the control field. Microcontroller-based remote control designed using
5、 AT89C51 core processors, designed into the transmitter and receiver circuit processing circuit two parts. Code transmitter circuit using the transmission format of the system information and control signals transmitted by infrared carrier; receiving side transmits an infrared signal decoded by the
6、decoder to identify the transmitting end corresponding to the further control level for controlling the controlled object output from the microcontroller AT89C51. The design is based on the design of a microcontroller as the core of intelligent infrared remote control that can be emitted by the infr
7、ared signal recognition and treatment.Keywords: Remote control; MCU; infrared signal; decoder前言随着科技的不断发展以及人们生活水平的不断提高,越来越多的电器产品进入了寻常百姓的家中。电器使人们的生活更加便捷舒适,而如今电器产品所着重的不仅仅是功能上的全面、能耗上的性价比还有操作上的便利。智能化以及远程操控更是未来电器的发展方向。如通过物联网技术用户可以在任意时间任意地点完成对联网电器的操作。不过鉴于本人知识水平的限制,本设计只能通过红外遥的方式控制5个电器的开关,以及队一组LED灯光的明暗控制。1控制
8、信息的传递方式无线电遥控电路比较复杂实现难度比较大,但是无线电的控制范围广,近从零点几米远则可以突破地球到达外太空!无线电遥控发射电路模块是由电路广泛接受,当接收器接收由发射器控制电子开关的工作发射的无线电波。因此,无线电波收发器和发送器的接收频率必须相同。脉冲发射有调频、调幅、数字脉冲发射三种;从开关来说分有单通道遥控和多通道遥控。由于无线电的使用可能会干扰和影响其他电子设备的工作,比如飞机在飞行中要求乘员关闭手机等无线通讯设备。所以依据各国的无线电管理条列(如中华人民共和国无线电管理条例),无线电的使用被严格划分。在不同的场合、不同的工作性质下都有专门的对无线电的频率、功率的约束。国家也对
9、于用无线电业余爱好者,留下了了特定的波段。单纯从遥控的效果来说,无线电的发射功率、接收器件的接受灵敏度以及工作频率都是影响它的重要因素。但是因为无线电的使用受到了管制(发射功率、工作频率),我们只能从提高接受灵敏度、加强电路抗干扰能力入手改进电路。而这两点恰恰就是无线电遥控电路设计的重点。并且用无线电传送控制指令还要有一定的安全性问题(指令的正确收发)。因此为了达到设计要求在基础的收发电路之上我们就需要加入许多附加电路。综上所述,使用无线电遥控本身实现复杂,并且无线电的使用受到了国家法律法规的约束。因此对于本设计无论是成本上、实现难度上、以及设计本身的应用范围上来说使用无线电遥控都不是最佳选择
10、,甚至都不是可选项。 红外遥控是用红外线发光LED,发射波长940nm的红外不可见光,来传送信号。发射端经过红外线发射LED发送红外线控制信号,信号被红外接收模块接受,并对信号进行译码而做出相匹配的控制动作完成遥控。因为红外光谱中的可见光以外,所以抗干扰性的红外传输。和基本性能用的红外光,而且不容易产生相互干扰的直线传播,是理想的信息载体的传播。信息可以被调制的红外光透射,而长波红外波长小于无线电波,以便不干扰的红外线遥控器等电气设备,也不会影响到相邻的无线电设备。再者,使用红外遥控器件时,工作电压低,功耗小,附加电路简单,对于本设计来说恰恰符合需求。Wifi无线网络,可为计算机,便携式设备(
11、手机,平板)等终端以无线方式互相连接的技术。不过本设计如果使用wifi传递控制信息,则遥控器端以及受控端要加装wifi模块。虽然这样做加大了控制范围,但是成本上还是相对来说比较高昂。ZigBee是一种无线连接,、20kbit/s和40kbit/s的传输速率,它的传输距离在10-75m的范围内,但可以继续增加。从上所述,ZigBee单纯的性能以及成本方面来考量似乎是最优的选择。但是ZigBee在实际使用过程中还要考虑不同设备之间同时收发信息时设备之间的冲突问题。而解决此问题可以考虑在设备之间的控制核心上编写一套简单的通信协议来处理信息冲突。本设计中使用的是AT89C51单片机,在功能上就难以支持
12、ZigBee复杂的信息传递,并且对此设计本身来说使用ZigBee来说成本还是过高。对以上几种信息传递方式的对比与选择后,确定本设计使用红外遥控的方式对设备进行遥控。红外遥控应用简单、成本低廉、控制范围基本能达到设计要求。2总体设计方案:最简红外遥控电路在仅仅需要控制单一受控目标的情况下,使用一般集成电路组成单通道红外遥控电路。这种简单的控制电路并不需要专门配置译码器,所以成本比较低。红外发射端示意图: 考虑到该程序是一个简单的单通道遥控器,可以直接产生一个合适频率再通过红外LED发射。红外接收端示意图: 当红外接收端接收到控制频率时,由一个附加电路对其进行解调并产生相对应的控制功能。:红外遥控
13、开关电路(简单控制)红外线发射/接收电路均采用单片机来实现,输出控制方式可选择,实用性强。红外发射端示意图:当按下遥控按键时,单片机发出对应的控制脉冲,由红外LED发射出去。红外接收端示意图: 当红外接收端接收到控制脉冲后,由控制方式选择开关模式是“互锁”还是单路控制,再由单片机处理以后,对相应的受控目标进行控制。:利用红外遥控开关电路(复杂控制)使用单片机制作一个红外电器遥控器,可以控制最多5个电器的电源开关,和一个发光LED的开关,并且可以对发光LED的亮度进行调节。红外发射端示意图:按下相应的单片机控制脉冲的按钮,用红外发射出去。红外接收端示意图:当控制接收通过微控制器发送的红外脉冲将解
14、析到显示器上的控制对象的信息,并确定LED是否调光,调光,如果需要调光跳跃处理的调光电路的功能。以上三套方案中,方案一功能简单过于单一,没有才用单片机控制,只能对一路电器进行简单的开关遥控;方案二和方案三的红外遥控发射器/接收器使用单片机电路,该电路比较简单,实用性强。不过,方案二虽然实现了对多个电器的控制但是只能进行简单的开关变换,功能上来说还是比较单薄。而方案三则不仅实现了多个电器的控制还能对LED进行亮度的调节。所以相比较而言本设计使用方案三。3硬件部分设计本设计所采用的单片机选择用AT89C51来实现。AT89C51是一种带4K字节FLASH存储器(FPEROMFlash Progra
15、mmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是闪存2K字节微控制器的可擦可编程只读存储器。单片机的EEPROM可擦除重复1000次。该设备采用了高密度非易失性存储器ATMEL公司的制造技术,与工业标准的MCS-51指令集和输出管脚相兼容。因为CPU8和多功能组合在单个闪速存储器芯片中,ATMEL AT89 C51是用于单片机一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机的灵活、高效、廉价,使它成为嵌入式行业内常用的单片机主控芯片。单片机系统使用中应用最多的显示器主要
16、有LED和LCD(液晶显示器)。这2种显示器成本低廉,配置灵活与单片机的I/O接口方便。不过它们之间的使用也是各有特点:LED接口简单不需要专门的驱动程序;LCD显示的字体比较丰富,也清楚,但是LCD的接口复杂要想显示文字还要自己造字库,难度比较大。对于本设计来说用LED表示控制目标的受控状态就够了,故没必要使用LCD。本设计中用到的调光功能只是调节LED等的亮暗,因此不用使用复杂的调光控制系统,使用一个光电耦合器就可以完成。光电耦合器是以光为媒介传输电信号的一种电一光一电转换器件。光电耦合器具有体积小、使用寿命长、工作温度范围宽、抗干扰性能强无触点且输入与输出在电气上完全隔离等。本设计使用P
17、S2019光电耦合器。本设计所控制的电器数目比较少,因此没必要外加键盘,直接使用单片机上的控制接口,使用8个点触式开关就够了。LF5038是一种无色透明已经封装完毕的红外线发射管,LF0038F是鼻梁状的一体化红外接收头。LF5038有2个引脚,“A”和“K”是它的阳极和阴极。LF0038F具有3个引脚:GND为接地端;VCC为输入电源端,;OUT为数据输出端,默认未接受状态为输出高电平,使用时一般需要外接一个大于20K的电阻。LF5038主要参数为:峰值波长940nm;,;一般来收正向工作电流越大LF5038的发射距离越远。LF0038F的载波频率的值为28kHZ;当红外线发射管的正向电流为
18、300mA时,LF0038F的最小接收距离为15m、接收角度的范围为上下45;若以宽度为600us发射脉冲,在5m的范围内,取50次平均值得到LF0038F的接收脉冲宽度范围是500-700us。本遥控发射器采用码分制遥控方式,码分制红外遥控就是指令信号产生电路以不同的脉冲编码(不同的脉冲数目及组合)代表不同的控制指令。当不同的指令键被按下时,指令信号电路产生不同脉冲编码的指令信号,也就是进行编码,然后经调制电路调制,变为编码脉冲编码脉冲调制信号,再由驱动电路驱动红外发射器发射红外信号。发射过程示意图:、数字基带信号的产生因为一体化接收头的载波频率为38KHZ,所以发射模块需要以38KHZ的载
19、波来发射信号。使用AT89C51单片机可以很简单的产生这种载波信号,但是需要使用单片机自带的一个定时器资源。为了是单片机的利用更加效率,提高性能,我们使用石英晶体多谢振荡器来生成38KHZ的载波信号。红外发射的数字基带信号也可以用单片机产生。数字基带信号使用单极性非归零(NRZ)的形式编码,通过单片机自带的定时器生成特殊频率的方波信号,。数字基带信号和载波信号经过“与非”门输出以后成为红外发射端的控制信号。下图为输出L和OUT的波形图:因为输出的电流的最大值能达到25Ma,但是红外发射的有效距离由红外发射管IF的数值决定。所以为了增加有效距离必须要重新设计驱动电路。红外发射管的驱动电路主要有:
20、NPN管构成的驱动电路和PNP管构成的驱动电路。考虑到三极管的最大集电极电流要大于红外发射管的IF,三极管9012和9013都能符合技术要求。下图为2种驱动电路图:从以上分析可知:L恒定输出高电平作为红外发射管的关断信号。因此发射端电路使用NPN电路。在确定使用AT89C51作为核心芯片和点触式开关作为控制按键以后,加上简单的红外发射电路和12M晶体振荡器就可以实现红外发射。图示为核心电路图:图中第9脚(RST)所接的是一个最简单的RC上电复位电路(用来替代看门狗)。;计数完成后由三级管发光二级管利用红外光为介质,将控制信以红外光脉冲的形式发射去,由接收电路再进行放大,解调,信号还原。晶体三极
21、管主要用于放大电路中起放大用,本设计采用的是一个NPN型的三级管9013,为了得到更大的放大倍数,采了类似共射级接法。,而三级管9013不能承受此电压,所以采用了一个阻值较大的电阻来起分压作用,从而缓冲了加到三级管上的电压。上图为发射电路完整电路图,图中第1脚到第7脚接7个点触式开关。其中第1到第5脚控制电器的开关,第6脚为可调LED 7脚与第8脚为控制LED灯亮度的开关,按下7脚灯变亮,按下8脚灯变暗,第9脚为复位脚,使用简单的RC上电复位电路,15脚为红外线遥控码的输出端口,输出40KHZ载波编码,第18、19脚接12MHZ晶振。红外遥控系统中的指令信号以及检出电路,在码分制系统中由编码电
22、路和解码电路组成。并且因为码分制系统编码脉冲的频率很低,为超低频,所以需要有调制和解调的过程。否则就有可能因为外界的光线突变造成对接收电路的干扰,产生误响应,系统的抗干扰能力和可靠性就较差。接收过程图:因为电路中使用塑料封装完毕的一体化红外接头接收数据,所以对电源要求比较苛刻。因此在接收电路中,。但是不适合使用波纹大的开关电源,以及和发射模块使用同一电源驱动接收模块电路。下图为红外接收模块电源电路图:在确定发射电路的硬件构成,本着尽量使用相同原件的原则。设计出如下电路从上图可知:单片机第1号端口到第8号端口接8位数码管,用来显示被控制LED发光2极管的亮度,数码管显示范围从0到8,显示8时最亮
23、然后逐级递减到0最暗。第25号端口到第39号端口接作为5个电器的电源控制输出。其中第34号端口是可以调节光暗的电灯,第28端口是电耦合器调光等的调光脉冲输出,第10号端口为50HZ交流电(市电)相位基准输入,第12号端口是中断输入,第11号端口是用来接收红外线遥控码信号。4软件部分设计本设计中遥控器主机与从机(发射端与接收端)之间的信息交换格式采用脉冲个数编码,不同的脉冲个数代表不同的码,最大为9脉冲,最小为2脉冲。为了确保传输的稳定性与可靠性,我们设置第一位码宽为3ms其余为1ms,遥控码数据帧间隔大于10ms。以第10号端口输出波形为例:图 10号端口输出波形当控制开关被激活时,单片机读取
24、所述第一密钥,然后根据脉冲数键值设置远程控制代码,然后调制为40KHZ的方波,通过一个红外发光二极管发射的信号。下图为15号端口发送器电路的输出调制波形:图 15号端口输出挑吃波形当红外线接收端输出脉冲帧数据时,第一位码的低电平将启动中断程序,实时接收数据帧,在接收数据帧是,会对启事位码的码宽进行验证。如果第一位低电平码的脉冲位宽小于2ms,将其作为错误码处理。当间隔位的高电平脉冲位宽大于3ms时,结束接受,然后由累加器A中的脉冲个数,执行相应额输出口的操作,图示为红外线接收端输出一帧遥控码的波形:图 红外端发射的初始化代码应该包含初始化T0和系统一上电运行就关闭红外输出这两步。初始化T0,使
25、T0用作为定时器并使其处于模式一工作状态。初始化设置默认不允许开T0中断,并且也不允许启动T0。只有键盘的状态变化才能决定是否开T0中断并且启动T0。单片机上电复位时,4个并行I/O端口默认输出为高电平,。图示为发射端程序的流程图,首先初始化硬件系统启动程序,然后循环扫描键位。图 按键扫描模块:先判断按键是否被按下,如果有按键被按下则循环扫描,按照P口值查找按下的键号。最后按照键号调用发射模块,流程图如下:红外发射模块:首先装入发射脉冲个数(发射时3ms脉冲,停止时1ms脉冲),如果脉冲个数为1则返回主程序,反之如果不为1则发射1ms脉冲,然后停发1ms脉冲。以上为一个完整的发射过程。在实际应
26、用中,使用红外线遥控方式时,受到遥控距离,遥控角度等因素影响,使用的效果不是很理想。如果采用调频或者调幅发射接收码,可有效提高遥控的范围,并且屏蔽了角度的影响。下图为红外信号的发射过程流程图:遥控接受端的主程序及其初始化延迟过程如下:先初始化,然后按照显示亮度数据设定调光脉冲延时数值,如果不为0则调入延迟程序,;如果为0则直接返回。程序流程图如下:接收端中断过程:首先判断低电平脉宽度是否大于2ms,如果脉宽不到2ms,则中断返回;如果低电平大于2ms,则接收并基数低电平脉冲个数,然后判断高电平脉宽度是否大于3ms,如果小于3ms,则返回上一阶段计数过程;如果大于3ms,则按照脉冲个数找到对应的
27、功能程序,此时中断返回。图为中断过程程序流程图:5最后总结本系毕业论文先确定了遥控信息的传递方式。通过对比红外传递、无线电电波传递、wifi、zigbee等方式,从中选择了最合适于本课题的红外线传递控制信息的方式。然后进一步了解了红外线传递的具体知识,设计了三套应用于红外线的设计方案,最后根据课题的实际情况(时间限制、难易度、功能多少)确定了以第三套方案为主的设计。运用了大学期间所学的主要课程:微机原理、通信原理、数电、模电等课程的知识完成了本设计的硬件实现;经过对C语言、汇编的的强化训练完成了本设计的软件部分。通过本次课题使我自己所学有一个总体认识,复习巩固了大学期间所学的专业知识;同时也学
28、习新的专业知识,也让我对大学四年所学的专业课程有了一次综合性的实践。6主要参考文献1.何希才. 新型软开关电源的设计与应用M . 北京:科学出版社,2000.2.先锋工作室,单片机程序设计实例.北京:清华大学出版社,20033.李朝清.单片机原理及接口技术. 北京:航空航天大学出版社,19974.范寿康等编著,单片微型计算机的应用开发技术. 北京:人民邮电出版社,19985.李珍,付植桐编著.单片机原理与应用技术M. 北京:清华大学出版社,20036.万福君,潘松峰.单片微机原理系统设计与应用.中国科学技术大学出版社.7.李华. MCS-51系列单片机实用接口技术.北京:航空航天大学出版社,1
29、999.8.张肃文,陆兆文.9.瞿雷,刘圣德,. (2007年9月1日)附录部分程序测试代码: KEY_PORT EQU P3 ; LCD_PORT EQU P0 ;lcd控制与驱动 RS BIT ;lcd控制与驱动RW BIT ;lcd控制与驱动E BIT ;lcd控制与驱动 SCLK BIT ;DS1302控制与驱动 IO BIT ;DS1302控制与驱动 RST BIT ;DS1302控制与驱动 PHWX BIT ;HWX-INT0 DQ BIT;18B20数据输入/输出端 KEY_BUSY BIT 00H ;startup check timer display load SEC EQ
30、U 30H MIN EQU 31H HOUR EQU 32H DAY EQU 33H MONTH EQU 34H YEAR EQU 35H WEEK EQU 36H COM EQU 38H DAT EQU 39H KEY_CNT EQU 3DH HWX_NUM1 EQU 80H ;接收首数据存放地址HWX_NUM2 EQU 81H ;接收首数据存放地址HWX_NUM3 EQU 82H ;接收首数据存放地址HWX_NUM4 EQU 83H ;接收首数据存放地址 HWX_STO EQU 41H ;receivd hwx data HWX_FLG BIT 07H ; RECIEVED HWX_SIG
31、NAL HWX_BUSY BIT 08H ; startup check timer display load TEM_L EQU 34H TEM_H EQU 35H TEM_NUM EQU 36HALARM BIT SHI EQU 42HGEE EQU 43H ORG 0000H LJMP MAIN ORG 0003H LJMP IR ORG 0030H MAIN:SETB EA SETB EX0 SETB IT0 SJMP RUNDS1302 runds1302: MOV SP,#0dfH mov a,#00h mov r1,#0FFh mov r0,#0FDh LOOP1302: mov
32、 r1,a DEC r1 djnz r0,loop1302 mov KEY_CNT,#80h mov p0,#0ffh LCALL INITIAL;液晶初始化子程序 ;CLR KEY_BUSY;开关忙标志清零 LOOP0: SETB ALARM LCALL RUN1 ;显示第一屏,字符 MOV COM,#01H LCALL LCD_W_CMD ;清屏 LCALL SET1302 LCALL RUN2 ;显示第二屏,时间 RUN2:LCALL GET1302 LCALL DISPLAY2;第二屏初显示 LCALL DELAY /* M02:LCALL CHK_KEY JB KEY_BUSY,M0
33、2 ;开关标志忙么?如忙 则一直检测开关状态,不忙则显示时间 */ MD1:JNB HWX_FLG, MD0 SETB ALARMCLR HWX_FLG LCALL HWX_SCAN MD0:JB HWX_BUSY, MD1 SJMP run2 RET RUN18B20:MOV SP,#0DFH MOV DPTR,#TAB1820 MOV A,#00H MOV R1,#0FFH MOV R0,#0FDHLOOP1820: MOV R1,A DEC R1 DJNZ R0,LOOP1820;内寄存器清零 MOV P0,#0FFH LCALL INITIALLOOP1: LCALL GET_TEM
34、LCALL TEM_COV LCALL DISPLAY1820 MT1: LCALL HWX_SCANSETB ALARMSJMP LOOP1 run1:lcall display1 ;字符显示retSCAN_KEY: SETB SETB SETB SETB MOV A, KEY_PORT CPL A ANL A, #0F0H RET ;读取开关值 CHK_KEY: LCALL SCAN_KEY JZ NO_KEY1 LCALL DELAY100US LCALL SCAN_KEY JZ NO_KEY1 MOV R2, A;保护键值 WAIT1: LCALL SCAN_KEY LCALL DEL
35、AY100US JNZ WAIT1;等待释放 MOV A, R2 KEYACC: NOP LX: JB , SHIFT ; JB , ADD_ONE ; JNB , LX1 ; LJMP SUB_ONE LX1: JNB ,NO_KEY1 LJMP SETUP ; 距离太长,跳转不到 NO_KEY1: RET SHIFT: NOP SETB KEY_BUSY SFT1: MOV A, KEY_CNT; 开关状态,根据此状态,确定修改相应值 RL AMOV KEY_CNT,A MOV A, KEY_CNT JB , TO_YX1 JB , TO_MX1 JB , TO_DX1 JB , TO_W
36、X1 JB , TO_HX1 JB , TO_MNX1 JB , TO_SX1 JB , X0 X0: mov key_cnt, #80h RETTO_YX1:MOV COM,#83H LCALL LCD_W_CMD;光标根据开关状态跟踪地址 RETTO_MX1:MOV COM,#86H LCALL LCD_W_CMD RETTO_DX1:MOV COM,#89H LCALL LCD_W_CMD RETTO_WX1:MOV COM,#0CFH LCALL LCD_W_CMD RETTO_HX1:MOV COM,#0C3H LCALL LCD_W_CMDRETTO_MNX1:MOV COM,#0
37、C6H LCALL LCD_W_CMDRETTO_SX1:MOV COM,#0C9H LCALL LCD_W_CMD RETADD_ONE:MOV A, KEY_CNT JB , TO_YR1 JB , TO_MO1 JB , TO_DA1 JB , TO_WK1 JB , TO_H1 JB , TO_M1 JB , TO_S1 JB , X1 X1: mov key_cnt, #80h;根据开关状态去去对应操作 RET TO_YR1: MOV A, YEAR ADD A, #01H DA A MOV YEAR, A LCALL DISPLAY2 RET TO_MO1: MOV A, MONT
38、H ADD A, #01H DA A MOV MONTH, A CJNE A, #13H, TO_MO11 MOV MONTH, #01H TO_MO11: LCALL DISPLAY2 RET TO_DA1: MOV A, DAY ADD A, #01H DA A MOV DAY, A CJNE A, #32H, TO_DA11 MOV DAY, #01H TO_DA11:LCALL DISPLAY2 RET TO_WK1:MOV A, WEEK ADD A, #01H DA A MOV WEEK, A CJNE A, #08H, TO_WK11 MOV WEEK, #01H TO_WK11: LCALL DISPLAY2 RET TO_H1: MOV A, HOUR ADD A, #01H DA A MOV HOUR, A CJNE A, #24H, TO_H11 MOV HOUR, #00H TO_H11: LCALL DISPLAY2 RET TO_M1: MOV A, MIN ADD A, #01H DA A MOV MIN, A CJNE A, #60H, TO_M1a MOV MIN, #00H TO_M1a: LCALL DISPLAY2 RET TO_S1: MOV A, SEC ADD A, #01H DA A