单片机PWM控制流水灯渐亮渐灭程序

来源:本站
导读:目前正在解读《单片机PWM控制流水灯渐亮渐灭程序》的相关信息,《单片机PWM控制流水灯渐亮渐灭程序》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《单片机PWM控制流水灯渐亮渐灭程序》的详细说明。
简介:在这里和大家分享一个由单片机PWM控制流水灯渐亮渐灭程序,感兴趣的朋友可以看看。

//跳线设置:默认跳线位#include <reg51.h>       typedef unsigned char uchar;#define Ton 40#define LED P1sbit leds=P1^4;sbit LED0 = P1^0;sbit LED1 = P1^1;sbit LED2 = P1^2;sbit LED3 = P1^3;sbit LED4 = P1^4;sbit LED5 = P1^5;sbit LED6 = P1^6;sbit LED7 = P1^7;      unsigned char Maikuan=0;static unsigned char ledon[8] = {0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};uchar Occupy_led; //占空比越大,灯越亮bit light;uchar m;     void Inittime()      {          TMOD = 0x02; //定时器0,工作方式2,自动重装          TH0 = 256-Ton;          TL0 = 256-Ton;          ET0 = 1;         EA = 1;         TR0 = 1;     }//定时器0中断     void time0() interrupt 1 using 0      {           Maikuan++;      }void main()       {          unsigned char i = 0,j = 0; //初始化i,j    leds=0;          Inittime();         while (1)           {               //第1,3,5,7个灯半亮,其余的全亮。                         for(i=254; i>0; i--)                  {                while ( Maikuan!=20)                {                        LED = 0x00;                }                while ( Maikuan!=200)                {                        LED = 0x55;                }                  Maikuan = 0;            }    //最难的:8个灯从第一个开始依次渐亮,直到最后一个。再从最后一个起渐暗,直到第一个。如此循环往复。   for(j = 0;j<=7;j++)   {    i = 0;          while(i!=255)     // 由暗变亮        {          if( Maikuan == 0) // 点亮        {            LED = ledon[j];       }       if(Maikuan == i) // 熄灭        {           LED = 0xff;       }      if( Maikuan== 255)           {            i++;               }       }   }   for(j=7;j>=0;j--)   {     i = 0;         while(i!=255)     // 由亮变暗   {     if(Maikuan == 0) // 熄灭     {             LED = 0xff;      }      if( Maikuan == i) // 点亮       {         LED = ledon[j];       }    if( Maikuan == 255)      {            i++;     }   }  }     //所有的灯逐渐从暗到全亮,再由全亮到暗。    for (m=254; m>0; m--)      {                      while (Maikuan!=Occupy_led)          {                  LED = 0x00;          }           while (Maikuan!=127)          {                  LED = 0xff;          }               Maikuan = 0;           if (light)                {                 Occupy_led++;                 }          else          {                 Occupy_led--;          }           if (Occupy_led==128)          {                 Occupy_led = 127;                  light = !light;              }          if (Occupy_led>128)          {                  Occupy_led = 0;                  light = !light;          }      }             }}

提醒:《单片机PWM控制流水灯渐亮渐灭程序》最后刷新时间 2024-03-14 00:58:17,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《单片机PWM控制流水灯渐亮渐灭程序》该内容的真实性请自行鉴别。