实现直流电机正转、反转、停止控制,用LED显示电机运行状态的c语言程序
3个回答
展开全部
10分太少了,知识是很贵的。
#include<reg51.h>//这个我就不解释了^^ keil编译
#define LED_CW P0=0xfe
#define LED_CCW P0=0xfd
#define LED_STOP P0=0xfb
#define KEY_CW P3^0
#define KEY_CCW P3^1
#define KEY_STOP P3^2
#define MOTOR_A P1^0 //无用,只和指竖为标记
#define MOTOR_B P1^1
#define MOTOR_CW P1=0xfe
#define MOTOR_CCW P1=0xfd
#define MOTOR_STOP P1=0Xff
void main(void)
{
P0=0xfb;
P1=0xff;
P2=0xff;
while(1)
{
if(KEY_CW==0)
{
LED_CW;
MOTOR_CW;
}
if(KEY_CCW==0)
{
LED_CCW;
MOTOR_CCW;
}
if(KEY_STOP==0)
{
LED_STOP;
MOTOR_STOP;
}
}
}
以上程序通过编译,未实测,不唤大排除有错误。
都是很简单的程序,我就不帮你一句一句的翻译了。
一楼说的是PWM调速,稍微麻烦些,等你先看会了上面的,在学习一下PWM吧。
祝你好运
电子单片机团===步逗裤行者
#include<reg51.h>//这个我就不解释了^^ keil编译
#define LED_CW P0=0xfe
#define LED_CCW P0=0xfd
#define LED_STOP P0=0xfb
#define KEY_CW P3^0
#define KEY_CCW P3^1
#define KEY_STOP P3^2
#define MOTOR_A P1^0 //无用,只和指竖为标记
#define MOTOR_B P1^1
#define MOTOR_CW P1=0xfe
#define MOTOR_CCW P1=0xfd
#define MOTOR_STOP P1=0Xff
void main(void)
{
P0=0xfb;
P1=0xff;
P2=0xff;
while(1)
{
if(KEY_CW==0)
{
LED_CW;
MOTOR_CW;
}
if(KEY_CCW==0)
{
LED_CCW;
MOTOR_CCW;
}
if(KEY_STOP==0)
{
LED_STOP;
MOTOR_STOP;
}
}
}
以上程序通过编译,未实测,不唤大排除有错误。
都是很简单的程序,我就不帮你一句一句的翻译了。
一楼说的是PWM调速,稍微麻烦些,等你先看会了上面的,在学习一下PWM吧。
祝你好运
电子单片机团===步逗裤行者
追问
电机没有转,灯一直亮着,程序应该有错,求大神帮帮忙!!
江苏驰骏智能科技有限公司_
2023-06-13 广告
2023-06-13 广告
伺服电机和普通电机有以下几点区别:1. 驱动方式不同:伺服电机是利用编码器进行反馈信号控制,通过电机本身的旋转来带动编码器旋转,从而产生精确的反馈角度,而普通电机是直接接收机械设备的传动带驱动。2. 精度不同:伺服电机的转速和响应非常快,可...
点击进入详情页
本回答由江苏驰骏智能科技有限公司_提供
展开全部
2分钟,1秒,设行羡答置一个定时器中断,然后设置一个标志变量。
启动变档慧量被清除进入中断标志变量加一,如果暂停,停止计时,读出计数值计数电机多少毫秒,再加上标志变量转了几秒钟,减少了120还剩多少时间;
没有停顿,当添加到120的标志变量,去到两分钟派团的:-)
启动变档慧量被清除进入中断标志变量加一,如果暂停,停止计时,读出计数值计数电机多少毫秒,再加上标志变量转了几秒钟,减少了120还剩多少时间;
没有停顿,当添加到120的标志变量,去到两分钟派团的:-)
追问
我要程序和注释
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-02-25
展开全部
oops借口哦oi'l
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询