📄 红外线遥控器软件解码原理和程序(c语言)--单片机开发基地.htm
字号:
<TR>
<TD align=middle width=62 height=22><FONT
class=menufont><A
href="http://www.mcubase.com/information.asp">厂商信息</A></FONT></TD></TR></TBODY></TABLE></TD>
<TD align=middle width=60 height=30>
<TABLE>
<TBODY>
<TR>
<TD align=middle width=62 height=22><FONT
class=menufont><A
href="http://www.mcubase.com/gongqiu.asp">供求信息</A></FONT></TD></TR></TBODY></TABLE></TD>
<TD align=middle width=60 height=30>
<TABLE>
<TBODY>
<TR>
<TD align=middle width=62 height=22><FONT
class=menufont><A
href="http://www.mcubase.com/news.asp">资讯快递</A></FONT></TD></TR></TBODY></TABLE></TD>
<TD align=middle width=64 height=30>
<TABLE>
<TBODY>
<TR>
<TD align=middle width=62 height=20>
<DIV class=menuskin id=popmenu
onmouseover="clearhidemenu();highlightmenu(event,'on')"
style="Z-INDEX: 100"
onmouseout="highlightmenu(event,'off');dynamichide(event)"></DIV></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD>
<TD class=topmenur></TD></TR></TBODY></TABLE></TD>
<TD class=right></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE class=dabg cellSpacing=0 cellPadding=0 align=center border=0>
<TBODY>
<TR>
<TD class=left></TD>
<TD class=width>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD vAlign=top align=middle>
<TABLE>
<TBODY>
<TR>
<TD height=5></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 border=0>
<TBODY>
<TR>
<TD class=4topleft></TD>
<TD class=4topmid> <IMG class=st_title src=""> <FONT
class=titlefont>当前位置:<A
href="http://www.mcubase.com/index.asp">本站首页</A>-<A
href="http://www.mcubase.com/project.asp">案例分析</A>-<A
href="http://www.mcubase.com/project.asp?class=4">51系列单片机</B></FONT></FONT><SPAN
style="WIDTH: 0px"></SPAN><A title=""
href="http://www.mcubase.com/"></A></TD>
<TD class=4topright></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 border=0>
<TBODY>
<TR>
<TD class=4midleft></TD>
<TD class=4midmid vAlign=top height=60>
<DIV id=size
style="TABLE-LAYOUT: fixed; WIDTH: 100%; WORD-BREAK: break-all; LINE-HEIGHT: 120%; TEXT-ALIGN: left"
align=center>
<TABLE>
<TBODY>
<TR>
<TD height=5></TD></TR></TBODY></TABLE>
<DIV align=center><B><FONT
color=#000000>红外线遥控器软件解码原理和程序(C语言)</FONT></B></DIV>
<TABLE>
<TBODY>
<TR>
<TD height=5></TD></TR></TBODY></TABLE>
<BLOCKQUOTE>
<P align=right>【字体:<A class=menufont
href="javascript:ContentSize(16)">大</A> <A class=menufont
href="javascript:ContentSize(14)">中</A> <A class=menufont
href="javascript:ContentSize(12)">小</A>】 </P>
<P>来源:网上转载 作者:jiang_xi_sheng</P>
<P>红外线一开始发送一段13.5ms的引导码,引导码由9ms的高电平和4.5ms的低电平组成,跟着引导码是系统码,系统反码,按键码,按键反码,如果按着键不放,则遥控器则发送一段重复码,重复码由9ms的高电平,2.25ms的低电平,跟着是一个短脉冲,本程序是免费给大家,版权所有,不得用于商业目的,如需用到本程序到商业上请与本人联系<BR><A
href="mailto:jiang_xi_sheng@163.com">jiang_xi_sheng@163.com</A>,经本人同意后方可用于商业目的,本程序经过试用,能解大部分遥控器的编码!<BR><BR>#include "at89x52.h"<BR>#define NULL 0x00//数据无效<BR>#define RESET 0X01//程序复位<BR>#define REQUEST 0X02//请求信号<BR>#define ACK 0x03//应答信号,在接收数据后发送ACK信号表示数据接收正确,<BR>也位请求信号的应答信号<BR>#define NACK 0x04//应答信号,表示接收数据错误<BR>#define BUSY 0x05//忙信号,表示正在忙<BR>#define FREE 0x06//空闲信号,表示处于空闲状态<BR>#define READ_IR 0x0b//读取红外<BR>#define STORE_IR 0x0c//保存数据<BR>#define READ_KEY 0x0d//读取键值<BR>#define RECEIVE 0Xf400//接收缓冲开始地址<BR>#define SEND 0xfa00//发送缓冲开始地址<BR>#define IR 0x50//红外接收缓冲开始地址<BR>#define HEAD 0xaa//数据帧头<BR>#define TAIL 0x55//数据帧尾<BR>#define SDA P1_7<BR>#define SCL P1_6<BR><BR><BR>unsigned
char xdata *buf1; //接受数据缓冲<BR>unsigned
int buf1_length; //接收到的数据实际长度<BR>unsigned
char xdata *buf2; //发送数据缓冲<BR>unsigned
int buf2_length; //要发送的数据实际长度<BR>bit
buf1_flag; //接收标志,1表示接受到一个数据帧,0表示没有接受到数据帧或数据<BR>帧为空<BR>bit
buf2_flag; //发送标志,1表示需要发送或没发送完毕,0表示没有要发送的数据或<BR>发送完毕<BR>unsigned
char
state1,state2; //用来标志接收字符的状态,state1用来表示接<BR>收状态,state2用来表示发送状态<BR>unsigned
char data *ir;<BR>union{<BR> unsigned
char a[2];<BR> unsigned int
b;<BR> unsigned char data
*p1[2];<BR> unsigned int data
*p2[2];<BR> unsigned char xdata
*p3; //红外缓冲的指针<BR> unsigned
int xdata
*p4;<BR>}p;<BR>//union{ //<BR> // unsigned
char
a[2]; //<BR> // unsigned
int b;<BR> // unsigned char data
*p1[2];<BR> // unsigned int data
*p2[2];<BR> // unsigned char xdata
*p3;<BR> // unsigned int xdata
*p4; //地址指针<BR>//}q; //<BR><BR>union{<BR> unsigned
char a[2];<BR> unsigned int
b;<BR>}count;<BR>union{<BR> unsigned char
a[2];<BR> unsigned int
b;<BR>}temp;<BR>union{<BR> unsigned char
a[4];<BR> unsigned int
b[2];<BR> unsigned long
c;<BR>}ir_code;<BR><BR>union{<BR> unsigned
char a[4];<BR> unsigned int
b[2];<BR> unsigned long
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -