欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 這個程序少了<ir.h> <24c02.H>那位師博能把這個,學習型紅外遙控開關.... [打印本頁]

作者: ll13536121668    時間: 2019-3-13 15:25
標題: 這個程序少了<ir.h> <24c02.H>那位師博能把這個,學習型紅外遙控開關....
這個程序缺少了<ir.h> <24c02.H>那位師博能把這個,學習型紅外遙控開關生成可用c源碼程序打包上傳謝謝
#include<AT89X51.H>   //裝入AT89X51頭文件
#include<ir.h>                        //裝入紅外解碼程序
#include<24c02.H>                //裝入24c02讀寫程序
sbit key=P1^0;                        //定義按鍵IO
sbit led=P0^0;       //定義指示led
sbit rel=P0^1;                        //定義輸出控制腳

unsigned char kaver;  //定義kaver為輸出口狀態(tài)緩存
unsigned char iccdate,irdate;  //定義24c02數(shù)據(jù)和解碼數(shù)據(jù)

//延時10ms函數(shù),用于開關消抖等
delay10ms()   
{
        unsigned char i,j;         
        for(i=20;i>0;i--)         
        for(j=248;j>0;j--);         
}

//學習紅外解碼并寫入24c02的函數(shù)
study()
{
    IR_IN();
         irdate=IRCOM[3];
    iccdate=ReadIIC(W_cmd,0x00,R_cmd);
        if(irdate!=iccdate)        //只在解碼結果與讀取結果不同時寫入24C02
        {
                if(irdate!=0)                        //防止沒有接收到紅外信號,IRCOM[3]置零時,誤寫入0
                {
                WP=0;
                WriIIC(W_cmd,0x00,irdate);
                delay10ms();
                WP=1;
                led=0;
                while(key==0);                //學習成功等待按鍵釋放,led停止閃動作為指示
                }
         }
}
//進入學習狀態(tài)時的led閃動函數(shù)
flash()
{
    unsigned char i;
          while(key==0)
          {
             led=~led;
                  for(i=50;i>0;i--)
                                  study();                 
          }
}
//按鍵模式識別函數(shù)
keymod()
{
        unsigned char m=0;
        while(key==0)                          //如果按鍵按下,開始對按鍵時間進行計數(shù)
        {               
                        delay10ms();                        //計數(shù)時間延時
                        m++;
                        delay10ms();                        //計數(shù)時間延時
                        if(m>=90)                                //如果計數(shù)次數(shù)大于90次,等于按鍵按下時間大于約5秒后,進入led閃動學習模式
                        {
                                m=0;
                                flash();
                        }
        }

         if(m<90)              //如果計數(shù)次數(shù)小于90,則按鍵作為開關使用
         {
                 m=0;
                kaver=~kaver;
         }

}
////////////////////主函數(shù)////////////////////////////////////
main()
{
        WP=1;                        //24c02寫保護
        while(1)
        {
                IRCOM[3]=0;
            IR_IN();                                // 讀4字節(jié)32位按鍵編碼 ,前16位用戶碼為IRCOM[1]+IRCOM[2],8位鍵值碼為IRCOM[3]
                irdate=IRCOM[3];                                        //8位鍵值反碼為IRCOM[4] 這里只調(diào)用 IRCOM[3]鍵值碼作為數(shù)據(jù)碼
                iccdate=ReadIIC(W_cmd,0x00,R_cmd);
                if(irdate==iccdate)                                                //如果解碼結果與24C讀取碼相同,kaver翻轉(zhuǎn)一次
                {
                        irdate=0;
                        kaver=~kaver;
                }

      if(key==0)         
                        keymod();
                rel=~kaver;
                led=kaver;
        }
}


學習型紅外遙控開關.rar

1.14 KB, 下載次數(shù): 13






歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1