您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页单键学习型遥控器的设计论文

单键学习型遥控器的设计论文

来源:筏尚旅游网
河南职业技术学院

毕业设计(论文)

题 目 单片机单键学习型遥控器

系(分院) 机电系 学生姓名 王海涛 学 号 08115076 专业名称 应用电子技术 指导教师 张湘洁

2010 年 12 月10 日

单键学习型遥控器的设计

利用单键学习型遥控器可以学习任何遥控器的某个按键功能。单键学习型遥控器采用最小化应用模式设计,电路简单,可靠性高,尤其是通过大量不同遥控器码的特征分析,在遥控码的读入时选择了最佳采样频率,使遥控码的学习成功率大大提高。此技术可应用于多媒体教室和家庭集中控制器等设备。使用时先按一下K,待绿色指示灯亮后,用遥控器对准红外线接收头,按某个功能按键,当绿灯灭且红灯亮时说明学习完成,按发射键即可进行遥控。

系统硬件电路的设计

图1 为单键学习型遥控器的电原理图,其中P1.0口接遥控码发射按键;P1.6口用作状态指示,绿灯亮代表学习状态,绿灯灭表示码已读入。第9脚为单片机的复位脚,采用简单的RC上电复位电路;12脚为中断输入口,用于工作方式的转换控制,当INT0脚为低电平时,系统进入学习状态;14脚用于红外线接收头的输出信号输入;15脚作为遥控码的输出口,用于输出40KHZ的遥控码;18、19脚接12MHZ晶振。由于采用最小化应用系统,控制线PSEN(片外取指控制)、ALE(地址锁存控制)不用EN(片外存储器选择)接高电平,使低8KB的EPROM地址(0000H~1FFFFH) 指向片内。

2系统主要程序的设计

1初始化程序

初始化程序内容包括P0、P1、P3口置1,P2口清0,清08H~6EH共103个工作寄存器,设置堆栈基址(70H),设置计数器计数模式、控制字和开外中断使能等。

2.遥控器读入处理程序

中断开始 遥控码读入处理程序可以完成遥控码起始位的识别、脉宽计数功能,完成遥控码编码位的宽度计数功能,完成结束位的人别功能,其流程如图2所

学习状态 示。本程序模块在编程设计中非常重要,通过大量的不同种类的遥控码波形实验测试分析,遥控码的帧间歇位宽度均为在10ms以上,起始位码宽度在

读码准备 100us~20us之间,编码位在100us~5ms之间。

为确保所有遥控器学习的成功,可采用以下设计方法。

寻找起始位方法:用16位DPTR计数器对高电N 起始位? 平进行宽度计数,计数采样周期为21us;当高电平结束时,如高8位计数器为非0,则说明高电平宽

Y 度超过5.355ms(21us×255),接下来的低电平码就

是起始位;否则重新开始。

存起始位 读起始位方法:采用16位DPTR对低电平进行宽度计数(最大可读宽度为1.376s),当高电平跳变时结束计数,并将DPTR的高八位、低八位分

存编码位 别存入R4、R5寄存器。

读遥控编码的方法:采用DPTR低8位计数器对码(高电平或低电平)进行宽度计数,电平跳变时结束计数,并将值存入规定的地址;在高电平N 结束位? 码计数时,如果DPTR高8位计数器为非0(宽度大于5.355ms),则判定为结束帧间隔位,在相

Y 应存储单元写入数据

#00H作为结束标志。 开始 中断退出

初始化 3.遥控码发送处理程序

遥控码发送处理程序利用计数器中断功能,实现 40KHZ载波的发送,利用接收时接收的低电平位时键盘扫描 间

控制载波的发送时间。 N 4.主程序 键按下? 主程序在上电初始化后进行端口按键扫描,当确

Y 认

有键按下时,将编码发出去,其流程图如图3所示。

编码发送 5.延时程序

延时程序主要用于读键时消抖。

图3

电路主要性能指标

(1) 最大学习码长:206位;

(2) 学习码识别范围:起始位为21us~1.376s,编码位为21us~5.335ms; (3) 读码误差:±21us;

(4) 帧间歇位识别范围:小于1.37s,大于5.335ms。

单键学习型遥控器的设计性能与软件的编写具有密切关系,特别是码宽计数的采样周期及计数器采用16位还是8位,都关系到能否识别起始位及遥控码采样精度问题,所以码宽计数的采样周期等在编程时须经多次试验测试后才能决定。本设计中读码采样周期为21us.

汇编程序清单

以下是单键学习型遥控器完整的汇编程序清单:

SPBASE EQU 70H IEVAL EQU 00H MEMBASE EQU 08H MEMS EQU 67H BITNMB EQU 08H KEYFUNFLAG EQU 80H KEYFUNNMB EQU 81H KEYFUNRW EQU 82H READFLAG EQU 88H WITERFLAG EQU 99H

TMPHADDR EQU TMPLADDR EQU READTIME EQU LOWH EQU LOWL EQU STUDYLAMP EQU LAMP EQU STUDYKEY EQU

REMOTEIN EQU REMOTEOUT EQU DELAYCONUT EQU DELAYCONUT0 EQU T1COUNT EQU TMODVAL EQU TCONVAL EQU PCONVAL EQU T2CONVAL EQU SCONVAL EQU IPVAL EQU

