51单片机:PWM实现灯渐亮_渐灭,水滴效果
时间:08-10
来源:互联网
点击:
/********
脉冲宽度调制(Pulse Width Modulation,简称PWM),是利用微处理器的数字输出来对模拟电路进行控制的一种技术。
可近似的认为PWM就是一种方波。
___|~~~~~~~|____|~~~~~~~~ 占空比:高电平在一个周期之内所占的时间比率
单片机控制LED灯发亮的,然后是花样繁多的流水灯,但不管灯的花样如何变化,单个LED的亮度没有变化,只有亮、灭两个状态
但如果P口输出高低不断变化,则LED会闪烁;如果这种高低电平变化非常快,由于人的视觉暂留现象,LED就会出现不同的亮度。。。
当P口输出低电平时,LED亮,输出高低高低构成PWM(用for循环即可取得时间差),PWM的占空比越小越亮
**/
#includereg52.h> #define uint unsigned int #define uchar unsigned charvoid delay(uint x) //延时一个1ms{uint a,b;for(a=x;a>0;a--)for(b=274;b>0;b--);}//------------------------#define P //不可写成P0否则会冲突,提示^,=错误#ifdef Puchar i;sbit P01=P1^1;sbit P03=P1^3;uchar code LightLevel[8]={0,1,2,4,8,16,32,64}; //亮点级别,数组用codevoid LED_PWM(void){while(1){P1=0xfd; //第2个灯亮delay(2);for(i=0;i=250;i++){if(i10){P1=0xf7; //第4个灯亮}else {P1|=0x0a;}}} }#endifvoid main(){LED_PWM(); }//据此思路即可写出水滴,滴落效果
- 关于RTX51 TINY的分析与探讨(05-30)
- 浅析8051模块化编程技巧(05-28)
- 基于DSP和单片机通信的液晶显示设计方案(07-20)
- 锁相环控制及初始化简析(08-27)
- 基于MSP430自动胀管控制器的研究(09-07)
- 嵌入式C实现延时程序的不同变量的区别(03-01)