三色灯渐变DIY制作
阅读原文时间:2023年07月14日阅读:1

   小编前几天查资料,怎么使用12864屏幕的用法,突然发觉微博是个好东西,随着自己的成长,学习了很多的知识,没有做笔记的习惯,只是习惯把用到的硬件,传感器,资料写到程序的备注内,但感觉,用到时不是那么方便,同时也算是,记录自己的学习,分享学习经验和过程,一起和大家共勉。

  前段时间,一直在研究51单片机PWM的用法,但由于51单片机内部资源限制,只能输出两路PWM(P1.3和P1.4),而我想用单片机控制RGB三色灯混出不同的颜色,所以,只靠51的两路输出PWM不能达到要求,由于,只是调光,所以对于PWM的精度要求并不高,随即,想到用软件程序来模拟三路PWM的输出,经过一段时间的研究借鉴和编写网上大佬的程序,可以实现三原色的互相混合,程序中又加入了自动调色和手动调色,通电后,默认是自动变色,从绿色起步开始渐变,直至下一个绿色为一个渐变循环;手动调色功能我是用水银开关来实现,当想要手动调色固定一个颜色时,只需把三色灯倾斜,此时即进入手动调色功能,当颜色渐变到想要的颜色时,摆正三色灯即可,把颜色固定下来,不会再变化,如若,又想让它自动变色,只需晃动下三色灯即可,进入自动渐变颜色的模式。可能是自己刚入门把,可能程序有些晦涩和繁杂,但后面都有我很多的备注。

                                                                                                                                                 2017-10-25

                                                                                                                                                                                           by: L H 

先附上几张图片,外表亚克力图案用的是学校激光雕刻机雕刻的,嘻嘻

 

/*

程序完结于:2017.10.22
by:LH
QQ:1336294189,可技术交流

功能:三色(R,G,B)可自动渐变,也可手动调至喜欢颜色,保持颜色.

此程序仅供娱乐制作,不可投入商用!!,初入51,大神看后勿喷,谢谢

     /\*  
                        \_ooOoo\_  
                       o8888888o  
                       88" . "88  
                       (| -\_- |)  
                       O\\  =  /O  
                    \_\_\_\_/\`---'\\\_\_\_\_  
                  .'  \\\\|     |//  \`.  
                 /  \\\\|||  :  |||//  \\  
                /  \_||||| -:- |||||-  \\  
                |   | \\\\\\  -  /// |   |  
                | \\\_|  ''\\---/''  |   |  
                \\  .-\\\_\_  \`-\`  \_\_\_/-. /  
              \_\_\_\`. .'  /--.--\\  \`. . \_\_  
           ."" '<  \`.\_\_\_\\\_<|>\_/\_\_\_.'  >'"".  
          | | :  \`- \\\`.;\`\\ \_ /\`;.\`/ - \` : | |  
          \\  \\ \`-.   \\\_ \_\_\\ /\_\_ \_/   .-\` /  /  
     ======\`-.\_\_\_\_\`-.\_\_\_\\\_\_\_\_\_/\_\_\_.-\`\_\_\_\_.-'======  
                        \`=---='  
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
              佛祖保佑       永无BUG  
     \*/

