微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 求助各位大大们。

求助各位大大们。

时间:10-02 整理:3721RD 点击:
自己编了一个让一个LED小灯进行呼吸,先慢慢边亮,然后慢慢变暗。但是烧录完后小灯在渐变的同时在闪烁。 #include<reg52.h>sbit LED=P1^0;
void DelayUs2x(unsigned char t);
void DelayMs(unsigned char t);
void main(void)
{
unsigned int CYCLE=73,PWM_LOW=0;
while(1)
{
  LED=1;
  DelayMs(72);
  for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
  {
   LED=0;
   DelayMs(PWM_LOW);
   LED=1;
   DelayMs(CYCLE-PWM_LOW);
  }
  LED=0;
  for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
  {
   LED=0;
   DelayMs(PWM_LOW);
   LED=1;
   DelayMs(CYCLE-PWM_LOW);
  }
}
}
void DelayUs2x(unsigned char t)                    //12M的晶振,据说这样能差不多1ms。
{
while(--t);
}
void DelayMs(unsigned char t)
{
while(t--)
{
  DelayUs2x(245);
  DelayUs2x(245);
}
}

出现闪烁主要是因为梁灭的周期超过了你的眼睛感应,在进行PWM调整时设定固定周期,然后调节高低电平的占空比

我就6个E币,各位大大们不要介意啊。

ddddddddddd

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top