?? 紅外線遙控器軟件解碼原理和程序(c語言)--單片機開發(fā)基地.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>當(dāng)前位置:<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>來源:網(wǎng)上轉(zhuǎn)載 作者:jiang_xi_sheng</P>
<P>紅外線一開始發(fā)送一段13.5ms的引導(dǎo)碼,引導(dǎo)碼由9ms的高電平和4.5ms的低電平組成,跟著引導(dǎo)碼是系統(tǒng)碼,系統(tǒng)反碼,按鍵碼,按鍵反碼,如果按著鍵不放,則遙控器則發(fā)送一段重復(fù)碼,重復(fù)碼由9ms的高電平,2.25ms的低電平,跟著是一個短脈沖,本程序是免費給大家,版權(quán)所有,不得用于商業(yè)目的,如需用到本程序到商業(yè)上請與本人聯(lián)系<BR><A
href="mailto:jiang_xi_sheng@163.com">jiang_xi_sheng@163.com</A>,經(jīng)本人同意后方可用于商業(yè)目的,本程序經(jīng)過試用,能解大部分遙控器的編碼!<BR><BR>#include "at89x52.h"<BR>#define NULL 0x00//數(shù)據(jù)無效<BR>#define RESET 0X01//程序復(fù)位<BR>#define REQUEST 0X02//請求信號<BR>#define ACK 0x03//應(yīng)答信號,在接收數(shù)據(jù)后發(fā)送ACK信號表示數(shù)據(jù)接收正確,<BR>也位請求信號的應(yīng)答信號<BR>#define NACK 0x04//應(yīng)答信號,表示接收數(shù)據(jù)錯誤<BR>#define BUSY 0x05//忙信號,表示正在忙<BR>#define FREE 0x06//空閑信號,表示處于空閑狀態(tài)<BR>#define READ_IR 0x0b//讀取紅外<BR>#define STORE_IR 0x0c//保存數(shù)據(jù)<BR>#define READ_KEY 0x0d//讀取鍵值<BR>#define RECEIVE 0Xf400//接收緩沖開始地址<BR>#define SEND 0xfa00//發(fā)送緩沖開始地址<BR>#define IR 0x50//紅外接收緩沖開始地址<BR>#define HEAD 0xaa//數(shù)據(jù)幀頭<BR>#define TAIL 0x55//數(shù)據(jù)幀尾<BR>#define SDA P1_7<BR>#define SCL P1_6<BR><BR><BR>unsigned
char xdata *buf1; //接受數(shù)據(jù)緩沖<BR>unsigned
int buf1_length; //接收到的數(shù)據(jù)實際長度<BR>unsigned
char xdata *buf2; //發(fā)送數(shù)據(jù)緩沖<BR>unsigned
int buf2_length; //要發(fā)送的數(shù)據(jù)實際長度<BR>bit
buf1_flag; //接收標(biāo)志,1表示接受到一個數(shù)據(jù)幀,0表示沒有接受到數(shù)據(jù)幀或數(shù)據(jù)<BR>幀為空<BR>bit
buf2_flag; //發(fā)送標(biāo)志,1表示需要發(fā)送或沒發(fā)送完畢,0表示沒有要發(fā)送的數(shù)據(jù)或<BR>發(fā)送完畢<BR>unsigned
char
state1,state2; //用來標(biāo)志接收字符的狀態(tài),state1用來表示接<BR>收狀態(tài),state2用來表示發(fā)送狀態(tài)<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
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -