在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機解碼315M的pt2262編碼的c51程序

            單片機解碼315M的pt2262編碼的c51程序

            作者: 時間:2012-10-17 來源:網絡 收藏
            這是一個用軟件來解碼信號的,經過測試是可以使用的,要注意接受模塊要遠離單片機的晶振 不然干擾太嚴重無法解碼的 或者距離很近.

            /*-----------------------------------------------------------------;    Copyright (C) 2006  WangChanghong INTEGRATED PRODUCTS, INC.;    All rights reserved.;    MCU:AT89s52 ,晶體頻率:12MHz:    作者:汪長洪:    時間:2006年08月01日;    地點:威海;----------------------------315M無線遙控解碼程序-----------------*/ #include AT89X52.H>#define uchar unsigned char#define uint unsigned int/*---------------------------------變量列表-------------------------*/uchar  ReadCode[3],GetCode;/*---------------------------------函數列表-----------------------*/void delay_200(void);				//200us精確延時void delay_250(void);				//250us精確延時void delay_131(void);				//131ms精確延時void init(void);					//初始化子程序void INT0_intrupt();			//中斷處理子程序(解碼程序)/*-----------------------------主程序入口---------------------*/main(){	init();	    while(1){   P2=~GetCode|0xf0;}}/*---------------------------------初始化子程序----------------*/void init(void){EA=1;                      //打開CPU總中斷請求EX0=1;                     //打開INT0中斷請求   IT0=1;                     //設定INT0的觸發(fā)方式為脈沖負邊沿觸發(fā)	 }/*-------------------------------200us精確延時-------------------*/void delay_200(void) {uchar i,j;for(i=0x05;i>0;i--)for(j=0x12;j>0;j--);}/*-------------------------------250us精確延時----------------*/void delay_250(void) {uchar i,j;for(i=0x05;i>0;i--)for(j=0x17;j>0;j--);}/*-------------------------------131ms精確延時---------------*/void delay_131(void) {uchar i,j;for(i=0xfe;i>0;i--)for(j=0xfe;j>0;j--);}/*-------------------------外部中斷0子程序(解碼程序)-------------*/void INT0_intrupt(void) interrupt 0 using 1{uchar i,j;bit BitState_2;                                           EX0=0; ////////////////////找起始位////////////////////////for(i=0;i50;i++);if(P3_2==1)  goto kk;while(P3_2==0);for(i=0;i50;i++);if(P3_2==0)  goto kk; delay_200();if(P3_2==1)  goto kk;for(i=15;i>0;i--) 	//重復20次,檢測在3750微秒內出現高電平就退出解碼程序{    delay_200();                    if(P3_2==1) goto kk;}                                   while(P3_2==0);//////////////////////接收數據/////////////////////////for(j=0;j3;j++)                    {for(i=0;i8;i++){ delay_250();BitState_2=P3_2;		ReadCode[j]=ReadCode[j]1;ReadCode[j]=ReadCode[j]|BitState_2; if(P3_2==1) while(P3_2==1);while(P3_2==0);}}////////////////////校驗及運算數據///////////////////////////for(i=0;i3;i++){if((~(ReadCode[i]|0x55))((ReadCode[i]0x55)1)!=0x00)goto kk; //校驗} GetCode=0x00;for(i=0;i8;i++){GetCode |=((ReadCode[2]>>i)(ReadCode[2]>>(i+1))0x01i);    //運算}//////////////////////////////////////////////delay_131();delay_131();delay_131();delay_131();  kk:	EX0=1;}


            評論


            相關推薦

            技術專區(qū)

            關閉