控制方向和變速,有仿真工程文件和源代碼
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載).
單片機源程序如下:
- #include "reg51.h"
- #define u8 unsigned char
- sbit pwm1=P2^0;
- sbit pwm2=P2^3;
- sbit key=P2^7;
- u8 sudu=0,fang=0;//0停1慢2快
- void delay(long i)
- {
- while(i--)
- {
- if(key==0)//有按下
- {
- while(key==0);//等待放手
- sudu++;
- if(sudu==3)sudu=0;
- }
- }
- }
- void dong()
- {
- if(fang==0)
- {
- if(sudu==0)//停機狀態
- {
- pwm1=1;//兩邊高電平
- pwm2=1;
- delay(100);//等待按下更改
- }
- if(sudu==1)//調速狀態
- {
- pwm1=1;//轉動的時間
- pwm2=0;
- delay(50);
- pwm1=1;//停止的時
- pwm2=1;
- delay(250); }
- if(sudu==2)
- {pwm1=1;
- pwm2=0;
- delay(300);}
- }
- if(fang==1)
- {
- if(sudu==0)//停機狀態
- {
- pwm1=1;//兩邊高電平
- pwm2=1;
- delay(100);//等待按下更改
- }
- if(sudu==1)//調速狀態
- {
- pwm1=0;//轉動的時間
- pwm2=1;
- delay(50);
- pwm1=1;//停止的時
- delay(250); }
- if(sudu==2)
- {pwm1=0;
- pwm2=1;
- delay(300);}
- }}
- void main()
- {
- EA=1;IT0=1;EX0=1;
- while(1)
- {
- dong();
- }
- }
- void bian() interrupt 0
- {
- fang=!fang;
- }
復制代碼
所有資料51hei提供下載:
直流電機-pwm驅動.7z
(41.93 KB, 下載次數: 34)
2021-7-11 18:16 上傳
點擊文件名下載附件
|