《PWM调节led等的亮度的程序.doc》由会员分享,可在线阅读,更多相关《PWM调节led等的亮度的程序.doc(2页珍藏版)》请在金锄头文库上搜索。
1、#includebit flay;sbit led=P11;#define uchar unsigned char #define uint unsigned intsbit led=P11; uchar pwm=0,aa=0; void delay(uint); void delays();main() TMOD|=0x01; / 定时器初始化 TH0=(65536-100)/256;/ 给定时器赋值 TL0=(65536-100)%256;/给定时器赋值 EA=1; / 开总中断 ET0=1; /开定时器0中断 TR0=1; /启动定时器 开始计数 while(1) while(!flay
2、)pwm+; /pwm表示占空比delay(20);/延时大约20毫秒 保证pwm每增加一次都会进入中断if(pwm=100) flay=1; /上面这段代码 占空比增加 /下面这段代码 占空比减少 while(flay)pwm-;delay(20);if(pwm=1) flay=0; void delay(uint m) /大概延时m毫秒uint i,j;for(i=0;im;i+)for(j=0;j110;j+);void delays() /延时函数uint i,j;for(i=0;i1;i+)for(j=0;j1;j+);void time() interrupt 1 /每100微秒进入一次中断 TH0=(65536-100)/256; TL0=(65536-100)%256;if(aa=pwm) led=1; /熄灭8个led灯 aa+;if(aa=100) /周期为10毫秒 aa=0; if(pwm!=0) led=0; /点亮8个了的等