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
여기서는 백업만 하고 권리 침해가 있으면 삭제에 연락하세요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
독서 노트문제1: 한 파일에 10000000개의 기록이 포함되어 있으며, 각 기록의 내용은 7자리의 정수이다.기록은 중복되지 않는다.파일 내용을 읽는 프로그램이 필요하고, 이 기록을 정렬한 후 파일을 출력해야 하며, 메모리는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.