主程序和中断程序入口如下; ORG 0000H AJMP START ORG 0003H AJMP INTEX0 ORG 000BH RETI

ORG 0013H RETI

ORG 001BH

08H 90H 00H R4 R5 P1.6 P1.7 P3.2 P3.4 P3.5 30H 0FFH 0F3H 22H 41H 00H 00H 0F8H 01H AJMP INTT1 ORG 0023H RETI ORG 002BH RETI

初始化程序中的各变量如下:

CLEARMEMIO: CLR A DEC A CLEARMEM:

主程序如下:START: MAIN: MOV P0,A MOV P3,A MOV P1,A CLR A MOV P2,A

CLR STUDYLAMP CLR LAMP

CLR REMOTEIN SETB REMOTEIN MOV R0,#MEMBASE MOV R1,#MEMS MOV @R0,A INC R0

DJNZ R1,CLEARMEM MOV R0,#KEYFUNRW MOV @R0,#READFLAG MOV IE,#IEVAL MOV IP,#IPVAL

MOV TMOD,#TMODVAL MOV PCON,#PCONVAL MOV SCON,#SCONVAL MOV TH1,#T1COUNT MOV TL1,#T1COUNT SETB EX0 SETB EA RET MOV SP,#SPBASE

LCALL CLEARMEMIO LCALL KEYWORK LJMP MAIN NOP

NOP NOP

LJMP START

T1中断服务程序如下:

INTT1: CPL REMOTEOUT RETI 载波合成如下:

REMOTETX: MOV R0,#TMPHADDR MOV SETB MOV MOV JZ CLR DEC LOWBACKTMP:MOV LOWBACKTMP0: SETB SETB NOP NOP NOP NOP NOP NOP

DJNZ DJNZ LOWBACK: MOV MOV LOWBACKTMP1: SETB SETB NOP NOP NOP NOP NOP NOP

DJNZ TMP0: MOV MOV TMP1: CLR CLR CLR NOP

R1,#TMPLADDR LAMP A,R4 R3,A

LOWBACK A A R2,A TR1 ET1 R2,LOWBACKTMP0 R3,LOWBACKTMP A,R5 R2,A TR1 ET1 R2,LOWBACKTMP1 A,@R0 R2,A TR1 ET1

REMOTEOUT NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP TMPP: TMP2: OUT: INTEX0: NOP NOP NOP NOP

DJNZ R2,TMP1 INC R0 MOV A,@R1 MOV R2,A SETB TR1 SETB ET1 NOP NOP NOP NOP NOP NOP

DJNZ R2,TMP2 INC R1 MOV A,@R1 JZ OUT AJMP TMP0 CLR TR1 CLR ET1 CLR LAMP

CLR REMOTEOUT RET

遥控数据读取INT0中断程序

TMPHAADDR为首址RAM 低电平存TMPLADDR为首址RAM CLR ET1 CLR TR1 CLR EX0 CLR EA

SETB STUDYLAMP CLR LAMP

; ;高电平存 ; MOV R0,#TMPHADDR MOV R1,#TMPLADDR CLR A

MOV DPH,A MOV DPL,A

READHEAD: JNB REMOTEIN,READDATA INC DPTR NOP NOP NOP READDATA: READDATA00: READLOOP01: NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP

AJMP CJNE MOV MOV AJMP CLR MOV MOV JB INC NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP

READHEAD

A,DPH,READDATA00 DPH,A DPL,A

READHEAD A DPH,A DPL,A

REMOTEIN,READDATA02 DPTR NOP NOP

AJMP READLOOP01 READDATA02: CLR LAMP MOV R4,DPH MOV R5,DPL MOV DPH,#00H

MOV DPL,#READTIME AJMP READLOOP1 READDATA1: SETB LAMP READLOOP0: READDATA2: READLOOP1: MOV @R0,DPL INC R0

MOV DPL,#READTIME MOV DPH,#00H

JB REMOTEIN,READDATA2 INC DPTR NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP

AJMP READL00P0 CLR LAMP MOV @R1,DPL INC R1

MOV DPL,#READTIME MOV DPH,#00H

JNB REMOTEIN,READDATA3 INC DPTR NOP NOP NOP NOP NOP NOP

NOP NOP NOP NOP NOP NOP NOP NOP NOP

AJMP READLOOP1 READDATA3: CLR CJNE AJMP READDATA4: MOV MOV SETB CLR SETB READEND: JNB SETB SETB RETI

键工作子程序如下:

KEYWORK: SETB JNB KEYOUT: RET

KEY0: LCALL JB LJMP 延时程序(513us)如下:

DELAY: MOV DELAY: DJNZ RET 延时约25ms如下:

DL10MS: MOV DE10MS1: LCALL DJNZ RET END

A

A,DPH,READDATA4 READDATA1 @R0,A LAMP

STUDYLAMP REMOTEIN

STUDYKEY,READEND EX0 EA P1.0

P1.0,KEY0 DL10MS

P1.0,KEYOUT REMOTETX R0,#DELAYCONUT0 R0,DELAY1 R1,#DELAYCONUT DELAY

R1,DL10MS1 @R1,A

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- efsc.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务