亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 51

?? 51單片機(jī)大量源碼
??
字號(hào):
//本解碼程序適用于NEC的upd6121及其兼容芯片的解碼,支持大多數(shù)遙控器 實(shí)驗(yàn)板采用11.0592MHZ晶振
#include<reg52.h>       //包含單片機(jī)寄存器的頭文件
#include<intrins.h>  //包含_nop_()函數(shù)定義的頭文件
sbit IR=P3^2;           //將IR位定義為P3.2引腳
sbit RS=P2^0;    //寄存器選擇位,將RS位定義為P2.0引腳
sbit RW=P2^1;    //讀寫選擇位,將RW位定義為P2.1引腳
sbit E=P2^2;     //使能信號(hào)位,將E位定義為P2.2引腳
sbit BF=P0^7;    //忙碌標(biāo)志位,,將BF位定義為P0.7引腳
sbit BEEP = P3^6; //蜂鳴器控制端口P36 
unsigned char flag;
unsigned char code string[ ]= {"1602IR-CODE TEST"}; 
unsigned char a[4];    //儲(chǔ)存用戶碼、用戶反碼與鍵數(shù)據(jù)碼、鍵數(shù)據(jù)反碼
unsigned int LowTime,HighTime; //儲(chǔ)存高、低電平的寬度 
/*****************************************************
函數(shù)功能:延時(shí)1ms
***************************************************/
void delay1ms()
{
   unsigned char i,j;	
	 for(i=0;i<10;i++)
	  for(j=0;j<33;j++)
	   ;		 
 }
 /*****************************************************
函數(shù)功能:延時(shí)若干毫秒
入口參數(shù):n
***************************************************/
 void delay(unsigned char n)
 {
   unsigned char i;
	for(i=0;i<n;i++)
	   delay1ms();
 }



/*********************************************************/
void beep()		//蜂鳴器響一聲函數(shù)
{
  unsigned char i;
  for (i=0;i<100;i++)
   {
   delay1ms();
   BEEP=!BEEP;       //BEEP取反
   } 
   BEEP=1;           //關(guān)閉蜂鳴器
   delay(250);       //延時(shí)     
}




/*****************************************************
函數(shù)功能:判斷液晶模塊的忙碌狀態(tài)
返回值:result。result=1,忙碌;result=0,不忙
***************************************************/
 unsigned char BusyTest(void)
  {
    bit result;
	RS=0;       //根據(jù)規(guī)定,RS為低電平,RW為高電平時(shí),可以讀狀態(tài)
    RW=1;
    E=1;        //E=1,才允許讀寫
    _nop_();   //空操作
    _nop_();
    _nop_(); 
    _nop_();   //空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間	
    result=BF;  //將忙碌標(biāo)志電平賦給result
	E=0;
    return result;
  }
/*****************************************************
函數(shù)功能:將模式設(shè)置指令或顯示地址寫入液晶模塊
入口參數(shù):dictate
***************************************************/
void WriteInstruction (unsigned char dictate)
{   
    while(BusyTest()==1); //如果忙就等待
	 RS=0;                  //根據(jù)規(guī)定,RS和R/W同時(shí)為低電平時(shí),可以寫入指令
	 RW=0;   
	 E=0;                   //E置低電平(根據(jù)表8-6,寫指令時(shí),E為高脈沖,
                             // 就是讓E從0到1發(fā)生正跳變,所以應(yīng)先置"0"
	 _nop_();
	 _nop_();             //空操作兩個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間
	 P0=dictate;            //將數(shù)據(jù)送入P0口,即寫入指令或地址
	 _nop_();
	 _nop_();
	 _nop_();
	 _nop_();               //空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間
	 E=1;                   //E置高電平
	 _nop_();
	 _nop_();
	 _nop_();
	 _nop_();               //空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間
	  E=0;                  //當(dāng)E由高電平跳變成低電平時(shí),液晶模塊開始執(zhí)行命令
 }