/*

    STC15F104W重点介绍:

(1) 定时器模块:T0(中断标号 interrupt 1)和T2(中断标号 interrupt 12 ),T0工作在方式0时是16位可自动重装初始值的定时计数器,方式2时是8位自动重装的计数器,方式3时是可分解的;T2的工作模式固定在16位自动重装初始值模式,故特别适应到LED行业,该芯片的定时器模块可产生更高精度的定时时间。
(2) 内核:采用Y5超高速CPU内核,比普通1T还快20%,详情见指令集。共111条指令。
(3) 管脚图:
|--------|
MCLKO/!INT2/T0/RST/P3.4--|1 8|--P3.3/INT1/RSTOUT_LOW
VCC--|2 7|--P3.2/INT0
!INT3/T0CLKO/P3.5--|3 6|--P3.1/T2
GND--|4 5|--P3.0/!INT4/T2CLKO
|---------

(4) P3.3是RSTOUT_LOW,上电和复位后输出低电平,也可由软件设置低或高电平,该管脚可以作为16位或32位单片机的复位电路使用;P3.4可以输出系统时钟,故可以作为16位或32位单片机的的时钟电路;该芯片还有很强的加密功能,可取代加密芯片,单价只有一块多,故可以推荐给客户。
STC15F104W无串口,具有中继广播方式,可以软件模拟I2C、串口、SPI、利用IO口充放电测量外部电压实现AD功能。
可在下载软件中设置P3.1直通输出P3.0的输入电平,类似15系列串口1的中继广播方式。
STC15W104SW——DIP/SOP16,在性能和价格上都优于STC11F04E,故,可以替代STC11系列和89C4051等芯片,重点推荐给LED行业

(5) STC15F104W的外部中断可以用,而且多一个掉电唤醒专用定时器。
*/

#include //STC15F104W DIP-8型单片机,比STC12C5A60S2 1T 单片机快 20%
#define uchar unsigned char
#define uint unsigned int
unsigned char pwm_data_R,pwm_data_G,pwm_data_B,pwm_r,pwm_g,pwm_b;
sbit PWM_R=P3^;
sbit PWM_G=P3^;
sbit PWM_B=P3^;

sbit k1=P3^;

unsigned int count4=; //自动变色快慢控制
unsigned int count5=; //自动颜色循环值
unsigned int count6=; //手动颜色循环值
unsigned int count7=; //手动变色快慢控制
unsigned int count8=; //手动调节变色色表快慢控制位
unsigned int count9=; //手动调节变色色表种类值
unsigned int add=; //自动OR手动调节控制位 add=0 自动调色; add=1 受冻调色控制位
unsigned char flag=; //按键防抖控制位
unsigned char flag1=; //手动调节变色至自动变色的色值时,flag1=1;继续手动调色,则进入 色表 CO[] 颜色设定

unsigned char CO[][]= { //三基色混色数据表
{,,},//黄色 0
// {222,202,85},//香蕉色 1
{,,},//铬黄 2
// {230,139,83},//dougello 3
// {250,222,129},//froum gold 4
{,,},//金黄色 5
// {213,161,102},//黄花色 6
// {222,164,99},//瓜色 7
{,,},//胡萝卜色 8
{,,},//棕色 9
// {250,122,62},//肉色 10
{,,}, //黄褐色 11
// {184,140,140}, //玫瑰红 12

                                             {,,},    //钴色                              13  

// {2,164,154}, //锰蓝色 14
{,,}, //孔雀蓝 15
// {0,195,137}, //土耳其玉色 16
// {63,102,250}, //品蓝 17
// {103,88,200}, //石板蓝 18
{,,}, //青色 19

// {132,201,230}, //天蓝色 20
{,,}, //靛青 21
// {62,219,203}, //青绿色 22
{,,}, //黄绿色 23
{,,}, //翠绿色 24
// {185,246,196}, //薄荷绿 25
{,,}, //紫色 26
// {149,46,245}, //湖紫色 27
// {213,109,209}, //淡紫色 28
// {216,156,216} //梅红色 29

                                         };

