找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2284|回复: 2
收起左侧

制作天猫精灵红外线发射控制灯。

[复制链接]
ID:134870 发表于 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;      //定时器0工作方式2,8位自动重装
        TH0 = 0x00;        //高8位装入0那么定时器溢出一次的时间是256个机器周期
        TL0 = 0x00;
        ET0 = 1;           //定时器0中断
        TR0 = 1;           //启动定时器0

        IT0 = 1;           //设置外部中断0为跳沿触发方式,来一个下降沿触发一次
        EX0 = 1;           //启动外部中断0
        //DELAY_MS (200);  //延时等待I/O接口电平状态稳定
        while(1)
        {
//           unsigned char a; //临时变量
                if(IRok)    //判断脉宽是否检测完毕                    
                {   
                        IRcordpro();//根据脉宽解码出4个字节的数据
                        IRok = 0;        //重新等待脉宽检测
                        if(IRpro_ok) //判断是否解码完毕  
                        {
                        switch(IRcord[2])
                                   {
                                          /*********************************************************
                                     case 0xCC:        //  开关

                                          beep = 0; DELAY_MS(5); beep = 1;
                                       if(POWER == 0){ //如果当前状态为关,则执行开灯程序
                                               for(a=0;a<=Bright;a++){ //
                                                              PWM0_set(a);
                                                            DELAY_MS (20); //渐暗的时间间隔               
                                                                     }
                                                     PWM0_set(Bright); //达到存储的LED亮度
                                                            POWER = 1; //把状态标志位变成开        
                                                            }else{ //如果当前状态为开,则执行关灯程序
                                                for(a=Bright;a>0;a--){ //循环渐暗
                                                              PWM0_set(a);
                                                            DELAY_MS (20); //渐暗的时间间隔        
                                                                     }
                                                          PWM0_set(0); //关LED
                                                            POWER = 0; //把状态标志位变成关
                                                                 }

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

                                  case 0x50:            //-                          客厅调大                50

                                                                                 
                                          beep = 0; DELAY_MS(5); beep = 1;
                                                                                 DELAY_MS(10);
                                          beep = 0; DELAY_MS(5); beep = 1;
                                                                                       LED2=1;
//                                      if( POWER == 1){ //加亮度键按下,同时在开灯状态下
                                                 Bright=Bright+25;  //亮度值加1
                                                 PWM0_set(Bright); //将值写入PWM控制LED亮度
                                               if(Bright >= 0xE0){ //如果亮度值大于0xFD,则不再增加
                                                        Bright = 0xE0;
                                                                    if(Bright== 0xE0){
                                                                                      LED1=0 ;
                                                                                         }
                                                                 }
                                                    DELAY_MS (20); //渐变亮度的时间间隔
                        
//                                                             }

                                                break;


                                                                   case 0x74:               //+                                 客厅调小        74
                                                                  
                                                                                
                                         beep = 0; DELAY_MS(10); beep = 1;
                                                                         DELAY_MS(10);
                                         beep = 0; DELAY_MS(10); beep = 1;
                                                                                   LED1=1;
//                                                         if( POWER == 1){ //减亮度键按下,同时在开灯状态下
                                                Bright=Bright-25;  //亮度值减1
                                                PWM0_set(Bright); //将值写入PWM控制LED亮度
                                               if(Bright < 0x20){ //如果亮度值小于0x08,则不再减少
                                                        Bright = 0x20;
                                                                   if(Bright== 0x20){
                                                                                     LED2=0 ;
                                                                                        }
                                                                }
                                                   DELAY_MS (20); //渐变亮度的时间间隔
//                                                            }               
                                               break;

                                        /*********************************************************/
                                                            case 0x0a:Jdq0=~Jdq0;
                                                           break;  //电源 显示相应的按键值 卫生间 0a
                                            case 0x02:Jdq0=~Jdq0;
                                                           break;  //电源 显示相应的按键值                 02

                                             case 0x6a:Jdq1=~Jdq1;
                                                            break; //电源 显示相应的按键值 客厅         6a
                                             case 0x7c:Jdq1=~Jdq1;
                                                            break; //电源 显示相应的按键值                 7c

                                             case 0x0F:Jdq2=~Jdq2;
                                                            break; //电源 显示相应的按键值  餐厅         开关        0f
                                             case 0x05:Jdq2=~Jdq2;
                                                            break; //电源 显示相应的按键值        餐厅 大 小                05

                                             case 0x20:Jdq3=~Jdq3;
                                                            break; //电源 显示相应的按键值         主卧                        20
                                             case 0x24:Jdq3=~Jdq3;
                                                            break; //电源 显示相应的按键值                                        24

                                             case 0x64:Jdq4=~Jdq4;
                                                            break; //电源 显示相应的按键值         次卧                        64
                                             case 0x66:Jdq4=~Jdq4;
                                                            break; //电源 显示相应的按键值                                        66

                                             case 0x1a:Jdq5=0;
                                                            break; //电源 显示相应的按键值          儿童                        1a
                                             case 0x1e:Jdq5=1;
                                                            break; //电源 显示相应的按键值                                        1e          大13         小11

51hei图片_20200307202921.jpg
51hei图片_20200307202937.jpg

红外线pwm.rar

37.7 KB, 下载次数: 12, 下载积分: 黑币 -5

回复

使用道具 举报

无效楼层,该帖已经被删除
ID:1 发表于 2020-3-7 21:16 | 显示全部楼层
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
回复

使用道具 举报

ID:328014 发表于 2020-3-7 23:49 | 显示全部楼层
好东东 这个电路板是用的什么啊?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表