#include<reg52.h> #define uc unsigned char sbit led=P2^0; sbit key=P3^1; unsigned int time=0,s=0; void delay(uc c) { uc a,b; for(;c>0;c--) for(a=38;a>0;a--) for(b=130;b>0;b--); } void ss() interrupt 3 { TH1=64536/256; TL1=64536%256; time++; if(time>=10) time=0; if(time<s) led=0; else led=1; TF1=0; } void main() { TMOD=0x10; TH1=64536/256; TL1=64536%256; ET1=1; TR1=1; EA=1; while(1) { if(key==0) s++; if(s>=10) s=1; delay(1); while(key==0); delay(1); } }
利用定时器控制pwm波形,主函数通过独立按键控制占空比
- 接线:
- led接P2^0
- key接P3^1