不是我写的程序,网上的程序小小改变了一下芯片用的STC15F104
风扇淘宝买的,卖家将调速线剪了。我重新上。
程序不完美的地方,速度反馈线没有利用。调速按键不好使。欢迎大神指点。
制作出来的实物图如下:
单片机源码:
- //晶振12MHz
- //在P1_0输出20KHz,0-255级可调占空比 每一级0.39%
- #include<at89x51.h>
- sbit L1=P3^3;//档位显示LED
- sbit L2=P3^4;
- sbit L3=P3^5 ;
- unsigned char PWM=0x01;//PWM的百分比,开机默认风力
- unsigned int cnt;
- void InitT0(void)
- {
- TMOD=0x02;//定时器0工作方式2 8位自动重装
- TH0=206;//pwm 50us 20khz
- TL0=206;
- TR0=1;//开始计时
- ET0=1;//允许定时器中断
- EA=1;//开启总中断
- }
- void main(void)
- {
- InitT0();//初始化T0定时器
- IT0=1;
- EX0=1;
- while(1)
- { -
- }
- }
- void Timer0(void) interrupt 1//用于PWM的定时器
- {
- static unsigned char counter=0;//记录中断次数
- counter++;
- if(counter >= PWM) P3_1 = 0; else P3_1 = 1;
- }
- void INTERR(void) interrupt 0
- {
- cnt++;
- {
- switch(cnt)
- {
- case 1:PWM=25;L1=0;L2=1;L3=1;break;
- case 2:PWM=100;L1=1;L2=0;L3=1;break;
- case 3:PWM=255;L1=1;L2=1;L3=0;cnt=0;break;
- default:break;
- }
- }
- }
复制代码
|