日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機電之家資源網(wǎng)
單片機首頁|單片機基礎|單片機應用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓信息
贊助商
8路紅外遙控開關控制器
8路紅外遙控開關控制器
 更新時間:2009-12-15 11:38:30  點擊數(shù):0
【字體: 字體顏色
 論壇上有一些朋友希望能DIY多路的紅外遙控開關,我在此做了一個DOME版的,同樣用我熟悉的SAA3010T的解碼程序(省下了不少時間),程序可以直接用于AT89C51或AT89C2051或相容的芯片,用2051時,P1.0,P1.1要用10K電阻上拉。使用一體化接收頭時電源方面一定要做好濾波,如用大的濾波電容使直流更加的穩(wěn)定,用104(0.1uF)的小電容去掉高頻等等,只有這樣才能在一定程序上提高抗干擾性。在程序方面,我這里做的很簡單,用了遙控器的1-8號鍵做1-8的繼電器控制,按一下為繼電器通,再按一下為繼,二次按鍵的間隔時間大約在1秒鐘,這樣就可以避免按一次鍵會使繼電器返復通斷(按一次鍵的時間不定發(fā)送鍵值的次數(shù)也不定)。還用了遙控的電源按鍵,按下時所有斷電器關閉。這個電路如果使用AT89C51的話可以找到32路或更多的控制。有網(wǎng)友說要做兼容多遙控學習型的,我想也是可行的,那會用到IC2器件,存儲收到的數(shù)據(jù)做為學習,接收時再對比對,但是如果你的數(shù)據(jù)較多的話會造成速度慢等問題。我個人認為還是用專一的遙控器好點,比如說你用電視遙控去遙控電視和紅外開關,當你要開電視或許同時會觸發(fā)到紅外開關。

                                            

本文電路原理及實物:

本文使用程序如附件RAR文件

C51程序:

C51源碼:

/*----------------------------------------

8路紅外遙控開關控制器
(SAA3010T電視遙控器)

Copyright 2004/3/27
http://www.cdle.net
http://bbs.cdle.net

All rights reserved.

明浩 E-mail: pnzwzw@163.com
       pnzwzw@cdle.net

只用八路時可以用AT89C2051代替AT89C51
一體化接收頭輸出端拉P3.2(int0),P1為控制輸出端。
可以擴展到32路或更多
輸出為低電平有效
----------------------------------------*/

#include <AT89x51.h>

static unsigned char data IRCode[3],IRCON,IRCON2;
static unsigned char data DT;

void main(void)
{
unsigned int de;

TMOD = 0x01; //定時器0方式1
EA = 1; //允許CPU中斷
IT0 = 1; //INT0下降沿有效
EX0 = 1; //開INT0中斷;
do
{
for (de=0; de<10000; de++)
P3_6 = 1;
for (de=0; de<10000; de++)
P3_6 = 0;
if (DT)
{
for (de=0; de<30000; de++) //這里起到按鍵值正確后會有一個延時,防止重復按鍵
P3_6 = 1;
for (de=0; de<30000; de++)
P3_6 = 0;
DT = 0;
}
EX0 = 1;
}
while(1);
}

//定時器0中斷處理
void timeint(void) interrupt 1 using 2
{
TH0=0xFD;
TL0=0x1E; //設定時值為800us

if (IRCON<3)
{
if (IRCON2<8) //每中斷一次讀一次遙控接收頭的狀態(tài),每二次為遙控編碼中的一個位
{
IRCON2++;
IRCode[IRCON]=IRCode[IRCON]<<1; //每讀一次放入變量中的二進制的一個位,每次左移一位
IRCode[IRCON]=IRCode[IRCON] | P3_2; //每八次填滿一個字節(jié),一個字節(jié)存放遙控編碼4個位
}
else
{
IRCON++; //填滿一個字節(jié),指向下一個變量
IRCON2=0; //計數(shù)清零
}
}else
{
TR0 = 0; //關閉定時器
ET0 = 0; //定時器0中斷關閉
if ((IRCode[1]!=0xFF) && (IRCode[2]!=0xFF))
{
if (IRCode[1] == 0x55)
{
switch (IRCode[2])
{
case 0xAB: //1-8鍵控制
P1_0 = ~P1_0;
DT = 1;
break;
case 0xAC:
P1_1 = ~P1_1;
DT = 1;
break;
case 0xAD:
P1_2 = ~P1_2;
DT = 1;
break;
case 0xB2:
P1_3 = ~P1_3;
DT = 1;
break;
case 0xB3:
P1_4 = ~P1_4;
DT = 1;
break;
case 0xB4:
P1_5 = ~P1_5;
DT = 1;
break;
case 0xB5:
P1_6 = ~P1_6;
DT = 1;
break;
case 0xCA:
P1_7 = ~P1_7;
DT = 1;
break;
case 0xD2: //按關閉電源鍵,關閉所有繼電器
P1 = 0xFF;
DT = 1;
break;
}
}
}
}
}

//INT0中斷
void INT0Fun(void) interrupt 0 using 2
{
EX0 = 0; //外部中斷0關閉
ET0 = 1; //定時器0中斷打開
TH0=0xFD;
TL0=0x1E; //設定時值為800us

for (IRCON=0; IRCON<3; IRCON++)
IRCode[IRCON] = 0;
IRCON = 0;
IRCON2 = 0; //計數(shù)清零

TR0 = 1;//開始計數(shù)
}

  • 上一篇: 用單片機實現(xiàn)藍牙功能
  • 下一篇: 沒有了
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網(wǎng)友評論:(只顯示最新5條。)
    關于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

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

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

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1