基于AVR单片机捕获中断实现红外线解码的方法介绍

发布者:智慧启迪最新更新时间:2011-09-27 关键字:AVR单片机  捕获中断  红外线解码 手机看文章 扫描二维码
随时随地手机看文章

  AVR单片机是Atmel公司推出的一个单片机系列。由于该系列单片机的集成度高,因此,其软/硬件设计都变得更加简洁。文中介绍通过AVR单片机的捕获中断来实现红外线通讯解码的一种方法。

  1 红外线编码

  家电遥控中常用的红外线编码电路有μPD6121G型HT622型和7461型等。本文就以这些电路的编码格式来讨论怎样使用AVR单片机的捕获中断功能来实现其解码。

  红外线通讯的发送部分主要是把待发送的数据转换成一定格式的脉冲,然后驱动红外发光管向外发送数据。接收部分则是完成红外线的接收、放大、解调,还原成同步发射格式相同(但高、低电位刚好相反的脉冲信号。这些工作通常由一体化的接收头来完成,主要输出TTL兼容电平。最后通过解码把脉冲信号转换成数据,从而实现数据的传输。图1是一个红外线遥控制系统的原理框图。

  

红外线遥控制系统的原理框图

 

  图2示出该红外遥控系统的编码格式。图中,μPD6121G遥控器的二进制“0”由0.56ms的间隔加0.565ms的脉冲表示;二进制“1”由0.56ms的间隔加1.685ms的脉冲表示。每次发送的32二进制码可分成两部分,其中前16位是遥控器辨识码,主要用于区别不同遥控器,后16位是操作码。这两个部分的后8位都是前8位的反码,用作数据校验。每帧数据以9ms的间隔加4.5ms的脉冲作为数据头。

  

红外遥控系统的编码格式

 

  2 AVR单片机

  AVR系列单片机是Atmel公司于1997年推出的一款全新配置的、采用精简指令(RISC-Redued Instruction Set CPU)结构的新型8位单片机。由于AVR单片机采用单指令操作,所以,在相同时钟的情况下,AVR的指令周期只有8051型机的1/2,而且AVR采用两极指令流水线,可以在执行当前指令的同时获取下一条指令,所以具备1MI/s/MHz的调整处理能力。不同于8051型机的是AVR采用32个通用工作寄存器,克有了单一累加器数据处理带来的瓶劲现象,从而使得指令代码更加灵活,编码更容易。此外,AVR中还集成了A/D、PWM、EEPROM、FLASH、SPI、WTD、IIC、T/C等功能,使外围电路变得很简单。

  3 基于AVR单片机的硬件实现

  本文以AVR系列中高性价比的Atmage8为例,利用16位时钟单元T/C1的捕获中断来实现红外线解码。T/C1内部的输入捕获单元可以应用于精确捕获外部发生的事情,亦即事件发生的时间印记(time-stamp)。当一个输入捕获事件发生在外部引脚ICPI上的逻辑电平也随之发生变化时,T/C1的计数值将被拷贝到捕获寄存器ICR1并设置捕获中断标志,如果捕获中断允许并且总中断IE打开,系统则进入中断服务程序。这种捕获中断通常用于频率和周期的精确测量,如电机转速和转向的测量。本文介绍怎样利用这一功能测量红外线脉冲的脉宽以实现红外传输的解码。捕获中断的触发可以是ICP1引脚上电平变化的上升沿,也可以是下降沿。根据前述脉冲调制规则,现以下降沿为触发事件来进行讨论。

  

 

  图3是该系统的工作时序图,图中,一个下降沿到下一个下降沿之间刚好是一个脉冲加一个间隙的时间,这样,根据编码规则,这个时间长度所对应的信号关系如下:

  数据头的时间:Th=9+4.5=13.5ms

  数据“0”的时间:T0=0.565+0.56=1.125ms

  数据“1”的时间:T1=1.685+0.56=2.245ms[page]

4 软件编程

  基于AVR单片机的捕获中断来实现红外编码的软件程序流程如图4所示。下面是其C语言程序代码:C程序代码:

  

 基于AVR单片机的捕获中断来实现红外编码的软件程序流程

 

  *pragma interrupt_handler IceInt:6 //中断程序说明

  void ICEInit(void) //T/C1初始化

  {

  TIMSK=0X20; //使能捕获中断

  TCCR1A=0X00; //T/C1时钟与系统相同,本文使用系统AVR内部自带1MHz振荡源.T/C1时钟周期为1μs

  TCCR1B=0X81; //使能噪音抑制,下降沿触发中断

  }

  void IceInt(void)

  {

  static nint oldFall;

  uint temp,newFall;

  newFall=ICR1;

  temp=newFall-oldFall; //计算脉冲加间隔的时间

  oldFall=newFall;

  if(temp>1024 && temp<1225) // "0"信号

  {

  temp=0;

  }

  else if(temp>2145 && temp<2345) //“1”信号

  {

  temp=1;

  }

  else if(temp>13400 && temp<13600) //header信号

  {

  bitcnt=0;

  data0=0;

  data1=0'

  return; //返回,等待下次开始接收

  }

  else ///干扰信号

  {

  return;

  }

  bitcnt++;

  if(bitcnt<16) //开始接收前16位

  {

  data0=data0|(uint)temp;

  data0=data0<<1;

  }

  else if(bitcnt==16)

  {

  data0=data0|(uint)temp;

  }

  else if(bitcnt<32) //开始接收后16位

  {

  data1=data1|(uint)temp;

  data1=data1<<1;

  }

  else if(bitcnt==32) //接收完最后一位

  }

  data1=data1|(uint)temp;

  }

  }

  该单片机的主循环程序中含有一些代码检测bitcnt,当bitcnt=32时,表明一帧数据已接收完成,并将bitcnt设置为0xff,然后对接收的数据进行相应的处理。程序调试最好配合串行通讯来进行,这样可以在PC上显示数据或者画出波形以方便验证。If(temp>1025 && temp<1225)这条语句是辨识“0”的代码.

  需要补充的是当键盘按下长达108ms时,发射端开始发送连续信号,与单次发送一样,只是header信号是由9ms的间隔加2.5ms的脉冲组成的。

 

