|
控制方向和變速,有仿真工程文件和源代碼
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載).
單片機(jī)源程序如下:
- #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)//停機(jī)狀態(tài)
- {
- pwm1=1;//兩邊高電平
- pwm2=1;
- delay(100);//等待按下更改
- }
- if(sudu==1)//調(diào)速狀態(tài)
- {
- pwm1=1;//轉(zhuǎn)動(dòng)的時(shí)間
- pwm2=0;
- delay(50);
- pwm1=1;//停止的時(shí)
- pwm2=1;
- delay(250); }
- if(sudu==2)
- {pwm1=1;
- pwm2=0;
- delay(300);}
- }
- if(fang==1)
- {
- if(sudu==0)//停機(jī)狀態(tài)
- {
- pwm1=1;//兩邊高電平
- pwm2=1;
- delay(100);//等待按下更改
- }
- if(sudu==1)//調(diào)速狀態(tài)
- {
- pwm1=0;//轉(zhuǎn)動(dòng)的時(shí)間
- pwm2=1;
- delay(50);
- pwm1=1;//停止的時(shí)
- 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;
- }
復(fù)制代碼
所有資料51hei提供下載:
直流電機(jī)-pwm驅(qū)動(dòng).7z
(41.93 KB, 下載次數(shù): 34)
2021-7-11 18:16 上傳
點(diǎn)擊文件名下載附件
|
評(píng)分
-
查看全部評(píng)分
|