不是我寫的程序,網上的程序小小改變了一下芯片用的STC15F104
風扇淘寶買的,賣家將調速線剪了。我重新上。
程序不完美的地方,速度反饋線沒有利用。調速按鍵不好使。歡迎大神指點。
制作出來的實物圖如下:
IMG_20180917_211543.jpg (4.6 MB, 下載次數: 99)
下載附件
7805穩壓
2018-9-18 16:36 上傳
IMG_20180917_214653.jpg (4.3 MB, 下載次數: 90)
下載附件
正面圖
2018-9-18 16:36 上傳
QQ圖片20180918163546.jpg (1.58 MB, 下載次數: 80)
下載附件
內部結構
2018-9-18 16:36 上傳
單片機源碼:
- //晶振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;
- }
- }
- }
復制代碼
|