void Init (void) //中断初始化 //内部时钟 12M晶振
{
TMOD = 0x00; //(不可位寻址)设定定时器 T0 工作方式 0(16位自动重装定时器)
TH0=(-)/; //装T0高位初值 /定时器周期为500US(频率2K) (做PWM频率)
TL0=(-)%; //装T0低位初值
ET0=; //(可位寻址)T0的溢出中断允许控制位,ET0=1允许T0中断; ET0=0禁止T0中断;
TR0=; //(可位寻址)允许定时器T0运行
EA=; //(可位寻址)开启总中断

   T2H=(-)/;  //装T2高位初值  
   T2L=(-)%;  //装T2低位初值  定时器周期为2US(频率500K)    (做PWM宽度调)  
   AUXR=0X94;           //辅助寄存器开启定时器T2,启动定时器T2,配置T0,T2时钟为 1T模式 (比STC15C5A 1T 模式快 20%)  
   IE2=0X04;              //IE2(不可位寻址):定时器T2\\T3\\T4中断控制寄存器(控制定时器T2中断允许)    ET2=0:禁止定时器T2产生中断  ET2=1:允许定时器T2产生中断

}
void timer0(void) interrupt //***********定时器T0中断子函数************** (做PWM频率)
{
PWM_R=;
PWM_G=;
PWM_B=;
pwm_r=;
pwm_g=;
pwm_b=;

 if(k1==)  
 {  
     if((k1==)&&(flag==))      //短按键识别切换;add=0切换自动变色,add=1长按手动调色,调制理想色时,松手即可  
     {  
       add++;  
       flag=;  
    if(add==) add=;  
     }  
 } else flag=;

      if(add==)  
      {  
                    count4++;              //自动变色快慢  
                  if(count4==)  
                    {  
                      count4=;  
                      count5++;  
                      if(count5==)     //自动颜色循环值  
                        count5=;  
                     }  
       }

      if(add==)  
      {  
             if((k1==)&&(flag==))  
               {  
                      count7++;  
                      if(count7==)      //手动调节变色快慢  
                      {  
                      count7=;  
                      count6++;  
                        }  
                     if(count6>=)  
                     {  
                       count6=;        //手动颜色循环值  
                        flag1=;           //flag1=1,时变换颜色为上面色表中的颜色  
                     }  
                      else flag1=;      //flag1=0,时自动变换颜色

                         if(flag1==)  
                         {  
                           count8++;  
                           if(count8==)    //手动调节变色色表快慢控制位  
                           {  
                             count9++;  
                              count8=;  
                             if(count9==)     //手动调节变色色表种类值  
                               {  
                              count9=;  
                              count6=;  
                              }  
                           }  
                        }  
                  }  
       }  

}

void timer1(void) interrupt //***********定时器T2中断子函数************** (做PWM宽度调)
{

if(pwm_r<pwm_data_R) pwm_r++;
else PWM_R=;

if(pwm_g<pwm_data_G) pwm_g++;
else PWM_G=;

if(pwm_b<pwm_data_B) pwm_b++;
else PWM_B=;

}

void jianbianRGB(unsigned int count3) //颜色渐变
{

 if(count3>=&&count3<)                  //绿变亮             G++  
 {  
   pwm\_data\_G=count3;  
   pwm\_data\_R=;  
   pwm\_data\_B=;  
 }  
 else if(count3>=&&count3<)               /// R++  
  {  
   pwm\_data\_R=count3-;  
   pwm\_data\_G=;  
   pwm\_data\_B=;

 }

 else if(count3>=&&count3<)                //B++  
  {  
        pwm\_data\_R=; //max 250  
      pwm\_data\_G=;  
      pwm\_data\_B=count3-;  
   }

 else if(count3>=&&count3<)                  // G--  
  {  
       pwm\_data\_R=;                        //max 250  
      pwm\_data\_G=-count3;  
      pwm\_data\_B=;  
  }  
   else if(count3>=&&count3<)               //B--  
    {  
    pwm\_data\_R=;  
     pwm\_data\_G=;  
   pwm\_data\_B=-count3;  
   }

   else if(count3>=&&count3<)          /// R--  
    {  
    pwm\_data\_R=-count3;  
     pwm\_data\_G=;  
      pwm\_data\_B=;  
    }

        else if(count3>=&&count3<)  
    {  
      pwm\_data\_R=;  
      pwm\_data\_G=;  
      pwm\_data\_B=count3-;                                  //B++  
    }

        else if(count3>=&&count3<)  
    {  
      pwm\_data\_R=;  
      pwm\_data\_G=count3-;                                     //绿变亮             G++  
      pwm\_data\_B=;  
    }

 else if(count3>=&&count3<)                         /// R++  
  {  
   pwm\_data\_R=count3-;  
   pwm\_data\_G=;  
   pwm\_data\_B=;

 }

   else if(count3>=&&count3<)  
    {  
     pwm\_data\_R=-count3;                        /// R--  
     pwm\_data\_G=-count3;                     // G--  
    pwm\_data\_B=-count3;                         //B--  
   }

 else if(count3>=&&count3<)  
  {                                             /// R++  
       pwm\_data\_R=count3-;                        //max 250  
      pwm\_data\_G=;  
      pwm\_data\_B=;  
  }

   else if(count3>=&&count3<)           //B++  
    {  
    pwm\_data\_R=;  
     pwm\_data\_G=;  
      pwm\_data\_B=count3-;  
    }

   else if(count3>=&&count3<)           //G++  
    {  
    pwm\_data\_R=;  
     pwm\_data\_G=count3-;  
      pwm\_data\_B=;  
    }

   else if(count3>=&&count3<)  
    {  
     pwm\_data\_R=-count3;                        /// R--  
     pwm\_data\_G=-count3;                     // G--  
    pwm\_data\_B=-count3;                         //B--  
   }  

}

