精品国产成人一区二区三区-女子十八毛片-欧洲性猛交-无码不卡一区二区三区在线观看-www.四虎在线-伊人网国产-国精产品自偷自偷综合下载-不卡av网站-俄罗斯黄色大片-一本久久知道综合久久-国产精品日韩一区二区-日韩精品色-免费人成网ww555kkk在线-黄色在线观看免费-日韩在线免费-久久久久99人妻一区二区三区-十八禁真人啪啪免费网站

機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
基于AT89C2051的紅外線接收控制器的制作
基于AT89C2051的紅外線接收控制器的制作
 更新時(shí)間:2009-11-11 14:06:08  點(diǎn)擊數(shù):0
【字體: 字體顏色

紅外線接收控制器的制作

在生活中,我們常用到紅外線控制各類電器,如彩電、空調(diào)、電風(fēng)扇等。為我們帶來較多的方便。但有時(shí)我們?nèi)愿械讲环奖。如看完電視后,用遙控器只能關(guān)掉電視主電源,電視仍處于待機(jī)狀態(tài)。使用者還得走到電視跟前.按下電小視電源開關(guān)方能放心。若想看電視。還得動(dòng)身開電視,顯得很麻煩。尤其是冬天躺在床上看電視,上上下下,深感不便。本文以利用紅外遙控器來遙控風(fēng)扇的制作方法為例(可任選一只紅外線遙控器.能調(diào)速,軟件稍作改變,可增加定時(shí)功能等),來介紹紅外線接收控制器的制作方法,如果制作電視交流電源的開、關(guān)控制器,可與電視共用一只遙控器,制作也較簡單些。

制作思路

紅外遙控發(fā)射器是利用紅外線作載體傳送信息的,發(fā)射周期不等的經(jīng)過調(diào)制后串行碼.該串行碼一般由引導(dǎo)碼、用戶識別碼、操作碼組成。經(jīng)紅外接收頭解碼后得到一串周期不等的矩形波。如示意圖1。

不同型號的遙控發(fā)射器的波形寬度不同。即周期T1、T2……不同.在不知手頭遙控發(fā)射器的波形周期的情況下.首先要制作一個(gè)檢測紅外線周期的工具。根據(jù)測得的周期規(guī)律來制作紅外線接收控制器。

制作方法

檢測紅外周期的器件制作.見圖2。

當(dāng)紅外接收頭沒有接收到發(fā)射器發(fā)送來的紅外線.其輸出端輸出高電平(約 5V)。當(dāng)接收到紅外線,輸出端電平變低.送到單片機(jī)AT89C2051的外部中斷1口即INT1,使其發(fā)生中斷而進(jìn)入中斷服務(wù):啟動(dòng)定時(shí)器1并開M-I-數(shù)。相當(dāng)于在圖1的A點(diǎn).1個(gè)周期后即C點(diǎn)。單片機(jī)第二次中斷。關(guān)定時(shí)器1.記下周期T1(實(shí)際上只記下TH1的數(shù)值。 TL1的值可以丟棄)。然后清TH1、TL1,再啟動(dòng)定時(shí)器1重新計(jì)數(shù),第二個(gè)周期完后,同樣會引起單片機(jī)發(fā)生中斷.再記

下周期T2'…一,如此記下40-50個(gè)周期(一般紅外編碼為4字節(jié).即32BIT.之前還有引導(dǎo)碼。又因接收到的紅外數(shù)據(jù)不一定是從引導(dǎo)碼開始,要分析一次完整的串行碼,應(yīng)盡可能多記下紅外矩形波周期數(shù))。接收完后,通過按輕觸開關(guān)將各記下的各周期的THl在數(shù)碼管顯示出來以作分析(每按一次輕觸開關(guān),顯示下一個(gè)周期數(shù))。

編程方法

在main()中開中斷。啟動(dòng)定時(shí)器1.即EA=I;EX1=1:IT1=1;TRI=I:

在外部中斷1的服務(wù)程序中編寫如下語名:#defineCNT50//預(yù)測50個(gè)紅外線周期 DATA Byte value_h[CNT]://記錄周期的變量(數(shù)組) DATA Byte count=0;//接收到的周期數(shù) void int1(void)interrupt 2{

if(TH1==TL1&&TL1==0)//判斷是否是第一次接收到紅外數(shù)據(jù)

{

TR1=1:

}elseI

TRl=0;value_h[count]:THl;

THl=TLl=0;TRI=I:count ;

if(count==CNT)

{

EXl=0:count=u;

l} l

