[毕业设计]基于单片机的遥控控制酒店客房灯光系统设计.doc_第1页
[毕业设计]基于单片机的遥控控制酒店客房灯光系统设计.doc_第2页
[毕业设计]基于单片机的遥控控制酒店客房灯光系统设计.doc_第3页
[毕业设计]基于单片机的遥控控制酒店客房灯光系统设计.doc_第4页
[毕业设计]基于单片机的遥控控制酒店客房灯光系统设计.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

单片机遥控控制酒店客房灯光系统摘 要:本文通过老式酒店客房灯光控制系统进行改造,将原机的机械开关控制改为单片机红外线遥控控制,说明了单片机在现代酒店灯光智能控制中的适用性、灵活性、先进性。通过对客房灯光控制电路改造后,大大提高了客人的使用舒适感,使酒店的硬件设施提高了一个台阶。关键字:单片机遥控客房灯光前言:酒店原有的智能控制系统较周边新开张酒店相比,已跟不上潮流,失去竞争能力。例如原来酒店客房灯光控制系统均采用tcl2.0系列产品,房间的电视、台灯、地灯、鱼缸照明、夜灯、廊灯、吧台灯等开关与床头灯调光开关均集中安装在床头柜处(如图1)。由于开关较多且固定在床头柜侧面,客人想开灯时必须先看清开关下面的标记才能正确开灯,有时为开一盏灯竟把所有的开关都按了一遍,使用时极为不便。现在大多数星级酒店都采用微动开关轻触式集中控制面板,安装在床头柜的正上方。虽然较以前直观,但是开关多且固定仍不是十分方便。本人采用8051系列单片机将原来固定的机械式开关改用遥控控制,这样一个遥控器就可以控制整个房间的灯光开启,电源控制箱可以放在床头柜内;遥控器在放置在床头柜上,可以任意移动,还可以在遥控面板中间加装一液晶时钟(如图2所示)。美观且实用即大方便客人的使用。图1老式控制柜图2新式遥控发射器一 硬件电路的设计1、 遥控发射电路如图3所示,为该系统遥控发射器电原理图,其中p1口作为键盘扫描端口,具有16个操作键,可分别控制单片机发出16种不同脉冲,执行16种操作。第9脚为单片机的复位脚,采用rc上电复位电路;15脚作为红外线遥控码的输出口,用于输出38khz载波编码。脉冲经9013放大然后由红外发射管输出;18、19脚接12m晶振。p1.4p1.7需接上拉电阻。图3遥控发射电路图2、 遥控接收电路如图4所示,为该系统遥控接收电原理图,其中p1.0p1.2口作为数码管的二进制数据输出,显示数字为“07”,“0”表示最暗,“7”表示最亮,采用带锁存功能的七段译码电路74hc4511集成块译码显示数值。4511的le端接8051的30脚(地址锁存允许控制);p0.0p0.7以及p2.2p2.7作为14个电器的电源控制输出,接口用继电器隔离输出。p2.0口为调光脉冲输出,输出脉冲由三极管9012放大后经光电耦合器moc3021驱动双向可控硅控制负载;p3.0口为交流50hz同步检测输入。系统对市电进行变压、整流、并经施密特触发器整形后得到100hz的方波(周期10ms),作为发送调光脉冲的同步信号,系统采用10ms为一个“单位时间”的长度,灯的亮度越高,则可控硅导通时间的占空比越大;p3.1口为红外遥控码输入,采用集成红外线接收路sfh506-38,此集成元件体积小、抗干扰性好、灵敏度高、并且价格低廉。它仅有三个脚,分别是电源正极、电源负极以及信号输出端,其工作电压为5v左右,它的主要功能包括放大、选频、解调几大部分,要求输入是已经被调制的信号,经过它的接收放大和解调会在输出端直接输出原始信号至p3.1脚。这款红外线接收电路接收距离可以达8米左右,完全可以满足客房内的遥控距离(一般客房标准间都在30平米左右);p3.2脚为外部中断0输入脚,采用下降沿触发,当有信号时,第一位码的低电平启动中断程序,实时接收数据帧。第9脚为单片机的复位脚,采用rc上电复位电路;18、19脚接12m晶振。图4遥控接收电路图二 系统的遥控功能实现方法1、 遥控编码格式该遥控器采用脉冲个数编码,不同的脉冲个数代表不同的码,最小为2个脉冲,最大为17个脉冲。为了使接收可靠,第一位码宽为3ms,其余为1ms,遥控数据帧间隔大于10ms,如图5所示。图5遥控脉冲编码图2、 遥控码的发射当某个操作键按下时,单片机先读出该键值,然后根据键值设定的遥控脉冲个数,再调制成38khz的方波由红外线发射管发射出去。p3.5端口的输出调制波如图5所示。3、 数据帧的接收处理当红外线接收器输出脉冲帧数据时,第一位码的低电平将启动中断程序,实时接收数据帧。在数据接收时,先对第一位(起始位)码的码宽进行验证。若第一位低电平码的脉宽小于2ms,将作为错误码处理;否则认为是起始码,累加器a加1。当间隔位的高电平大于3ms时,结束接收,然后根据累加器a中的脉冲个数,执行相应的输出操作。图6为红外线接收器输出的一帧遥控码波形图。图6一帧遥控码波形图三 遥控发射及接收控制程序流程图1、 遥控发射程序控制流程图图7遥控发射控制流程图2、 遥控接收程序控制流程图图8遥控接收控制流程图四 主要程序分析1、 键盘扫描程序本电路采用44矩阵式键盘电路,共16个按健开关可发送16种编码指令。首先将立即数#0f0h送至p1口,再读入p1口值与#0f0h相比较,相等则说明没有键按下,返回。不相等则表示有键按下,再调用延时消抖程序,确认有键按下。转至行扫描程序确认按键所在的行,并将r2赋行号初值,然后调用列扫描程序确认按键所在例号。例号与行号初值相加即得按键号(送寄存器a)。keywork: mov p1,#0f0h ;置p1口输入状态 mov a,p1 ;读入p1口值 mov b,a ;p1口值暂存b中cjne a,#0f0h,keyhit ;不等于#0ffh,转keyhit(有键按下)keyout: ret ;没有键按下返回;keyhit: lcall dl10ms ;延时去抖动 mov a,p1 ;再读入p1口值至a cjne a,b,keyouy ;a不等于b(是干扰),子程序返回 setb p1.1 ;有键按下,找键号开始,查0行 setb p1.2 setb p1.3 mov a,p1 ;读入p1口值cjne a,#0feh,keyval0 ;p1不等于#0feh,按下键在第0行 setb p1.0 ;不在第0行,开始查1行 clr p1.1 mov a,p1 ;读入p1口值cjne a,#0fdh,keyval1 ;p1口不等于#0fdh,按下键在第1行 setb p1.1 ;不在第1行,开始查2行 clr p1.2 mov a,p1 ;读入p1口值cjne a,#0fbh,keyval2 ;p1口不等于#0fbh,按下键在第2行 setb p1.2 ;不在第2行,开始查3行 clr p1.3 mov a,p1 ;读入p1口值cjne a,#0f7h,keyval3 ;p1口不等于#0f7h,按下键在第3行 ljmp keyout ;不在第3行,子程序返回keyval0: mov r2,#00h ;按下键在第0行,r2赋行号初值0 ljmp keyval4 ;跳到keyval4keyval1: mov r2,#04h ;按下键在第1行,r2赋行号初值4 ljmp keyval4 ;跳到keyval4 . .keyval4: mov dptr,#keyvaltab ;翻译成连续数字 mov b,a ;p1口值暂存b内 anl b,#0f0h ;取高四位 mov r0,#0 ;清r0keyval5: mov a,r0 ;查列号开始,r0数据放入a subb a,#04h ;a中数减4 jnc keyout ;借位c为0,查表出错,返回 mov a,r0 ;查表次数小于4,继续查, movc a,a+dptr ;查列号表 inc r0 ;r0加1 cjne a,b,keyval5 ;查得值和p1口值不等,转keyval5再查 dec r0 ;查得值和p1口值相等,r0减1mov a,r0 ;放入a(r0中数值即为列号值)add a,r2 ;与行号初值相加成为键号值(0-15)keyvaltab: db 0e0h,0d0h,0b0h,07h ;列号对应数据表;对应列号: 0 1 2 32、 键号处理程序根据寄器a中的键号,首先执行a3程序,(因为以下所执行的长跳转指令“ljmp”为3字节指令)然后使用散转指令“jmp a,a+dptr”跳到相应的程序标号。各键号相应的程序标号均为一条长跳转指令,各跳转指令均指向与之相应的红外线脉冲赋值程序,最后跳转至脉冲发送程序,发出与键号相对应的脉冲。mov b,a ;键号乘3处理用于jmp散转指令 rl a ;键号乘3处理用于jmp散转指令 add a,b ;键号乘3处理用于jmp散转指令 mov dptr,#keyfuntab ;取散转功能程序(表)首址 jmp a+dptr ;散转至对应功能程序标号keyfuntab: ljmp keyfun00 ;跳到键号0对应功能程序标号 ljmp keyfun01 ;跳到键号1对应功能程序标号 . . ljmp keyfun15 ;跳到键号15对应功能程序标号 retkeyfun00: mov a,#02h ;发2个脉冲 ljmp remote ;转发送程序 retkeyfun01: mov a,#03h ;发3个脉冲 ljmp remote ;转发送程序 ret . . .keyfun15: mov a,#11h ;发17个脉冲 ljmp remote ;转发送程序 ret3、38khz载波及编码脉冲发射程序本系统所用的红外线接收集成电路sfh506-38的解调中心频率为38khz,故发射频率也采用38khz,通过定时器中断程序实现,每次溢出中断时对p3.5取反,输出38khz载波。 计算得周期为26.3us,则定时器设定为模式2,初值为(256-13)=0f3h。利用1ms与3ms延时程序控制定时器的启停,从而控制p3.5发出相应的脉冲。并根据寄存器a中的脉冲个数确定发送次数。mov ie,#00h ;关所有中断 mov tmod,#20h ;8位自动重装初值模式 mov th1,#0f3h ;定时为13微秒初值 mov tl1,#0f3h setb ea ;开总中断允许intt1: cpl p3.5 ;38khz红外线遥控信号产生 reti ;中断返回remote: mov r1,a ;装入发射脉冲个数 ljmp out3 ;转第一个码发射处理out: mov r0,#64h ;1ms宽低电平发射控制数据out1: setb et1 ;开t1中断 setb tr1 ;开启定时器t1 nop ;延时 nop nop nop nop djnz r0,out1 ;时间不到转out1再循环 mov r0,#3ch ;1ms高电平间隙控制数据out2: clr tr1 ;关定时器t1 clr et1 ;关t1中断 clr p3.5 ;关脉冲输出 nop ;空操作延时 nop nop nop nop nop nop nop nop nop nop djnz r0,out2 ;时间不到转out2再循环 djnz r1,out ;脉冲未发完,转out再循环发射 lcall dl500ms ret out3: mov r0,#0ffh ;装发谢3ms宽控制数据 ljmp out1 ;转out14、遥控接收及处理程序采用中断接收,经过红外线接收集电路sfh506接收处理后的脉冲信号送至p3.1与p3.2(中断输入脚,采用低电平触发),当接收到第一个低电平时将启动中断程序,实时接收数据帧,接收程序首先采用8us循环计时程序对第一位码(起始码)的码宽进行验证,当计时大于82552040us时则认为是起始码,开始对输入的脉冲进行计数与校验,将计数值送到累加a中。脉冲高电位大于设定时间5136=3072us时则结束接收,然后根据累加器中的脉冲个数,跳转至相应的操作子程序。215个脉冲所对应程序分别控制每盏灯的开关,通过将相应输出端口取反方法,从而控制了灯的亮灭,系统上电时所有输出i/o口均为“1”(高电平)外接晶体管均无输出,当某个按键按下时,程序将相应端口取反,输出为“0”(低电平)外接晶体管放大后,驱动继电器继合亮灯。再次按下该键时,程序再次将该相应端口取反,输出为“1”关灯,如此便控制了每一路灯的亮、灭。16、17个脉冲为亮度调整信号,接收到该脉冲信号时,将p1口加“1”(调亮)或减“1”(调暗),然后再调亮度调整程序,亮度调整程序根据p1口的值确定灯的亮度。intex0: clr ex0 ;关外中断 jnb p3.1,read1 ;p3.1口为低电平转read1readoutt0: setb ex0 ;p3.1口为高电平开中断(系干扰) reti ;退出中断read1: clr a ;清a mov dph,a ;清dptr mov dpl,a hard1: jb p3.1,hard11 ;p3.1变高电平转hard11 inc dptr ;用dptr对低电平计数 nop ;1微秒延时 nop nop ajmp hard1 ;转hard1循环(循环周期为8微秒)hard11: mov a,dph ;dptr高8位放入a jz readoutt0 ;为0(脉宽小于8*255=2毫秒)退出 clr a ;不为0,说明是第一个宽脉冲(3毫秒)read11: inc a ;脉冲个数计1read12: jnb p3.1,read12 ;低电平时等待 mov r1,#06h ;高电平宽度判断定时值read13: jnb p3.1,read11 ;变低电平时转read11脉冲计数 lcall delay ;延时(512微秒) djnz r1,read13 ;6次延时不到转read13再延时 dec a ;超过3毫秒判为结束,减1 dec a ;减1 jz fun0 ;为0执行fun0(2个脉冲) dec a ;减1.fun0: cpl p0.0 ;p0口各端口开关输出控制 ljmp readoutt0 ;转中断退出fun1: cpl p0.1 ljmp readoutt0 .fun14: inc p1 mov a,p1 cjne a,#00h,outt0 ;不等转outt0(显示值大于7) mov p1,#0ffh ;放回p1(显示值为7)outt0: lcall loop ;亮度调整 ljmp readoutt0 ;中断退出 fun15: dec p1 ;p1口值减1 mov a,p1 ;移入a cjne a,#0f7h,outt1 ;不等转outt1(显示值小于0) mov p1,#0f8h ;放回p1(显示值为0)outt1: lcall loop ;亮度调整 ljmp readoutt0 ;中断退出.5、 调光程序系统调光电路采用双向可控硅,利用它的“过零自动关闭”特性,at89c51只需在每个交流信号的1/2周期(10ms)内控制可控硅打开的时刻,由于交流电过零点时可控硅自动关断,即间接控制了灯光的亮度。上电时,首先调用调光程序,根据p1口值设定延时值并放在寄存器b中。再根据p3.0输入的交流同步信号,确定调光脉冲的发送时间,当交流信号过零时调用调光程序,调光程序根据寄存器b中的值确定延时次数(每次延时512us)从而确定调光脉冲的发送时间,延时到p2.0置“0”经过外接晶体管反向放大后经光电耦合器隔离驱动双向可控硅导通的时间,当交流信号再次过零时,双向可控硅自动关闭,再次调用调光程序。这样便控制了双向可控硅的导通时间,从而达到调光的目的。start: lcall cleario ;上电初始化 lcall loop ;调用调光控制程序main: jb p3.0,main ;50hz交流电未过零转main lcall dlx ;过零点时调用延时子程序(延时可变) clr p2.0 ;发调光脉冲 lcall delay ;持续512微秒 setb p2.0 ;关调光脉冲 ljmp main ;转main循环dlx: mov r2,b ;置延时初值dlx1: lcall delay ;调512微秒延时子程序 djnz r2,dlx1 ;循环控制 ret ;返回loop: mov a,p1 ;读入p1口值 subb a,#0ffh ;比较 jz loop7 ;值为#0ffh(显示7)时转loop7 mov a,p1 subb a,#0feh jz loop6 ;值为#0feh(显示6)时转loop6mov a,p1 . .retloop7: mov b,#01h ;设置延时值#01h(最亮) ret ;返回loop6: mov b,#02h ;设置延时值#02h(次亮) ret ;返回loop5: mov b,#04h . ret6、 延时子程序采用循环结构实现513微秒、10微秒、500微秒延时功能。delay: mov r2,#0ffh ;513微秒延时程序delay1: djnz r2,delay1 retdl10ms: mov r3,#14h ;10毫秒延时程序dl10ms1: lcall delay djnz r3,dl10ms1 retdl500ms: mov r4,#32h ;500毫秒延时程序dl500ms1: lcall dl10ms djnz r4,dl500ms1ret五、系统调试上电,测试发送板单片机各io口电平,p3.5、p1.0、p1.1、p1.2、p1.3均为低电平,其余均为高电平,表明单片机上电复位正常,且程序运行正常。然后用万用表毫伏档测量红外线发射管两端,同时按各输入键,表针应有左右摆动现像,则表明键扫描程序与红外线发射程序运行正常,且在发射红外线脉冲。接收电路上电时,数码管显示“7”各继电器及可控硅均无输出。遥控信号输入脚p3.1应高电平。则表明单片机上电复位正常,外围电路接线正确。然后将发射板红外线发射管对准接收电路,按压输入键,同时用万用表测量p3.1脚,应有轻微摆动。红外脉冲接收正常。且相应输出继电器应动作,或调光电路应正确动。如无动作或万用有针无摆动,可以稍为改动发射脉冲频率,将定时器初值改为(0ffh-12)=0f4h对应发射频率为41.7khz或(0ffh-13)=0f3h对应发射频率为38.5khz,因为红外线发射与接收电路的中心频率相差1khz时大都能正常遥控,相差2khz以上会出现遥控失灵现象。大多晶振或接收电路都有一定的频率偏差,我们可以调整定时器的初值来稍为改动发射频率或换用12m晶振,直到能够接收为止。调光程序调试,按调光键,调至显示“0”,此时灯为最暗,应熄灭。否则可以改变调光程序中寄存器b中的值,加长或减少延时时间,使灯能在最低亮度时能正常熄灭,最高亮度时能达最大亮度。按本程序中的值,实测数据如下。延时子程序为512us,电源交流电压227v灯光亮度显示负载电压(60w)灯光亮度显示负载电压(60w)02v4102v120v5135v247v6168v373v7216v六、结束语通过此次改造,利用单片机遥控控制房间灯光取得了良好的效果,使酒店的硬件服务水平提高了一个台阶。同时也应总结经验,逐步完善客房灯光智能控制,例如可以增加房间灯具的自动巡检与电脑联网功能,灯具故障即可自动发出报修信号,服务人员可以通过主服务器方便的了解各个房间电气设备工作情况,即提高了工作效率又方便管理。也体会到我的知识面还是很狭窄,作为从事电气工作的技术人员,在学好本专业的基础前提下,还要不断的学习其他领域的科学技术知识,拓宽自己的知识面,才能胜任新设备、新技术的工作,更好发挥本专业的作用。本人因水平、经验有限,文中难免有错漏以及不足之处,恳请专家、教授及同行批评指正。七、附录1、 遥控发射电路原理图附图一遥控发射电路原理图2、遥控接收电路原理图附图二遥控接收电路原理图3、遥控发送控制器程序 org 0000h ;程序执行开始地址 ajmp start ;跳至start执行 org 001bh ;定时器t1中断入口地址 ljmp intt1 ;跳至intt1中断服务程序 cleario: mov p0,#0ffh ;p0-p3口置1 mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh clr p3.5 ;关遥控输出clearmem: mov sp,#70h ;设堆栈基址为70h mov ie,#00h ;关所有中断 mov tmod,#20h ;8位自动重装初值模式 mov th1,#0f3h ;定时为13微秒初值 mov tl1,#0f3h setb ea ;开总中断允许 ret ;返回start: lcall cleario ;调用初始化子程序;main: lcall keywork ;主体程序。调用查键子程序 ljmp main ;转main循环 nop ;pc值出错处理 nop nop ljmp start ;重新初始化intt1: cpl p3.5 ;40khz红外线遥控信号产生 reti ;中断返回keywork: mov p1,#0f0h ;置p1口输入状态 mov a,p1 ;读入p1口值 mov b,a ;p1口值暂存b中cjne a,#0f0h,keyhit ;不等于#0ffh,转keyhit(有键按下)keyout: ret ;没有键按下返回;keyhit: lcall dl10ms ;延时去抖动 mov a,p1 ;再读入p1口值至a cjne a,b,keyouy ;a不等于b(是干扰),子程序返回 setb p1.1 ;有键按下,找键号开始,查0行 setb p1.2 setb p1.3 mov a,p1 ;读入p1口值cjne a,#0feh,keyval0 ;p1不等于#0feh,按下键在第0行 setb p1.0 ;不在第0行,开始查1行 clr p1.1 mov a,p1 ;读入p1口值cjne a,#0fdh,keyval1 ;p1口不等于#0fdh,按下键在第1行 setb p1.1 ;不在第1行,开始查2行 clr p1.2 mov a,p1 ;读入p1口值cjne a,#0fbh,keyval2 ;p1口不等于#0fbh,按下键在第2行 setb p1.2 ;不在第2行,开始查3行 clr p1.3 mov a,p1 ;读入p1口值cjne a,#0f7h,keyval3 ;p1口不等于#0f7h,按下键在第3行 ljmp keyout ;不在第3行,子程序返回keyval0: mov r2,#00h ;按下键在第0行,r2赋行号初值0 ljmp keyval4 ;跳到keyval4keyval1: mov r2,#04h ;按下键在第1行,r2赋行号初值4 ljmp keyval4 ;跳到keyval4keyval2: mov r2,#08h ;按下键在第2行,r2赋行号初值8 ljmp keyval4 ;跳到keyval4keyval3: mov r2,#0ch ;按下键在第3行,r2赋行号初值12 ljmp keyval4 ;跳到keyval4keyval4: mov dptr,#keyvaltab ;翻译成连续数字 mov b,a ;p1口值暂存b内 anl b,#0f0h ;取高四位 mov r0,#0 ;清r0keyval5: mov a,r0 ;查列号开始,r0数据放入a subb a,#04h ;a中数减4 jnc keyout ;借位c为0,查表出错,返回 mov a,r0 ;查表次数小于4,继续查, movc a,a+dptr ;查列号表 inc r0 ;r0加1 cjne a,b,keyval5 ;查得值和p1口值不等,转keyval5再查 dec r0 ;查得值和p1口值相等,r0减1 mov a,r0 ;放入a(r0中数值即为列号值) add a,r2 ;与行号初值相加成为键号值(0-15) mov b,a ;键号乘3处理用于jmp散转指令 rl a ;键号乘3处理用于jmp散转指令 add a,b ;键号乘3处理用于jmp散转指令 mov dptr,#keyfuntab ;取散转功能程序(表)首址 jmp a+dptr ;散转至对应功能程序标号keyfuntab: ljmp keyfun00 ;跳到键号0对应功能程序标号 ljmp keyfun01 ;跳到键号1对应功能程序标号 ljmp keyfun02 ;跳到键号2对应功能程序标号 ljmp keyfun03 ;跳到键号3对应功能程序标号 ljmp keyfun04 ;跳到键号4对应功能程序标号 ljmp keyfun05 ;跳到键号5对应功能程序标号 ljmp keyfun06 ;跳到键号6对应功能程序标号 ljmp keyfun07 ;跳到键号7对应功能程序标号 ljmp keyfun08 ;跳到键号8对应功能程序标号 ljmp keyfun09 ;跳到键号9对应功能程序标号 ljmp keyfun10 ;跳到键号10对应功能程序标号 ljmp keyfun11 ;跳到键号11对应功能程序标号ljmp keyfun12 ;跳到键号12对应功能程序标号 ljmp keyfun13 ;跳到键号13对应功能程序标号 ljmp keyfun14 ;跳到键号14对应功能程序标号 ljmp keyfun15 ;跳到键号15对应功能程序标号 retkeyvaltab: db 0e0h,0d0h,0b0h,07h ;列号对应数据表;对应列号: 0 1 2 3 retkeyfun00: mov a,#02h ;发2个脉冲 ljmp remote ;转发送程序 retkeyfun01: mov a,#03h ;发3个脉冲 ljmp remote ;转发送程序 retkeyfun02: mov a,#04h ;发4个脉冲 ljmp remote ;转发送程序 retkeyfun03: mov a,#05h ;发5个脉冲 ljmp remote ;转发送程序 retkeyfun04: mov a,#06h ;发6个脉冲 ljmp remote ;转发送程序 retkeyfun05: mov a,#07h ;发7个脉冲 ljmp remote ;转发送程序 retkeyfun06: mov a,#08h ;发8个脉冲 ljmp remote ;转发送程序 retkeyfun07: mov a,#09h ;发9个脉冲 ljmp remote ;转发送程序 retkeyfun08: mov a,#0ah ;发10个脉冲 ljmp remote ;转发送程序 retkeyfun09: mov a,#0bh ;发11个脉冲 ljmp remote ;转发送程序 retkeyfun10: mov a,#0ch ;发12个脉冲 ljmp remote ;转发送程序 retkeyfun11: mov a,#0dh ;发13个脉冲 ljmp remote ;转发送程序 retkeyfun12: mov a,#0eh ;发14个脉冲 ljmp remote ;转发送程序 retkeyfun13: mov a,#0fh ;发15个脉冲 ljmp remote ;转发送程序 retkeyfun14: mov a,#10h ;发16个脉冲 ljmp remote ;转发送程序 retkeyfun15: mov a,#11h ;发17个脉冲 ljmp remote ;转发送程序 retremote: mov r1,a ;装入发射脉冲个数 ljmp out3 ;转第一个码发射处理out: mov r0,#64h ;1ms宽低电平发射控制数据out1: setb et1 ;开t1中断 setb tr1 ;开启定时器t1 nop ;延时 nop nop nop nop djnz r0,out1 ;时间不到转out1再循环 mov r0,#3ch ;1ms高电平间隙控制数据out2: clr tr1 ;关定时器t1 clr et1 ;关t1中断 clr p3.5 ;关脉冲输出 nop ;空操作延时 nop nop nop nop nop nop nop nop nop nop djnz r0,out2 ;时间不到转out2再循环 djnz r1,out ;脉冲未发完,转out再循环发射 lcall dl500ms ret out3: mov r0,#0ffh ;装发谢3ms宽控制数据 ljmp out1 ;转out1delay: mov r2,#0ffh ;513微秒延

温馨提示

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

评论

0/150

提交评论