最简单的51单片机红外遥控解码程序

最新更新时间:2012-03-28来源: 互联网关键字:51单片机  红外遥控  解码程序 手机看文章 扫描二维码
随时随地手机看文章

用单片机进行红外遥控解码,对大多数初学者来说是很麻烦的一个问题。下面介绍本人自编的红外遥控解码的C51程序,自认为是可能是史上最简的。此程序是针对uPD6121系列的遥控器的取码程序,解码值在Im[2]中,当IrOK=1时解码有效。

  /* 51单片机红外遥控解码程序 */

  /* 适用uPD6121系列 */

  #include

  #define DIGPORT P2

  #define WORDPORT P0

  unsigned char code LED_num[]={0x3f,0x18,0x76,0x7c,0x59,0x6d,0x6f,0x38,0x7f,0x7d};

  #define Imax 14000 //此处为晶振为11.0592时的取值,

  #define Imin 8000 //如用其它频率的晶振时,

  #define Inum 1450 //要改变相应的取值。

  unsigned char Im[]={0x00,0x00,0x00,0x00};

  unsigned long m,Tc;

  unsigned char i,IrOK;

  void DelayMy(unsigned int t){

  while(--t);

  }

  void Display_LED(unsigned long num)

  {

  unsigned int ii;

  unsigned int jj=0;

  unsigned long aa,bb;

  unsigned int xx[8]={0,0,0,0,0,0,0,0};

  do {

  bb=num/10;

  aa=num-bb*10;

  xx[jj]=aa;

  num=bb;jj++;

  }

  while(num>0);

  DIGPORT=0x80;

  for(ii=0;ii<8;ii++) {

  WORDPORT=LED_num[xx[ii]];

  DelayMy(60);

  DIGPORT=DIGPORT>>1;

  };

  WORDPORT=0;

  }

  //外部中断解码程序

  void intersvr1(void) interrupt 2 using 1

  {

  Tc=TH0*256+TL0; //提取中断时间间隔时长

  TH0=0; TL0=0; //定时中断重新置零

  if((Tc>Imin)&&(Tc

  if(Tc>Inum) Im[m/8]=Im[m/8]>>1|0x80; else Im[m/8]=Im[m/8]>>1; //取码

  if(m==32) if((Im[2]|0x01)==~Im[3]) IrOK=1; else IrOK=0; //取码完成后判断读码是否正确

  m++; //准备读下一码

  }

  /*演示主程序*/

  void main(void)

  {

  m=0;

  EA=1;

  IT1=1;EX1=1;

  TMOD=0x11;

  TH0=0;TL0=0;

  TR0=1;ET0=1;

  for(;;){

  DelayMy(100);

  if(IrOK==1) for(i=0;i<400;i++) Display_LED(Im[2]);

  IrOK=0;

  }

  }

关键字:51单片机  红外遥控  解码程序 编辑:神话 引用地址:最简单的51单片机红外遥控解码程序

上一篇:单片机基础学习(一):存储结构
下一篇:单片机关键技术基础详解(五)

推荐阅读最新更新时间:2023-10-12 20:38

基于51单片机的烟雾报警器设计-ADC0809
一.硬件方案 火灾报警器采用51单片机为核心控制器,利用气体传感器MQ-2、ADC0809模数转换器、DS18B20温度传感器等实现基本功能。通过这些传感器和芯片,当环境中可燃气体浓度或温度等发生变化时系统会发出相应的灯光报警信号和声音报警信号,以此来实现火灾报警,智能化提示。 主要由51单片机+MQ-2烟雾传感+ADC0809模数转换芯片+LCD1602显示屏+继电器电路+按键+蜂鸣器;如图: 二.设计功能 (1)采用LCD1602实时显示当前的烟雾值和设置值; (2)烟雾浓度的报警值可以通过按键设定; (3)当前烟雾值在正常范围时,绿灯亮; (4)当前烟雾超过上限值时,红灯亮,蜂鸣器响; (5)三个按键功能:设置、加、
[单片机]
基于<font color='red'>51单片机</font>的烟雾报警器设计-ADC0809
浮点数传送--MCS-51单片机实用子程序
FMOV 功能:浮点数传送 入口条件:源操作数在 中,目标地址为 。 出口信息: = , 不变。 影响资源:A 堆栈需求: 2字节 FMOV: INC R0 INC R0 INC R1 INC R1 MOV A,@R1 MOV @R0,A DEC R0 DEC R1 MOV A,@R1 MOV @R0,A DEC R0 DEC R1 MOV A,@R1 MOV @R0,A RET
[单片机]
基于89C51单片机串行A/D驱动程序的设计
  串行A/D转换器转换后的结果是以串行方式输出,数字量以串行方式输出可简化系统的连线,缩小电路板的面积,节省系统的资源。下面以TLC2543为例,介绍串行A/D驱动程序的设计。      89C51单片机与TLC2543芯片的接口电路图如下图所示。TLC2543的3个控制输入端CS(的反)、I/OCLOCK、DATAINPUT和一个数据输出端DATAOUT分别与单片机的P1.4、Pl.l、P1.2和P1.3引脚相连,单片机采用的晶振频率为12MHz。      电路设计时,我们将TLC2543有两个基准电压输入REF+、REF-分别与电源(VCC)、GND相连,这样连接可保证数字输出的满度和零点,但在高精度的测量要求中,如果VC
[单片机]
基于89C<font color='red'>51单片机</font>串行A/D驱动<font color='red'>程序</font>的设计
51单片机外扩ROM方法介绍
强烈建议用户尽可能不要考虑外扩程序存储器,如果非扩不可,可以仿照下图所示电路进行扩展 图中P0口输出外部ROM的低8位地址信号,P2口输出高8位地址信号;ALE端输出地址锁存信号,/PSEN输出程序存储器输出使能信号。 两个模块 P89V51RD2单片机内部有64K用户ROM区和8K BOOT ROM区两个模块 两个模块在物理上是分开的,尽管地址重合,但一般不会发生冲突。 用户程序存储区 P89V51RD2内部有64K Flash ROM,不需要用户再进行ROM扩展 地址范围:0000H~FFFFH 其内部分配和其他51系列单片机是相同的 Flash ROM可以反复擦除和下载程序 擦除和编程的方法 并行编程
[单片机]
<font color='red'>51单片机</font>外扩ROM方法介绍
X25165在8051单片机系统中的应用
美国XICor公司生产的Z25165芯片是集看门狗、电压监控和串行EEPROM三项功能于一体的集成电路产品。该芯片的应用将有利于简化单片机系统的结构,降低系统的成本,减少对电路板的空间需求,增加系统的可靠性。 1 芯片简介 X25165的引脚排列如图1所示,各引脚功能说明如表1所列。 X25165使用简单的三线总线串行外设接口(SPI),对芯片进行操作的所有操作码、字节地址及写入的数据均从SI引脚输入,写入数据在串行时钟(SCK)的上升沿被锁存,从芯片读取的数据从SO引脚串行移出,并在串行时钟的下降沿输出数据。 芯片的看门狗定时器和VCC电压监视器都对微处理器提供独立的保护,当系统发生故障时,只要看门狗定时
[单片机]
X25165在80<font color='red'>51单片机</font>系统中的应用
51单片机开发主要方法
ISD51 (在线调试器)为8051编程用户提供了新的监控调试技术。将 ISD51 进行配置后与您的用户程序连接起来用户就可以通过8051的一个串口直接在芯片上调试程序了。ISD51的软件和硬件可以工作于最小模式。它可以运行于带有外部或内部程序空间的系统并且不要求增加像冯.诺伊曼架构的数据存储器等的特殊硬件部件。ISD51 可以工作在像 Philips LPC 系列之类的微型单片机上并且可以完全访问其 CODE 和 XDATA 地址空间。 ISD51硬件需求,一个8051兼容串口, 500-700字节的程序代码在相应数量的特殊积存器中运行,6字节堆栈空间,1字节IDATA RAM,为每个软件断点预留2字节IDATA RA
[单片机]
1602屏配合红外遥控(实现光标移动)与对1602新的认识
1、效果图 2、代码 3、对1602新的认识(小结) 效果图 代码 工程文件下载:http://www.51hei.com/f/gxde_c.rar #include reg51.h #include intrins.h sbit RS = P2^4; //定义端口 sbit RW = P2^5; sbit EN = P2^6; unsigned char sj ; //接收脉冲时间数组 unsigned char ac; //l602AC值,(显示缓存地址) unsigned char i; //脉冲个数记录
[单片机]
1602屏配合<font color='red'>红外遥控</font>(实现光标移动)与对1602新的认识
51单片机的内部结构和程序执行过程解析
注: 1.ROM:只读存储器,单片机的只读存储区大多用于存储程序固又称程序存储器。 51单片机是EPROM,所谓的EPROM是可擦除的只读存储器。可以把原来的程序擦除了,再写一个新的进去。 断电后是可以保存的,数据存储器(RAM)是不能保存的。 RAM只能在程序执行的时候不断地重新存储定义的变量。如int x,int y 可以通过code这个指令来将定义的变量放在ROM,而不是RAM中,节省RAM资源 2.RAM:随机存取存储器,用于存储定义的变量等,速度快 51单片机的RAM存储容量远小于ROM,但是速度非常之快 内部详细图示 内部的结构看似十分复杂,但是大致上可以分为两个部分:运算器(红色框)和控制器(蓝色框)
[单片机]
<font color='red'>51单片机</font>的内部结构和<font color='red'>程序</font>执行过程解析
小广播
最新模拟电子文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved