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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dsdsfdsfdsf.c

?? /功能描述:(無線遙控)當按下相應的鍵時控制相應的繼電器開斷
?? C
字號:
//經過調節器試,終于將遙控調節器出來,原來自己犯了一個錯誤,
//那就是經過紅外掃描后,送過來的字碼一直存在緩沖區中,所以當按下一個鍵后
//就一直執行那個增加程序。
//解決方法,用一個標志位,當執行完后,標志位清0,就可以實現,按一次執行一次
//接法P1.0--P1.3接繼電器
//P3。7接蜂鳴器
//P0口為顯示的段碼輸入口
//P2口為位選端
//K1---1開  0---1關,K2--2開,1---2關,K3--3開,2--3關,K4--4開,3---4關
//K5---調用顯示定時間   UP---分調整  +----時調整
//K6----啟動定時   R---關定時
/*
;================================
;DT9122D 遙控器
;****** 紅外遙控器鍵值表 ******
; 10 03 01 06
; 09 1D 1F 0D
; 19 1B 11 15
; 17 12 16 4C
; 40 48 04 00
; 02 05 54 4D
; 0A 1E 0E 1A
; 1C 14 0F 0C
;================================
*/
//蔣龍健,2006.11.24修改
//功能描述:當按下相應的鍵時控制相應的繼電器開斷,可以啟動24小時定時功能,并以
//數碼管動態顯示,倒計時的方式顯示,同時可以關閉定時功能,
//功能的擴展:可以控制每一路的定時間并顯示相應的定時時間,在顯示上不能實現
//讓其一直顯示。在程序上還沒有完全能夠實現隨意的調用。
//假如幾個定時中斷同時使用就有點混亂。


#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint  unsigned int 
void delay(uchar x); //x*0.14MS
void beep();
sbit IRIN = P3^2; //紅外接收器數據線
sbit BEEP = P3^7; //蜂鳴器驅動線
uchar IRCOM[7];
bit REDIN;
sbit P10=P1^0;
sbit P11=P1^1;
sbit P12=P1^2;
sbit P13=P1^3;
sbit P14=P1^4;
sbit P15=P1^5;
sbit P16=P1^6;
sbit P17=P1^7;
sbit P20=P2^0;
sbit P21=P2^1;
sbit P22=P2^2;
sbit P23=P2^3;
sbit P24=P2^4;
sbit P25=P2^5;
sbit P26=P2^6;
sbit P27=P2^7;

#define Hidden 0xff;	//消隱字符在字形碼表中的位置
uchar code BitTab[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,};//0111 1111
uchar code DispTab[14]={

0x3F,/*0*/
        0x06,/*1*/
        0x5B,/*2*/
        0x4F,/*3*/
        0x66,/*4*/
        0x6D,/*5*/
        0x7D,/*6*/
        0x07,/*7*/
        0x7F,/*8*/
        0x6F,/*9*/
        0x77,/*A*/
        0x7C,/*b*/


};//  8, 9, - ,n,f
uchar DispBuf[8];	//8字節的顯示緩沖區
bit	Sec;			//1s到的標記
bit min;
bit hour;     //1分的標記
bit minkey;
bit hourkey;
char SecValue=59;		//秒計數值
char minvalue =59;   //分計數值
char hourvalue=23;
char setmin;
char sethour;
uchar code TH0Val=0xF6;
uchar code TL0Val=0x3C;//當晶振為11.0592時,定時2.5ms的定時器初值
//經過精確調整,在值為63266時,定時時間為1.00043362s

