陈润源home 发表于 2019-3-22 16:28 51单片机PWM调制实现模拟呼吸灯(Proteus仿真+程序
http://www.51hei.com/bbs/dpj-153979-1.html
- #include<reg52.h> //调用含有51专用寄存器的头文件
- #define uchar unsigned char //用uchar代替unsigned char
- #define uint unsigned int //用uint代替unsigned int
- void delayms(int xms) //脉宽调制函数
- {
- while(xms--);
- }
- void main() //主函数
- {
- uint T=400,N=0; //定义周期
- while(1)
- {
- for(N=1;N<T;N++) //从暗逐渐变亮
- {
- P1=0x00;
- delayms(N);
- P1=0xff;
- delayms(T-N);
- }
- P1=0xff;
- for(N=T-1;N>0;N--) //从亮逐渐变暗
- {
- P1=0x00;
- delayms(N);
- P1=0xff;
- delayms(T-N);
- }
- delayms(N+10); //增加看到的熄灭效果
- }
- }
其中
- void delayms(int xms) //脉宽调制函数
- {
- while(xms--);
- }
感觉用的很巧妙,但细细品味又实在不明白怎么解释,请大神们谁知道给我们这些小白讲讲呗。谢谢各位。
|