标题:
简单的51单片机电机驱动程序与Proteus仿真图(启停与快慢控制)
[打印本页]
作者:
cangyuan
时间:
2021-7-11 16:45
标题:
简单的51单片机电机驱动程序与Proteus仿真图(启停与快慢控制)
控制方向和变速,有仿真工程文件和源代码
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载).
51hei.gif
(97.27 KB, 下载次数: 89)
下载附件
2021-7-11 18:09 上传
单片机源程序如下:
#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 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1