/*****************************************************
函數(shù)功能:指定字符顯示的實(shí)際地址
入口參數(shù):x
***************************************************/
 void WriteAddress(unsigned char x)
 {
     WriteInstruction(x|0x80); //顯示位置的確定方法規(guī)定為"80H+地址碼x"
 }
/*****************************************************
函數(shù)功能:將數(shù)據(jù)(字符的標(biāo)準(zhǔn)ASCII碼)寫入液晶模塊
入口參數(shù):y(為字符常量)
***************************************************/
 void WriteData(unsigned char y)
 {
    while(BusyTest()==1);  
	  RS=1;           //RS為高電平,RW為低電平時(shí),可以寫入數(shù)據(jù)
	  RW=0;
	  E=0;            //E置低電平(根據(jù)表8-6,寫指令時(shí),E為高脈沖,
                       // 就是讓E從0到1發(fā)生正跳變,所以應(yīng)先置"0"
	  P0=y;           //將數(shù)據(jù)送入P0口,即將數(shù)據(jù)寫入液晶模塊
	  _nop_();
	  _nop_();
 	  _nop_();
     _nop_();       //空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間
	  E=1;          //E置高電平
	  _nop_();
	  _nop_();
	  _nop_();
	 _nop_();        //空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間
	 E=0;            //當(dāng)E由高電平跳變成低電平時(shí),液晶模塊開始執(zhí)行命令
 }
/*****************************************************
函數(shù)功能:對(duì)LCD的顯示模式進(jìn)行初始化設(shè)置
***************************************************/
void LcdInitiate(void)
{
   delay(15);             //延時(shí)15ms,首次寫指令時(shí)應(yīng)給LCD一段較長的反應(yīng)時(shí)間
   WriteInstruction(0x38);  //顯示模式設(shè)置:16×2顯示,5×7點(diǎn)陣,8位數(shù)據(jù)接口
	delay(5);   //延時(shí)5ms 
	WriteInstruction(0x38);
	delay(5);
	WriteInstruction(0x38);
	delay(5);
	WriteInstruction(0x0C);  //顯示模式設(shè)置:顯示開,有光標(biāo),光標(biāo)閃爍
	delay(5);
	WriteInstruction(0x06);  //顯示模式設(shè)置:光標(biāo)右移,字符不移
	delay(5);
	WriteInstruction(0x01);  //清屏幕指令,將以前的顯示內(nèi)容清除
	delay(5);
 }
/************************************************************
函數(shù)功能:對(duì)4個(gè)字節(jié)的用戶碼和鍵數(shù)據(jù)碼進(jìn)行解碼
說明:解碼正確,返回1,否則返回0
出口參數(shù):dat
*************************************************************/
bit DeCode(void)        
{
    
    unsigned char  i,j;
	unsigned char temp;    //儲(chǔ)存解碼出的數(shù)據(jù)
	for(i=0;i<4;i++)      //連續(xù)讀取4個(gè)用戶碼和鍵數(shù)據(jù)碼
	  {
		 for(j=0;j<8;j++)  //每個(gè)碼有8位數(shù)字
			 {
	         temp=temp>>1;  //temp中的各數(shù)據(jù)位右移一位,因?yàn)橄茸x出的是高位數(shù)據(jù)									
			   TH0=0;         //定時(shí)器清0
			   TL0=0;         //定時(shí)器清0
			   TR0=1;         //開啟定時(shí)器T0
		      while(IR==0)   //如果是低電平就等待
	               ;	      //低電平計(jì)時(shí)
		  	   TR0=0;         //關(guān)閉定時(shí)器T0
			   LowTime=TH0*256+TL0;    //保存低電平寬度
			   TH0=0;         //定時(shí)器清0
			   TL0=0;         //定時(shí)器清0
			   TR0=1;         //開啟定時(shí)器T0
			   while(IR==1)   //如果是高電平就等待
			       ;			   
			   TR0=0;        //關(guān)閉定時(shí)器T0
			   HighTime=TH0*256+TL0;   //保存高電平寬度
			   if((LowTime<370)||(LowTime>640))
			  		    return 0;        //如果低電平長度不在合理范圍,則認(rèn)為出錯(cuò),停止解碼			
			   if((HighTime>420)&&(HighTime<620))   //如果高電平時(shí)間在560微秒左右,即計(jì)數(shù)560/1.085=516次
			           temp=temp&0x7f;       //(520-100=420, 520+100=620),則該位是0
			   if((HighTime>1300)&&(HighTime<1800)) //如果高電平時(shí)間在1680微秒左右,即計(jì)數(shù)1680/1.085=1548次
			           temp=temp|0x80;       //(1550-250=1300,1550+250=1800),則該位是1
		     }  			            
	   a[i]=temp;	//將解碼出的字節(jié)值儲(chǔ)存在a[i]																					 
    }  				 		 
  if(a[2]=~a[3])  //驗(yàn)證鍵數(shù)據(jù)碼和其反碼是否相等,一般情況下不必驗(yàn)證用戶碼
	 return 1;     //解碼正確,返回1
}