void Init();
void KeyProc();
//void mDelay(unsigned int Delay)	;
//////////////////////////定時中斷////////////////////
void Timer0() interrupt 1
///////////////////動態數碼管的掃描程序//////////////////
{	uchar tmp;
	static uchar dCount;	//計數器,顯示程序通過它得知現正顯示哪個數碼管
	static uint Count;		//秒計數器
	const uint CountNum=400;	//預置值400*2.5=1000=1s
	TH0=TH0Val;
	TL0=TL0Val;	
	tmp=BitTab[dCount];		//根據當前的計數值取位值0111 1111
	P2=P2|0xff;				//P2與1111 1111B相或,將8位置1 
	P2=P2&tmp;      //P2與取出的位值相與,將某一位清零0111 1111低位
	tmp=DispBuf[dCount];	//根據當前的計數值取顯示緩沖待顯示值	
	tmp=DispTab[tmp];		//取字形碼
	P0=tmp;					//送出字形碼
	dCount++;				//計數值加1
	if(dCount==8)			//如果計數值等于6,則讓其回0
		dCount=0;	
//以下是秒計數的程序行
	Count++;				//計數器加1
	if(Count>=CountNum)		//到達預計數值
	{	Count=0;			//清零 
		Sec=1;				//置位1s到標志
		SecValue--;				//秒值加1
		if(SecValue<=-1)
			{SecValue=59;			//秒從0計到59
		     min=1;
		     minvalue--;}
		if (SecValue>=60)
			SecValue=0;
			
	
	if (minvalue<=-1)
	{minvalue=59;
     hour=1;
     hourvalue--;}
  if (minvalue>=60)
  	minvalue=0;
  if (hourvalue<=-1)
     hourvalue=23;
     if (hourvalue>=24)
     	hourvalue=0;
     
}
}


////////////////////////////////////////////////////////////////////
void Init()
{	
	IE = 0x81; //允許總中斷中斷,使能 INT0 外部中斷1000 0011
  TCON = 0x01; //觸發方式為脈沖負邊沿觸發
  IRIN=1; //I/O口初始化
	TMOD=0x01;//00010001定時器0方式1
	TH0=TH0Val;
	TL0=TL0Val;
	
	TR0=1;				//T0開始運行
 }
////////////////////////////////////////////////////////////////////

