导航:首页 > 操作系统 > 电机测速单片机

电机测速单片机

发布时间:2022-08-13 01:25:57

单片机直流电机测速实验程序

#include<reg52.h>
#include"delay.h"
#define uchar unsigned char
#define uint unsigned int

//*********************//
sbit ENA = P2^2; //驱动芯片使能,若为0则电机停止;
sbit IN1 = P2^1; //控制电机正转和反转
sbit IN2 = P2^0; //控制电机正转和反转
sbit key1 = P1^0; //此键按下,电机正转;IN1=1;IN2=0 ;ENA=1
sbit key2 = P1^1; //此键按下,电机反转;IN1=0,IN2=1 ;ENA=1
sbit key3 = P1^2; //此键按下,电机刹停; IN1=1,IN2=1 ;ENA=1
//*********************//

int motor_change_mank=0;

// 按键设置
//**********************//
uint keylogo()
{
if(key1==0)
{
delayms(2) ;
//while(key1==0);
motor_change_mank=1;//正转标志位
}

if(key2==0)
{
delayms(2) ;
//while(key2==0);
motor_change_mank=2;//反转标志位
}

if(key3==0)
{
delayms(2) ;
//while(key3==0);
motor_change_mank=0;//刹停标志位
}

return(motor_change_mank);

}

//**********************//
//控制驱动芯片函数
//**********************//
void execute_motor()
{
switch(motor_change_mank)
{
case 0: //刹停标志位
{
IN1 = 1;
IN2 = 1;
ENA = 1;
}break;

case 1: //正转标志位
{
IN1 = 1;
IN2 = 0;
ENA = 1;
}break;

case 2: //反转标志位
{
IN1 = 0;
IN2 = 1;
ENA = 1;
}break;

default:break;

}

}
//**********************//

void main()
{

while(1)
{
keylogo();
execute_motor();
}

}

/**********************************************************************/
/**********************************************************************/
#define uint unsigned int

void delayms(uint n)
{
int i;
for(;n>0;n--)
for(i=0;i<1;i++);
}

/**********************************************************************/
/**********************************************************************/
#ifndef delay_h
#define delay_h
#define uint unsigned int

extern void delayms(uint n);

#endif

㈡ 基于单片机的直流电机调速系统设计怎么测速

测速电路自己设计的话可以使用
红外对管
测速,或者
激光测速
。。。网上也有程序的
测速传感器
,自己找找就好了,有数据手册,可以说明怎么使用的,一般就是
高低电平
变化。你的
直流电机
上需要加一个测速
码盘
,靠这个检测的,也有其他方式,具体看你的测速传感器是什么样的。

㈢ 电机手持测速仪缺点,单片机测速仪的优点

电机手持测速仪缺点是 需要用电机手持
单片机测速仪的优点是采用了单片机

㈣ 单片机实现电机测速为什么要加AD转换器

这个问题是因为单片机它只能够识别整数,不能识别小数;比如说1.25的话就必须通过AD转换单片机才能进行处理,这就是数字信号和模拟信号的相互转换的用途

㈤ 利用单片机实现直流电机的测速

用的8051的吧,用计数器功能就行了单位时间内数下降沿个数,12个下降岩一个周期,看来还要结合定时器第一秒,或更多。总之,计数器计数,定时器定时,在运算

㈥ 用51单片机写那个电机测速的程序大概是怎么写呀😄

用一个定时器计数
另一个定时
开始
main()
{
同时打开计数器定时器
计数器计数
}
定时器1秒钟到
{
关闭定时器
和计数器
计算转数
//转数=(1s计数值÷电机转一圈的脉冲数)×60
}

阅读全文

与电机测速单片机相关的资料

热点内容
android手机安装失败 浏览:28
云计算没有服务器 浏览:67
怎么显示android的APP 浏览:121
c编译器怎么删除空格 浏览:695
php自动释放内存 浏览:219
golang编译库 浏览:794
oracle数据字符串加密 浏览:603
研究生去上海当程序员 浏览:90
u8电脑服务器连接失败怎么解决 浏览:569
bat脚本创建日期命名文件夹 浏览:104
将图片转换为pdf格式 浏览:980
java中形参 浏览:83
枚举类型编译器 浏览:519
oraclejava包 浏览:568
手机定位手机怎么定位安卓 浏览:523
在哪个app买欧莱雅最便宜 浏览:495
程序员吃零食好吗 浏览:261
php工程师主要做什么 浏览:356
tvp保存到哪个文件夹 浏览:197
怎么把空调里面的压缩机拆卸掉 浏览:943