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

單片機轉速測量

發布時間:2022-06-21 01:48:10

A. 用單片機中斷功能實現轉速的測量

利用中斷,中斷觸發後在中斷程序里計數即可。

B. 求基於51單片機的轉速測量的設計(代碼),最好C語言實現的,給些指導也行!

測速得需要外部電路啊,單個單片機不行啊,如上圖測電機轉的速度就加了編碼盤,和光電感測器測速啊。

C. 基於51單片機轉速測量的程序,望高手幫我解釋一下。

#include <reg51.h>
#include <INTRINS.H>

#define FOSC 11.0592

unsigned int speed;
unsigned char key;
unsigned char led_table[10]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xff,0xf6};
long speed_count,speed_count1;
unsigned char speed_check;
unsigned int second_flag;
unsigned char speed_table[4];
unsigned char speed_table1[10];

//定時器頻率1000Hz
void timer1_init(void)
{
EA=0;
TMOD=0x10;
//TH1=1000*FOSC/12/256;
//TL1=(unsigned int)(1000*FOSC/12)%256;
TH1=254;
TL1=51;
TR1=1;
TCON|=0X04; //外部中斷下降觸發
EX1=1; //允許外部中斷
ET1=1;
EA=1;

}
void int1_routine(void) interrupt 2
{
speed_count++;
P1^=0X02;
}

void timer1_routine(void) interrupt 3
//void timer1_routine(void)
{
TH1=254;
//TH1=0xf0;
TL1=51;
//speed_count++;
second_flag++;

}

void main(void)
{
unsigned int i,j,k;
// unsigned char sum;
unsigned speed_table[3];
long time_id;
timer1_init();
speed=0;
P2=0x0f;
P0=0xf0;
P3=0x08;
key=0;
P1=0x00;
speed_check=0;
while(1)
{

//P1^=0XFE;
j=1;
//speed=1234;
speed_table[0]=speed/1000;
speed_table[1]=speed%1000/100;
speed_table[2]=speed%100/10;
speed_table[3]=speed%10;
for(i=0;i<4;i++)
{
P2=j^0xff;
j<<=1;
P0=(led_table[speed_table[i]])&0xfe;
for(k=0;k<250;k++) ;
}
//speed=speed_count;

if(second_flag>=1000) /*中斷1000次進入 */
{

second_flag=0;
time_id++;
speed_table1[time_id%10]=speed_count;/*外部中斷量轉存(是很聰明的方法學習了)*/
speed_count=0;
speed=(speed_table1[0]+speed_table1[1]+speed_table1[2]+speed_table1[3]+speed_table1[4]+speed_table1[5]+speed_table1[6]+speed_table1[7]+speed_table1[8]+speed_table1[9])*6; /*(10X6)10秒的外部中斷量乘以6就是轉速了*/
//speed=speed/2+(speed_table[0]+speed_table[1]+speed_table[2])*6;
}

}

}

D. 用51單片機控制直流電動機並測量轉速

我這個是用pwm+adc做的

ADC EQU 35H

CLOCK BIT P2.4 ;定義ADC0808時鍾位

ST BIT P2.5

EOC BIT P2.6

OE BIT P2.7

PWM BIT P3.7

ORG 00H

SJMP START

ORG 0BH

LJMP INT_T0

START: MOV TMOD,#02H ;

MOV TH0,#20

MOV TL0,#00H

MOV IE,#82H

SETB TR0

WAIT: CLR ST

SETB ST

CLR ST ;啟動AD轉換

JNB EOC,$ ;等待轉換結束

SETB OE

MOV ADC,P1 ;讀取AD轉換結果

CLR OE

SETB PWM ;PWM輸出

MOV A,ADC

LCALL DELAY

CLR PWM

MOV A,#255

SUBB A,ADC

LCALL DELAY

SJMP WAIT

INT_T0: CPL CLOCK ;提供ADC0808時鍾信號

RETI

DELAY: MOV R6,#1

D1: DJNZ R6,D1

DJNZ ACC,D1

RET

END

E. 單片機測量電動機轉速的原理是什麼啊 能詳細說說嗎從開始數字信號變成脈沖信號一直到LED顯示出轉速

基本上,單片機採集的是轉子產生的信號,這個信號的頻率與轉子的轉速相關.
例如說,轉子或轉子軸的一側粘貼了一面小鏡子,使這個小鏡子能隨轉子一起轉動,然後在旁邊固定一個光源對著鏡子所在的位置,這樣的話,轉子每轉過一圈,小鏡子所反射的光線就會經過一次檢測元件,轉子轉得越快,經過檢測元件的光線就會越頻繁,換言之就是光線被反射到檢測元件上的頻率越高.
那麼,現在你已經知道轉子每轉一圈,檢測元件就會檢測到一次光線了,那如何換算成具體的轉速呢,實際上,只要對檢測元件的兩次光照時間進行檢測,或對一定時間內檢測元件被光線照射到幾次進行計數,然後再換算就可以了.
例如,每兩次光照的間隔為1秒,那麼就表示每秒鍾這個轉子轉了一圈,那麼一分鍾就是60圈,這就是轉速了.
若你需要更精確的檢測,則這個1秒鍾才一次的信號顯然不夠,你需要每秒鍾有更多個脈沖,才能實現較為精確的測量,比如可以測量到1.05圈/秒,或者0.95圈/秒.而這就需要在轉子上粘貼更多的鏡子.
例如說,你在轉子上均勻地粘了10面鏡子,而所檢測到的每兩次光照的間隔為20mS,那麼換算下來,1000mS÷20mS÷10=5,這個5就是每秒鍾的轉數,換算成一般的標法,就是300轉/分了.
然而,如果被檢測的電動機速度更快一些,並且這些"鏡子"數量更多一些,對於慢速的單片機來說,再用檢測光照時間的方法就可能忙不過來了,或者是精度要打折扣了,比如說你的單片機最短要10uS才能中斷一次,而被檢測的電動機所傳過來的"光照"信號周期只有8uS,那麼你可能就檢測不到這個信號了,或者檢測成錯誤的結果.
此時,你就可以將檢測方法改為檢測一定時間內的信號個數,比如說你可以用一個定時器來產生100mS的定時周期,再用另一個定時器來對信號進行計數,比如這個100mS你記錄到了700次信號,按上面的例子,你已經知道轉子每圈會有10個信號,那就是說,這個100mS內,轉子轉過了70圈,這樣的話,就很好計算轉速了,在這個例子中,100mS是十分之一秒,那麼實際的轉速就是10倍×70轉=700轉/秒,算成一般的標法那就是700轉×60秒=4200轉/分了.
知道這個轉速之後,要顯示出來就不用再多說了吧,hoho~~
希望對你有幫助~

