資源簡介
proteus仿真電路 包括仿真電路,紅外編碼,解碼顯示
代碼片段和文件信息
#include?
#define?TIMEH?12?//基于22.1184M時鐘晶振,數字越大,時間越長
#define?TIMEL?50?//基于22.1184M時鐘晶振,數字越大,時間越長
#define?ROW?P3? ?//矩陣按鍵接口定義
#define?LINE?P2 ?//矩陣按鍵接口定義
extern?void?timer_init(void);
extern?void?delay(unsigned?int);
extern?unsigned?char?scan_key(void);
unsigned?char?irm_code;
sbit?QD?=?P1^0;
void?main()
{
unsigned?char?tmp;
irm_code=0xff;
timer_init();
while(1)?{
tmp?=?scan_key();
if(tmp!=0xff)?{
if(irm_code==0xff)?{//一次鍵值發射完成后會將irm_code置為0xff
irm_code?=?tmp; //鍵值傳遞
TR0?=?1;? //啟動定時器,完成編碼發射
}
delay(10);//兩次編碼發射之間需要延時,連續發射會導致解碼失敗??
}
} ?
}
void?timer_init(void)
{
TMOD?=?0x01;
TH0?=?0xff;
TL0?=?0xff;
EA?=?1;
ET0?=?1;
TR0?=?0;
}
/*定時中斷,紅外編碼*/
void?timer_int(void)?interrupt?1
{
static?unsigned?char?i=0flag=0;
QD=~QD;
if(i<10)?{?//連續發射5個“0”引導碼
TH0?=?255-TIMEH/2;
TL0?=?255-TIMEL/2;
i++;
}
else?if(i<18)?{?//數據編碼
if((irm_code?&?0x80)==0x80)?{
TH0?=?255-TIMEH;
TL0?=?255-TIMEL;
irm_code?<<=?1;
i++;
}
else?{
TH0?=?255-TIMEH/2;
TL0?=?255-TIMEL/2;
if(flag)?{
irm_code?<<=?1;
i++;
}
flag?^=?0x01;
}
}
else?{
TR0?=?0;
i=0;
QD=1;
irm_code=0xff;
TH0?=?0xff;
TL0?=?0xff; ??
}
}
void?delay(unsigned?int?t)
{
unsigned?char?i;
while(t--)?for(i=0;i<230;i++);
}
/*矩陣按鍵掃描*/
unsigned?char?scan_key(void)
{
unsigned?char?j;?
static?unsigned?char?i=0;
ROW?=?255-(1< if(LINE!=0xff)?
for(j=0;j<8;j++)?
if(LINE==(255-(1< i++;?i&=0x03;
return(0xff);
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????790??2010-03-29?21:34??一種紅外遙控編解碼仿真\解碼顯示\irm_int.c
?????文件????????230??2010-03-29?21:34??一種紅外遙控編解碼仿真\解碼顯示\irm_int.h
?????文件???????2584??2010-03-29?21:34??一種紅外遙控編解碼仿真\解碼顯示\irm_int.LST
?????文件???????3737??2010-03-29?21:34??一種紅外遙控編解碼仿真\解碼顯示\irm_int.OBJ
?????文件???????1017??2010-03-29?21:34??一種紅外遙控編解碼仿真\解碼顯示\irm_pro.Opt
?????文件???????2491??2010-03-29?21:34??一種紅外遙控編解碼仿真\解碼顯示\irm_pro.Uv2
?????文件???????1017??2010-03-29?21:34??一種紅外遙控編解碼仿真\解碼顯示\irm_pro_Opt.Bak
?????文件???????2505??2010-03-29?21:34??一種紅外遙控編解碼仿真\解碼顯示\irm_pro_Uv2.Bak
?????文件???????7202??2010-03-29?21:34??一種紅外遙控編解碼仿真\解碼顯示\main
?????文件???????1318??2010-03-29?21:34??一種紅外遙控編解碼仿真\解碼顯示\main.c
?????文件???????1656??2010-03-29?21:34??一種紅外遙控編解碼仿真\解碼顯示\main.hex
?????文件?????????56??2010-03-29?21:34??一種紅外遙控編解碼仿真\解碼顯示\main.lnp
?????文件???????3977??2010-03-29?21:34??一種紅外遙控編解碼仿真\解碼顯示\main.LST
?????文件???????7702??2010-03-29?21:34??一種紅外遙控編解碼仿真\解碼顯示\main.M51
?????文件???????4238??2010-03-29?21:34??一種紅外遙控編解碼仿真\解碼顯示\main.OBJ
?????文件????????939??2010-03-29?21:34??一種紅外遙控編解碼仿真\解碼顯示\main.plg
?????文件???????4247??2010-03-29?21:34??一種紅外遙控編解碼仿真\紅外編碼\IRM編碼
?????文件???????1267??2010-03-29?21:34??一種紅外遙控編解碼仿真\紅外編碼\IRM編碼.hex
?????文件?????????43??2010-03-29?21:34??一種紅外遙控編解碼仿真\紅外編碼\IRM編碼.lnp
?????文件???????7084??2010-03-29?21:35??一種紅外遙控編解碼仿真\紅外編碼\IRM編碼.M51
?????文件????????972??2010-03-29?21:35??一種紅外遙控編解碼仿真\紅外編碼\IRM編碼.Opt
?????文件????????167??2010-03-29?21:35??一種紅外遙控編解碼仿真\紅外編碼\IRM編碼.plg
?????文件???????2104??2010-03-29?21:35??一種紅外遙控編解碼仿真\紅外編碼\IRM編碼.Uv2
?????文件????????971??2010-03-29?21:35??一種紅外遙控編解碼仿真\紅外編碼\IRM編碼_Opt.Bak
?????文件??????????0??2010-03-29?21:35??一種紅外遙控編解碼仿真\紅外編碼\IRM編碼_Uv2.Bak
?????文件???????1775??2010-03-29?21:35??一種紅外遙控編解碼仿真\紅外編碼\main.c
?????文件???????5017??2010-03-29?21:35??一種紅外遙控編解碼仿真\紅外編碼\main.LST
?????文件???????4715??2010-03-29?21:35??一種紅外遙控編解碼仿真\紅外編碼\main.OBJ
?????文件???????3195??2010-03-29?21:35??一種紅外遙控編解碼仿真\紅外編碼\mainbak.c
?????文件?????238174??2010-03-29?21:35??一種紅外遙控編解碼仿真\仿真電路\Last?Loaded?紅外遙控器G328111仿真.DBK
............此處省略12個文件信息
評論
共有 條評論