红外线解码心得和解码程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

试用期小结

尊敬的江苏三恒科技集团领导:

您好!

我叫程克辉,毕业于西北师范大学知行学院,电子信息工程专业。在试用期的两个多月里,我在工程中心软件项目部实习工作,我很荣幸,能跟着***副总经理学习与专业相关的电子知识,收获不少!

这两个多月在任总的指导下,我成功的了解、计算了:BT151可控硅、LM2940(1安恒流调节器)、LM317三端可调正稳压器集成电路、LM2674电源高效降压稳压转换器、13F-11网络隔离变压器、光耦开关、继电器、SC50462红外遥控发射模块、SM3XX0/3XX1红外接收头等电子元器件。在任总的指导下和上面的学习我跟着任总学习“煤矿防爆显示系统”的电路设计、模块学习,也成功的用c语言成功的编写控制该系统的c程序,由于公司没有人用c对红外解码程序的编写,故在任总的悉心指导下,几经努力终于编写成功并且能稳定的通过硬件的测试。

硬件部分:

1、外部12V电源转换成5V模块。由LM2674器件实现

2、外部1A恒流源模块。由LM317和LM2940实现

3、五个独立按键控制继电器模块。由光耦开关实现

4、继电器动作模块。

5、红外接收模块。由SM3XX0/3XX1红外接收头实现

6、外部的四路光端机、视频转换器、光缆传输、摄像头、画

面分割器、网络视频等模块

试用期的期间,由于刚来啥器件都没有,每每遇到困难的时候我就及时向***主任汇报,在张主任积极帮助下我的问题往往能很快的得到解决。特别感谢张主任的无私支持和关怀!

在红外线解码的c程序设计上,我面临着很大的困难,在学校根本就没有接触过红外线的解码,因为红外线是一种看不到摸不着的东西,且我们公司的红外线发射器用的是杭州士兰电子的器件很特殊。它没有引导码只有16位的用户码和按键的数据码,这样写出来的c 解码程序就很容易受到外部红外线的干扰。在程序初始化和有红外脉

冲时能接收16位的0脉冲,即使解码出错也能有00H的码进入。还好最后在我用数码管把红外线解出来的码显示出来,这样一切问题就迎刃而解了!程序能成功调试并通过硬件测试。

以上是我的试用期小结,在试用期中不足的地方望领导同事及时指出,以便于本人及时改正!两个月体会到三恒的精神,知道了集团的发展潜力!万分幸运,我能成为三恒的一员!

此致!

敬礼!

二零一一年九月七日

红外线解码程序和公司具体项目要求程序:

#include

//#include

#define uint unsigned int //宏定义

#define uchar unsigned char

uchar num;

uchar irtime,startflag,bitnum,irreceok;

uchar irdata[16],ircode[2];

uchar irprosok;

uchar n;

sbit key1=P3^3; //独立按键定义

sbit key2=P3^4;

sbit key3=P3^5;

sbit key4=P3^6;

sbit key5=P3^7;

sbit key6=P2^0; //继电器端口定义

sbit key7=P2^1;

sbit key8=P2^2;

sbit key9=P2^3;

sbit key10=P2^4;

void irmove(); //动作函数的申明

void delay(uint z) //延时子函数

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

void keyskay()

{

if(key1==0)

{

delay(5); //消抖

if(key1==0) //如果键1确实按下

{

P2=0xff;

key6=0; // 继电器1动作显示器显示第一屏画面}

while(!key1);

delay(5);

while(!key1);

}

else if(key2==0)

{

delay(5);

if(key2==0) // 如果键2确实按下

{

P2=0xff;

key7=0; // 继电器2动作显示器显示第二屏画面}

while(!key2);

delay(5);

while(!key2);

}

else if(key3==0)

{

delay(5);

if(key3==0) //如果键3确实按下

{

P2=0xff;

key8=0; // 继电器3动作显示器显示第三屏画面}

while(!key3);

delay(5);

while(!key3);

}

else if(key4==0)

{

delay(5);

if(key4==0) // 如果键4确实按下

{

P2=0xff;

key9=0; // 继电器4动作显示器显示第四屏画面}

while(!key4);

delay(5);

while(!key4);

}

else if(key5==0)

{

delay(5);

if(key5==0) // 如果键5确实按下

{

P2=0xff;

key10=0; // 继电器5动作显示器四路画面同时显示}

while(!key5);

delay(5);

while(!key5);

}

}

/*****选择定时器模式、启动定时器、开中断的初始化*********/ void time0init(void)

{

TMOD=0x02;

TH0=0x00;

TL0=0x00;

ET0=1;

EA=1;

TR0=1;

}

/**********外部中断0初始化**************/

void int0init()

{

IT0=1;

EX0=1;

EA=1;

相关文档
最新文档