假設(shè)接收到的TH的數(shù)值為:30,50.04,08,08,08,04,04,04,04,04,08,08,08,04,04,04,04。08,04,04,08,04,04,04,04,04,04,08,08,04.08,08,08,08,3f,50....

稍作分析可知。表示高低電平的有效數(shù)為:04,08。若將04定作低電平.08定作高電平.舍棄其他數(shù)據(jù),得到4字節(jié)數(shù)據(jù)即:01110000。01110000,10010000。01101111。轉(zhuǎn)為十六進(jìn)制后得:70h,70h,90h,6fh,至此得到遙控發(fā)射器剛才按下的鍵值碼.用同樣的方法可以測得其他鍵鍵值碼。假設(shè)有:70h,70h,0x90,0x6f。//0鍵70h,70h.0x00,0xff。//1鍵70h,70h.0xd0,0x2f//power鍵

根據(jù)以上數(shù)據(jù)分析得.每鍵碼為4字節(jié).前2字節(jié)固定不變,為用戶識別碼。后2字節(jié)均不同,是操作碼。將遙控器上的各鍵鍵值碼測出后,根據(jù)這些數(shù)據(jù)可以根據(jù)制作需要進(jìn)行編程了。因鍵值碼為4字節(jié)太長。不利于編程,需要將各鍵鍵值轉(zhuǎn)為相對應(yīng)的1字節(jié)的數(shù)據(jù),如:70h,70h,0x90,0x6f,對應(yīng)于O,70h,70h,0x00,0xff對應(yīng)于1..…·

轉(zhuǎn)換方法:

建立一個(gè)數(shù)組,將上述測得的各鍵碼按順序放入數(shù)組中(去掉用戶識別碼)

code Byte arr[][2]=

{

0x90,0x6f.//0,盡可能按鍵0、鍵1..·…的先后順序放,以符合習(xí)慣

0x00,0xff,//1

……

Oxl0,0xef.//9

0xd0, Ox2f //power 13

};

在接收紅外線的外部中斷1函數(shù)中編寫如下的鍵碼轉(zhuǎn)換語句:

DATA Byte arrtmp[4];

DATA Byte Keytmp;//轉(zhuǎn)換后的鍵值寄存變量

DATA Byte Keyval=NOKEY;

bit KeyOk;//鍵值轉(zhuǎn)換完成與否的標(biāo)志

bit d_Ok;//接收到一個(gè)完整的鍵碼標(biāo)志

void Ex_int(void)interrupt 2

{

Byte i;

Byte(*p)[2];

……

if(d_Ok)//若接收到完整的鍵碼

{

d_Ok=0://清除

if(arrtmp[0]==0x70&&arrtmp[1]

==0x70){//鍵碼轉(zhuǎn)換

for(p=arr,bO:i<14:i 。p )

{if(arrtmp[2]==*(*p 0)&&arrtmp[3]

==*(*p 1))

{ Keytmp=i:KeyOk=1;//鍵值

轉(zhuǎn)換成功標(biāo)志

break;

}else{Keytmp=NOKEY;l//未

接收到完整的鍵值

}

}eIse{Keytmp=NOKEY;}

} l

經(jīng)過轉(zhuǎn)換后的Keytmp為0、1、2……的整數(shù).然后再編寫主函數(shù)、調(diào)速函數(shù)(參源程序)。來進(jìn)行電風(fēng)扇調(diào)速。

有關(guān)電路的一些解釋:單片機(jī)U1(AT89C2051)P37腳輸出高低電平通過R13控制光耦可控硅MOC3041(參數(shù)可在《電子制作》網(wǎng)站查找)通斷.通過控制其通斷時(shí)間比來達(dá)到電風(fēng)扇調(diào)速。

有關(guān)紅外周期檢測和電風(fēng)扇調(diào)速實(shí)例的源程序可在本刊網(wǎng)站上下載。

  • 上一篇: 基于SST89C58型單片機(jī)的遠(yuǎn)程燈控箱系統(tǒng)
  • 下一篇: 沒有了
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1
    海丰县| 仙居县| 甘洛县| 娄烦县| 甘洛县| 平舆县| 方城县| 潮州市| 荥经县| 马山县| 青河县| 三门峡市| 泸州市| 碌曲县| 翁牛特旗| 盐津县| 河东区| 泰和县| 马龙县| 车险| 福州市| 神农架林区| 大港区| 阜宁县| 九江县| 沅江市| 金沙县| 道真| 淮北市| 陆丰市| 韶山市| 宁乡县| 开封市| 马龙县| 定安县| 广南县| 安多县| 合作市| 和平区| 临洮县| 澄江县|