F. 單片機直流電機轉速測試

拿個圓盤,上面沿半徑切一條縫,夾在一個紅外收發器的凹槽中,紅外收發模塊的一端接地,一端接電阻接VCC,電阻和紅外模塊之間引一根線到單片機的外部中斷P3.2或P3.3上。
另一邊,單片機一個IO口接光耦一半的正極,光耦的另一半的正極接VCC負極接直流電機再接地。直流電機轉軸插在圓盤圓心,保證能帶動圓盤轉動而不打滑。
編程思想如下:一個一秒定時器函數,一個外部中斷函數,每中斷一次計數一次。每當即時到時,計數器中的數就是轉速
圈/S,然後清零。
至於控制轉速則是由IO口輸出PWM(占空比變化的方波)控制電流大小,以控制轉速。轉速通過上面說的程序測得,然後與設定值進行比較,快了就降低占空比,慢了就增加占空比。
程序由lilaozishiyan發到你郵箱,電路很簡單就沒畫了,只有程序。

G. 單片機課程設計轉速測量儀設計

這個你使用單片機P3.5腳的T1計數器功能就可以實現了,
不過注意一點,你所採集的信號要通過施密特反相器,否則有可能誤判;

H. 單片機汽車轉速測量怎麼做

那就看你做什麼咯。轉速的直接面向控制設備是
儀表盤。
如果你是做儀表盤,那麼轉速信號就是從無到有咯,你就需要對轉速感測器進行脈沖測量,而且得很清楚,多少脈沖對應多少圈數。
如果你是做一般控制器,那麼只要對儀表盤輸出的轉速信號進行脈沖測量,同樣也需知道,多少脈沖對應多少圈數。當然,你也可以直接找轉速感測器,直接像儀表盤一樣測量。

I. 求一篇基於單片機的轉速測量的文獻綜述。。。。

緒言:單片機控制已廣泛應用於工業控制和日常生產
與生活中,如機器的運轉速度、車輛的行駛速度、風
扇轉速、電機超速報警、洗衣機洗衣模式等。自動控
制系統中,轉速的測量是系統的重要環節,也是智能
儀器和儀表的重要組成部分。在測量系統中,將所測
量到的信息准確地轉換與傳遞給單片機進行下一步
的計算、判斷、顯示,並為接下來的自動控制提供准
確的數據。可以說轉速的測量與顯示是自動控制系統
的基礎環節。本文介紹一種基於單片機AT89C2051、
用霍爾元件為轉速感測器的轉速測量、顯示裝置。……

J. 如何用單片機測量光電編碼器的脈沖,以實現測量電機轉速

你說的是增量型編碼器,這種類型的編碼器主要就是測量速度的,其A,B相,Z相可以通過接在計數器或者PLC上,來獲取其脈沖個數,從而進行轉換,變成速度測量。一般說來只要一相信號就夠了,B相信號和A相信好相位相差90度,通過A超前還是B超前從而判定電機是正轉還是反轉。如果只是測速度,Z相信號用不到的。Z相是一個零點參考信號,每旋轉一圈,會輸出一個脈沖,一般用來測量位移的時候才會用到,不過增量編碼器測位移會出現丟脈沖的現象,造成脈沖累積不準,從而出現位置偏差。最重要的是,供電類型一定要看準,如果是5v供電,你供24v,那就直接燒了,切記切記!

閱讀全文

與單片機轉速測量相關的資料

熱點內容
魯班鎖解壓嗎 瀏覽:395
打包發送文件如何加密 瀏覽:213
centos解壓縮zip 瀏覽:387
我的世界怎麼用命令風塊取消指令 瀏覽:1000
安卓軟體請求超時怎麼辦 瀏覽:476
androidapp調用另一個app 瀏覽:621
數控銑床法蘭克子程序編程 瀏覽:173
linux打包命令targz 瀏覽:996
抖音app是哪個 瀏覽:407
蘋果app怎麼上架 瀏覽:255
NA伺服器地址 瀏覽:427
我的世界如何初始化伺服器 瀏覽:97
哪個手機app天氣預報最准 瀏覽:752
怎樣把視頻壓縮至25m 瀏覽:570
vivox27文件夾怎麼改變 瀏覽:727
新手玩狼人殺用什麼app 瀏覽:615
pdf在線查看 瀏覽:954
安卓tv90如何關閉後台 瀏覽:683
php讀取word亂碼 瀏覽:755
minicom源碼 瀏覽:1002