发 帖  
4周PADS强化班 HOT
林超文手把手教你学!
张飞暑期特训班
教你1000种电路设计思路
年度IP:PFC电源
张飞硬件电路之PFC全集
30天AD项目众筹
参与免费送VIP+原创视频
最全模电系列教程 NEW
运放、ADC、电磁兼容

51单片机LED PWM调光程序下载

[复制链接]

等待验证会员

发表于 2018-7-19 00:01:28   87 查看 0 回复 显示全部楼层 倒序浏览
分享
    基于51单片机的对LEDPWM调光程序.zip  


  • 用STC12C5624AD写的PWM可调C程序
  • //本程序用占空比可调节的PWM方波来控制大功率LED的亮度,PWM波占空比可从0到100
  • // PWM 控制 LED 灯渐亮渐灭程序
  • // 晶振为12M
  • // 利用STC12C5624AD单片机的PWM功能产生占空比可变的 PWM 方波
  • // 按K1,PWM值增加,则占空比减小,LED 灯渐暗。
  • // 按K2,PWM值减小,则占空比增加,LED 灯渐亮。
  • // 当PWM值增加到最大值或减小到最小值时,蜂鸣器将报警。
  • //…..安徽师范大学物理与电子信息学院07级电子信息工程专业   曾祥…………..//
  • #include<reg52.h>
  • sfr CCON=0xD8;
  • sfr CMOD=0xD9;
  • sfr CL=0xE9;
  • sfr CH=0xD8;
  • sfr CCAP0L=0xEA;
  • sfr CCAP0H=0xFA;
  • sfr CCAPM0=0xDA;
  • unsigned char PWM=0x7f;                           //PWM初值
  • unsigned char flag=0;
  • sbit K1 =P2^6 ;                    //增加键
  • sbit K2 =P2^7 ;                                           //减少键
  • sbit BEEP=P2^5;                                           //蜂鸣器
  • sbit CR=0xDE;
  • void Beep();
  • void delayms(unsigned char ms);
  • void delay(unsigned char t);
  • void main(void)
  • {
  •   CMOD=0x02;                //PCA计数脉冲选择为fos/2
  •   CL=0x00;
  •   CH=0x00;
  •   CCAP0L=0xC0;
  •   CCAP0H=PWM;
  •   CCAPM0=0x42;
  •   CR=1;
  •   while(1)
  •   {
  •   if(K1==1&&K2==1)
  •    flag=0;
  •   if(K1==0)
  •         {
  •                 delay(50);
  •                if(K1==0&&flag==0)
  •                         {
  •                                 if(PWM<0xf5)
  •                                 {
  •                                 CR=0;        PWM+=10; delayms(10); CR=1;
  •                                  }
  •                                   else
  •                                   { PWM=0xff;Beep();}
  •                                   flag=1;
  •                     }
  •      }
  •     if(K2==0)
  •          {
  •                 delay(50);
  •               if(K2==0&&flag==0)
  •            {
  •                  if(PWM>0x0a)
  •               {
  •                            CR=0;   PWM-=10 ;delayms(10); CR=1;  }
  •                       else {PWM=0x00;Beep();}
  •                     }
  •                         flag=1;
  •       }
  •      CCAP0H=PWM;
  •     }
  •   }
  • /*********************************************************/
  • //蜂鸣器子程序
  • /*********************************************************/
  • void Beep()
  • {
  •       unsigned char i ;
  •       for (i=0 ;i<100 ;i++)
  •         {
  •           delayms(3) ;
  •          BEEP=0 ;                //Beep取反
  •         }
  •     BEEP=1 ;                            //关闭蜂鸣器
  •     delayms(100);
  • }
  • /*********************************************************/
  • // 延时子程序1
  • /*********************************************************/
  • void delay(unsigned char t)
  • {
  •     while(t--)   ;
  • }
  • /*********************************************************/
  • // 延时子程序2
  • /*********************************************************/
  • void delayms(unsigned char ms)
  • {
  •     unsigned char i ;
  •     while(ms--)
  •      {
  •         for(i = 0 ; i < 120 ; i++)         ;
  •      }
  • }





标签:LED PWM 51单片机

只有小组成员才能发言,加入小组>>

188个成员聚集在这个小组

加入小组

创建小组步骤

4周PADS强化班 HOT
林超文手把手教你学!
张飞暑期特训班
教你1000种电路设计思路
年度IP:PFC电源
张飞硬件电路之PFC全集
30天AD项目众筹
参与免费送VIP+原创视频
最全模电系列教程 NEW
运放、ADC、电磁兼容
关闭

站长推荐 上一条 /9 下一条

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