51 단편기 리모컨 디코딩 컴퓨터 직렬 디스플레이 - C51 소스 코드

2913 단어 운영 체제
/*      :11.0569MHz              */
#include 
#define uchar unsigned char
uchar data    IRcode[4];     //    4           
uchar         CodeTemp;      //        
uchar         i,j,k;         //        
sbit          IRsignal=P3^2; //HS0038   OUT    P3.2(INT0)
/**************************  0.9ms   **********************/
void Delay0_9ms(void)
{
    uchar j,k;
    for(j=18;j>0;j--)
        for(k=20;k>0;k--) ;
}
/***************************  1ms   **********************/
void Delay1ms(void)
{
    uchar i,j;
    for(i=2;i>0;i--)
        for(j=230;j>0;j--) ;
}
/***************************  4.5ms   **********************/
void Delay4_5ms(void)
{
    uchar i,j;
    for(i=10;i>0;i--)
        for(j=225;j>0;j--) ;
}
/****************************       ************************/
void Delay(void)
{
    uchar i,j,k;
    for(i=200;i>0;i--)
        for(j=200;j>0;j--)
            for(k=3;k>0;k--) ;
}
/************************  0       **********************/
void int0(void) interrupt 0 using 2
{
    EA=0;
    for(k=0;k<10;k++){
        Delay0_9ms();
        if(IRsignal==1){         //  0.9ms IRsignal=1,       
            k=10;
            break;
        }else if(k==9){           //     10×0.9ms=9ms    ,      
            while(IRsignal==0);
            Delay4_5ms();        //    4.5ms    
            for(i=0;i<4;i++)       //    4   
            {
                for(j=1;j<=8;j++)      //    8 bit   
                { 
                    while(IRsignal==0);       //     
                    Delay0_9ms();      //            0.9ms,   IRsignal
                    if(IRsignal==1)     //  IRsignal "1",       "1"
                    {
                        Delay1ms();
                        CodeTemp=CodeTemp|0x80;
                        if(j<8) CodeTemp=CodeTemp>>1;
                    }
                    else
                        if(j<8)CodeTemp=CodeTemp>>1;//  IRsignal "0",      ,   "0"
                }
                IRcode[i]=CodeTemp;
                CodeTemp=0;
            }
            for(i=0;i<4;i++)        //         
            {
                SBUF=IRcode[i];
                while(!TI);       //          
                TI=0;
            }
            Delay();
        }
    }
    EA=1;
}
/***********************       *********************/
void initUart(void)
{
    TMOD|=0x20;
    SCON=0x50;
    PCON|=0x80;
    TH1=0xff;     //57600bps @ 11.0592MHz
    TL1=0xff;
    TR1=1;
}
/**************************   *************************/
void main()
{ 
    initUart();
    IT0=1;    //INT0      , (1:     ,0:     )
    EX0=1;    //    INT0 , (1: ,      0:     )
    EA=1;    //     
    CodeTemp=0;    //             
    Delay();
    while(1);
}

소스 사이트 주소:http://www.jdgcs.org/wiki/Downloads
여기서는 백업만 하고 권리 침해가 있으면 삭제에 연락하세요!

좋은 웹페이지 즐겨찾기