单片机教程网

电脑版
提示:原网页已由神马搜索转码, 内容由www.51hei.com提供.
查看:1605|回复:2
打印上一主题下一主题

51单片机PWM呼吸灯

[复制链接]
跳转到指定楼层
楼主
ID:646252发表于 2019-11-21 08:48|只看该作者回帖奖励
#include<reg52.h>
#define uchar unsigned char
#define uint  unsigned int


sbit PWM=P0^0;
bit DIR;
uint count,value,timer1;


void Timer1Init()
{
       TMOD|=0x01;
   TH1=0xff;
       TL1=0xff;
       EA=1;
       ET1=1;
       TR1=1;
}
void main()
{
       Timer1Init();
   while(1)
           {
               if(count>100)
                       {
                         count=0;
                             if(DIR==1)
                                 {
                                   value++;
                                 }
                                 if(DIR==0)
                                 {
                                   value--;
                                 }
                       }
                       if(value==1000)
                       {
                         DIR=0;
                       }
                       if(value==0)
                       {
                         DIR=1;
                       }
                       if(timer1>1000)
                       {
                         timer1=0;
                       }
                       if(timer1<value)
                       {
                         PWM=1;
                       }
                       else
                       {
                         PWM=0;
                       }
           }
}
void Time1(void)  interrupt 3
{
   TH1=0xff;
       TL1=0xff;
       timer1++;
       count++;
}

沙发
ID:1110773发表于 2024-2-7 12:02|只看该作者
太快了,闪烁得慢一些怎么调
板凳
ID:371895发表于 2024-4-29 08:29来自手机|只看该作者
2972905150ttp 发表于 2024-2-7 12:02
太快了,闪烁得慢一些怎么调

调count值方便点

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

Powered by 单片机教程网