/*------------------二進(jìn)制碼轉(zhuǎn)換為壓縮型BCD碼,并顯示---------------*/

void two_2_bcd(unsigned char date)
{

   unsigned char temp;
   temp=date;
   date&=0xf0;
   date>>=4;                    //右移四位得到高四位碼
   date&=0x0f;                  //與0x0f想與確保高四位為0
   if(date<=0x09)
   {                 
     WriteData(0x30+date);            //lcd顯示鍵值高四位
   }
   else
   {
     date=date-0x09;
	 WriteData(0x40+date);
   }
   date=temp;
   date&=0x0f;
   if(date<=0x09)
   {
     WriteData(0x30+date);            //lcd顯示低四位值
   }
   else
   {
     date=date-0x09;
	 WriteData(0x40+date);
   }
   WriteData(0x48);                 //顯示字符'H'
} 
/************************************************************
函數(shù)功能:1602LCD顯示
*************************************************************/
void Disp(void)
{  
    WriteAddress(0x40);  // 設(shè)置顯示位置為第一行的第1個(gè)字
      two_2_bcd(a[0]);
	  WriteData(0x20);
	  two_2_bcd(a[1]);
	  	WriteData(0x20);
	  two_2_bcd(a[2]);
	  	 WriteData(0x20);
	  two_2_bcd(a[3]);
  
}
/************************************************************
函數(shù)功能:主函數(shù)
*************************************************************/
void main()
{
  	 unsigned char i;	
	LcdInitiate();         //調(diào)用LCD初始化函數(shù)  
    delay(10);
   		WriteInstruction(0x01);//清顯示:清屏幕指令
		WriteAddress(0x00);  // 設(shè)置顯示位置為第一行的第1個(gè)字
	  	i = 0;
		while(string[i] != '\0')    //'\0'是數(shù)組結(jié)束標(biāo)志 
			{						// 顯示字符	WWW.RICHMCU.COM
				WriteData(string[i]);
				i++;	
			}
	EA=1;        //開啟總中斷
   EX0=1;       //開外中斷0
   ET0=1;       //定時(shí)器T0中斷允許
   IT0=1;       //外中斷的下降沿觸發(fā)  
	TMOD=0x01;   //使用定時(shí)器T0的模式1	
	TR0=0;       //定時(shí)器T0關(guān)閉
   while(1);   //等待紅外信號(hào)產(chǎn)生的中斷
 	 
}
/************************************************************
函數(shù)功能:紅外線觸發(fā)的外中斷處理函數(shù)
*************************************************************/
void Int0(void) interrupt 0
  {
     EX0=0;      //關(guān)閉外中斷0,不再接收二次紅外信號(hào)的中斷,只解碼當(dāng)前紅外信號(hào)
	  TH0=0;      //定時(shí)器T0的高8位清0
	  TL0=0;      //定時(shí)器T0的低8位清0
	  TR0=1;	    //開啟定時(shí)器T0	 
	  while(IR==0);          //如果是低電平就等待,給引導(dǎo)碼低電平計(jì)時(shí)
	  TR0=0;                //關(guān)閉定時(shí)器T0     
	  LowTime=TH0*256+TL0;  //保存低電平時(shí)間
	  TH0=0;      //定時(shí)器T0的高8位清0
	  TL0=0;      //定時(shí)器T0的低8位清0
	  TR0=1;	    //開啟定時(shí)器T0
	  while(IR==1);  //如果是高電平就等待,給引導(dǎo)碼高電平計(jì)時(shí)
	  TR0=0;        //關(guān)閉定時(shí)器T0
	  HighTime=TH0*256+TL0;	//保存引導(dǎo)碼的高電平長度
     if((LowTime>7800)&&(LowTime<8800)&&(HighTime>3600)&&(HighTime<4700))
		 {
		    //如果是引導(dǎo)碼,就開始解碼,否則放棄,引導(dǎo)碼的低電平計(jì)時(shí)
	       //次數(shù)=9000us/1.085=8294, 判斷區(qū)間:8300-500=7800,8300+500=8800.
	      if(DeCode()==1) // 執(zhí)行遙控解碼功能
		 {
		
		  Disp();//調(diào)用1602LCD顯示函數(shù)
		  beep();//蜂鳴器響一聲 提示解碼成功
		 }
		 }
	  EX0=1;   //開啟外中斷EX0
  }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
