红外遥控器的发送装置和接收装置以及关于载波等一些原理大家可参看《手把手教你学51单片机》文档第16章知识内容,这里笔者只简单说明如何运用该模块并讲解代码的实现。
1.接收装置
HS0038这个元器件是用来接收红外遥控器发送来的信号做处理的,我们知道红外遥控器有21个按键,按下不同的按键,HS0038的信号引脚就会产生不同的时序,我们解析这些时序就可以判断按下的是什么按键。
比如我们用红外遥控器对准开发板上的接收装置HS0038,按下左上角的按键,那么HS0038的信号引脚就会产生一系列的变化如下:
首先是引导码,也就是一开始HS0038信号引脚会拉低信号线9ms左右的时间,然后是4.5ms的高电平时间,这段时序叫做发送端的引导码。
接着HS0038信号引脚会接收到用户码,只要信号线被拉低560us之后又拉高560us的时间,那么我们就认为这段时序是这种字节的一位,为0。
如果信号线被拉低560us之后又拉高1.68ms的时间,那么这段时序就是代表1。
比如信号线的时序如下
这样我们就知道接收到的字节为0x0C。
0x0C是某个按键所发送的字节,我们要知道按键的发送有5个阶段,分别为:引导码、用户码、用户反码、按键数据码、按键数据反码。
引导码已经说明过它的时序。
然后是用户码,用户码一直是0x00,也就是HS0038信号引脚是如下所示
接着用户反码就是0xFF。
按键数据码如果是0x0C,那么按键数据反码就是0xF3。
0x0C:00001100
0xF3:11110011
2.代码的实现原理
在第八章第11讲我们已经学过输入捕获,那么解析红外遥控就是使用这种方式,看到宋老师的例程lesson16_1里面的函数“void EXINT1_ISR() interrupt 2”。
在main.c中“InitInfrared();”就是为输入捕获做好设置,只要信号引脚被拉低就会进入外部中断函数。
当我们在遥控器上按下某个按键时,信号引脚首先接收到的是引导码,也就是9ms的低电平+4.5ms的高电平,由于一开始接收到低电平所以就会进入“void EXINT1_ISR() interrupt 2”函数,函数里就是一关关的判断是否一开始接收到9ms低电平,如果是,那么又接着判断后面是不是产生4.5ms左右的高电平,如果是,接着就是进行判断后面的用户码、用户反码、按键数据码、按键数据反码的字节,并存入全局变量的数组ircode[4]中。
关键字:51单片机 红外遥控
引用地址:
51单片机-红外遥控
推荐阅读最新更新时间:2024-11-17 10:18
单片机教程-MCS-51单片机简述
MCS51是指由美国INTEL公司(对了,就是大名鼎鼎的INTEL)生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS51系列单片机,而8031是前些年在我国最流行的单片机,所以很多场合会看到8031的名称。INTEL公司将MCS51的核心技术授权给了很多其它公司,所以有很多公司在做以8051为核心的单片机,当然,功能或多或少有些改变,以满足不同的需求,其中89C51就是这几年在我国非常流行的单片机,它是由美国ATMEL公司开发生
[单片机]
51单片机教程:按键的定时器消抖(有延时的程序不是好程序
按键消抖原理 一、首先来回顾一下按键延时消抖 按键由于是机械结构,按下的时候难免产生抖动,一般抖动会在按下的时候与松开的时候产生,抖动时间大概是10ms 于是针对按键抖动就有了延时消抖的一种简单的解决方法: 二、按键消抖代码 方法一: 按下按键损耗的时间取决于按下按键到松开的时间,至少10ms,按下按键后CPU不再执行其他指令,直到按键松开,应用能力弱 代码作用:按下按键led状态取反,按下按键需要等待松开 #include reg51.h sbit key=P1^0; //定义key为P1.0 sbit led=P2^0; //定义LED为P2.0 void delay_ms(unsigned int t)
[单片机]
51单片机LED点阵上移程序!(汇编)
注释:行采用74LS154+PNP三极管驱动 列采用两个74HC595驱动! 此程序可以实现上移!下面是视频链接实拍效果,请大家查看!链接地址:视频祥见: http://www.tudou.com/programs/view/D0SCJyO4RBQ/ SDATA EQU P1.0 ;串行数据 SCLK EQU P1.1 ;移位时钟脉冲 RCK EQU P1.2 ;输出锁存器控制脉冲 ORG 000H JMP MAIN ORG 0030H MAIN: MOV SP,#5FH MOV 20H,#00H MAIN1: MOV R0,#5 MAIN2: MOV R3,#10H MOV R1,#00H MOV R2,20H
[单片机]
51单片机对继电器的控制
典型的弱电控制强点途径。 怎么样理解这个电路图? 要理解这个电路,其实也比较容易.那么请您按照我的思路来,应该没有问题: 首先的,里面的三极管很重要.三极管是电子电路里很重要的一个元件.怎么样理解三极管呢? 简单的来说三极管有两个作用一个是放大作用,一个是开关作用.(严格来讲开关作用是放大作用的极限情况,不过没关系,把两者分开,更便于理解它的工作原理).在这里,我们只了解它跟本电路有关的开关作用. 首先把三极管想成一个水龙头. 简单C代码 主要功能:对白炽灯的控制,闪烁,时隔3秒 #include reg52.h sbit jdq_1=P1^0; void delay(void) //延时3S 误差 0us { u
[单片机]
52-基于51单片机的指纹密码锁设计
具体实现功能 系统由STC89C51单片机+AT24C02数据存储模块+按键模块+LCD12864显示+FM10A指纹模块等构成。 具体功能: 1、能够对指纹进行录入、识别和删除; 2、能够实现最多1000枚的指纹录入识别; 3、能够实现指纹识别成功开锁功能; 4、设有4*4按键键盘,实现密码录入、修改和特殊功能。 设计背景 据统计,在全世界50亿人口当中,除了19名生来就没长指纹的特殊人物之外,没有一个重样的指纹,所以世界各国的警察机关都利用指纹鉴别技术来侦破案件。有人把人的指纹称之为“人体的立体印章”,而公安人员正是利用这些立体印章来作为认定作案分子的特征符号。 由于人体的身体特征具有不可复制的特点
[单片机]
51单片机教程:51单片机驱动四个8*8点阵
一、点阵原理 市面上有很多种类的点阵,但是最常用的还是这种8乘8点阵 内部结构如下图 可以发现点阵就是由led构成,并且有一排是阳极,另一排是阴极,有一排是控制行,另一排是控制列。 打开proteus搜索MATRIX,看到各种型号的点阵,选择8乘8即可 任意选择一个颜色的点阵,我们发现引脚没有做任何标记,默认上排:阴极、控制列;下排:阳极、控制行 (一定要自己测一下,proteus仿真布置的点阵每次方向都可能发生改变) 什么意思呢,也就是跟下图对应关系,只不过引脚位置发生改变 二、4个 “ 2乘2 ” 点阵拼成一个 “ 4乘4” 点阵 我们先从简单开始理解,首先画出4个 “2乘2” 点阵 然后把上下方向的阴
[单片机]
51单片机控制SL811HS的USB主机底层驱动
引言 基于USB接口的设备使用方便,性价比高,因此在人们的工作和生活中得到了广泛的应用,如U盘,移动硬盘,光驱,USB摄像头,USB鼠标键盘等,同时,51系列单片机以其成熟的技术和高性价比吸引了大量国内用户,被广泛应用于测控和自动化领域,因此,如果在51单片机系统中增加USB主机接口,实现对USB从机设备的控制,则该单片机系统可以充分利用现有的各种USB从机设备,大大扩展单片机系统功能。 本设计实现了在51单片机系统中增加USB主机功能,采用普通51单片机外接专用USB接口芯片的方案,这种方案虽然会使系统传输速度受到限制,而且在稳定性有所欠缺,但此方案设计灵活性高,且易于移植,为低成本产品的开发提供了广阔前景,设计中采用51单
[应用]
数模转换器DAC7724与51单片机的接口及程序设计
0 引言 在微计算机电机控制的机电设备中,常常需要把数字信号变成模拟信号,以驱动机电设备的运行。在这个过程中,D/A转换是一个十分重要的环节,同时也是微计算机电机控制系统重要的组成部分。 1 DAC7724的主要特点 DAC7724是TI公司生产的12位并行输入4通道D/A转换器,该转换器具有以下特征: ◇±15V以内的双电源工作; ◇输出电压:VREFL~VREFH,VREF:-10~+10V; ◇采用12位并口输入和4通道隔离输出方式; ◇可以上电自动复位; ◇转换速率快,更新率为1 MHz; ◇工作温度范围在-40~85℃的范围内。 2 内部结构及引脚说明 2.1 结构原理 DAC7724的
[单片机]