/////////////////////鍵盤程序///////////////////////////////////////////////////////////////
void KeyProc()	//鍵值處理
{  
	 switch (IRCOM[2])
	 {
	 	
	 	 case 0x15://開啟定時
    	{ET0=1;
        minvalue=59;
       	 SecValue=59;
       	 hourvalue=23;
    	DispBuf[7]=hourvalue/10;
      DispBuf[6]=hourvalue%10;
	    DispBuf[5]=10;
      DispBuf[4]=minvalue/10;
	    DispBuf[3]=minvalue%10;
	    DispBuf[2]=10;
      DispBuf[1]=SecValue/10;
	    DispBuf[0]=SecValue%10; 
       }
    	break;
   case 0x11://關閉定時
       {	P0=0xff;
       	 minvalue=59;
       	 SecValue=59;
       	 hourvalue=23;
       	 
       ET0=0;}break;
	   case 0X1d:	//分加1
		{
			DispBuf[3]++;
	  if(DispBuf[3]>=10)	//次高位由0加到5
			{
				DispBuf[3]=0;
			  DispBuf[4]++;
      if(DispBuf[4]>=6)
        DispBuf[4]=0;
			}
			setmin=DispBuf[4]*10+DispBuf[3];
	        minvalue=setmin;
		}	break;
			
	case 0X09:	//Stop
	{
			DispBuf[6]++;
			if(DispBuf[6]>=10)
			{ 
              DispBuf[7]++; 
            DispBuf[6]=0;}
	        sethour=DispBuf[7]*10+DispBuf[6];
	        hourvalue=sethour;
			if(hourvalue>=24)
              {DispBuf[7]=0;
              DispBuf[6]=0;}
              
    } break;
   
   
    //控制繼電器開關///////////////////
    case 0x10://1開
    	  { 
          P10=1;
          
    	  DispBuf[7]=1;
        DispBuf[6]=0;
	      DispBuf[5]=11;
        DispBuf[4]=10;
	      DispBuf[3]=10;
	      DispBuf[2]=10;
        DispBuf[1]=10;
	      DispBuf[0]=10;
	        delay(200) ;
	        delay(200) ;
	        delay(200);
    	    } break;
    case 0x40://1關
    		{
    	  	 P10=0;
          
    			DispBuf[7]=1;
          DispBuf[6]=0;
	        DispBuf[5]=12;
          DispBuf[4]=12;
	        DispBuf[3]=10;
	        DispBuf[2]=10;
          DispBuf[1]=10;
	        DispBuf[0]=10;
	        delay(200) ;
	        delay(200) ;
	        delay(200) ;}break;
    case 0x03://2開
    		{P11=1;
    			DispBuf[7]=2;
          DispBuf[6]=0;
	        DispBuf[5]=11;
          DispBuf[4]=10;
	        DispBuf[3]=10;
	        DispBuf[2]=10;
          DispBuf[1]=10;
	        DispBuf[0]=10;
	        delay(200) ;
	        delay(200) ;
	        delay(200) ;}break;
    case 0x48://2關
    		{P11=0;
    			DispBuf[7]=2;
          DispBuf[6]=0;
	        DispBuf[5]=12;
          DispBuf[4]=12;
	        DispBuf[3]=10;
	        DispBuf[2]=10;
          DispBuf[1]=10;
	        DispBuf[0]=10;
	        delay(200) ;
	        delay(200) ;
	        delay(200) ;}break;
    case 0x01://3開
    	{P12=1;
    		DispBuf[7]=3;
          DispBuf[6]=0;
	        DispBuf[5]=11;
          DispBuf[4]=10;
	        DispBuf[3]=10;
	        DispBuf[2]=10;
          DispBuf[1]=10;
	        DispBuf[0]=10;
	        delay(200) ;
	        delay(200) ;
	        delay(200) ;}break;
    case 0x04://3關
    	{P12=0;
    		DispBuf[7]=3;
          DispBuf[6]=0;
	        DispBuf[5]=12;
          DispBuf[4]=12;
	        DispBuf[3]=10;
	        DispBuf[2]=10;
          DispBuf[1]=10;
	        DispBuf[0]=10;
	        delay(200) ;
	        delay(200) ;
	        delay(200) ;}break;
    case 0x06://4開
    	{P13=1;
    		DispBuf[7]=4;
          DispBuf[6]=0;
	        DispBuf[5]=11;
          DispBuf[4]=10;
	        DispBuf[3]=10;
	        DispBuf[2]=10;
          DispBuf[1]=10;
	        DispBuf[0]=10;
	        delay(200) ;
	        delay(200) ;
	        delay(200) ;}break;
    case 0x00://4關
    	{P13=0;
    		DispBuf[7]=4;
          DispBuf[6]=0;
	        DispBuf[5]=12;
          DispBuf[4]=12;
	        DispBuf[3]=10;
	        DispBuf[2]=10;
          DispBuf[1]=10;
	        DispBuf[0]=10;
	        delay(200) ;
	        delay(200) ;
	        delay(200) ;}break;
////////////////////////////////////////
   //調用顯示開關////////////////////
   case 0x0d:
   	{
   		DispBuf[7]=hourvalue/10;
      DispBuf[6]=hourvalue%10;
	    DispBuf[5]=10;
      DispBuf[4]=minvalue/10;
	    DispBuf[3]=minvalue%10;
	    DispBuf[2]=10;
      DispBuf[1]=SecValue/10;
	    DispBuf[0]=SecValue%10;   
	  }break;
	  
  }//end switch
    REDIN=0;    
} //end keyproce
/*void mDelay(unsigned int Delay)	
{	unsigned int i;
	for(;Delay>0;Delay--)
	{	for(i=0;i<124;i++)
		{;}
	}
}	
*/
////////////////////////////////////////////////////////////////////////////////
void main()
{
  Init();		
  P1=0x00;
  DispBuf[7]=hourvalue/10;
  DispBuf[6]=hourvalue%10;
	DispBuf[5]=10;
  DispBuf[4]=minvalue/10;
	DispBuf[3]=minvalue%10;
	DispBuf[2]=10;
  DispBuf[1]=SecValue/10;
	DispBuf[0]=SecValue%10;
	for(;;)
	{
		if (REDIN)
			{
			KeyProc();
		}
		if(Sec)				//1s時間到
		{	
			DispBuf[1]=SecValue/10;
			DispBuf[0]=SecValue%10;
	        Sec=0;
        }
	if(min)
	  {
		DispBuf[4]=minvalue/10;
		DispBuf[3]=minvalue%10;
				
			min=0;			//清除1秒到的標志
	  }
   if(hour)
  { DispBuf[7]=hourvalue/10;	
    DispBuf[6]=hourvalue%10;
    hour=0;
}
if (hourvalue==0&&minvalue==0&&SecValue==0)
	{P1=0x00;//關閉繼電器
		ET0=0;
		P0=0xff;
		    DispBuf[7]=10;
        DispBuf[6]=10;
	      DispBuf[5]=10;
        DispBuf[4]=10;
	      DispBuf[3]=10;
	      DispBuf[2]=10;
        DispBuf[1]=10;
	      DispBuf[0]=10;
	      }//關閉所有繼電器
}

}