关键字:AVR单片机  捕获中断  红外线解码 引用地址:基于AVR单片机捕获中断实现红外线解码的方法介绍

上一篇:ATmega128和组态王实现陶瓷检测系统
下一篇:AVR单片机的应用经验

推荐阅读最新更新时间:2024-03-16 12:42

基于AVR单片机熔丝位的设置经验分享
mega8的熔丝位设置以下内容根据mega8的英文手册翻译,希望对大家有所帮助。如发现错误,恳请大家指正。 mega8熔丝位: 1:未编程(不选中) 0:编程(选中) ******************************** 熔丝位说明缺省设置 ******************************** RSTDISBL:复位或I/O功能选择11:复位功能;0:I/O功能(PC6) WDTON:看门狗开关11:看门狗打开(通过WDTCR允许);0:看门狗禁止 SPIEN:SPI下载允许01:SPI下载禁止;0:SPI下载允许(注:当使用SPI编程时,该项不可用) EEAVE:烧录时EEPROM数据保留11:不
[单片机]
基于<font color='red'>AVR单片机</font>熔丝位的设置经验分享
关于avr单片机位操作的一些看法
// testled.c 测试AVR的位操作. // 这是gcc;如是其它编译器,请修改。 #i nclude avr/io.h // 定义一个寄存器(Register)或端口(Port)的八个位 typedef struct _bit_struct { unsigned char bit0 : 1 ; unsigned char bit1 : 1 ; unsigned char bit2 : 1 ; unsigned char bit3 : 1 ; unsigned char bit4 : 1 ; unsigned char bit5 : 1 ; unsigned char
[单片机]
比较简单的AVR单片机超声波测距的实例
于调试检查及使用在不同场合。测量范围10cm-250cm,测距小于100cm时,误差是1~2cm.,大于 100cm时,误差是3~5cm。SL-SRF-25超声波传感器,还可以指定从单片机I/O端口上输出分段距离检测信号,可以直接装在双龙SL系列机器人上,作为寻物、避障探测等应用。LED发光二极管显示所测分段距离范围信号,可以用于机器人控制。 短路插针JD1-2/-3脚功能接地;JD1-1接PC5;短路块插于2,3间,使用LED数码管显示; 短路块插于1,2间,使用LED发光二极管显示,或超声波传感器输出分段控制信号。超声波传感器输出分段控制信号对应J1引脚 : 1、J1-1 PD0 避障距离范围
[单片机]
比较简单的<font color='red'>AVR单片机</font>超声波测距的实例
基于ATMEL AVR单片机的居家安全卫士系统实现
简介:以“方便、舒适、享受、超前、舒心”为主题,我们设计了以下几个模块:“非接触式IC刷卡门禁模块”、“防盗防火报警模块”、“安全控电模块”、“空气质量检测模块”、“温湿度检测模块”、“GSM无线通信模块”、“时间控制模块”、“可扩展模块”。整个系统基本上能解决日常生活中的问题,解决家庭隐患,每个系统又有着细节处的功能。 1.设计方案目标: 智能居家安全卫士系统是利用先进的计算机技术、综合布线技术、依照人体工程学原理,融合个性需求,将与家居生活有关的各个子系统有机地结合在一起,实现“以人为本”的全新家居生活体验。高性能ATMEL最新MCU及Xmega和UC3系列产品是基于设计出一款高处理性能和低功耗功能的内核而开发的产品。
[单片机]
基于ATMEL <font color='red'>AVR单片机</font>的居家安全卫士系统实现
基于AVR单片机的医用臭氧治疗仪的设计
概述 臭氧作为一种高效冷杀菌手段,目前已经被广泛应用在各行各业中。具有高效、迅速杀菌作用的臭氧在医院环境消毒、术前消毒等方面应用广泛,其治疗效果优于其它传统杀菌治疗仪。因此研制一种运行稳定、使用方便、便携的臭氧治疗仪产品,为妇科疾病患者提供一种方便有效的在家治疗方式,具有实际意义。 目前市面上的同类型产品都是采用80C51单片机为控制核心的, 虽然也能实现它所需求的功能,但执行速度慢,在长期工作环境中,特别在臭氧治疗仪的内部大功率气泵模块和臭氧发生器的干扰下,系统功耗高和抗干扰性能差,系统性能不稳定等问题便凸现出来。对此本文采用了ATMEL公司的一款AVR高档单片机,对控制系统作了改进,提高了整机的性能。 臭氧产生的原理及方法 臭
[电源管理]
基于<font color='red'>AVR单片机</font>的医用臭氧治疗仪的设计
基于AVR单片机的逆变电源设计及EMC分析
简介:本文介绍了一套逆变电源系统的设计方案,该逆变电源采用高性能AVR单片机为核心控制芯片,对逆变电源系统中的各硬件电路进行分析设计,并结合模糊自适应控制和数字PI控制各自的优点,给出一套基于模糊自适应整定PI控制的双闭环控制系统模型,以确保逆变电路的可靠性。并通过电磁干扰的三要素:干扰源、传输途径和敏感设备对此电源的EMC情况进行了测试分析。 1引言 近些年来,随着现代工业和电力电子技术的发展,逆变电源应用面已越来越广泛,其工作的稳定性、输出性能的好坏以及工作效率的高低直接影响到逆变系统的性能和使用领域。而随着电力电子技术和控制理论技术的快速发展,传统的单独采用SPWM调制方式已无法满足高性能逆变电源的高稳态精度输出。因
[单片机]
基于<font color='red'>AVR单片机</font>的逆变电源设计及EMC分析
基于AVR单片机的多功能智能小车系统设计
第1章 绪论 1.1 研究的背景和意义 智能车辆技术集成了机械、电子、自动化等多学科的发展,代表了现代技术发展的前沿。是未来车辆发展的必然趋势。在实际生活中,智能车辆通常需要根据人们的预设程序完成跟踪和避障。其中,大多数依靠传感器技术来获取路线和周围的环境。 本文以AVR作为控制核心,设计制作了智能寻线小车。它使用光线对管和红外传感器收集周围的各种信息,自动沿着地面设定的路线行走,并且可以在行走过程中自动躲避障碍物。智能小车采用前轮驱动,两轮采用直流电机,后轮采用万向轮。为了确保小车平稳正常地运行,我们采用PID算法控制直流电机地运行。本系统具有操作简单、成本低、可靠性高、结构紧凑等特点 。 1.2 国内外研究现状及发展前
[单片机]
基于<font color='red'>AVR单片机</font>的多功能智能小车系统设计
基于AVR单片机多功能电子秤设计
  近年来,新型单片机的出现和集成电路技术的发展为更新产品设计,研制高性价比的称重控制器提供了条件。本设计采用 AVR单片机 为控制核心,结合电阻应变式压力传感器和相应的信号采集电路,设计出一种高精度、多功能、低成本的新型电子秤。   1 系统总体设计   首先由称重传感器采集因压力变化而产生的电压信号,通过A/D转换器将模拟信号转换为数字信号,把数字信号送入AVR单片机,单片机做相应的处理后,得到当前物体重量的数据,并通过LCD显示出来。系统硬件结构如图1所示。      系统硬件电路包括A/D转换模块、4×4矩阵键盘模块、LCD模块和蜂鸣器报警模块;软件模块又可分为主程序模块、矩阵键盘扫描模块、A/D转换模
[单片机]
基于<font color='red'>AVR单片机</font>多功能电子秤设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved