《Ht6221红外遥控C语言解码》由会员分享,可在线阅读,更多相关《Ht6221红外遥控C语言解码(2页珍藏版)》请在金锄头文库上搜索。
1、原创Ht6221红外遥控C语言解码/HT6221标准/CPU/ht6221/Designed/Email:#includevreg51.hAT89S51振12MHzby码程序接口P.7pufan2006-06-#defineUINT8unsignedchar#defineUINT16unsignedint#defineUINT32unsignedlongUINT8IRCommandData;UINT8da4=0,0,0,0;UINT8table18=0x28,0x7e,0xa2,0x62,0x74,0x61,0x21,0x7a,0x20,0x60,0x30,0x25,0xa7,0x26,0xa
2、1,0xb1,0x34,0xab;sbitIR=P3A7;/=主程voiddelay(UINT16cnt)while(-cnt);voidd870us(void)delay(108);/12MvoiddlOOOus(void)delay(125);/12Mvoidd4740us(void)delay(593);/12M/ht6221解码程序/UINT8IRDecode(void)UINT8i,m,n;for(i=0;iv10;i+)d870us();if(IR)gotoexit;while(!IR);d4740us();开始解码for(m=0;mv4;m+)for(n=0;nv8;n+)whi
3、le(!IR);d870us();if(IR)d1000us();dam=dam1;dam=dam|0x80;elsedam=dam1;dam=dam|O;/while(IR);while(!IR);if(daO=OxO)&(da1=0xFF)if(da2=(da3)returnda2;exit:return0;voidSendData(UINT8c)P0=c;voidmain(void)P2=0xFD;选通一位数码管P0=0xff;while(1)if(!IR)IRCommandData=IRDecode();switch(IRCommandData)case0x10:SendData(table1);break;case0x03:SendData(table2);break;case0x01:SendData(table3);break;case0x06:SendData(table4);break;case0x09:SendData(table5);break;case0x1d:SendData(table6);break;case0x1f:SendData(table7);break;caseOxOd:SendData(table8);break;case0x19:SendData(table9);break;default:break;