控制方向和变速,有仿真工程文件和源代码
仿真原理图如下(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)
|