0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用AT89S51單片機(jī)制作紅外遙控器的資料和源代碼詳細(xì)說(shuō)明

Wildesbeast ? 來(lái)源:?jiǎn)纹瑱C(jī)教程網(wǎng) ? 作者:?jiǎn)纹瑱C(jī)教程網(wǎng) ? 2020-05-30 09:26 ? 次閱讀

本文檔的主要內(nèi)容詳細(xì)介紹的是使用AT89S51單片機(jī)制作紅外遙控器的資料和源代碼詳細(xì)說(shuō)明。

一般紅外電視遙控器的輸出都是用編碼后串行數(shù)據(jù)對(duì)38~40kHz的方波進(jìn)行脈沖幅度調(diào)制而產(chǎn)生的。

當(dāng)發(fā)射器按鍵按下后,即有遙控碼發(fā)出,所按的鍵不同遙控編碼也不同。這種遙控碼具有以下特征:

采用脈寬調(diào)制的串行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進(jìn)制的“0”;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms的組合表示二進(jìn)制的“1”。

上述“0”和“1”組成的32位二進(jìn)制碼經(jīng)38kHz的載頻進(jìn)行二次調(diào)制,然后再通過(guò)紅外發(fā)射二極管產(chǎn)生紅外線向空間發(fā)射。一般電視遙控器的遙控編碼是連續(xù)的32位二進(jìn)制碼組,其中前16位為用戶識(shí)別碼,能區(qū)別不同的紅外遙控設(shè)備,防止不同機(jī)種遙控碼互相干擾。后16位為8位的操作碼和8位的操作反碼,用于核對(duì)數(shù)據(jù)是否接收準(zhǔn)確。

根據(jù)紅外編碼的格式,發(fā)送數(shù)據(jù)前需要先發(fā)送9ms的起始碼和4.5ms的結(jié)果碼。

接收方一般使用TL0038一體化紅外線接收器進(jìn)行接收解碼,當(dāng)TL0038接收到38kHz紅外信號(hào)時(shí),輸出端輸出低電平,否則為高電平。所以紅外遙控器發(fā)送紅外信號(hào)時(shí),參考上面遙控串行數(shù)據(jù)編碼波形圖,在低電平處發(fā)送38kHz紅外信號(hào),高電平處則不發(fā)送紅外信號(hào)。

C51程序代碼

#include 《AT89X51.h》

static bit OP; //紅外發(fā)射管的亮滅

static unsigned int count; //延時(shí)計(jì)數(shù)器

static unsigned int endcount; //終止延時(shí)計(jì)數(shù)

static unsigned char flag; //紅外發(fā)送標(biāo)志

char iraddr1; //十六位地址的第一個(gè)字節(jié)

char iraddr2; //十六位地址的第二個(gè)字節(jié)

void SendIRdata(char p_irdata);

void delay();

void main(void)

{

count = 0;

flag = 0;

OP = 0;

P3_4 = 0;

EA = 1; //允許CPU中斷

TMOD = 0x11; //設(shè)定時(shí)器0和1為16位模式1

ET0 = 1; //定時(shí)器0中斷允許

TH0 = 0xFF;

TL0 = 0xE6; //設(shè)定時(shí)值0為38K 也就是每隔26us中斷一次

TR0 = 1;//開(kāi)始計(jì)數(shù)

iraddr1=3;

iraddr2=252;

do{

delay();

SendIRdata(12);

}while(1);

}

//定時(shí)器0中斷處理

void timeint(void) interrupt 1

{

TH0=0xFF;

TL0=0xE6; //設(shè)定時(shí)值為38K 也就是每隔26us中斷一次

count++;

if (flag==1)

{

OP=~OP;

}

else

{

OP = 0;

}

P3_4 = OP;

}

void SendIRdata(char p_irdata)