/////////////////////////////紅外遙控解碼///////////////////////
	 void IR_IN() interrupt 0 using 0
{
unsigned char j,k,N=0;
EX0 = 0;
delay(15);
if (IRIN==1)
{ EX0 =1;
return;
}
//確認IR 信號出現
while (!IRIN) //irin=0,則!IRIN=1等IR 變為高電平,跳過9ms的前導低電平信號。
{delay(1);
}
for (j=0;j<4;j++) //收集四組數據
{
   for (k=0;k<8;k++) //每組數據有8 位,
      {
         while (IRIN) //等 IR 變為低電平,跳過4.5ms 的前導高電平信號。
         {
         	delay(1);
         }
         while (!IRIN) //等 IR 變為高電平,開始數據采集
         {
	   delay(1);
         }
while (IRIN) //計算IR高電平時長
{
delay(1);
N++;
if (N>=30)
{
	 EX0=1;
	 REDIN=0;
return;
} //0.14ms 計數過長自動離開。
} //高電平計數完畢
IRCOM[j]=IRCOM[j] >> 1; //數據最高位補“0”
if (N>=8) {IRCOM[j] = IRCOM[j] | 0x80;} //數據最高位補“1”
N=0;
}//end for k
}//end for j
if (IRCOM[2]!=~IRCOM[3])
{ EX0=1;
	REDIN=0;
return;
}

REDIN=1;
beep();
EX0 = 1;

}	
////////////聲音報警////////////////	
void beep()
{
unsigned char i;
for (i=0;i<100;i++)
{
delay(4);
BEEP=!BEEP; //BEEP 取反
}
BEEP=1; //關閉蜂鳴器
}
//////////////////用于遙控延時/////////////////
void delay(unsigned char x) //x*0.14MS
{
unsigned char i;
while(x--)
{
for (i = 0; i<13; i++) {}
}
}

       	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜a成v人精品| 国产精品人人做人人爽人人添| jlzzjlzz亚洲女人18| 国产综合久久久久久鬼色| 日本不卡一区二区三区| 美女爽到高潮91| 韩国av一区二区三区四区| 久久av老司机精品网站导航| 九色porny丨国产精品| 狠狠色丁香婷婷综合久久片| 国产美女视频一区| 成人国产精品视频| 色狠狠色狠狠综合| 欧美性受xxxx| 欧美成人女星排名| 国产亚洲午夜高清国产拍精品| 欧美激情综合网| 亚洲老妇xxxxxx| 日韩av午夜在线观看| 国产又黄又大久久| 成人高清视频免费观看| 91理论电影在线观看| 欧美精品粉嫩高潮一区二区| 欧美一级在线观看| 亚洲国产精品二十页| 亚洲黄色免费网站| 激情综合五月天| 99精品热视频| 91精品国产91热久久久做人人| 欧美精品一区二区不卡| 亚洲欧美色图小说| 免费一区二区视频| 99vv1com这只有精品| 在线电影欧美成精品| 国产日产欧美一区| 亚洲v日本v欧美v久久精品| 激情都市一区二区| 欧美在线视频你懂得| 2023国产精品| 日韩精品色哟哟| 成人免费三级在线| 日韩欧美在线一区二区三区| 国产精品欧美久久久久一区二区| 五月开心婷婷久久| 99在线精品一区二区三区| 欧美一二三区在线| 亚洲精品自拍动漫在线| 国产精品亚洲一区二区三区妖精 | 中文字幕五月欧美| 麻豆免费看一区二区三区| 99精品欧美一区二区三区综合在线| 欧美一区二区三区电影| 亚洲精品成人a在线观看| 久久精品99国产精品| 欧美午夜电影网| 亚洲三级在线免费观看| 国产福利一区二区| 欧美成人精品福利| 免费高清在线视频一区·| 欧美主播一区二区三区| 亚洲天堂精品视频| 成人性视频网站| 国产欧美视频一区二区| 极品少妇xxxx精品少妇偷拍 | 精品在线一区二区三区| 精品视频在线免费看| 亚洲人成网站在线| 99久久99久久综合| 亚洲欧美另类图片小说| av成人免费在线| 国产精品电影一区二区| 国产91精品一区二区麻豆网站 | 欧美一区二区三区四区视频 | 精品盗摄一区二区三区| 日韩精品电影一区亚洲| 欧美人狂配大交3d怪物一区| 一区二区高清视频在线观看| 在线视频综合导航| 亚洲专区一二三| 欧美日韩aaa| 免费在线观看不卡| 久久中文娱乐网| 丁香六月久久综合狠狠色| 国产视频一区二区在线| 成人午夜av在线| 国产精品第13页| 色综合婷婷久久| 亚洲国产成人va在线观看天堂| 欧美性生活影院| 美腿丝袜在线亚洲一区| 久久免费精品国产久精品久久久久| 精品一区二区在线观看| 亚洲国产精品成人综合| 91在线视频官网| 日韩av高清在线观看| xnxx国产精品| 91视频在线观看| 青青草一区二区三区| 国产亚洲精品bt天堂精选| 色综合久久综合网欧美综合网| 亚洲成人一区在线| 精品国产乱码久久久久久久久| 成人精品小蝌蚪| 亚洲国产精品麻豆| 国产亚洲欧美在线| 欧美三级视频在线播放| 精品一区二区在线免费观看| 亚洲欧美日韩一区二区三区在线观看| 3atv一区二区三区| 丁香另类激情小说| 蜜臀久久99精品久久久久宅男| 欧美高清在线视频| 91精品国产综合久久香蕉的特点| 国产精品一区二区三区99| 亚洲一区二区三区激情| 国产色综合久久| 日韩一区二区免费电影| 色视频一区二区| 国产一区二区三区在线观看免费| 亚洲一区二区三区四区中文字幕| 亚洲精品一区二区三区影院| 在线观看精品一区| 成人自拍视频在线| 免费在线看成人av| 亚洲一区二区av在线| 国产精品无人区| 欧美成人一区二区| 欧美日韩一二区| 91影视在线播放| 国产91色综合久久免费分享| 热久久一区二区| 午夜欧美视频在线观看| 最新热久久免费视频| 国产网站一区二区三区| 欧美一区二区三区播放老司机| 色爱区综合激月婷婷| 不卡av电影在线播放| 极品美女销魂一区二区三区免费| 同产精品九九九| 亚洲国产中文字幕| 亚洲午夜av在线| 亚洲欧美激情小说另类| 亚洲欧洲精品一区二区三区不卡| 精品盗摄一区二区三区| 精品国产三级a在线观看| 日韩一卡二卡三卡四卡| 欧美精品免费视频| 欧美日产国产精品| 欧美日韩国产大片| 69堂成人精品免费视频| 欧美日韩国产美女| 日韩一区二区三区av| 日韩欧美黄色影院| 欧美成人一区二区三区片免费 | 色噜噜狠狠成人中文综合| 色综合久久六月婷婷中文字幕| 东方欧美亚洲色图在线| 成人一区二区三区中文字幕| 成人理论电影网| 91免费版在线看| 欧美视频一区二区三区| 欧美精品三级在线观看| 日韩欧美综合在线| 久久精品一区二区三区不卡 | 亚洲欧洲国产日本综合| 国产精品美女久久久久久久| 国产精品私房写真福利视频| 国产精品九色蝌蚪自拍| 伊人婷婷欧美激情| 日韩av中文字幕一区二区三区| 日韩精品一级二级| 国产大片一区二区| 91农村精品一区二区在线| 欧美色视频在线观看| 日韩精品最新网址| 国产精品美女久久久久久久| 亚洲一区二区av在线| 捆绑调教美女网站视频一区| 国产一区二区不卡| 91片黄在线观看| 日韩精品一区二区三区在线播放 | 欧美三级视频在线观看| 精品区一区二区| 成人免费在线播放视频| 丝袜亚洲另类欧美| 国产91综合网| 777xxx欧美| 国产精品国产馆在线真实露脸 | 婷婷综合另类小说色区| 国产精品自拍一区| 精品视频1区2区| 久久精品视频在线看| 亚洲一级片在线观看| 国产福利视频一区二区三区| 欧美视频在线观看一区二区| 久久久久久久网| 日韩国产一区二| 91老师片黄在线观看| 久久中文娱乐网| 免费的国产精品|