AVR(Mega8)红外接收

发布者:真情相伴最新更新时间:2016-10-28 来源: eefocus关键字:AVR  Mega8  红外接收 手机看文章 扫描二维码
随时随地手机看文章
使用一体化的红外接收头,直接就解码出来了,平时红外接收头输出的是高电平,当有红外数据的时候,就会根据发送的红外数据有相应的电平转换。大家可以随便找个遥控板,测一下红外接收波形,看看高低电平的表示,便于计数及接收步骤。这次用的遥控板的红外协议是这样的:

     0.6ms高电平+0.48ms低电平表示0,接收解码出来是0.6ms低电平+0.48ms高电平。

    0.6ms高电平+1.66ms低电平表示1,接收解码出来是0.6ms低电平+1.66ms高电平。

     调制38kHz,占空比1/3.

     遥控发送数据先是9ms高电平,4.5ms低电平,然后是两个字节的识别码,接着是一个字节的数据和一个字节的数据反码。

     单片机解码0和1只用计数接收到的低电平长度就行了。

具体的程序如下:

 

//interrp.c

#include
#include "interrp.h"


void Interrp_int0_init(void)
{
SREG=0X80;
GICR|=(1< MCUCR=0X00;//0X00低电平中断;0x01:电平变化中断;
//0x02:下降沿;0x03:上升沿;
}

void Interrp_int1_init(void)
{
SREG=0X80;
GICR|=(1< MCUCR=0X08;//0X00低电平中断;0x04:电平变化中断;
//0x08:下降沿;0x0c:上升沿;
}

void Interrp_int0_stop(void)
{
GICR&=~(1< }

void Interrp_int1_stop(void)
{
GICR&=~(1< }

//main.c

#include
#include "mytype.h"
#include "uart.h"
#include "interrp.h"
#include "timer.h"

#define IR 2
#define PIN4 PIND
#define DDR4 DDRD
#define in_IR (PIN4&(1<


uint8 code_0,code_1,data_0,data_1;
uint8 table[16]={"0123456789abcdef"};
#pragma interrupt_handler IR_init:2

void IR_init(void)
{uint8 i;
Interrp_int0_stop();//关中断。
i=Data_dec();//红外数据检测。
if(i==0)
{
Send_abyte(table[TCNT1/4096]);
Send_abyte(table[TCNT1%4096/256]);
Send_abyte(table[TCNT1%256/16]);
Send_abyte(table[TCNT1%16]);
Prints("Error",1);
}
code_0=0;
code_1=0;
data_0=0;
data_1=0;
DelayXms(100);
Interrp_int0_init();
}


uint8 Data_dec(void)
{
uint8 i;
while(in_IR==0);//等待红外输入变高。
Timer1_init();//定时器计数开始。
while(in_IR);//等待红外输入变低。
Timer1_stop();//定时计数停止。
if((TCNT1<26980)|(TCNT1>34980))
return 0;      //4.5ms红外起始接受检测,不对返回0.

for(i=0;i<8;i++)
{
while(in_IR==0);//等待红外输入高。
Timer1_init();//定时计数开始。
while(in_IR);//等待红外输入变低。
Timer1_stop();//定时计数停止。
/*Send_abyte(table[TCNT1/4096]);
Send_abyte(table[TCNT1%4096/256]);
Send_abyte(table[TCNT1%256/16]);
Send_abyte(table[TCNT1%16]);
Send_abyte(' ');*/
if((TCNT1<4400)&&(TCNT1>3400))
;
else
code_0=(code_0+(1< }           //地址码接受;
for(i=0;i<8;i++)
{
while(in_IR==0);
Timer1_init();
while(in_IR);
Timer1_stop();
if((TCNT1<4400)&&(TCNT1>3400))
;
else
code_1=(code_1+(1< }           //地址码接受;
for(i=0;i<8;i++)
{
while(in_IR==0);
Timer1_init();
while(in_IR);
Timer1_stop();
if((TCNT1<4400)&&(TCNT1>3400))
;
else
data_0=(data_0+(1< }        //数据码接受;
for(i=0;i<8;i++)
{
while(in_IR==0);
Timer1_init();
while(in_IR);
Timer1_stop();
if((TCNT1<4400)&&(TCNT1>3400))
;
else
data_1=(data_1+(1< }   //数据反码接受;
Data_process();
}

void Data_process(void)//发送接受数据到串口。
{
Send_abyte(table[code_0/16]);
Send_abyte(table[code_0%16]);
Send_abyte(' ');
Send_abyte(table[code_1/16]);
Send_abyte(table[code_1%16]);
Send_abyte(' ');
Send_abyte(table[data_0/16]);
Send_abyte(table[data_0%16]);
Send_abyte(' ');
Send_abyte(table[data_1/16]);
Send_abyte(table[data_1%16]);
Send_abyte(10);
Send_abyte(13);
}

void main(void)
{
DDR4&=~(1< Uart_init();
Prints("System init...",1);
Interrp_int0_init();
while(1);
}

关键字:AVR  Mega8  红外接收 引用地址:AVR(Mega8)红外接收

上一篇:AVRM16的PCF8563源码
下一篇:192x64图形液晶汉字显示程序(c)

推荐阅读最新更新时间:2024-03-16 15:17

AVR 32位微控制器实现真正的单芯片DRM数字音频编解码器
  随着近几年数字音频产品的爆炸性增长,市场上出现了很多芯片或者芯片组来满足更高级的播放器要求。但是有些进入数字音频市场的产品也存在一些陷阱,事情并不是像选取适当的处理器硬件那样简单。   在近几年,一直是单独的音频和多媒体播放器在占据市场的主体,但是一些消费者也在试图把他们的便携式媒体播放器与其家庭或者汽车立体声音响设备连接在一起,这也促使一些在家庭或者汽车立体声音响设备市场的厂商把他们的高保真(HiFi)系统用于数字音频时代。   采用计算机硬件   一些厂商已经试图在音频和多媒体播放器中采用计算机硬件,这些硬件虽然在处理计算机多任务的庞大数据面前表现非常优秀,但是却给音频设计师带来了很大挑战,主要表现在相对较慢的速度
[单片机]
基于AVR单片机与FPGA的低频数字式相位测量仪
在工业领域中经常要用到低频数字式相位仪来精确测量两信号之问的相位差,比如在电力系统、频率特性的研究、激光测距等领域均有广泛的应用,相位检测的精度直接决定系统的整体性能。这就要求测量仪逐渐向智能化和测试自动化方向发展,本设计采用MCU和FPGA相结合的系统方案,以AVR单片机ATmega128和Altera公司的Cyclone系列EP1C3T100为核心,充分发挥各自的优势,如AVR单片机先进的RISC结构和强劲的运算、控制功能,Altera公司的FPGA运算速度快、资源丰富以及易编程的特点,合理设计,此方案的相位仪具备速度快、稳定可靠、精度高等优点,而且容易实现“智能化”和“自动化”。 1 系统方案设计 1.1 测量方法的比较与
[单片机]
基于<font color='red'>AVR</font>单片机与FPGA的低频数字式相位测量仪
基于AVR单片机及专用MODEM芯片的MTU、RTU无线电遥测系统设计
一、前 言 基于AVR单片机及专用MODEM芯片的MTU(Master Terminal Unit中心调度机)、RTU无线电遥测系统。 分散地分布在全市的管网监测点上的远端RTU(系统可带256个RTU)采集数据,进行数据处理后通过无线电台向中心调度端发送数据,中心调度端接收到数据后进行数据处理,数据存储,并送给模拟屏显示。 二、设计思想 原有系统的使用中,主要存在以下几个问题:1. 无线通信波特率低(300bps),误码率高,巡测速度慢,最多带32个RTU终端;2. 当某一远程RTU端的无线电台一直处于长时间误发射状态时(简称“长发” )一直占用系统频点,由于系统共用一组无线电频点,这将使系统其他所有电台
[单片机]
基于AVR单片机的帆板控制系统
设计任务 设计并制作一个帆板控制系统,通过对风扇转速的控制,调节风力大小,改变帆板转角θ,如图1所示。帆板形式及具体制作尺寸如图2所示。 图1 帆板控制系统示意图 图2 帆板制作尺寸图 根据题目要求,设计任务要实现风扇和帆板之间的距离在一定范围内变动时,在规定的时间内,自动调节帆板达到通过键盘设定的预置转角(下文简称:预置参数),同时对控制过程中的相关数据进行实时处理并显示。 设计思路:以AVR单片机为核心,采用闭环控制,角度传感器检测帆板的实际转动角度,单片机定时采集,与帆板预置参数进行比较,生成调控风扇电机的PWM信号;用LCD屏显示预置参数、帆板的转动角度、调节用的PWM信号及调控过程完成的时间等内容。
[单片机]
基于<font color='red'>AVR</font>单片机的帆板控制系统
avr定时器T0,T1,T2初始化配置及其说明
#include iom16v.h #include macros.h unsigned char shi,fen,miao; unsigned char t=0; #define DATA_T0_INIT 156 #define DATA_T1_INIT 31249 #define DATA_T2_INIT 156 unsigned int T0_CAPT=0; //T0/C0溢出中断向量端口 #pragma interrupt_handler Timer0_over:iv_TIMER0_OVF //T0/C0比较匹配中断向量端口 #pragma interrupt_handler Timer0_COMP:iv_TIMER
[单片机]
ICC AVR学习笔记
1。ICC AVR工程管理器能直接产生可以直接使用的INTEL HEX 格式文件。INTEL HEX 格式文件可被大多数的编程器所支持用于下载程序到芯片中去。 2。ICCAVR 是一个32 位的程序支持长文件名。 3。二进制常数 如果你选择了编译扩充(Project- Options- Compiler),你可以使用0b 1|0 * 来指定二进制常数。例如0b10101 等于十进制数21。 4。#pragma interrupt_handler func:4 // 4 是这个中断的向量号func 为中断处理函数名称。ICCAVR 可以使多个中断向量共用一个中断处理函数。 5。为避免你的工程目录混乱你可以指定输出文件和中间文件到
[单片机]
基于AVR单片机的博物馆防盗保护器系统设计
引言 博物馆内的藏品常常受到人为盗窃的威胁,周围环境的变化也会对其造成破坏,因此需要极为可靠的防盗系统及完善的空调系统,本设计的目的就是实现对馆藏品的智能化防盗和保护。博物馆关闭时便可将此防盗保护器启动,通过CMOS传感器对博物馆进行扫描,图像信号在微处理器中进行处理筛选压缩,并与被监控信号(人形信号)进行比较,一旦出现类人形信号,便将数据进行存储(这样可以大大节省存储空间),并进行报警。被监控信号可以增加,可以是其它任何可能对馆藏品造成损害的动物,只不过在进行筛选比较处理时要复杂一些。另外,通过温度传感器对温度信号进行采集监控,通过控制馆内空调来达到调节温度的效果,以避免馆内文物因为温度的变化而造成损害。 图1 系统功能框
[单片机]
基于<font color='red'>AVR</font>单片机的博物馆防盗保护器系统设计
基于AVR单片机的新型防汽车追尾安全装置设计
1 引言 随着我国汽车保有量逐年增加,高速公路的发展使得汽车的行驶速度越来越快。车流量也越来越大,导致高速公路交通事故频频发生,其发生率甚至达到普通公路的4倍,且有上升趋势。在高速公路所发生的交通事故中尤以汽车追尾居多,约占30%~40%,而在这些事故中,80%以上的事故是由于司机反应不及时或者判断失误引起的。由于目前只有高档车型才配有防碰撞装置,而且以往设计中只单纯考虑在车前或车后安装防碰撞装置,不尽全面,所以设计一套低成本、通用性好的汽车防车前车后追尾的安全装置具有广阔的应用和市场前景。因此。这里提出一种基于AVR的新型防汽车追尾安全装置设计。 2 安全装置组成和硬件电路设计 安全装置硬件电路设计主要由单片
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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