找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 6614|回復(fù): 5
收起左側(cè)

求一個(gè)51單片機(jī)測(cè)量電機(jī)轉(zhuǎn)速的c程序

[復(fù)制鏈接]
ID:271737 發(fā)表于 2018-1-5 00:19 | 顯示全部樓層 |閱讀模式
已經(jīng)有一個(gè)廣電傳感器,作用是測(cè)電機(jī)轉(zhuǎn)速然后顯示在LED屏幕上。 之前用中斷寫(xiě)一直沒(méi)有成功,不知道大家能不能給個(gè)模版參考
回復(fù)

使用道具 舉報(bào)

ID:109943 發(fā)表于 2018-1-5 10:43 | 顯示全部樓層
廣電?光電對(duì)射傳感器吧,一般精度的用中斷配合定時(shí)器就OK了,如果要更高精度和更高轉(zhuǎn)速范圍的,可以分段,低頻測(cè)波長(zhǎng),高頻測(cè)脈沖個(gè)數(shù)的方法可以很精確。
回復(fù)

使用道具 舉報(bào)

ID:82765 發(fā)表于 2018-1-5 23:51 | 顯示全部樓層
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
回復(fù)

使用道具 舉報(bào)

ID:330988 發(fā)表于 2018-5-16 14:05 | 顯示全部樓層
多看看書(shū)  查查資料
回復(fù)

使用道具 舉報(bào)

ID:331269 發(fā)表于 2018-5-16 14:17 | 顯示全部樓層
看書(shū)吧
回復(fù)

使用道具 舉報(bào)

ID:331462 發(fā)表于 2018-5-16 17:39 | 顯示全部樓層
#include "reg51.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
#define out P0
uchar code seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x01};
int i=0;
//int TH00;
          
void main(void)
{
        int j;
        TMOD=0x15;                 // T0方式1計(jì)數(shù),T1方式1定時(shí)
        TH0=0;                        // T0計(jì)數(shù)器清零
        TL0=0;
        TH1=0x3C;                // 12MHz晶振,T1定時(shí)50ms
        TL1=0xB0;
        TR0=1;                        // 啟動(dòng)T0計(jì)數(shù)器
        TR1=1;                        // 啟動(dòng)T1
        IE=0x88;                // 允許T1中斷和總中斷允許
        while(1)
        {        P2=0x00;          // 輸出百位顯示值
                out=seg[i/100];       
                P2=0x02;
                for(j=0;j<100;j++);
                P2=0x00;
                out=seg[i%100/10];        // 輸出十位顯示值
                P2=0x04;         
                for(j=0;j<100;j++);          
                P2=0x00;                                                        out=seg[i%10];        // 輸出個(gè)位顯示值
                P2=0x08;
                for(j=0;j<100;j++);
        }                  
}


void Timer1_ISR() interrupt 3 // T1中斷程序,產(chǎn)生50ms 定時(shí)
{        static char j = 0;
        TH1=0x3C;        // 重設(shè)定時(shí)器值,50ms 定時(shí),12MHz 晶振
        TL1=0xB0;
        if(++j == 20)        // 是否中斷20次,即50msx20次 = 1s
        {        j=0;
                i=(TH0 << 8)|TL0;
// 1s內(nèi)的計(jì)數(shù)值即為電機(jī)轉(zhuǎn)動(dòng)速度,單位:轉(zhuǎn)/秒
                TH0=0;           // T0清零
                TL0=0;         
        }
}
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表