粉嫩aⅴ一区二区三区四区五区| 美国av一区二区| 91精品国产综合久久福利| 久久91精品久久久久久秒播| 亚洲色图视频免费播放| 日韩精品在线看片z| 色一情一乱一乱一91av| 老汉av免费一区二区三区 | 国产精品网曝门| 欧美军同video69gay| 成人精品免费看| 麻豆视频观看网址久久| 亚洲综合免费观看高清完整版在线 | 91精品在线免费观看| 99视频精品在线| 国产精品一区二区久久不卡| 午夜精品爽啪视频| 亚洲视频在线观看三级| 欧美激情综合五月色丁香小说| 91精品国产欧美日韩| 欧美日韩国产成人在线91| 91香蕉视频在线| 粉嫩蜜臀av国产精品网站| 捆绑调教美女网站视频一区| 天堂久久久久va久久久久| 亚洲精品中文在线| 亚洲欧美在线视频| 欧美高清在线一区| 久久婷婷国产综合国色天香 | 久久久久久夜精品精品免费| 欧美一区二区三区在线电影| 国产精品拍天天在线| 久久精品一区二区三区四区| 日韩亚洲欧美在线观看| 337p亚洲精品色噜噜噜| 欧美日韩一级二级| 欧美午夜电影一区| 在线这里只有精品| 在线观看91视频| 日本乱人伦一区| 欧美在线看片a免费观看| 91香蕉视频在线| 欧洲av一区二区嗯嗯嗯啊| 色猫猫国产区一区二在线视频| 99久久99久久综合| 91网站最新地址| 欧洲一区二区三区在线| 欧美性大战久久久久久久蜜臀| 色94色欧美sute亚洲线路一久| 日本精品一区二区三区高清 | 日韩一区二区免费高清| 日韩欧美一级片| 久久影音资源网| 国产农村妇女毛片精品久久麻豆| 国产精品三级在线观看| 成人免费在线视频观看| 亚洲一区二区在线观看视频| 婷婷久久综合九色综合绿巨人| 日韩电影在线观看一区| 久久精品噜噜噜成人88aⅴ| 国产一区中文字幕| 成人avav在线| 欧美日韩一区二区三区在线看| 欧美老女人在线| 日韩欧美一二三四区| 国产亚洲精久久久久久| 综合电影一区二区三区| 亚洲大片一区二区三区| 久久国产日韩欧美精品| 丁香桃色午夜亚洲一区二区三区| 一本大道综合伊人精品热热| 欧美老年两性高潮| 欧美国产综合色视频| 一区二区三区**美女毛片| 婷婷综合久久一区二区三区| 国产风韵犹存在线视精品| 91香蕉视频mp4| 亚洲成人精品一区二区| 日本免费在线视频不卡一不卡二| 国产一区二区三区精品欧美日韩一区二区三区| 国产精品一区二区果冻传媒| 欧美这里有精品| 337p粉嫩大胆色噜噜噜噜亚洲| 亚洲欧洲日韩av| 日韩不卡在线观看日韩不卡视频| 国产成人av一区二区| 欧美午夜精品久久久久久孕妇| 手机精品视频在线观看| 国产高清成人在线| 欧美综合在线视频| 久久久美女毛片| 亚洲大片免费看| 成人av在线播放网址| 欧美久久一二区| 综合婷婷亚洲小说| 国产一区二区久久| 欧美日韩久久一区| 国产精品萝li| 久久97超碰色| 91麻豆精品国产91久久久资源速度| 亚洲国产成人午夜在线一区| 免费久久99精品国产| 91偷拍与自偷拍精品| www国产亚洲精品久久麻豆| 亚洲第一在线综合网站| 国产成+人+日韩+欧美+亚洲| 欧美一区日韩一区| 亚洲精品免费在线| 成人美女视频在线看| 精品少妇一区二区三区在线播放 | 久久久久久夜精品精品免费| 日韩精品福利网| 在线一区二区三区做爰视频网站| 中文字幕av一区二区三区| 老汉av免费一区二区三区| 欧美日韩www| 亚洲制服欧美中文字幕中文字幕| 成人午夜电影网站| 久久久不卡网国产精品二区| 麻豆国产欧美一区二区三区| 欧美日韩免费观看一区二区三区 | 久久久一区二区三区| 日本v片在线高清不卡在线观看| 欧美影视一区在线| 亚洲精品国产a| 在线精品视频免费观看| 亚洲色图视频网站| 91网址在线看| 亚洲男人的天堂在线aⅴ视频| 成人av免费网站| 国产精品毛片无遮挡高清| 成人一区二区三区视频在线观看| 久久久九九九九| 激情文学综合网| 精品成人在线观看| 激情五月激情综合网| 26uuu久久综合| 国产九色精品成人porny | 欧美群妇大交群中文字幕| 亚洲综合久久久久| 欧美日韩一区视频| 日韩精品一级中文字幕精品视频免费观看 | 久久女同性恋中文字幕| 国产一区中文字幕| 国产亚洲综合性久久久影院| 国产大陆a不卡| 中文字幕av资源一区| 久久精品人人做| 成人性生交大片免费看中文网站| 久久精品视频在线看| aaa欧美大片| 亚洲男同性视频| 欧美性大战久久久| 蜜臀av在线播放一区二区三区| 欧美tickling挠脚心丨vk| 国产在线播放一区三区四| 国产精品色呦呦| 在线视频综合导航| 日韩av电影免费观看高清完整版 | 国产乱子伦视频一区二区三区| 久久夜色精品国产欧美乱极品| 国产盗摄视频一区二区三区| 国产精品大尺度| 欧美日韩国产系列| 奇米影视7777精品一区二区| 久久久精品免费观看| 97精品久久久午夜一区二区三区| 亚洲午夜久久久久中文字幕久| 欧美一区二区三区视频免费 | 色哟哟国产精品| 免播放器亚洲一区| 久久久www成人免费毛片麻豆| av一本久道久久综合久久鬼色| 一区二区欧美在线观看| 精品免费视频一区二区| www.亚洲精品| 日韩黄色免费网站| 久久久噜噜噜久噜久久综合| av高清不卡在线| 全国精品久久少妇| 国产精品久久午夜夜伦鲁鲁| 欧美日韩国产色站一区二区三区| 久久99深爱久久99精品| 亚洲人xxxx| 精品国产欧美一区二区| 色偷偷一区二区三区| 久久www免费人成看片高清| 一区二区三区四区国产精品| 久久综合色8888| 欧美日韩小视频| 国产成人免费在线视频| 亚洲大片免费看| 自拍偷拍国产精品| 精品国产第一区二区三区观看体验 | 亚洲欧美日韩国产手机在线| 日韩精品中午字幕| 欧美日韩精品欧美日韩精品一| 国产不卡在线一区| 看片网站欧美日韩| 午夜精品福利久久久|