繁体中文
设为首页
加入收藏

推荐文章

更多

07-14·[可控硅] 可控硅及其整流
07-14·[可控硅] 集成化六脉冲触发组件KCZ6电原理图
07-27·[单片机技术] PIC单片机16F84的内部硬件资源

 

最新文章

更多

· 基于CP2200的嵌入式以太...
· 基于PC104的机载数据加卸...
· 基于PM3388和FPGA的网络...
· RTL8019型控制器与DSP的...
· 基于ADS7870型数据采集器...
· 基于ATmegal28控制器和C...
· AD7890型串行数/模转换器...
· 汽车电子OSEK配置器的设...
· 为RS-232C接口通信设计可...
· RS-232、RS-422与RS-485...
当前位置:技术文章首页 >> 接口与通讯 >> 软件红外线接收程序(C)

软件红外线接收程序(C)

1970-01-01 08:00:00  作者:佚名  来源:本站整理  浏览次数:402  文字大小:【】【】【
软件红外线接收程序

      作者:佚名    文章来源:网络    点击数:176    更新时间:2005-10-26   

            //采用24MHz晶振
            unsigned char inf_dat,inf_old,inf_num,inf_time,inf_run,inf_run_time;

            void int_t1(void) interrupt 3 {
             TH1=-0x5;
             time++;
             s001++;
             if ((++inf_run_time)>150) {inf_run=0;inf_run_time=0;}
             if (inf_num==0) inf_time=0;
             else if (inf_num<11) inf_time++;
            }

            /* 红外线超时 */
            void int_t0(void) interrupt 1{
             inf_old=0;
             inf_num=0;
             inf_time=0;
            }

            /* 红外线低电平时间 */
            void int_e0(void) interrupt 0 {
             unsigned char i;
             TR0=0;
             if (TH0<11) {        //判断是否间隔波形
              if (inf_num>3) {      //前面三个波形是相同的,忽略不计
               if (TH0<4) i=0; else i=1;   //根据低电平的长短处理
               inf_old|=i;inf_old<<=1;    //利用inf_old的8个位来纪录波形
              } else inf_old=0;      //前面三个波形
             } else inf_num=0;       //如果是把计数器清零
             TH0=TL0=0;
             TR0=1;
             inf_run_time=0;
             if ((++inf_num)>11) {      //接收到的计数器大于11(一个红外线信息的个数)
              if ((inf_time>24) && (inf_time<28)) { //接收到11个波形后判别总时间
               if ((++inf_run)>250) inf_run=250; //总时间符合,连续按下标志加一
               if ((inf_run==1) || (inf_run>10)) inf_dat=inf_old;
            //按下键第一次有效,之后没效,连续10个后有效,表示连按键
              }
              inf_old=0;
              inf_num=0;
             }
            }

            void main(void) {
               TMOD=0x19;EA=1;ET1=1;TR1=1;ET0=1;
             EX0=1;IT0=1;TH1=-5;
            }

责任编辑:

启蒙电子http://www.51c51.net 启蒙电子网http://www.atc51.com 启蒙电子论坛
相关文章