| RSS
深圳电器感厂家
您当前的位置:电感器制造商 > 技术知识

SAA3010红外遥控接收的C程序源代码

来源:    作者:     发布时间:2015-04-13 17:17:24     点击数:

SAA3010红外遥控接收的C程序源代码

// 用单片机进行红外遥控接收已经是很平常的应用了,基本上稍懂单片机就可以自己编//
// 但往往很多人编的程序要么繁琐,要么占用大量存储器、CPU资源, //
// 而且用于现场时还可能因为受到干扰而不能正常工作 //
// 真正试过的都会发现,要想编个真正好用的接收程序不是那么简单的 //

// 其实,所有遥控芯片的编码都是比较简单的(有限的状态),只要仔细分析它的编码//
// 我们完全可以用状态机的方式来处理各种可能的情况,甚至从被干扰的杂乱波形中找出正确的编码//
// 下面是基于状态机的SAA3010红外遥控接收程序示例: //
//--------------------------------------------------------------------------//
// //
// (c) Copyright 2001-2003 xuwenjun //
// All Rights Reserved //
// V1.00 //
//--------------------------------------------------------------------------//
//标 题: SAA3010遥控芯片接收程序 //
//文件名: ir_3010.c //
//版 本: V1.00 //
//修改人: xuwenjun E-mail:xuwenjun@21cn.com //
//日 期: 03-06-14 //
//描 述: SAA3010遥控芯片接收程序 //
//--------------------------------------------------------------------------//
//老版本: 无 老版本文件名: //
//创建人: xuwenjun E-mail:xuwenjun@21cn.com //
//日 期: 03-06-14 //
//描 述: SAA3010遥控芯片接收程序 //
// 当ykok=1时,ykcode中的数据就是接收到的遥控码(14位的最后8位) //
//--------------------------------------------------------------------------//
//占用以下资源: //
// 1. 遥控使用外部中断0,接P3.2口 //
// 2. 遥控使用定时计数器1 //
// 3. 5.1字节data RAM //
// 4. 293字节 code ROM //
//----扁平型电感----------------------------------------------------------------------//
//声 明: //
// 以下代码仅免费提供给学习用途,但引用或修改后必须在文件中声明出处. //
// 如用于商业用途请与作者联系. E-mail:xuwenjun@21cn.com //
// 有问题请mailto xuwenjun@21cn.com 欢迎与我交流! //
//--------------------------------------------------------------------------//

#i nclude <reg52.h>
#define uchar unsigned char

// SAA3010存电感器厂家储定义
uchar ykcode; //遥控码(14位的最后8位)
bit ykok; //遥控数据有效标志

uchar ykbnum; //遥控已接收位数
uchar ykbtc; //遥控中断时 ykbtc=TH1
uchar ykdelay; //遥控延时接收
bdata uchar ykcodetemp; //遥控临时码
sbit ykcodetemp0=ykcodetemp^0;


// SAA3010端口定义
//sbit YKIO=P3^3; //遥控使用外部中断0,接P3.2口

// SAA3010函数原型: 公用函数
void YkInit(void); //遥控接收初始化
unsigned char YkGetcode(void); //返回遥控码
bit YkTest(void); //检查有无遥控信号

/*
// SAA3010函数原型: 公用函数
extern void YkInit(void); //遥控接收初始化
extern unsigned char YkGetcode(void); //返回遥控码
extern bit YkTest(void); //检查有无遥控信号
*/

/*
// 外部引用四位LED显示模块 //
extern unsigned char code tab_duam[]; //位映射
extern void led_send(unsigned char d); //发送子程序
extern void led_cls(void); //清除显示
extern void led_show(unsi绕行电感器gned int n); //显示片式电感数字子程序
extern void led_showhh(unsigned int n); //16进制显示数字子程序
extern void led_test(void); //4LED测试函数
extern void led_delay(unsigned char ms); //延迟函数
*/

// SAA3010函数内容
void YkInit(void) //遥控接收初始化
{
TMOD=0x11; //TMOD T0,T1均选用方式1(16位定时)
SCON=0x00;
TH1=0;
TL1=0;
IE|=0x89; //SETB EX0 0x1 外部中断 0 允许插件电感
//SETB ET0 0x8 定时器 1 中断允许
//SETB EA 0x80 开中断
IP|=0x01; //SETB INT0 中断优先
TCON |= 0x41; //TCON EX0下降沿触发,启动T1 //
ykbnum=0;
ykcodetemp=0;
ykdelay=0;

}

unsigned char YkGetcode(void) //返回遥控码
{
return(ykcode);
}

bit YkTest(void) //检查有无遥控信号
{
return(ykok);
}

void intx0() interrupt 0 using 2 //遥控使用外部中断0,接P3.2口
{
ykbtc=TH1;TH1=0;TL1=0;TR1=1;ET1=1;
switch(ykbnum)
{
case(0):
ykbnum=1;
break;
case(1):
if(ykbtc==6)ykbnum=2;
else ykbnum=0;
break;
case(2):
if(ykbtc==6||ykbtc==9)ykbnum=3;1

2. 先进的封装是高效电源管理平台的另一个重要的因素。如上文所述,IR公司针对汽车行业推出了十分先进的封装技术。将结实耐用的前面金属层置于我们的硅开关(MOSFET、IGBT)上,使我们能够将无引线

ANWEI1020电话自动拨号器采用专用语音录放集成电路和PIC16C54进行设计,可以预先存储两个电话号码和一段报警语音,且存储的电话号码和语音内容可以随时更改,断电后信息不丢失。需要报警时,该机先

三. 去电源化设计 图1是目前主要几种设计方式,AC-LED因其整流桥部分也是采用LED组合设计的,整流桥部分也是发光的一部分。它的优点是体积可以设计最小。缺点是在很小的体积下集中散热,同时还要做绝


上一篇: 城市夜景照明的色度学设计
下一篇:功率电感器
来顶一下
返回首页
返回首页
相关文章
推荐资讯
电感数字转换器
电感数字转换器
相关文章
栏目更新
栏目热门