求HT6221的C语言解码程序
我的板是52系列的
我的板是52系列的
答案:你好,很高兴回答你的问题
Ht6221红外遥控C语言解码//★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★<br/>//★HT6221标准红外C语言解码程序 ★<br/>//★CPU AT89S51 晶振12MHz 接口 P.7 ★<br/>//★ht6221 资料: ★<br/>//★Designed by pufan ★<br/>//★日期2006-06-14 ★<br/>//★Email: zicosh@163.com ★<br/>//★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★<br/>#include<reg51.h><br/><br/>#define UINT8 unsigned char<br/>#define UINT16 unsigned int<br/>#define UINT32 unsigned long<br/><br/>UINT8 IRCommandData;<br/>UINT8 da[4]={0,0,0,0};<br/><br/>UINT8 table[18]={0x28,0x7e,0xa2,0x62,0x74,0x61,0x21,0x7a,0x20,0x60,0x30,0x25,0xa7,0x26,0xa1,0xb1,0x34,0xab};<br/><br/>sbit IR=P3^7;<br/><br/>//============主程序====================================================<br/>void delay(UINT16 cnt)<br/>{<br/>while(--cnt);<br/>}<br/><br/>void d870us(void)<br/>{<br/>delay(108);//12M<br/>}<br/><br/>void d1000us(void)<br/>{<br/>delay(125);//12M<br/>}<br/><br/>void d4740us(void)<br/>{<br/>delay(593);//12M<br/>}<br/>//----------------------------------------------------<br/><br/>//-----------------------------------------------<br/>// ht6221解码程序<br/>//-----------------------------------------------<br/>UINT8 IRDecode(void)<br/>{<br/> UINT8 i,m,n;<br/> <br/> for(i=0;i<10;i++)<br/> {<br/> d870us();<br/> if(IR) goto exit;<br/> }<br/> <br/> while(!IR);<br/> d4740us();<br/><br/> //开始解码<br/> for(m=0;m<4;m++){<br/> for(n=0;n<8;n++){<br/> while(!IR);<br/> <br/> d870us();<br/> if(IR)<br/> {<br/> d1000us();<br/> da[m]=da[m]>>1;<br/> da[m]=da[m]|0x80;<br/> }<br/> else<br/> {<br/> da[m]=da[m]>>1;<br/> da[m]=da[m]|0;<br/> }<br/> //while(IR);<br/> //while(!IR);<br/> }<br/> }<br/> if((da[0]==0x0)&&(da[1]==0xFF))<br/> { <br/> if(da[2]==(~da[3]))<br/> return da[2];<br/> }<br/>exit:<br/> return 0; <br/>}<br/><br/>void SendData(UINT8 c)<br/>{<br/> P0=c;<br/>}<br/><br/>void main(void)<br/>{<br/> P2=0xFD;//选通一位数码管<br/> P0=0xff;<br/> <br/> while(1)<br/> {<br/> if(!IR)<br/> {<br/> IRCommandData=IRDecode();<br/> switch(IRCommandData)<br/> { <br/> case 0x10:SendData(table[1]);break;<br/> case 0x03:SendData(table[2]);break;<br/> case 0x01:SendData(table[3]);break;<br/> case 0x06:SendData(table[4]);break;<br/> case 0x09:SendData(table[5]);break;<br/> case 0x1d:SendData(table[6]);break;<br/> case 0x1f:SendData(table[7]);break;<br/> case 0x0d:SendData(table[8]);break;<br/> case 0x19:SendData(table[9]);break; <br/> default:break;<br/> }<br/> }<br/> }<br/>}<br/>
谢谢采纳。
上一个:求c语言和java的新手教程
下一个:c++和c语言开发游戏那个更强大?