資源簡介
STC51單片機紅外解碼,其中代碼親測可用,沒有任何問題
代碼片段和文件信息
/**************************************************************************************
* ??????????????紅外通信實驗 ??*
實現現象: 具體接線操作請參考視頻
下載程序后,數碼管顯示紅外遙控鍵值數據
注意事項: 紅外遙控模塊的短接片J1短接,
紅外遙控器內的電池絕緣片一定要抽掉 ??
***************************************************************************************/
#include?“reg52.h“ ?//此文件中定義了單片機的一些特殊功能寄存器
typedef?unsigned?int?u16; ??//對數據類型進行聲明定義
typedef?unsigned?char?u8;
sbit?LSA=P2^2;
sbit?LSB=P2^3;
sbit?LSC=P2^4;
sbit?IRIN=P3^2;
sbit?DJ=P1^5;
u8?IrValue[6];
u8?Time;
u8?DisplayData[8];
u8?code?smgduan[17]={
0x3f0x060x5b0x4f0x660x6d0x7d0x07
0x7f0x6f0x770x7c0x390x5e0x790x710X76};
//0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F、H的顯示碼
/*******************************************************************************
*?函?數?名?????????:?delay
*?函數功能 ???:?延時函數,i=1時,大約延時10us
*******************************************************************************/
void?delay(u16?i)
{
while(i--);
}
/*******************************************************************************
*?函數名?????????:DigDisplay()
*?函數功能 ?:數碼管顯示函數
*?輸入???????????:?無
*?輸出????????? ?:?無
*******************************************************************************
void?DigDisplay()
{
u8?i;
for(i=0;i<3;i++)
{
switch(i) ?//位選,選擇點亮的數碼管,
{
case(0):
LSA=0;LSB=0;LSC=0;?break;//顯示第0位
case(1):
LSA=1;LSB=0;LSC=0;?break;//顯示第1位
case(2):
LSA=0;LSB=1;LSC=0;?break;//顯示第2位
}
P0=DisplayData[i];//發送數據
delay(100);?//間隔一段時間掃描
P0=0x00;//消隱
}
}
/*******************************************************************************
*?函數名?????????:?IrInit()
*?函數功能 ???:?初始化紅外線接收
*?輸入???????????:?無
*?輸出????????? ?:?無
*******************************************************************************/
void?IrInit()
{
IT0=1;//下降沿觸發
EX0=1;//打開中斷0允許
EA=1; //打開總中斷
IRIN=1;//初始化端口
}
/********************************/
void?Delay1ms(uint?y)
- 上一篇:考研詞匯xm
l格式 - 下一篇:Multisim14.0漢化包
評論
共有 條評論