新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機電機測速程序

        單片機電機測速程序

        作者: 時間:2016-12-02 來源:網絡 收藏
        這個51單片機+電機霍爾測速程序是從一個制作成功的智能小車里面提取出來的

        本文引用地址:http://www.104case.com/article/201612/325017.htm

        原理圖及其源代碼壓縮包的下載地址:http://www.51hei.com/bbs/dpj-19526-1.html

        下面是主要的程序文件預覽:
        #include
        unsigned int i=0;
        sbit P36=P3^6;
        unsigned char j;
        unsigned int kop;
        unsigned char a[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
        unsigned char b[8]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
        void delaym(unsigned int t)
        { unsigned char p;
        while(t--)
        {
        for(p=0; p<125; p++);
        }
        }

        void main()
        {
        EA = 1;
        TH0=0x00;
        TL0=0x00;
        ET0=1;
        ET1=1;
        TMOD = 0x15;// 打開定時器和計數器T0,因此矩形脈沖輸入端接P3.4
        TH1=0x3C; //50ms
        TL1=0xB0;
        TR0 = 1;
        TR1 = 1;
        while(1)
        {
        for(j=0;j<3;j++) //顯示個數
        {
        P0=b[j];
        P2=j;
        delaym(2);
        }
        }
        }
        timer3() interrupt 3 //定時器中斷時間到,就讀取計數器值
        { TH1=0X3C;
        TL1=0XB0;
        i++;
        if(i==20) //1s才進行技術脈沖值顯示,即每秒更新一次速度
        {
        kop=TH0;//計數器計入脈沖,每來一個矩形脈沖計數值加1
        kop=kop<<8;
        kop=kop+TL0;

        b[2]=a[kop/100]; //顯示計數器的值即實際測得速度
        b[1]=a[kop%100/10];
        b[0]=a[kop%100%10];
        i=0;
        TH0=0;//計數器速度獲取后清零,進行下次獲取
        TL0=0;
        }
        }



        關鍵詞: 單片機電機測

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 凤庆县| 张掖市| 仲巴县| 章丘市| 北宁市| 万荣县| 赤水市| 正镶白旗| 介休市| 县级市| 衢州市| 明光市| 光山县| 绵阳市| 澜沧| 静宁县| 恩平市| 镇巴县| 北碚区| 奉新县| 郓城县| 崇明县| 龙海市| 东城区| 衡水市| 永胜县| 六安市| 佛坪县| 黑山县| 获嘉县| 肇州县| 白朗县| 镶黄旗| 万宁市| 凉城县| 海伦市| 灌云县| 泗阳县| 兴安盟| 闻喜县| 特克斯县|