久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4527|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)無(wú)線供電紅外遙控旋轉(zhuǎn)LED原理圖及程序 實(shí)測(cè)效果還可以

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
那個(gè)寶的旋轉(zhuǎn)LED 原理圖及程序 實(shí)測(cè)效果還可以

無(wú)線供電小板原理圖:

底盒上的紅外發(fā)光二極管,需對(duì)準(zhǔn)旋轉(zhuǎn)主板的紅外接收管
紅外發(fā)光二極管點(diǎn)亮后需用攝像頭才可看到發(fā)光
人眼無(wú)法直接看到發(fā)光,請(qǐng)勿以為是普通發(fā)光二極管,沒(méi)看到亮起來(lái)就丟了
中功率三級(jí)管 (要加散熱片)
自激震蕩電路,把5V直流電壓轉(zhuǎn)換成交流電壓




作用:35顆LED獨(dú)立控制顯示,D0電源指示燈不可控
常見(jiàn)問(wèn)題分析:LED焊接反,虛焊,單片機(jī)虛焊都有可能導(dǎo)致該LED不亮,對(duì)應(yīng)處理即可

原理:由次級(jí)線圈感應(yīng)的交流電壓經(jīng)過(guò)4個(gè)4148全波整流
經(jīng)過(guò)5V1穩(wěn)壓二極管進(jìn)行5V穩(wěn)壓
220uf電容濾波
作用: 給旋轉(zhuǎn)主板供電
常見(jiàn)問(wèn)題:4148,5V1,電容焊接反都會(huì)導(dǎo)致供電不正常
次級(jí)線圈焊接到板上L1處時(shí)注意:應(yīng)該是焊接線圈的不包漆部分

作用:提供時(shí)鐘信息
常見(jiàn)問(wèn)題分析:時(shí)鐘顯示不正常:一般是時(shí)鐘芯片虛焊導(dǎo)致
秒不走動(dòng):一般是晶振有問(wèn)題導(dǎo)致,或者把20pf電容焊成104電容,后背電池接反也會(huì)導(dǎo)秒不走

作用:利用紅外對(duì)管作起點(diǎn)檢測(cè)
常見(jiàn)問(wèn)題分析:焊接反或者沒(méi)對(duì)準(zhǔn)紅外發(fā)射管均會(huì)導(dǎo)致不顯示的現(xiàn)象
注意:紅外接收二極管長(zhǎng)腳是負(fù)極,短腳是正極

作用:紅外一體化接收頭接收遙控器按鍵
常見(jiàn)問(wèn)題分析:遙控不靈敏可能是焊接時(shí)候沒(méi)平行電路板焊接
無(wú)法遙控需先判斷是遙控器問(wèn)題還是接收頭問(wèn)題

作用:CPU控制LED,讀取時(shí)鐘信息,接收遙控,起點(diǎn)檢測(cè)
常見(jiàn)問(wèn)題分析:程序無(wú)法下載問(wèn)題:請(qǐng)用TTL串口進(jìn)行下載,初學(xué)者請(qǐng)務(wù)必仔細(xì)閱讀使用說(shuō)明關(guān)于程序下載部分
電源接反有可能導(dǎo)致單片機(jī)損壞,請(qǐng)務(wù)必注意

