導航:首頁 > 裝置知識 > 多路紅外遙控開關裝置畢業設計

多路紅外遙控開關裝置畢業設計

發布時間:2022-06-15 12:41:50

Ⅰ 紅外多路遙控系統

發射頭接個三接管,是你的驅動電流不夠~~~9012或者9013都可以~~

Ⅱ 急需基於51單片機的紅外遙控開關的設計原理圖和程序(c語言版)

/*------------------------------------------------*/
#include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義

sbit IR=P3^2; //紅外介面標志

#define DataPort P0 //定義數據埠 程序中遇到DataPort 則用P0 替換
sbit DUAN=P2^6;//定義鎖存使能埠 段鎖存
sbit WEI=P2^7;// 位鎖存
/*------------------------------------------------
全局變數聲明
------------------------------------------------*/
unsigned char code dofly_DuanMa[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};// 顯示段碼值0~F
unsigned char code dofly_WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//分別對應相應的數碼管點亮,即位碼
unsigned char TempData[8]; //存儲顯示值的全局變數
unsigned char irtime;//紅外用全局變數

bit irpro_ok,irok;
unsigned char IRcord[4];
unsigned char irdata[33];

/*------------------------------------------------
函數聲明
------------------------------------------------*/

void Ir_work(void);
void Ircordpro(void);
/*------------------------------------------------
顯示函數,用於動態掃描數碼管
輸入參數 FirstBit 表示需要顯示的第一位,如賦值2表示從第三個數碼管開始顯示
如輸入0表示從第一個顯示。
Num表示需要顯示的位數,如需要顯示99兩位數值則該值輸入2
------------------------------------------------*/
void Display(unsigned char FirstBit,unsigned char Num)
{
static unsigned char i=0;

DataPort=0; //清空數據,防止有交替重影
DUAN=1; //段鎖存
DUAN=0;

DataPort=dofly_WeiMa[i+FirstBit]; //取位碼
WEI=1; //位鎖存
WEI=0;

DataPort=TempData[i]; //取顯示數據,段碼
DUAN=1; //段鎖存
DUAN=0;

i++;
if(i==Num)
i=0;

}
/*------------------------------------------------
定時器0中斷處理
------------------------------------------------*/

void tim0_isr (void) interrupt 1 using 1
{
irtime++; //用於計數2個下降沿之間的時間
}
/*------------------------------------------------
定時器中斷子程序
------------------------------------------------*/
void Timer1_isr(void) interrupt 3
{

TH1=(65536-2000)/256; //重新賦值 2ms
TL1=(65536-2000)%256;

Display(0,8); // 調用數碼管掃描

}
/*------------------------------------------------
外部中斷0中斷處理
------------------------------------------------*/
void EX0_ISR (void) interrupt 0 //外部中斷0服務函數
{
static unsigned char i; //接收紅外信號處理
static bit startflag; //是否開始處理標志位

if(startflag)
{
if(irtime<63&&irtime>=33)//引導碼 TC9012的頭碼,9ms+4.5ms
i=0;
irdata[i]=irtime;//存儲每個電平的持續時間,用於以後判斷是0還是1
irtime=0;
i++;
if(i==33)
{
irok=1;
i=0;
}
}
else
{
irtime=0;
startflag=1;
}

}

/*------------------------------------------------
定時器0初始化
------------------------------------------------*/
void TIM0init(void)//定時器0初始化
{

TMOD=0x02;//定時器0工作方式2,TH0是重裝值,TL0是初值
TH0=0x00; //重載值
TL0=0x00; //初始化值
ET0=1; //開中斷
TR0=1;
}
/*------------------------------------------------
定時器初始化子程序
------------------------------------------------*/
void Init_Timer1(void)
{
TMOD |= 0x01; //使用模式1,16位定時器,使用"|"符號可以在使用多個定時器時不受影響
//TH1=0x00; //給定初值
//TL1=0x00;
EA=1; //總中斷打開
ET1=1; //定時器中斷打開
TR1=1; //定時器開關打開
}
/*------------------------------------------------
外部中斷0初始化
------------------------------------------------*/
void EX0init(void)
{
IT0 = 1; //指定外部中斷0下降沿觸發,INT0 (P3.2)
EX0 = 1; //使能外部中斷
EA = 1; //開總中斷
}
/*------------------------------------------------
鍵值處理
------------------------------------------------*/

