给单片机控制系统加两个红外线遥控接口,用手持红外遥控器来辅助或代替键盘的操作,给使用者带来了极大的方便。本节根据我们的实际开发经验,介绍红外线遥控发射接收芯片BA5048和BA5050的性能及其与51系列单片机系统的接口电路,给出软件识别键码的方法和汇编子程序。
1. 36.1 红外线遥控发射接收芯片BA5048和BA5050的特性
BA5048和BA5050是配对使用的红外线遥控发射接收芯片。BA5048是发射器,采用CMOS结构,功耗极低,工作电压范围宽(1.5~5.O V);内置振荡电路,外围电路也极为简单;具有18种功能及75种指令;可以单键触发、多键触发(最高达6键)。
BA5048引脚图:
BA5048的按键输入是由Kl-K6及Tl~T3组成的6×3矩阵构成的。K1~K6与Tl组合成的按键输出的是连续性信号,通过给Tl到K1~K6加编码二极管可实现63种按键编码。连续性信号的输出特点是,当有一连续性按键按下时,指令发射2次信号,每次信号的周期是20. 25 ms,2次信号之间相隔33.8 ms,然后有87.8 ms的暂停,之后另一周期开始直到按键抬起。K1~K6与T2~T3组合成的按键输出的是一次性触发信号,按一次键盘只对应一次输出。一次性触发信号的输出特点是,当有一次性触发按键按下时,指令仅发射2次信号,每次信号的周期是20. 25 ms,2次信号之间相隔33.8 ms,然后便停止。
信号每周期的发射指令是一串12位的字码,如图1 - 129所示。图中,C1~C3是代码位,不同型号的解码器对应不同的代码;H、Sl、S2对应Tl、T2、T3,表示连续信号或一次性触发信号;D1~D6对应K1~K6按键而成的6位信息码。
BA5050在接收信号时要连续接收2组发射信号,以确定信号是否正常。首先第一组信号的数码被存入片内的12位转换寄存器;然后,当接收到第二组信号码时,立即与转换寄存器中的数码进行比较,看其是否相同:如果不同,系统马上被重置;反之当所有接收码正常时,各相应的输出端就从低电平升到高电平。
为防止其他机型的干扰,BA5050提供CODE1和CODE2两个码位来核对发射器与接收器代码是否一致。只有当两种代码一致时,后面的数据位才有效产生相应的输出;否则不产生输出。
单脉冲输出引脚SP1~SP10在连续接收到两组信号后立即输出一个宽度为107 ms的正脉冲。持续脉冲输出引脚HP1~HP6只要接收到有效的连续信号,相应的输出端就保持高电平。当松开按键连续信号终止后,再过大约160 ms,输出才变为低电平。HP1~HP6能同时并行地输出高电平。反向电平输出引脚CP1和CP2,每当收到一次有效的信号时,输出端电平就反一下向。
BA5050对电视机、日光灯、节能灯等干扰具有极强的抑制能力。
1. 36.2 BA5050与单片机系统的接口电路
图1 - 132是BA5050与51单片机系统的接口电路。该电路用两个端口来处理接收到的键码数据。HPRO端口用来读取连续按键信号(HP1~HP6)和反转按键信号(CP1和CP2)。HP1~HP6可有63种排列组合,其键码值的范围是OIH~3FH。在实际应用系统中,一般将HP1~HP6的排列组合按键设置成各种功能按键,CP1与CP2设置成类似电源开关和静音等功能的按键。SPRO端口用来读取单次触发按键信号(SP1~SP10)。SP1~SP10信号是经过十进制编码电路加到端口的,因此没有SP键按下时,此端口读到的数据是10H;有SP键按下时,SP1~SP10对应键码是OOH~09H。在后面的子程序中已将它转化为OIH~OAH,在实际应用系统中,一般将它与1~9和0十个数字键对应。
以下是读取遥控器键码的子程序:连续性按键键码值存在50H;反向电平输出CP1和CP2状态存在51H;一次性触发按键键码存在52H。读者可根据50H、51H、52H的值和具体的应用系统,自己定义按键功能和编写键码的处理程序。其程序基本结构是判断键值后作相应的跳转处理。
关键字:单片机 控制系统 红外线遥控器
引用地址:
单片机控制系统的红外线遥控器接口介绍
推荐阅读最新更新时间:2024-03-16 15:55
基于AT89C51系列单片机和霍尔传感器实现测控系统的设计
近年来,随着传感器技术的不断发展,特别是单片机技术的广泛应用,采用单片机与PC机构成的小型传感器测控系统越来越多。因为它们很好地结合了单片机的价格低,功能强,抗干扰能力好,温限宽和面向控制等优点及Pc机操作系统中Windows的高级用户界面、多任务、自动内存管理等特点。在这种测控系统中,单片机主要进行实时数据采集及预处理,然后通过串行口将数据送给PC机,PC机再对这些数据进一步处理,例如求均值、方差、画动态曲线与计算给定、打印输出的各种参数等任务。 这里采用霍尔传感器作为前端进行数据采集,然后在单片机控制下进行A/D转换,并将信号通过串口送给PC机进行绘图处理。 1 系统介绍 系统可以分为3个部分。第一部分是信号源,由霍尔
[单片机]
AT89S51/52单片机的最小系统电路原理图
单片机最小系统统是指能让单片机运行起来的所需的最少器件构成的电路系统。如果您构建的最小系统作为研究、学习使用,应该满足以下要求:1.有电源;2.有单片机主芯片;3.有程序下载电路;4.有时钟源电路;5.有复位电路;6.有I/O口的负载电路。这样的系统才能满足您下载程序和调试程序的要求。 下图是AT89S51/52单片机的最小系统电路原理图。 电源部分:从电脑USB接口DC5V取电,C4和C5构成USB接口电源的简单滤波电路。开关电源的输出电压往往波纹较大,不像线性稳压器输出的电压那么稳定,所以进行必要的滤波。如果需要接一个电源开关应接在C4和C5的前面,在您接通开关的瞬间产生的抖动能被这两个电容吸收。 复位电路
[单片机]
基于STM32单片机采集数据&数据上云
前言 以往采集数据均是采用Arduino开发板、esp32wifi模块等,本次实验采用的是STM32单片机,STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核,功能非常强大,为本次实验提供了无限可能。 参考博客:https://blog.csdn.net/weixin_43271542/article/details/117384011?spm=1001.2014.3001.5502 1.实验原理 本项目采用ARM结构中最为代表的Cortex-M4系列的芯片,选用STM32F407ZGT6开发板进行项目开发,选用的传感器为常见通用的DHT11温湿度传感器。传感器将采
[单片机]
基于单片机交通灯智能控制系统研究
1 引言 随着经济发展,汽车数量急剧增加,城市道路日渐拥挤,交通拥塞已成为一个国际性的问题。因此,设计可靠、安全、便捷的多功能交通灯控制系统有极大的现实必要性。通常情况下,交通信号灯控制主要有两个缺陷:1、车道放行车辆时,时间设定相同且固定,十字路口经常出现主车道车辆多,放行时间短,车流无法在规定时间内通过,而副车道车辆少,放行时间明显过长;2、未考虑急车强通(譬如,消防车执行紧急任务时,两车道都应等待消防车通过)。由于交通信号灯控制系统缺乏有效的应急措施,导致十字路口交通受阻,造成不必要的经济损失。 本系统利用单片机AT89C51,借助CAN总线作为现场通信总线实现智能交通信号灯控制系统设计,实现了根据区域车流、红外遥控以及P
[单片机]
51单片机编程让新手最容易出错的几点总结
最近在网上看到很提问都是程序出错,而且找不到错误在那,所以在这我也总结一下,和大家分享一下: 1、在写头件时,有的朋友会把 或 这两忘记写,比如说:#include reg52.h,它就写成这样,所以你编译的时候肯定会出错的,正确的应该这样:#include reg52.h ;再说一点,一般 的是编译器中自带的文件,而 是自己定义的头文件,这是C语言规则里面提到的,不这样写也没事,但是我们也应该遵守是吧! 2、在写宏定义时最容把关键字中字母写错,#define uint unsigned int #define uchar unsigned char,在网上找到很多鞋童,把unsigned中的'n
[单片机]
单片机+LCD1602显示℃ 这种自定义符号
#include all.h u8 xdata LCD1602_Write_Buffer1 ; u8 xdata LCD1602_Write_Buffer2 ; u8 code LCD1602_5x8 ={0x08,0x00,0x07,0x08,0x08,0x08,0x08,0x07}; u8 xdata LCD1602_Write_Cursor_Add; void LCD1602_Delay(u8 len) { u8 idata i; while(len--) { i=15; while(i--); } } void LCD1602_Write_Add(u8 Ad
[单片机]
单片机小小常识
单片机能够执行的指令共有111条,只需一个机器周期的指令有64条,两个机器周期的指令有45条,而4个机器周期的指令仅有两条(乘法和除法)。 指令的符号:/位操作的前缀,表示对该位取反。 直接寻址:指的是内部数据存储器中存放的数据的地址,或存放数据的一个特殊功能寄存器地址,eg MOV A, 30H。 寄存器寻址:寻址范围,4个工作寄存器组共32个通用寄存器(R0~R7),eg MOV A, R5。 寄存器间接寻址:寻址范围,内部低128字节单元(只能使用R0和R1做间接寄存器), eg MOV A, @R0。 基址加变址:MCS-51单片机的基址加变址只能对程序存储器进行寻址,eg MOVC A, @A+PC
[单片机]
在MOTOROLAA68K系列MCU上移植μC/OS-II
以下介绍如何将μC/OS-II移植到MOTOROLA MC68K系列CPU上。
一、MC68K CPU简介
MC68K及68020、68040等的著名的MOTOROLA32位微处理器,和与之兼容的68K、CPU32、CPU32+等CPU扩充定时处理单元TPU、队列串行模块QSM、系统控制模块和RAM等组成MC683xx系列单片机。
CPU32内部有8个32位通用数据寄存器,8个32位通用地址寄存器。8个通用数据寄存器可作为累加器使用,也可看成C语言中各种类型的变量;8个通用地址寄存器,可作为变址寄存器使用,也可看成C语言中的指针型变量。CPU32有独立的用户堆栈指针和系统堆栈指针,可区分程序区、数据区、系统区、
[应用]