標題: 基于51單片機轉(zhuǎn)速測量程序設計與仿真 [打印本頁]

作者: 51mcu    時間: 2019-5-19 15:17
標題: 基于51單片機轉(zhuǎn)速測量程序設計與仿真
基于51單片機轉(zhuǎn)速測量程序設計與仿真,單片機采用51單片機,由1602液晶屏顯示測量得到的轉(zhuǎn)速,電路簡單,程序注解詳細,方便學習。




#include <REGX52.H>
#include <stdio.h>
#include "LCD.H"
#include "delay.h"

unsigned char aa[16]={'Q','Q',':','1','2','1','1','7','1','6',' ',' ',' ',' ',' ',' ',};  //QQ:1211716         ,你自己可以改成你需要的,如你的學號:No:xxxxxxxxxxx        ,你的名字的漢語拼音等。        
unsigned char cc[]={'S','p','e','e','d',':',' ',' ',' ',' ','r','/','m','i','n'};           //Speed:       r/min
unsigned char z,n,cnt;
unsigned int r,m;

main()
{
        IE=0X8A;
        TMOD=0X51;                                        //T0為定時器,T1為16位計數(shù)器
        TH0=(65536-50000)/256;                 //定時50毫秒
        TL0=(65536-50000)%256;                 //定時50毫秒
        TH1=0;                                                //脈沖計數(shù)器高位清零
        TL1=0;                                                //脈沖計數(shù)器低位清零
        TR0=1;                                                  //啟動內(nèi)部定時器
        TR1=1;                                                //啟動外部脈沖計數(shù)器
         init();                                                  //初始化液晶顯示器
         LCD_Write_String(0,0,aa);          //顯示第一行內(nèi)容
        z=1;                                                 //檢測結束標志初始化
        while(1)
        {
                   n=P1;                                           //讀取測速光柵個數(shù)。
            if(z==1)                                //完成一次檢測時進行顯示處理
                {
                        if(r>9999)                        //測量值大于上限時顯示 C C C C
                        {
                                cc[6]='C';
                                cc[7]='C';
                                cc[8]='C';
                                cc[9]='C';
                        }
                        else
                        {
                                cc[6]=r/1000+'0';
                                cc[7]=r/100%10+'0';
                                cc[8]=r/10%10+'0';
                                cc[9]=r%10+'0';
                        }
                        LCD_Write_String(1,1,cc);          //顯示測量得到的結果
                        z=0;                                                  //顯示結束時測量標志清零,為下一次測量做準備
                         TR0=1;                                                    //啟動內(nèi)部定時器
                        TR1=1;                                                  //啟動外部脈沖計數(shù)器
                }
        }
}

void int0() interrupt 1
{
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        if(++cnt==20)                          //1秒計時到                          
        {
                 TR1=0;                                   //停止定時器工作
                TR0=0;                                   //停止計數(shù)器工作
                cnt=0;                                //1秒定時標志位清零
                m=(TH1*256+TL1);          //1秒鐘測量得到的脈沖數(shù)。
                r=m*60/n;                          //n為測速光柵個數(shù)。s為轉(zhuǎn)速:轉(zhuǎn)/min 60是換算成1分鐘的轉(zhuǎn)速。
                TH1=0;                                //脈沖計數(shù)器高位清零
                TL1=0;                                //脈沖計數(shù)器低位清零
                z=1;                                 //檢測結束時標志置1
        }
}

完整程序就自己下載附件。
基于51單片機轉(zhuǎn)速測量程序設計與仿真.rar (86.18 KB, 下載次數(shù): 94)

作者: 1614    時間: 2019-5-22 16:12
怎么打不開
作者: 1614    時間: 2019-5-22 16:15
怎么打不開
作者: wei0308    時間: 2019-6-19 12:25
1614 發(fā)表于 2019-5-22 16:12
怎么打不開

請問可以用嗎
作者: wei0308    時間: 2019-6-19 12:26
積分不夠,想要程序,大哭
作者: darksouls    時間: 2020-5-23 21:15
wei0308 發(fā)表于 2019-6-19 12:26
積分不夠,想要程序,大哭

我也是,剛好不夠了,難受




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1