基于单片机的红外遥控开关系统内容摘要:

遥控码波形图.图3—14 一帧遥控码波形图键按下? 图3—15 遥控发射程序控制流程图图3—16遥控发射控制流程图低电子脉冲>2ms?高电子脉冲>3ms?=0?图3—17遥控接收控制流程图第四章 系统程序分析 键盘扫描程序本电路采用44矩阵式键盘电路,0F0H送至P0口,再读入P0口值与0F0H相比较,相等则说明没有键按下,再调用延时消抖程序,并将R2赋行号初值,(送寄存器A).KEYWORK: MOV P0,0F0H。 置P0口输入状态 MOV A,P10 读入P0口值MOV B,A。 P0口值暂存B中CJNE A,0F0H,KEYHIT。 不等于0FFH,转KEYHIT(有键按下)KEYOUT: RET。 没有键按下返回。 KEYHIT: LCALL DL10MS。 延时去抖动 MOV A,P0。 再读入P0口值至A CJNE A,B,KEYOUY。 A不等于B(是干扰),子程序返回 SETB。 有键按下,找键号开始,查0行 SETB SETB MOV A,P0。 读入P0口值CJNE A,0FEH,KEYVAL0。 P0不等于0FEH,按下键在第0行 SETB。 不在第0行,开始查1行 CLR MOV A,P0。 读入P1口值CJNE A,0FDH,KEYVAL1。 P0口不等于0FDH,按下键在第1行 SETB。 不在第1行,开始查2行 CLR MOV A,P0 读入P0口值CJNE A,0FBH,KEYVAL2。 P0口不等于0FBH,按下键在第2行 SETB。 不在第2行,开始查3行 CLR MOV A,P0。 读入P0口值CJNE A,0F7H,KEYVAL3。 P0口不等于0F7H,按下键在第3行 LJMP KEYOUT。 不在第3行,子程序返回KEYVAL0: MOV R2,00H。 按下键在第0行,R2赋行号初值0 LJMP KEYVAL4。 跳到KEYVAL4KEYVAL1: MOV R2,04H。 按下键在第1行,R2赋行号初值4 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减1MOV A,R0。 放入A(R0中数值即为列号值)ADD A,R2。 与行号初值相加成为键号值(015)KEYVALTAB: DB 0E0H,0D0H,0B0H,07H。 列号对应数据表。 对应列号: 0 1 2 3 根据寄器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。 转发送程序 RET ,通过定时器中断程序实现,每次溢出中断时对T0取反。 机器周期为:T=1/f=1/56700=。 设需要装入T0的初值为X,则有:(X)=≈9。 ,则定时器设定为模式2,初值为(2569)=,.MOV IE,00H。 关所有中断 MOV TMOD,20H。 8位自动重装初值模式 MOV TH1,0F7H。 定时为9微秒初值 MOV TL1,0F7H SETB EA。 开总中断允许INTT1: CPL T0。 RETI。 中断返回REMOTE: MOV R1,A。 装入发射脉冲个数 LJMP OUT3。 转第一个码发射处理OUT: MOV R0,64H。 1MS宽低电平发射控制数据OUT1: SETB ET1。 开T1中断 SETB TR1。 开启定时器T1 NOP。 延时。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。