單片機(jī)源程序如下:
  1. #include "NEW_8051.H"
  2. #include "task.h"
  3. bit new_code;
  4. /*結(jié)構(gòu)體*/      /* 保存一次解碼后接收到的四字節(jié)數(shù)據(jù)*/
  5. static struct IR_data    //紅外接收的數(shù)據(jù)結(jié)構(gòu)
  6. {
  7.     unsigned char addr1;     // 地址1(客戶碼1)
  8.     unsigned char addr2;     // 地址2(客戶碼2)
  9.     unsigned char data1;     // 數(shù)據(jù)1(數(shù)據(jù)碼)
  10.     unsigned char data2;     // 數(shù)據(jù)2(數(shù)據(jù)碼反碼)
  11. } IR_DATA;
  12. #define GTime 53               
  13. #define CTime 114               
  14. #define D0MinTime 4  
  15. #define D0MaxTime 9  
  16. #define D1MinTime 11  
  17. #define D1MaxTime 16            
  18. #define TimeOut_cnt 250
  19. /*全局公共變量*/
  20. unsigned char T0_CNT;                // 定時(shí)器計(jì)數(shù)值
  21. unsigned char T0_CNT_bk;           // 計(jì)數(shù)備份
  22. bit TimeOut;                     // 超時(shí)標(biāo)志
  23. bit Guide;                           // 引導(dǎo)碼有效
  24. bit Continuous;                      // 連_發(fā)碼
  25. unsigned char xdata IR_Time[33]; // 保存每?jī)蓚(gè)下降沿之間的時(shí)間間隔
  26. uchar key_code;
  27. /*********************************************************************************************
  28. /*Timer1中斷子程序*/
  29. void TR1_Service(void) interrupt 3 using 2
  30. {
  31.     //static unsigned char  T;
  32.   //  T++;
  33.   //  if(T>1)
  34.   //  {
  35.       //  T=0;
  36.         T0_CNT ++;
  37.   //  }
  38.     if(T0_CNT > TimeOut_cnt)
  39.     {
  40.         TimeOut = 1;       // 超時(shí)標(biāo)志
  41.     }
  42. }
  43. /***********************************************************************/
  44. /*解碼核心程序*/
  45. void Decode(void)
  46. {
  47.     unsigned char i=0x00,j,k;
  48.     static unsigned char *p;  // 指向結(jié)構(gòu)體IR_DATA.XX的指針
  49.     EX1 = 0;   // 關(guān)外部中斷1
  50.     /*/////////////////////////進(jìn)行解碼處理////////////////////////*/
  51.     p = &IR_DATA.addr1;
  52.     for(k=0; k<4; k++)
  53.     {
  54.         for(j=0; j<8; j++)
  55.         {
  56.             if((IR_Time[i]>D0MinTime) & (IR_Time[i]<D0MaxTime))
  57.             {
  58.                 *p >>= 1;           // 右移1位,
  59.                 *p &= 0x7f;         // 與0111 1111置0. 數(shù)據(jù)“0” 0.56ms低電平+0.56ms高電平
  60.             }
  61.             else if((IR_Time[i]>D1MinTime) & (IR_Time[i]<D1MaxTime))
  62.             {
  63.                 *p >>= 1;                // 右移1位,
  64.                 *p |= 0x80;              // 或1000 0000置1. 數(shù)據(jù)“1” 0.56ms低電平+1.69ms高電平
  65.             }
  66.             i ++;
  67.         }
  68.         p ++;
  69.     }
  70.     if(IR_DATA.data2+IR_DATA.data1==0XFF)
  71.     {
  72.         key_code=IR_DATA.data1;
  73.                 new_code=1;
  74.     }
  75.     else
  76.     {
  77.         key_code=0XFF;   /**非本機(jī)遙控器或數(shù)據(jù)錯(cuò)誤**/
  78.     };
  79.     /*/////////////////////////解碼處理完畢////////////////////////*/
  80.     EX1 = 1;   // 重新開(kāi)放外部中斷1
  81. }
  82. void serviceINT0(void) interrupt 2 using 1  //{////外部中斷1的中斷函數(shù)。用于紅外線讀數(shù)。
  83. {
  84.     static unsigned char m=0;
  85.         TR1=1;
  86.         
  87.     T0_CNT_bk = T0_CNT;     // 備份時(shí)間計(jì)數(shù)值,即前一個(gè)下降沿到本下降沿的時(shí)間間隔
  88.     T0_CNT = 0x00;          // 清空時(shí)間計(jì)數(shù)值
  89.     if(TimeOut)             // 如果超時(shí)
  90.     {
  91.         //  TL0 = TIMER0_COUNT;     // 初始化定時(shí)器0       -0x1f(31)
  92.         TimeOut = 0;        // 清除超時(shí)標(biāo)志
  93.         m = 0;              // 復(fù)位數(shù)據(jù)位
  94.         T0_CNT = 0x00;      // 清空時(shí)間計(jì)數(shù)值
  95.         Guide = 0;          // 清除引導(dǎo)標(biāo)志
  96.         Continuous = 0;     // 清除連_發(fā)標(biāo)志
  97.     }
  98.     else       // 正常按鍵時(shí)長(zhǎng)58.5ms~76.5ms
  99.     {
  100.         if(Guide | Continuous)          // 如果引導(dǎo)碼有效
  101.         {
  102.             IR_Time[m++] = T0_CNT_bk;       // 保存時(shí)間間隔
  103.             if(m == 32)   // 接收夠32數(shù)據(jù)后
  104.             {
  105.                 m = 0;
  106.                 Guide = 0;    // 清除引導(dǎo)標(biāo)志
  107.                                  //new_code=1;
  108.                                 TR1=0;
  109.                 /*進(jìn)行解碼操作*/
  110.                 Decode();     // 解碼
  111.                                        
  112.             }
  113.         }
  114.         if(T0_CNT_bk > GTime)   // 如果時(shí)間間隔>引導(dǎo)碼時(shí)長(zhǎng)
  115.         {
  116.             Guide = 1;          // 使能引導(dǎo)標(biāo)志
  117.             m = 0;
  118.         };
  119.         if(T0_CNT_bk > CTime)    // 如果時(shí)間間隔>連_發(fā)碼時(shí)長(zhǎng)
  120.         {
  121.             Continuous = 1;      // 使能連_發(fā)標(biāo)志
  122.             m = 0;
  123.         }
  124.     }//end of 超時(shí)
  125. }
