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

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

c51學(xué)習(xí)型紅外遙控器程序

作者:佚名   來源:劉洪   點擊數(shù):  更新時間:2010年08月01日   【字體:
#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ù),用于開關(guān)消抖等
delay10ms()   
{ 
	unsigned char i,j; 	
	for(i=20;i>0;i--) 	
	for(j=248;j>0;j--); 	
}

//學(xué)習(xí)紅外解碼并寫入24c02的函數(shù)
study()
{
    IR_IN();
 	irdate=IRCOM[3];
    iccdate=ReadIIC(W_cmd,0x00,R_cmd);
	if(irdate!=iccdate)        //只在解碼結(jié)果與讀取結(jié)果不同時寫入24C02
	{
		if(irdate!=0)			//防止沒有接收到紅外信號,IRCOM[3]置零時,誤寫入0
		{
		WP=0;
		WriIIC(W_cmd,0x00,irdate);
		delay10ms();
		WP=1;
		led=0;
		while(key==0);		//學(xué)習(xí)成功等待按鍵釋放,led停止閃動作為指示
		}
	 }
}
//進入學(xué)習(xí)狀態(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閃動學(xué)習(xí)模式
			{
				m=0;
				flash();
			} 
	}

	 if(m<90)              //如果計數(shù)次數(shù)小于90,則按鍵作為開關(guān)使用
	 {
	 	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)						//如果解碼結(jié)果與24C讀取碼相同,kaver翻轉(zhuǎn)一次
		{
			irdate=0;
			kaver=~kaver;
		}

      if(key==0) 	
			keymod();
		rel=~kaver;
		led=kaver;
	}
}
關(guān)閉窗口

相關(guān)文章