{

int i;

char irdata=p_irdata;

//發(fā)送9ms的起始碼

endcount=223;

flag=1;

count=0;

do{}while(count《endcount);

//發(fā)送4.5ms的結(jié)果碼

endcount=117

flag=0;

count=0;

do{}while(count《endcount);

//發(fā)送十六位地址的前八位

irdata=iraddr1;

for(i=0;i《8;i++)

{

//先發(fā)送0.56ms的38KHZ紅外波(即編碼中0.56ms的低電平)

endcount=10;

flag=1;

count=0;

do{}while(count《endcount);

//停止發(fā)送紅外信號(hào)(即編碼中的高電平)

if(irdata-(irdata/2)*2) //判斷二進(jìn)制數(shù)個(gè)位為1還是0

{

endcount=41; //1為寬的高電平

}

else

{

endcount=15; //0為窄的高電平

}

flag=0;

count=0;

do{}while(count《endcount);

irdata=irdata》》1;

}

//發(fā)送十六位地址的后八位

irdata=iraddr2;

for(i=0;i《8;i++)

{

endcount=10;

flag=1;

count=0;

do{}while(count《endcount);

if(irdata-(irdata/2)*2)

{

endcount=41;

}

else

{

endcount=15;

}

flag=0;

count=0;

do{}while(count《endcount);

irdata=irdata》》1;

}

//發(fā)送八位數(shù)據(jù)

irdata=p_irdata;

for(i=0;i《8;i++)

{

endcount=10;

flag=1;

count=0;

do{}while(count《endcount);

if(irdata-(irdata/2)*2)

{

endcount=41;

}

else

{

endcount=15;

}

flag=0;

count=0;

do{}while(count《endcount);

irdata=irdata》》1;

}

//發(fā)送八位數(shù)據(jù)的反碼

irdata=~p_irdata;

for(i=0;i《8;i++)

{

endcount=10;

flag=1;

count=0;

do{}while(count《endcount);

if(irdata-(irdata/2)*2)

{

endcount=41;

}

else

{

endcount=15;

}

flag=0;

count=0;

do{}while(count《endcount);

irdata=irdata》》1;

}

endcount=10;

flag=1;

count=0;

do{}while(count《endcount);

flag=0;

}

void delay()

{

int i,j;

for(i=0;i《400;i++)

{

for(j=0;j《100;j++)

{

}

}

}

因?yàn)橹皇菍?shí)驗(yàn),所以顧不得外形的美觀了,呵呵,不好意思獻(xiàn)丑了!

