标题: 为什么这个程序可以使小灯由亮变暗,只是小灯亮和灭延时不同而已啊,好像改变了小... [打印本页]

作者: 晨曦的love    时间: 2015-10-30 20:14
标题: 为什么这个程序可以使小灯由亮变暗,只是小灯亮和灭延时不同而已啊,好像改变了小...
  1. #include<reg52.h>
  2. #define uint unsigned int

  3. sbit pwm=P1^0;
  4. uint cycle,high,low;

  5. void delay(uint t)
  6. {
  7.   while(t--);
  8. }
  9. void main()
  10. {
  11.         cycle=800;
  12.         while(1)
  13.         {
  14.                 for(high=1;high<=cycle;high++)
  15.                 {
  16.                         pwm=1;
  17.                         delay(high);
  18.                         low=cycle-high;
  19.                         pwm=0;
  20.                         delay(low);               
  21.                 }
  22.                 high=1;
  23.                 delay(60000);
  24.         }
  25. }
复制代码
      为什么这个程序可以使小灯由亮变暗,只是小灯亮和灭延时不同而已啊,好像改变了小灯的电压一样,哪位大神知道能给讲讲,谢谢啦。

作者: 滔滔猫    时间: 2015-10-31 10:53
这个就和数码管显示一个样子,延迟越短,它工作时间你看不到,顺间接通,瞬间用,就出现这个问题了,你在仿真上面你就可以看到,其实是一直在亮,可是你却看不到
作者: 腾飞的龙    时间: 2015-10-31 11:13
就是改变输出电压的时间长和短,输出高电平时间长久亮的强
作者: tr_123    时间: 2015-11-11 20:24
相当于PWM控制




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1