proteus论坛|仿真论坛
直播中

Wrysunnyym

7年用户 5经验值
私信 关注
[问答]

俩个触摸按键PWM调光 仿真时按键没有用 只有LED闪

这个是程序,实在是不懂了  哪位大佬帮帮我 谢谢了

#include

#define uchar unsigned char

#define uint  unsigned int

***it led=P0^0;

***it puls=P0^1;

***it reduce=P0^2;

int b=200,c=10;

void init()

{

    led=1;                          //关闭led

        puls=0;                          //按键位 置0

        reduce=0;

}


void delay(int x)                  //延时

{

   while(x--);

}


void scanf()                          //输入

{

        

  if(puls==1)

{

  delay(500);

  if(puls==1)

  {

  c++;

  if(c>200)         

  c=200;

  }

  }

  if(reduce==1)

  {

  delay(500);

  if(reduce==1)

  {

   c--;

   if(c<=0)

   c=0;

   }

  }

}




void pwm()                                          //pwm调光

{

   int i;

        for(i=0;i<5;i++)

        {

    led=0;                                        //开led

        delay(c);

    led=1;                                        //关led

        delay(b-c);

        }  

}



void main()                                          //主函数

{                                                          //寄存器初始化

  init();

  while(1)

  {

   scanf();                                         //输入

   pwm();                                         //pwm调光

  }

}


  • --.PNG

回帖(1)

longrenwenzi

2018-5-4 16:27:45
不知道你问题解决了没有,说一下我的看法。你的仿真图,是通过上拉电阻将puls和reduce两个按键的引脚上拉了,即使初始化的时候你写入0低电平,但是也会上电的时候被拉高,而你的按键另一端接的是电源端,这样按键根本不起作用,按键无论按不按下都是高电平状态。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分