免费预览已结束,剩余5页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
红外遥控发射源程序清单: ORG 0000H ;主程序开始 AJMP MAIN ORG 0003H ;关中断0 RETI ORG 000BH ;关定时器T0 RETI ORG 0013H ;关外中断1 RETI ORG 001BH ;定时器T1中断入口地址 LJMP INTT1 ORG 0023H ;关串行口中断 RETI ORG 002BH ;关定时器T2 RETIBUTTON0EQU P1.0 ;P1.0 - P1.3位键盘行扫描BUTTON1 EQU P1.1BUTTON2 EQU P1.2BUTTON3 EQU P1.3BUTTON EQU P0 ;P0 口键盘列扫描 BUTTAB: DB0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH BUTFUNTAB:LJMPSEN2P ;功能按键列表 LJMPSEN3P LJMPSEN4P LJMPSEN5P LJMPSEN6P LJMPSEN7P LJMPSEN8P LJMPSEN9P LJMPSEN10P LJMPSEN11P LJMPSEN12P LJMPSEN13P LJMPSEN14P LJMPSEN15P LJMPSEN16P LJMPSEN17P RET DLY:MOV R2,#0FFH;513微秒延时程序 DJNZ R2,$ RETDLY10M: MOV R3,#14H ;10毫秒延时程序DLOOP: LCALL DLY DJNZ R3,DLOOP RETDLY500M:MOV R4,#32H ;500毫秒延时程序D_1LOOP:LCALL DLY10M DJNZ R4,D_1LOOP RETMAIN: MOV A ,#0FFH ;初始化 MOV P0,A MOV P1,A MOV P2,A MOV P3,A CLR P3.5;关遥控输出 MOV SP,#70H ;设堆栈基址为70H MOV IE,#00H ;关所有中断 MOV IP,#01H;设优先级 MOV TMOD,#22H;8位自动重装初值模式 MOV TH1,#0F3H;定时为13微秒初值 MOV TL1,#0F3H SETB EA ;开总中断允许MLOOP: LCALL BUTTON00 ;按键查询 LJMPMLOOP ;键盘工作子程序BUTTON00: MOVBUTTON,#0FFH;判断是否有按键按下 CLRBUTTON0 CLRBUTTON1 CLRBUTTON2 CLRBUTTON3 MOVA,BUTTON MOVB,A CJNEA,#0FFH,J_BUTTONNBUTTON:RET ;判断是哪个按键按下J_BUTTON:LCALL DLY10M ;延时去抖动 MOVA,BUTTON CJNEA,B,NBUTTON ;A和B不相等,返回主程序 SETBBUTTON1 ;有键按下,找键号开始,查0行 SETB BUTTON2 SETBBUTTON3 MOVA,BUTTON ;读入P0口值 CJNEA,#0FFH,BUTTONL0 ;P0不等于#0FFH,按下键在第0行 SETBBUTTON0 ;不在第0行,开始查1行 CLRBUTTON1 MOVA,BUTTON ;读入P0口值 CJNEA,#0FFH,BUTTONL1 ;P0口不等于#0FFH,按下键在第1行 SETBBUTTON1 ;不在第1行,开始查2行 CLRBUTTON2 MOVA,BUTTON ;读入P0口值 CJNEA,#0FFH,BUTTONL2 ;P0口不等于#0FFH,按下键在第2行 SETBBUTTON2 ;不在第2行,开始查3行 CLRBUTTON3 MOVA,BUTTON ;读入P0口值 CJNEA,#0FFH,BUTTONL3 ;P0口不等于#0FFH,按下键在第3行 LJMPNBUTTON ;不在第3行,子程序返回BUTTONL0:MOVR2,#00H ;按下键在第0行,R2赋行号初值0 LJMP T_BUTTON ;跳到T_BUTTONBUTTONL1:MOVR2,#08H ;按下键在第1行,R2赋行号初值8 LJMP T_BUTTON ;跳到T_BUTTONBUTTONL2:MOVR2,#10H ;按下键在第2行,R2赋行号初值16 LJMP T_BUTTON ;跳到T_BUTTONBUTTONL3: MOVR2,#18H ;按下键在第3行,R2赋行号初值24 LJMPT_BUTTON ;跳到T_BUTTONT_BUTTON:MOV DPTR,#BUTTAB ; 键值翻译成连续数字 MOVB,A ;P0口值暂存B内 CLR A ;清A MOV R0,A ;清R0T_LOOP: MOV A,R0 ;查列号开始,R0数据放入A SUBB A,#08H ;A中数减8 JNC NBUTTON ;借位C为0,查表出错,返回 MOVA,R0 ;查表次数小于8,继续查, MOVC A,A+DPTR ;查列号表 INC R0 ;R0加1 CJNEA,B,T_LOOP ;查得值和P0口值不等,转T_LOOP再查 DEC R0 ;查得值和P0口值相等,R0减1 MOV A,R0 ;放入A(R0中数值即为列号值) ADDA,R2 ; 与行号初值相加成为键号值(0-31) MOVB,A ;键号乘3处理用于JMP散转指令 RLA ;键号乘3处理用于JMP散转指令 ADDA,B ;键号乘3处理用于JMP散转指令 MOVDPTR,#BUTFUNTAB ; 取散转功能程序(表)首址 JMPA+DPTR ;散转至对应功能程序标号;SEN2P: MOV A,#02H ;发2个脉冲 LJMP SENDCON ;转发送程序 RETSEN3P: MOV A,#03H ;发3个脉冲 LJMP SENDCON ;转发送程序 RETSEN4P: MOV A,#04H ;发4个脉冲 LJMP SENDCON ;转发送程序 RETSEN5P:MOV A,#05H ;发5个脉冲 LJMP SENDCON ;转发送程序 RETSEN6P: MOV A,#06H ;发6个脉冲 LJMP SENDCON ;转发送程序 RETSEN7P: MOV A,#07H ;发7个脉冲 LJMPSENDCON ;转发送程序 RETSEN8P: MOV A,#08H ;发8个脉冲 LJMP SENDCON ;转发送程序 RETSEN9P: MOV A,#09H ;发9个脉冲 LJMP SENDCON ;转发送程序 RETSEN10P: MOV A,#0AH ;发10个脉冲 LJMP SENDCON ;转发送程序 RETSEN11P: MOV A,#0BH ;发11个脉冲 LJMP SENDCON ;转发送程序 RETSEN12P: MOV A,#0CH ;发12个脉冲 LJMP SENDCON ;转发送程序 RETSEN13P: MOV A,#0DH ;发13个脉冲 LJMP SENDCON ;转发送程序 RETSEN14P: MOV A,#0EH ;发14个脉冲 LJMP SENDCON ;转发送程序 RETSEN15P: MOV A,#0FH ;发15个脉冲 LJMP SENDCON ;转发送程序 RETSEN16P: MOV A,#10H ;发16个脉冲 LJMP SENDCON ;转发送程序 RETSEN17P: MOV A,#11H ;发17个脉冲 LJMP SENDCON ;转发送程序 RET;编 码 发 射 程 序SENDCON: MOV R1,A ;装入发射脉冲个数 LJMP SEND_3 ;转第一个码发射处理SEND: MOV R0,#55H ;1MS宽低电平发射控制数据SEND_1: SETB ET1 ;开T1中断 SETB TR1 ;开启定时器T1 NOP ;空操作延时 NOP NOP NOP NOP DJNZ R0,SEND_1 ;时间不到转SEND_1再循环 MOV R0,#32H ;1MS高电平间隙控制数据SEND_2: CLR TR1 ;关定时器T1 CLR ET1 ;关T1中断 CLR P3.5 ;关脉冲输出 NOP ;空操作延时 NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP DJNZ R0,SEND_2 ;时间不到转SEND_2再循环 DJNZ R1,SEND ;脉冲未发完,转OUT再循环发射 LCALL DLY500M RET SEND_3: MOV R0,#0FFH ;装发谢3MS宽控制数据 LJMP SEND_1INTT1: CPL P3.5 ;40kHZ红外线遥控信号产生 RETI ;转SEND_1 END红外遥控接收源程序: ORG 0000H;主程序开始地址 LJMP MAIN ORG 0003H;外中断0中断入口 LJMP R_INT ORG 000BH ;定时器T0中断关闭 RETI ORG 0013H ;外中断1中断关闭 RETI ORG 001BH ;定时器T1中断关闭 RETI ORG 0023H ;串行口中断关闭 RETI ORG 002BH ;定时器T2中断关闭 RETI DLY512U: MOV R0,#0FFH ;延时512微妙子程序D_W_LOOP: DJNZ R0,D_W_LOOP RETDLY10M: MOV R1,#14H ;延时10毫秒子程序D_1W_LOOP: LCALL DLY512U DJNZ R1,D_1W_LOOP RETMAIN: CLR A ;初始化; DECA ;A为#0FFH MOV P0,A ;P0-P2口置1 MOV P1,A MOV P2,A MOV IE,#00H ;关所有中断 SETB EX0 ;开外中断 SETB EA ;总中断允许 R_INT: CLR EX0 ;关外中断 JNB P1.0,OK_1 ;P3.1口为低电平转OK_1DISTURB: SETB EX0 ;P3.1口为高电平开中断(系干扰) RETI OK_1: CLR A MOV DPH,A ; DPTR清零 MOV DPL,A C_PLUS: JB P1.0,F_FIRSTPLUS ;P3.1变高电平时寻找第一个脉冲 INC DPTR ;用DPTR对低电平计数 NOP ;2微秒延时 NOP AJMP C_PLUS ;循环周期为8微秒F_FIRSTPLUS:MOV A,DPH JZ DISTURB ;A为0说明脉宽小于2毫秒,不是第一个脉冲 CLR A ;A不为0,说明是第一个宽脉冲OK_11: INC A ;脉冲个数计1 JNB P1.0,$ ;低电平时等待 MOV R1,#06H ;高电平宽度判断定时值OK_13: JNB P1.0,OK_11 ;变低电平时转OK_11脉冲计数 LCALL DLY512U ;延时(512微秒) DJNZ R1,OK_13 ;6次延时不到转OK_13再延时 DEC A ;超过3毫秒判为结束,减1 DEC A ;减1 JZ AIM0 ;为0执行AIM0(2个脉冲) DEC A ;减1 JZ AIM1 ;为0执行AIM1(3个脉冲) DEC A ; JZ AIM2 ;为0执行AIM2(4个脉冲) DEC A ; JZ AIM3 ;为0执行AIM3(5个脉冲) DEC A ; JZ AIM4 ;为0执行AIM4(6个脉冲) DEC A ; JZ AIM5 ;为0执行AIM5(7个脉冲) DEC A ; JZ AIM6 ;为0执行AIM6(8个脉冲) DEC A ; JZ AIM7 ;为0执行AIM7(9个脉冲) DEC A ; JZ AIM8 ;为0执行AIM8(10个脉冲) DEC A ; JZ AIM9 ;为0执行AIM9(11个脉冲) DEC A ; JZ AIM10 ;为0执行AIM10(12个脉冲) DEC A ; JZ AIM11 ;为0执行AIM11(13个脉冲) DEC A ; JZ AIM12 ;为0执行AIM12(14个脉冲) DEC A ; JZ AIM13 ;为0执行AIM13(15个脉冲) DEC A ; JZ AIM14 ;为0执行AIM14(16个脉冲) DEC A ; JZ AIM15 ;为0执行AIM15(17个脉冲) NOP ; NOP ; LJMP DISTURB ;出错退出AIM0: CPL P0.0 ;P0口各端口开关输出控制 SETB EX0 RETI AIM1: CPL P0.1 ; SETB EX0 RETI ;AIM2: CPL P0.2 SETB EX0 RETI AIM3: CPL P0.3 SETB EX0 RETI AIM4: CPL P0.4 SETB EX0 RETI AIM5: CPL P0.5 SETB EX0 RETI AIM6: CPL P0.6 SETB EX0 RETI AIM7: CPL P0.7 SETB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 纳米高硅EMT沸石的合成及其催化裂化性能研究
- 镍铁双金属负载低含量贵金属基纳米催化剂的制备及其全电解水性能研究
- 环流中心体空化射流流场及破岩特性研究
- 人力资源招聘面试流程及注意点
- 小学汤圆制作教案设计
- 七年级名词代词专项知识点练习
- 企业管理顾问合同范本及注意事项
- 2025年全国信息消费促进项目可行性研究报告
- 市场营销数据分析报告实例
- 酒店餐饮服务标准化操作流程手册
- 2025年低空经济航空制造产业发展现状与未来展望报告
- 2025教资国考试卷真题及答案
- 痘痘肌肤培训课件
- GB/T 11060.8-2020天然气含硫化合物的测定第8部分:用紫外荧光光度法测定总硫含量
- 计算方法引论-第十一章
- 新修订《黄河保护法》PPT
- 全科医师转岗培训试题
- 插秧机课件讲义整理
- DB11- 996-2013-城乡规划用地分类标准-(高清有效)
- 钻井井场及钻前道路施工规定
- 万豪国际酒店委托管理合同
评论
0/150
提交评论