復(fù)制代碼

  1. #include "NEW_8051.H"
  2. #include "task.h"

  3. bit BIT_10MS;

  4. extern void OS_ALLRun(void);
  5. extern void start(void);

  6. /*********************************************************************************************************
  7. ** 函數(shù)名稱: init
  8. ** 功能描述: 初始化程序,此處包含定時(shí)器0、串行口初始化
  9. ** 輸  入: 無(wú)
  10. ** 輸  出: 無(wú)
  11. ** 全局變量: 無(wú)
  12. ** 調(diào)用模塊:
  13.   **
  14. ** 作  者:
  15. ** 日  期:
  16. **-------------------------------------------------------------------------------------------------------
  17. ** 修 改 人:
  18. ** 日  期:
  19. **------------------------------------------------------------------------------------------------------
  20. ********************************************************************************************************/
  21. void init()
  22. {
  23.    
  24.         //"系統(tǒng)初始化"
  25.         //IE = 0x00;      //"清除中斷"
  26.         EA = 1;                        //總中斷
  27.         //ES = 1;         //4"串行中斷允許"
  28.         //EX0 = 1;        //0"外部中斷0允許"
  29.         //ET0 = 1;        //1"定時(shí)器0中斷允許"
  30.         //EX1 = 1;        //2"外部中斷1允許"
  31.         //ET1 = 1;        //3"定時(shí)器1中斷允許"
  32.         //ET2 = 1;
  33.         //IP = 0;         //"清除中斷優(yōu)先級(jí)"
  34.         //PS = 1;         //"串行中斷優(yōu)先"
  35.         //PX0 = 1;        //"外部中斷0"
  36.         //PT0 = 1;        //"定時(shí)器中斷0"
  37.         //PX1 = 1;        //"外部中斷1"
  38.         //PT1 = 0;        //"定時(shí)器中斷1"
  39.         //TCON--------     "定時(shí)器控制寄存器",   TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0
  40.         //TCON = 0;
  41.         //TF1             "T1溢出標(biāo)志"
  42.         //TR1 = 1;        //"T1運(yùn)行控制"
  43.         //TF0             "T0溢出標(biāo)志"
  44.         //TR0 = 1;        //"T0運(yùn)行控制"
  45.         //IE1             "外部中斷1申請(qǐng)標(biāo)志"
  46.         //IT1 = 1;        //"外部中斷1觸發(fā)方式 0=電平 1=邊沿"
  47.         //IE0             "外部中斷0申請(qǐng)標(biāo)志"
  48.         //IT0 = 1;        //"外部中斷0觸發(fā)方式 0=電平 1=邊沿"
  49.         //TMOD--------    "定時(shí)器模式控制寄存器"
  50.         //  | GATE   | C//T   | M0     | M1    | GATE   | C//T   | M0       | M1        |
  51.         //"高4位用于T1  低4位用于T0"
  52.         //TMOD = 0x21;
  53.         //SCON  "串行控制"
  54.         //| SM0 | SM1 | SM2 | REN | TB8 | RB8 | TI  | RI  |
  55.         //"| SM0  SM1 | 工作方式  |   說(shuō)    明   |   波 特 率    |"
  56.         //"|   0    0 | 方 式 0   |? 同步移位   |   fosc/12     |"
  57.         //"|   0    1 | 方 式 1   | 10位異步收發(fā) |  定時(shí)器控制   |"
  58.         //"|   1    0 | 方 式 2   | 11位異步收發(fā) |fosc/32|fosc/64|"
  59.         //"|   1    1 | 方 式 3   | 11位異步收發(fā) |  定時(shí)器控制   |"
  60.         //"SM2 多機(jī)通訊允許"
  61.         //"REN 接收允許控制"
  62.         //"TB8 發(fā)送數(shù)據(jù)第9位"
  63.         //"RB8 接收數(shù)據(jù)第9位"
  64.         //"TI  發(fā)送中斷標(biāo)志"
  65.         //"RI  接受中斷標(biāo)志"
  66.         //SCON = 0x50;
  67.         //PCON "電源控制寄存器"
  68.         //SMOD"波特率選擇位 =1 方式1,2,3 波特率加倍"
  69.         //"波特率=2^(sod)*fosc/(32*12*(256-初值))"
  70.     //T2CON = 0x0;
  71.     //TR2 = 1;
  72.     //ET2 = 1;
  73. //-----------中斷初始化-------------------------------------------------  BELL
  74. //INT0 init                  
  75. #ifdef EN_OS_INT0
  76.     IT0 = 1;    //外部中斷為邊沿觸發(fā)
  77.     EX0 = 1;    //允許外部中斷
  78. #endif



  79.   #ifdef EN_OS_INT1
  80. //        PX1 = 1;    //"外部中斷1"
  81.     IT1 = 1;    //外部中斷為邊沿觸發(fā)
  82.     EX1 = 1;    //允許外部中斷
  83.         IP=0X40;
  84.   #endif         
  85.   
  86.    
  87. #ifdef EN_OS_SERIAL
  88.     SCON = 0x50;
  89.     //TMOD|= 0x20;
  90.         BRT           = 0xfb;  //0xfb: 18.432MHz,12T,SMOD=0,9600bps
  91.         AUXR   |= 0x11;        // 使用獨(dú)立波特率發(fā)生器
  92.    /* TH1  = 0xFB;
  93.     TL1  = 0xFB;
  94.     TR1  = 1; */
  95.     ES   = 1;       //允許串口中斷
  96.     PS = 1;         //"串行中斷優(yōu)先"
  97.     PSH;
  98. #endif

  99. #ifdef EN_OS_TIMER0
  100. /****************定時(shí)器0初始化****************/
  101.   TMOD|=0X01;
  102.           ET0=1;
  103.         TH0 =0x0FE; //200us
  104.     TL0 =0x0CD;
  105. //        TR0=1;         
  106. #endif
  107. /****************定時(shí)器1初始化****************/
  108. #ifdef EN_OS_TIMER1
  109.      TMOD|=0X20;//8位自動(dòng)重載模式
  110.            ET1=1;  //定時(shí)器0開(kāi)中斷
  111.      TH1=0x00;//定時(shí)160us 晶振18.432M
  112.      TL1=0x00;
  113.          IPH=0x0C;
  114.          //TR1=1;
  115. #endif
  116. /***************************/
  117. #ifdef EN_OS_UART2         

  118.         S2CON  = 0x50;  //0101,0000 8位可變波特率,無(wú)奇偶校驗(yàn)位,允許接收
  119.         BRT           = 0xfb;  //0xfb: 18.432MHz,12T,SMOD=0,9600bps
  120.         AUXR   |= 0x11;  //T0x12,T1x12,UART_M0x6,BRTR,S2SMOD,BRTx12,EXTRAM,S1BRS        
  121.         IE2            = 0x01;        //允許串口2中斷,ES2=1
  122. #endif

  123. /***/
  124. #ifdef EN_OS_PCA0  //用于16位定時(shí)

  125.     CMOD = 0x80;            //0分頻
  126.     CCON = 0x00;   //清中斷標(biāo)志
  127.     CL = 0;
  128.     CH = 0;
  129.         CCAP0H = 0xEF; //40ms定時(shí)
  130.     CCAP0L = 0xD8;                                  //        30 200
  131.         CCAPM0 = 0x49; //設(shè)置PCA0為16位定時(shí)器,允許PCA模塊0中斷
  132.         //CR=1; //啟動(dòng)PCA計(jì)數(shù)
  133. #endif
  134. /*******************************************/
  135. #ifdef EN_OS_PCA1          //用于16位定時(shí)

  136.     CMOD = 0x8E;            //12分頻
  137.         CCON = 0x00;   //清中斷標(biāo)志   
  138.     CL = 0;
  139.     CH = 0;
  140.         CCAP1L =0x26;        //1MS定時(shí)
  141.     CCAP1H =0x02;   
  142.         //CCAPM1 = 0x49;  允許PCA模塊1中斷

  143. #endif
  144. /***********************************************************************/
  145. }
  146. /*********************************************************************************************************
  147. ** 函數(shù)名稱: main
  148. ** 功能描述: 主函數(shù),用戶程序從這里執(zhí)行
  149. ** 輸  入: 無(wú)
  150. ……………………

  151. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
綜合效果程序.zip (172.71 KB, 下載次數(shù): 40)
旋轉(zhuǎn)LED主控板.pdf (186.6 KB, 下載次數(shù): 35)
無(wú)線供電小板原理圖.pdf (115.89 KB, 下載次數(shù): 33)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:516266 發(fā)表于 2019-9-18 15:41 | 只看該作者
樓主有沒(méi)有焊好的實(shí)物圖?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久久精品国产 | 日韩国产中文字幕 | 精品国产一区三区 | 亚洲欧美综合 | 99久久日韩精品免费热麻豆美女 | 久久久久国产一区二区三区 | 97av| 成人三级在线播放 | 日韩欧美不卡 | 亚洲欧美日本在线 | 国产精品不卡一区 | 精久久久 | 在线成人www免费观看视频 | 亚洲综合区 | 日韩精品视频在线免费观看 | 久久福利电影 | 欧美精品一区二区在线观看 | 久久精品福利视频 | 国产精品免费观看视频 | xnxx 日本免费 | 爱爱视频日本 | 亚洲高清视频一区二区 | 国产精品av久久久久久久久久 | 日韩视频区 | 在线欧美亚洲 | 在线一区 | 欧美日韩国产在线 | 欧美三级在线 | www,黄色,com | 日本亚洲欧美 | 日韩高清av | 狠狠狠色丁香婷婷综合久久五月 | 国产免费观看一级国产 | 国产精品视频区 | 成人免费视频观看 | 久久在线| 免费黄色录像片 | 亚洲色视频 | 免费黄色大片 | 国产视频一区在线 | 日韩一区二区视频 |