void scankey()
{
switch(add)
{
case : jianbianRGB(count5);
count6=;
break;
case : if(flag1==) //自动渐变颜色
{
jianbianRGB(count6);
}
else //自定义颜色色表
{
pwm_data_R=CO[count9][];
pwm_data_G=CO[count9][];
pwm_data_B=CO[count9][];
}
count5=;
break;
default : jianbianRGB(count5); break;
}

}

//●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●//
void main()
{
// P3M1=0X00; //P3口设置为推挽模式,提高灯的亮度
// P1M0=0X38;
PWM_R=; //max 250
PWM_G=;
PWM_B=;
Init();
while() //主循环
{
scankey();
// PWM_R=1;
// PWM_G=0;
// PWM_B=0;

 }  

}

     /\*  
                             MMMMM  
                               MMMMMM  
                                 MMMMMMM  
                                  MMMMMMMM     .  
                                   MMMMMMMMM  
                                   HMMMMMMMMMM  
                                    MMMMMMMMMMMM  M  
                                    MMMMMMMMMMMMM  M  
                                     MMMMMMMMMMMMM  M  
                                     MMMMMMMMMMMMM:  
                                     oMMMMMMMMMMMMMM  
           .MMMMMMMMMMMMMMo           MMMMMMMMMMMMMMM M  
     MMMMMMMMMMMMMMMMMMMMMMMMMMM      MMMMMMMMMMMMMMMM  
       MMMMMMMMMMMMMMMMMMMMMMMMMMMM.  oMMMMMMMMMMMMMMM.M  
         MMMMMMMMMMMMMMMMMMMMMMMMMMMM  MMMMMMMMMMMMMMMM  
           MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM  
             oMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM  
               MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM  
                 MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM:                     H  
                  MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM                  .         MMM  
                   MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM              M       MMMMMM  
                    .MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM          M   MMMMMMMMMM  
             MM.      MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM       M MMMMMMMMMMMM  
                 MM    MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM    .MMMMMMMMMMMMMM  
                   MM  MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM  
                     MM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM  
            .MMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMM.MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM  
               HMMMMMMMMMMMMMMMMMMMMM.MMMMMMMMM.MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM  
                  MMMMMMMMMMMMMMM MMM.oMMMMMMM..MMMMMMMMM:MMMMMMMMMMMMMMMMMMMMMMM  
                    MMMMMMMMMMMMMM MM..MMMMMMM...MMMMMMM. MMMMMMMMMMMMMMMMMMMMM  
                      MMMMMMMMMMMMMMM ..MMMMMM...MMMMMM ..MMMMMMMMMMMMMMMMMMM  
                       MMMMMMM:M.MMM.M.. MMMMM M..MMMMM...MMMMMMMMMMMMMMMMMM  MMM  
                         MMMM. .M..MM.M...MMMMMM..MMMMM.. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM .  
                          MMMM..M....M.....:MMM .MMMMMM..MMMMMMM...MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM  
                           MMM.M.. ...M......MM.MMMMM.......MHM.M  .MMMMMMMMMMMMMMMMMMMMMMMMM  
                      MMMMMMMM..MM. . MMM.....MMMMMM.M.....M ..MM..M MMMMMMMMMMMMMMMMMMM  
                         .MMMMMHMM. ..MMMM. MMM............o..... . .MMMMMMMMMMMMMMM  
                            MMM. M... .........................M..:.MMMMMMMMMMMM  
                              oMMM............ .................M.M.MMMMMMMMM  
                                 .....MM........................ . MMMMMM  
                                M.....M.....................o.MM.MMMMMMMM.  
                                 M........................M.. ...MMMMMMMMMMMMMo  
                                   :....MMM..............MMM..oMMMMMMM  
                                    M...MMM.............MMMMMMM  
                                       .............:MMMMMMMM  
                                       M..... MMM.....M  
                                       M M.............  
                                       ................M  
                                    ooM.................MM  MoMMMMMoooM  
                               MMoooM......................MoooooooH..oMM  
                           MHooooMoM.....................MMooooooM........M  
                         oooooooMoooM......... o........MoooooooM............  
                         Mooooooooooo.......M.........Moooooooo:..............M  
                        MooMoooooooooM...M........:Mooooooooooo:..............M  
                       M..oooooooooooo .........Mooooooooooooooo..............M  
                      M...Mooo:oooooooo.M....ooooooooooooooooooo..M...........M  
                       ...oooooMoooooooM..Mooooooooooooo:oooooooM.M...........M.  
                      M...ooooooMoo:ooooMoooooooooooooHoooooooooH:M. ...........:  
                      M..MoooooooMoooooooooooooooooo:ooooooMooooMoM..............M  
                      M..ooooooooooMooooooooooooooHoooooooMooHooooM...............M  
                      ...ooooooooooooooooooo:MooooooooooooooMoMoooM................  
                     M...oooooooooooooooooooooooooooooooooooooMooMM................M  
                     ...MooooooooooooooooooooooooooooooooooooooooMo ................  
                     ...MooooooooooooooooooooooooooooooooooooooooM M................M  
                    M...ooooooooooooooooooooooooooooooooooooooooM   ................M  
                    ...MoooooooooooooooooooooooooooooooooooooooMM   .:...............  
                    .....MooooooooooooooooooooooooooooooooooooMoo       .............M  
                    M...... ooooooooooooooooooooooooooooooooooooM       M..............M  
                    M........MooooMMM MM MM  MMMMMMMMMooooooooM         M...............M  
                    .........HM     M:  MM :MMMMMM          M           M...............  
                   M..........M     M   MoM M                           M................M  
                   M.........:M  MoH  M M M MooooHoooMM.   M             M...............M  
                   M..........Moooo MMooM    oooooMooooooooM              M..............H  
                   M.........MooooM  Mooo  : ooooooMooooMoooM              M........ . .o.M  
                   H..  .....ooooo   oooo  M MooooooooooooooM               M... MMMMMMMMMMM  
                   MMMMMMMMMMooooM M oooo  .  ooooooMooooooooM              .MMMMMMMMMMMMMMM  
                   MMMMMMMMMMooooH : ooooH    oooooooooooooooo               MMMMMMMMMMMMMMM  
                   MMMMMMMMMMoooo    ooooM    Moooooooooooooooo              .MMMMMMMMMMMMMMM  
                   MMMMMMMMMMoooo    ooooM    MooooooooooooooooM              MMMMMMMMMMMMMMM  
                   MMMMMMMMMMoooM    ooooM     ooooooooooooooooo               MMMMMMMMMMM:M  
                   MMMMMMMMMMoooM   MooooM     oooooooooooMoooooo               MH...........  
                    . ......Mooo.   MooooM     oooooooooooooooooo              M............M  
                   M.M......oooo    MooooM     Moooooooooooooooooo:           .........M.....  
                   M.M.....Moooo    MooooM      ooooooooooooooooooM            .M............  
                   .......MooooH    MooooM      oooooooooMoooooooooo          M..o...M..o....M  
                   .o....HMooooM    MooooH      MooooooooMooooooooooM          .:M...M.......M  
                  M..M.....MoooM    :oooo:    .MooooooooHooMoooooooooM         M M... ..oM.M  
                   M...M.:.Mooo. MMMMooooo   oooooooooooMoooooooooooooM          ....M. M  
                    M:M..o.Moooooooooooooo MooooooooooooooMooooooooooooM          .Mo  
                           MooooooooooooooMooooooooooooMoMoooooooooooooo  
                           Mooooooooooooooo:ooooooooooooooooooooooooooooo  
                           ooooooooooooooooMooooooooooMoooooooooooooooooo  
                           ooooooooooooooooMoooooooooooMooooooooooooooooHo  
                           ooMooooooooooooooMoooooooooooooooooooooooooooMoM  
                          MooMoooooooooooooo.ooooooooooooooooooooooooooo:oM  
                          MoooooooooooooooooooooooooooooooooooooooooooooooM  
                          MoooMooooooooooooooMooooooooooooooooooooooooooooo.  
                          MoooMooooooooooooooMoooooooooooooooooooooooooMooooM  
                          MooooooooooooooooooMoooooooooooooooooooooooooMoooooM  
                          MooooMoooooooooooooMoooooooooooooooooooooooooMoHooooM  
                          ooooooMooooooooooooooooooooooooooooooooooooooooMoMoooM  
                         MooooooooooooooooooooMooooooooooooooooooooooooooMoooooH:  
                         MoooooooMooooooooooooMoooooooooooooooooooooooooooooHoooM  
                         MooooooooMoooooooooooMoooooooooooooooooooooooooMoooMooooM  
                         Moooooooooooooooooooooooooooooooooooooooooooooo.oooMooooo  
                         MoooooooooooooooooooooooooooooooooooooooooooooMoooooooooM  
                          MooooooooooooooooooooMoooooooooooooooooooooooooooooooooM  
                           MooooooooooooooooooooMHooooooooooooooooooooMoooo:ooooo  
                            MMooooooooooooooooooMoMHoooooooooooooooooooooooMooooo  
                             MMoooooooooooooooMMooo MMooooooooooooooooooooooooooM  
                             MMMoooooooooooooMooooo  oooooooooooooooooooooMooooo  
                             MooMMoooooooooMoooMMoM  ooooHooooooooooooooooMooooM  
                             MooooMooooooMooooMoooM  MoooooMoooooooooooooMooooo  
                             ooooooMMooooooooMooooM  MoooooooooMooooooooooooooM  
                             HooooooMoooooooMooooM    HoooooooHooMooooooooooooo  
                              oooMoooooooooHoooM         MoooooooooMoooooooooM  
                               HooooooooooooHM             MooooooooMMoooooooM  
                                MMMMMMMMMMMMMM                Moooooo:MooooHMM  
                                 MMMMMMM: ...                  MMMMMMMMMMMMMM  
                                M............M                  MMMMMMMMM ....  
                                M.MM..........                  M.............M  
                             M ..............MM                 M..............  
                          MMMMM............MMMM                 ..MMMMMMMM ....M  
                        MMMMMMMMMMMMMMMMMMMMMMMM               MMMMMMMMMMMMM...M  
                     .MMMMMMMMMMMMMMMMMMMMMMMMMM               MMMMMMMMMMMMMMMMMM  
                     MMMMMMMMMMMMMMMMMMMMMMMMM                MMMMMMMMMMMMMMMMMMM  
                     :MMMMMMMMMMMMMMMMMMH                     MMMMMMMMMMMMMMMMMMM  
                        By EBEN Jér?me                        MMMMMMMMMMMMMMMMMM  
                                                              MMMMMMMMMMMMMMM  
                                                               HMMMMMM

     \*/

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章