欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5128|回復: 0
打印 上一主題 下一主題
收起左側

C51單片機紅外風扇遙控電路原理圖與程序

[復制鏈接]
跳轉到指定樓層
樓主
市場上銷售的帶遙控的風扇價格普遍比較昂貴,如果能用普通的電視紅外線遙控器來遙控風扇調檔轉速,對于DIY們來說,不但可以節約金錢,還可以提高自己的動手能力,何樂而不為呢?
本電路采用價格低廉的AT89C2051單片機為主控CPU,一體化接受頭接受遙控器SSA3010T發出的編碼,送CPU解碼后,CPU控制相應的單片機動作!

電路原理圖如下:


單片機源程序如下:
  1. /*---------------------------------------------
  2. 本程序采用SAA3010T電視遙控器
  3. 若沒有SAA3010T的遙控器,讀者可獲知相應的編碼,
  4. 更改CASE語句里的相應的數據,即可!
  5. 這里不在敘述如何獲知編碼,望讀者諒解!
  6. ----------------------------------------------*/
  7. #include <AT89x51.h>

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

  10. void main(void)
  11. {
  12.         unsigned int de;

  13.         TMOD = 0x01; //定時器0方式1
  14.         EA = 1;      //允許CPU中斷
  15.         IT0 = 1;     //INT0下降沿有效
  16.         EX0 = 1;     //開INT0中斷
  17.         P3_3=0x00;
  18.         P3_0=0x00;
  19.         P3_5=0x00;
  20.           P1=0Xc0;
  21.         do
  22.         {
  23.                 for (de=0; de<8000; de++)
  24.                         P3_7 = 1;     //LED點亮
  25.                 for (de=0; de<8000; de++)
  26.                         P3_7 = 0;     //LED熄滅
  27.                 if (DT)
  28.                 {
  29.                         EX0=0;  //關閉外中斷
  30.                         for (de=0; de<30000; de++) //這里起到按鍵值正確后會有一個延時,防止重復按鍵
  31.                                 P3_7 = 1;
  32.                         for (de=0; de<30000; de++)
  33.                                 P3_7 = 0;

  34.                         DT = 0;
  35.                 }
  36.                 EX0 = 1;
  37.         }while(1);
  38. }

  39. //定時器0中斷處理
  40. void timeint(void) interrupt 1 using 2
  41. {
  42.         TH0=0xFC;     //12M: TH0=0XFC;TL0=0XE0;
  43.         TL0=0xE0;    // 設定時值為800us  500:FE0C

  44.         if (IRCON<3)
  45.         {
  46.                 if (IRCON2<8) //每中斷一次讀一次遙控接收頭的狀態,每二次為遙控編碼中的一個位
  47.                 {
  48.                         IRCON2++;
  49.                         IRCode[IRCON]=IRCode[IRCON]<<1;     //每讀一次放入變量中的二進制的一個位,每次左移一位
  50.                         IRCode[IRCON]=IRCode[IRCON] | P3_2; //每八次填滿一個字節,一個字節存放遙控編碼4個位
  51.                 }
  52.                 else
  53.                 {
  54.                         IRCON++;  //填滿一個字節,指向下一個變量
  55.                         IRCON2=0; //計數清零
  56.                 }
  57.         }
  58.         else
  59.         {
  60.                 TR0 = 0; //關閉定時器
  61.                 ET0 = 0; //定時器0中斷關閉
  62.                 if ((IRCode[1] != 0xFF) && (IRCode[2] != 0xFF))
  63.                 {
  64.                         if (IRCode[1] == 0x55)
  65.                         {
  66.                                 switch (IRCode[2]) //可根據實際情況而定,其格式為P1_X=~P1_X;DT=1;break;
  67.                                 {
  68.                                         case 0xAB:P1=0Xf9;P3_3=0x01;P3_0=0x00;P3_5=0x00;DT = 1;break;
  69.                                         case 0xAC:P1=0Xa4;P3_0=0x01;P3_5=0x00;P3_3=0x00;DT = 1;break;
  70.                                         case 0xAD:P1=0Xb0;P3_5=0x01;P3_3=0x00;P3_0=0x00;DT = 1;break;
  71.                                         case 0xD2:P1=0xff;P3_3=0x00;P3_0=0x00;P3_5=0x00;DT = 1;break;
  72.                                         default :break;
  73.                                 
  74.                                 }//switch
  75.                         }
  76.                 }
  77.         }
  78. }

  79. //INT0中斷
  80. void INT0Fun(void) interrupt 0 using 2
  81. {
  82.         EX0 = 0; //外部中斷0關閉
  83.         ET0 = 1; //定時器0中斷打開
  84.         TH0=0xFC;
  85.         TL0=0xE0; //設定時值為800us

  86.         for (IRCON=0; IRCON<3; IRCON++)
  87.                 IRCode[IRCON] = 0;

  88.         IRCON = 0;
  89.         IRCON2 = 0; //計數清零

  90.         TR0 = 1;//開始計數
  91. }
復制代碼

所有資料51hei提供下載:
基于單片機的紅外風扇遙控原理圖與C51程序.rar (258.65 KB, 下載次數: 34)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表