導航:首頁 > 操作系統 > 電機測速單片機

電機測速單片機

發布時間: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的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
linux4k對齊 瀏覽:968
單片機與開關電源 瀏覽:276