照片中下面的是我電視卡所附的遙控器,中間的為電視卡紅外接收頭,上面的電路可用來(lái)“代替”原配遙控器來(lái)控制電視卡電視頻道……

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6037

    文章

    44558

    瀏覽量

    635223
  • 遙控器
    +關(guān)注

    關(guān)注

    18

    文章

    837

    瀏覽量

    66114
  • AT89S51
    +關(guān)注

    關(guān)注

    3

    文章

    229

    瀏覽量

    34091
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    單片機(jī)制作通用型電視遙控器

    單片機(jī)制作通用型電視遙控器:本文介紹了一種用MCS-51系列單片機(jī)AT89C52代替專用遙控
    發(fā)表于 10-27 14:07 ?213次下載

    AT89S51單片機(jī)制作紅外電視遙控器

    一般紅外電視遙控器的輸出都是用編碼后串行數(shù)據(jù)對(duì)38~40kHz的方波進(jìn)行脈沖幅度調(diào)制而產(chǎn)生的。
    發(fā)表于 07-14 13:54 ?157次下載

    AT89S51單片機(jī)是什么?

    AT89S51單片機(jī)是什么? AT89S51是什么?  書(shū)上和網(wǎng)絡(luò)教程上可都是8051,89C51等 !沒(méi)聽(tīng)說(shuō)過(guò)有 89S51&n
    發(fā)表于 03-30 13:22 ?1718次閱讀

    AT89S51引腳圖,AT89S51單片機(jī)引腳說(shuō)明及管腳定義

    AT89S51引腳圖,AT89S51單片機(jī)引腳說(shuō)明及管腳定義  
    發(fā)表于 04-29 22:07 ?5.2w次閱讀
    <b class='flag-5'>AT89S51</b>引腳圖,<b class='flag-5'>AT89S51</b><b class='flag-5'>單片機(jī)</b>引腳<b class='flag-5'>說(shuō)明</b>及管腳定義

    AT89S51系列單片機(jī)的特點(diǎn)(AT89S51引腳功能及應(yīng)用電路)

    本文首先介紹了AT89S51性能參數(shù)和AT89S51引腳功能,其次介紹了AT89S51系列單片機(jī)的特點(diǎn),最后介紹了AT89S51應(yīng)用電路。
    的頭像 發(fā)表于 05-14 11:58 ?5.4w次閱讀
    <b class='flag-5'>AT89S51</b>系列<b class='flag-5'>單片機(jī)</b>的特點(diǎn)(<b class='flag-5'>AT89S51</b>引腳功能及應(yīng)用電路)

    使用51單片機(jī)設(shè)計(jì)紅外遙控器詳細(xì)資料說(shuō)明

    本設(shè)計(jì)分為紅外遙控器紅外接收模塊兩部分。紅外遙控器包括矩陣鍵盤(pán)、增強(qiáng)型51
    發(fā)表于 09-16 17:22 ?27次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>設(shè)計(jì)<b class='flag-5'>紅外</b><b class='flag-5'>遙控器</b>的<b class='flag-5'>詳細(xì)資料</b><b class='flag-5'>說(shuō)明</b>

    使用AT89S51單片機(jī)制作紅外電視遙控器資料說(shuō)明

    一般紅外電視遙控器的輸出都是用編碼后串行數(shù)據(jù)對(duì)38~40kHz的方波進(jìn)行脈沖幅度調(diào)制而產(chǎn)生的。
    發(fā)表于 11-14 08:00 ?2次下載
    使用<b class='flag-5'>AT89S51</b><b class='flag-5'>單片機(jī)制作</b><b class='flag-5'>紅外</b>電視<b class='flag-5'>遙控器</b>的<b class='flag-5'>資料</b><b class='flag-5'>說(shuō)明</b>

    單片機(jī)遙控解碼的源代碼詳細(xì)說(shuō)明

    本文檔的主要內(nèi)容詳細(xì)介紹的是單片機(jī)遙控解碼的源代碼詳細(xì)說(shuō)明。
    的頭像 發(fā)表于 09-26 11:07 ?3201次閱讀

    51單片機(jī)紅外遙控器解碼資料下載

    電子發(fā)燒友網(wǎng)為你提供51單片機(jī)紅外遙控器解碼資料下載的電子資料下載,更有其他相關(guān)的電路圖、
    發(fā)表于 04-07 08:45 ?30次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>紅外</b><b class='flag-5'>遙控器</b>解碼<b class='flag-5'>資料</b>下載

    基于51單片機(jī)紅外遙控步進(jìn)電機(jī)例程源代碼

    基于51單片機(jī)紅外遙控步進(jìn)電機(jī)例程源代碼
    發(fā)表于 05-16 11:16 ?12次下載

    基于51單片機(jī)紅外遙控舵機(jī)例程源代碼

    基于51單片機(jī)紅外遙控舵機(jī)例程源代碼
    發(fā)表于 05-16 11:16 ?14次下載

    基于51單片機(jī)紅外遙控繼電器例程源代碼

    基于51單片機(jī)紅外遙控繼電器例程源代碼
    發(fā)表于 05-16 11:15 ?0次下載

    基于51單片機(jī)紅外遙控直流電機(jī)例程源代碼

    基于51單片機(jī)紅外遙控直流電機(jī)例程源代碼
    發(fā)表于 05-12 16:35 ?13次下載

    基于51單片機(jī)紅外遙控器設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)紅外遙控器設(shè)計(jì).rar》資料免費(fèi)下載
    發(fā)表于 01-03 11:23 ?7次下載

    基于51單片機(jī)紅外遙控器設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)紅外遙控器設(shè)計(jì).rar》資料免費(fèi)下載
    發(fā)表于 01-12 09:22 ?9次下載