void Ir_work(void)//紅外鍵值散轉程序
{

TempData[0]=dofly_DuanMa[IRcord[0]/16];
TempData[1]=dofly_DuanMa[IRcord[0]%16];
TempData[2]=dofly_DuanMa[IRcord[1]/16];
TempData[3]=dofly_DuanMa[IRcord[1]%16];
TempData[4]=dofly_DuanMa[IRcord[2]/16];
TempData[5]=dofly_DuanMa[IRcord[2]%16];
TempData[6]=dofly_DuanMa[IRcord[3]/16];
TempData[7]=dofly_DuanMa[IRcord[3]%16];
//Display(0,8); // 調用數碼管掃描
irpro_ok=0;//處理完成標志

}
/*------------------------------------------------
紅外碼值處理
------------------------------------------------*/
void Ircordpro(void)//紅外碼值處理函數
{
unsigned char i, j, k;
unsigned char cord,value;

k=1;
for(i=0;i<4;i++) //處理4個位元組
{
for(j=1;j<=8;j++) //處理1個位元組8位
{
cord=irdata[k];
if(cord>7)//大於某值為1,這個和晶振有絕對關系,這里使用12M計算,此值可以有一定誤差
value|=0x80;
if(j<8)
{
value>>=1;
}
k++;
}
IRcord[i]=value;
value=0;
}
irpro_ok=1;//處理完畢標志位置1
}

/*------------------------------------------------
主函數
------------------------------------------------*/
void main(void)
{
EX0init(); //初始化外部中斷
TIM0init();//初始化定時器
Init_Timer1();

while(1)//主循環
{
if(irok) //如果接收好了進行紅外處理
{
Ircordpro();
irok=0;
}

if(irpro_ok) //如果處理好後進行工作處理,如按對應的按鍵後顯示對應的數字等
{
Ir_work();
}
}
}

51P3^2是外部中斷,紅外接收管接這個引腳就能接收到數據然後顯示在數碼管上

Ⅲ 畢業設計,紅外遙控顯示

你可以用74ls244做8*8點陣驅動,在很多工業8*8點陣屏設計中都用這個驅動集成電路.我曾用過,效果 很好.

Ⅳ 多路紅外遙控器

找個IC,寫6組碼就可以了啊,分別控制6中設備!很簡單的!!!

Ⅳ 急求完整的紅外遙控器畢業設計

高手!我也想學下!

Ⅵ 基於單片機的紅外通信的設計與實現

買51開發板幹嘛?畢業設計不可能交個開發板吧,你要做的是先找齊資料,然後購買元器件來拼電路,然後再用單片機控制,當然如果沒有開發條件還是先湊齊吧

Ⅶ 那位仁兄有關於多通道紅外線遙控電源開關的畢業設計論文及開題報告

兄弟,分少啊!

閱讀全文

與多路紅外遙控開關裝置畢業設計相關的資料

熱點內容
生產汽車尿素設備哪個品牌好啊 瀏覽:956
魅工具箱像素 瀏覽:425
戶外跑步器材里程是什麼單位 瀏覽:386
如何成為合格的機械設計師 瀏覽:630
燃電大米加工設備哪個牌子好 瀏覽:320
河北隆堯做什麼機械多 瀏覽:370
軸承如何提取貨源 瀏覽:985
閥門井中的管道需加裝套管嗎 瀏覽:724
法蘭克加工中心機床怎麼調 瀏覽:239
方向傳動裝置的作用及組成 瀏覽:677
起重設備交易市場哪個好 瀏覽:312
高精度的機床怎麼做 瀏覽:848
x9機械鍵盤怎麼調 瀏覽:298
閥門上面有個正方形圖例是什麼 瀏覽:848
生產加工五金製品的人叫什麼 瀏覽:884
機械優先加什麼 瀏覽:722
電動工具是看轉速還是看瓦 瀏覽:477
製冷機品牌中有個頓字的叫什麼 瀏覽:48
製冷量1KW等於多少冷凍水量 瀏覽:759
自來水水表閥門壞了怎麼辦 瀏覽:353