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

QQ登錄

只需一步,快速開始

帖子
查看: 2308|回復(fù): 2
收起左側(cè)

制作天貓精靈紅外線發(fā)射控制燈。

[復(fù)制鏈接]
ID:134870 發(fā)表于 2020-3-7 20:24 | 顯示全部樓層 |閱讀模式
本帖最后由 qvbhusrh 于 2020-3-7 23:14 編輯






void main()
{
               
        PWM_init();         //PWM初始化
//                UART_init();        //串口小秘書在此初始化了 ^_^
                P2M0=0x0f;
                P2M1=0x00;

        EA        = 1;      //總中斷允許

        TMOD |= 0x02;      //定時(shí)器0工作方式2,8位自動(dòng)重裝
        TH0 = 0x00;        //高8位裝入0那么定時(shí)器溢出一次的時(shí)間是256個(gè)機(jī)器周期
        TL0 = 0x00;
        ET0 = 1;           //定時(shí)器0中斷
        TR0 = 1;           //啟動(dòng)定時(shí)器0

        IT0 = 1;           //設(shè)置外部中斷0為跳沿觸發(fā)方式,來一個(gè)下降沿觸發(fā)一次
        EX0 = 1;           //啟動(dòng)外部中斷0
        //DELAY_MS (200);  //延時(shí)等待I/O接口電平狀態(tài)穩(wěn)定
        while(1)
        {
//           unsigned char a; //臨時(shí)變量
                if(IRok)    //判斷脈寬是否檢測完畢                    
                {   
                        IRcordpro();//根據(jù)脈寬解碼出4個(gè)字節(jié)的數(shù)據(jù)
                        IRok = 0;        //重新等待脈寬檢測
                        if(IRpro_ok) //判斷是否解碼完畢  
                        {
                        switch(IRcord[2])
                                   {
                                          /*********************************************************
                                     case 0xCC:        //  開關(guān)

                                          beep = 0; DELAY_MS(5); beep = 1;
                                       if(POWER == 0){ //如果當(dāng)前狀態(tài)為關(guān),則執(zhí)行開燈程序
                                               for(a=0;a<=Bright;a++){ //
                                                              PWM0_set(a);
                                                            DELAY_MS (20); //漸暗的時(shí)間間隔               
                                                                     }
                                                     PWM0_set(Bright); //達(dá)到存儲(chǔ)的LED亮度
                                                            POWER = 1; //把狀態(tài)標(biāo)志位變成開        
                                                            }else{ //如果當(dāng)前狀態(tài)為開,則執(zhí)行關(guān)燈程序
                                                for(a=Bright;a>0;a--){ //循環(huán)漸暗
                                                              PWM0_set(a);
                                                            DELAY_MS (20); //漸暗的時(shí)間間隔        
                                                                     }
                                                          PWM0_set(0); //關(guān)LED
                                                            POWER = 0; //把狀態(tài)標(biāo)志位變成關(guān)
                                                                 }

                                                break;
                                          /*********************************************************/

                                  case 0x50:            //-                          客廳調(diào)大                50

                                                                                 
                                          beep = 0; DELAY_MS(5); beep = 1;
                                                                                 DELAY_MS(10);
                                          beep = 0; DELAY_MS(5); beep = 1;
                                                                                       LED2=1;
//                                      if( POWER == 1){ //加亮度鍵按下,同時(shí)在開燈狀態(tài)下
                                                 Bright=Bright+25;  //亮度值加1
                                                 PWM0_set(Bright); //將值寫入PWM控制LED亮度
                                               if(Bright >= 0xE0){ //如果亮度值大于0xFD,則不再增加
                                                        Bright = 0xE0;
                                                                    if(Bright== 0xE0){
                                                                                      LED1=0 ;
                                                                                         }
                                                                 }
                                                    DELAY_MS (20); //漸變亮度的時(shí)間間隔
                        
//                                                             }

                                                break;


                                                                   case 0x74:               //+                                 客廳調(diào)小        74
                                                                  
                                                                                
                                         beep = 0; DELAY_MS(10); beep = 1;
                                                                         DELAY_MS(10);
                                         beep = 0; DELAY_MS(10); beep = 1;
                                                                                   LED1=1;
//                                                         if( POWER == 1){ //減亮度鍵按下,同時(shí)在開燈狀態(tài)下
                                                Bright=Bright-25;  //亮度值減1
                                                PWM0_set(Bright); //將值寫入PWM控制LED亮度
                                               if(Bright < 0x20){ //如果亮度值小于0x08,則不再減少
                                                        Bright = 0x20;
                                                                   if(Bright== 0x20){
                                                                                     LED2=0 ;
                                                                                        }
                                                                }
                                                   DELAY_MS (20); //漸變亮度的時(shí)間間隔
//                                                            }               
                                               break;

                                        /*********************************************************/
                                                            case 0x0a:Jdq0=~Jdq0;
                                                           break;  //電源 顯示相應(yīng)的按鍵值 衛(wèi)生間 0a
                                            case 0x02:Jdq0=~Jdq0;
                                                           break;  //電源 顯示相應(yīng)的按鍵值                 02

                                             case 0x6a:Jdq1=~Jdq1;
                                                            break; //電源 顯示相應(yīng)的按鍵值 客廳         6a
                                             case 0x7c:Jdq1=~Jdq1;
                                                            break; //電源 顯示相應(yīng)的按鍵值                 7c

                                             case 0x0F:Jdq2=~Jdq2;
                                                            break; //電源 顯示相應(yīng)的按鍵值  餐廳         開關(guān)        0f
                                             case 0x05:Jdq2=~Jdq2;
                                                            break; //電源 顯示相應(yīng)的按鍵值        餐廳 大 小                05

                                             case 0x20:Jdq3=~Jdq3;
                                                            break; //電源 顯示相應(yīng)的按鍵值         主臥                        20
                                             case 0x24:Jdq3=~Jdq3;
                                                            break; //電源 顯示相應(yīng)的按鍵值                                        24

                                             case 0x64:Jdq4=~Jdq4;
                                                            break; //電源 顯示相應(yīng)的按鍵值         次臥                        64
                                             case 0x66:Jdq4=~Jdq4;
                                                            break; //電源 顯示相應(yīng)的按鍵值                                        66

                                             case 0x1a:Jdq5=0;
                                                            break; //電源 顯示相應(yīng)的按鍵值          兒童                        1a
                                             case 0x1e:Jdq5=1;
                                                            break; //電源 顯示相應(yīng)的按鍵值                                        1e          大13         小11

51hei圖片_20200307202921.jpg
51hei圖片_20200307202937.jpg

紅外線pwm.rar

37.7 KB, 下載次數(shù): 12, 下載積分: 黑幣 -5

回復(fù)

使用道具 舉報(bào)

ID:1 發(fā)表于 2020-3-7 21:16 | 顯示全部樓層
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復(fù)

使用道具 舉報(bào)

ID:328014 發(fā)表于 2020-3-7 23:49 | 顯示全部樓層
好東東 這個(gè)電路板是用的什么啊?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表