基于單片機轉(zhuǎn)數(shù)測量設(shè)計報告_第1頁
基于單片機轉(zhuǎn)數(shù)測量設(shè)計報告_第2頁
基于單片機轉(zhuǎn)數(shù)測量設(shè)計報告_第3頁
基于單片機轉(zhuǎn)數(shù)測量設(shè)計報告_第4頁
基于單片機轉(zhuǎn)數(shù)測量設(shè)計報告_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 課 程 名 稱 傳 感 器 項 目 名 稱基于霍爾傳感器的電機轉(zhuǎn)速測量系統(tǒng)設(shè)計年 級 電 科121班 專 業(yè) 電子信息科學(xué)與技術(shù) 學(xué)生姓名 岑萬雙 學(xué) 號 1207010032 2015 年 12月 21日目 錄摘要2引言31系統(tǒng)設(shè)計411硬件設(shè)計411.1原理圖4112硬件電路4(一)霍爾傳感器5(二)處理器6(三)LCD顯示和報警612軟件設(shè)計61.21主程序6(一)工作過程6(二)流程圖7(三)程序7122中斷程序8(一)外部計數(shù)中斷8(二)定時器中斷91.2.3 顯示模塊相關(guān)程序102. PROTUES仿真結(jié)果14結(jié)論17摘要本設(shè)計以對電機轉(zhuǎn)速的測量為目的,以51單片機作為主控制器,

2、使用霍爾傳感器對電機轉(zhuǎn)速進行測量。采用仿真軟件Protues進行硬件搭接,并利用Keil軟件對所寫C程序進行編譯、仿真,利用LCD1602顯示其具體轉(zhuǎn)速。首先介紹了霍爾傳感器的基本概念及其原理,其次闡述了霍爾傳感器測速系統(tǒng)的工作過程,利用脈沖計數(shù)法實現(xiàn)了對轉(zhuǎn)速的測量,通過LCD1602直觀地顯示轉(zhuǎn)速值,仿真結(jié)果表明所設(shè)計的系統(tǒng)是正確的。引言 在生產(chǎn)過程中,經(jīng)常會遇到各種需要和顯示其轉(zhuǎn)速的場合。測量轉(zhuǎn)速的方法分為模擬式和數(shù)字式兩種。 模擬式采用測速發(fā)電機為檢測元件,得到的信號是模擬量。數(shù)字式通常采用光電編碼器、霍爾元件等為檢測元件,得到的信號是脈沖信號。隨著微型計算機的廣泛應(yīng)用,特別是高性能價格

3、比的單片機的出現(xiàn),轉(zhuǎn)速測量普遍采用以單片機為核心的數(shù)字式測量方法,智能化微處理器代替了一般機械式或模擬式結(jié)構(gòu)。 1系統(tǒng)設(shè)計 把霍爾傳感器和機軸同軸連接,利用開關(guān)型霍爾傳感器將電動機轉(zhuǎn)速轉(zhuǎn)化為單片機可以識別的脈沖信號,將脈沖信號送入單片機,外部中斷計數(shù)并設(shè)置定時器中斷時間,每1s讀一次外部中斷計數(shù)值,此值為脈沖信號的頻率,最后由電機轉(zhuǎn)速計算公式得到轉(zhuǎn)速。在正常的情況下,通過LCD顯示當(dāng)前的轉(zhuǎn)速數(shù)值,同時時刻更新,保證測量的實時性:當(dāng)電機的轉(zhuǎn)速超出一定的范圍后,通過蜂鳴器進行報警。 11硬件設(shè)計 11.1原理圖 以單片機AT89C51為控制核心,霍爾集成傳感器作為測量轉(zhuǎn)速的檢測元件,最后用字符型液

4、晶顯示器1602顯示轉(zhuǎn)速數(shù)值,當(dāng)轉(zhuǎn)速超過一定值或停止時報警。原理圖如圖1所示:圖1 112硬件電路 在原理圖基礎(chǔ)上對硬件電路進行了詳細的設(shè)計,硬件電路圖如圖2 所示: 圖2(一)霍爾傳感器利用霍爾傳感器將電機轉(zhuǎn)速轉(zhuǎn)化為脈沖信號。測量用霍爾器件A3144為開關(guān)型霍爾集成電路,是將霍爾元件、穩(wěn)壓電路、放大器、施密特觸發(fā)器、OC門等電路做在同一個芯片。當(dāng)外加磁場強度超過規(guī)定的工作點時,OC門由高阻態(tài)變?yōu)閷?dǎo)通狀態(tài),輸出變?yōu)榈碗娖?;?dāng)外加磁場強度低于釋放點時,OC門重新變?yōu)楦咦钁B(tài),輸出高電平。通過上拉電阻可將其輸出接入邏輯電路。該芯片具有尺寸小、穩(wěn)定性好、靈敏度高等特點,有兩種封裝形式,一種是3腳貼片微

5、小型封裝,后綴為“LT”:另一種是3腳直插封裝,后綴為“UA”。霍爾器件A3144管腳及其接線如圖3所示:圖3(二)處理器處理器采用的是89C51單片機。通過89C51,單片機完成對電轉(zhuǎn)速脈沖計數(shù)的控制,讀取寄存器完成轉(zhuǎn)速頻率的確定。而電機脈沖信號連到INTO引腳。INTO中斷對轉(zhuǎn)速脈沖計數(shù)。定時器T0工作于定時方式,工作于方式l。每到ls讀一次外部中斷INTO計數(shù)值,此值即為脈沖信號的頻率。根據(jù)下式可計算出電機的轉(zhuǎn)速,電機轉(zhuǎn)速計算公式: 其中n為電機轉(zhuǎn)速,f為電機脈沖信號頻率,z為轉(zhuǎn)軸旋轉(zhuǎn)一霍爾傳感器產(chǎn)生的脈沖數(shù)。(三)LCD顯示和報警在正常的情況下,通過LCD顯示當(dāng)前的轉(zhuǎn)速數(shù)值,當(dāng)電機的轉(zhuǎn)

6、超出一定的范圍后,產(chǎn)生一個控制信號控制相應(yīng)模塊進行報警。12軟件設(shè)計 1.21主程序 (一)工作過程 先初始化,設(shè)置各中斷初值,檢測脈沖到來后,啟動外部中斷,每來一個脈沖中斷一次,記錄脈沖個數(shù);同時啟動T0定時器工作,每1秒定時中斷一次,讀取記錄的脈沖個數(shù),即電機脈沖信號頻率,根據(jù)公式計算出電機的轉(zhuǎn)速,再進行數(shù)值的判斷,若數(shù)值高于1000則報警,否則就進行正常速度液晶顯示。 (二)流程圖如圖4所示:圖4 (三)程序 main() LED=1; Lcd1602_Delay1ms(1000); LED=0; LcdInit(); do TMOD=0x01;/定時器0方式1 TH0=0x3C;/裝載

7、50ms定時初值 TL0=0xB0; TCON=0x11; /啟動定時中斷和外中斷0下降沿觸發(fā) IE=0x83;/允許定時和外部中斷響應(yīng) while(fb=0); if(zs>=1000) LED=1;/轉(zhuǎn)數(shù)大于1000R/S控制燈亮 Lcd1602_Delay1ms(1000); display1(); while(1); 122中斷程序 (一)外部計數(shù)中斷 1工作過程 每來一個電機脈沖信號,INTO產(chǎn)生中斷計數(shù)。2流程圖如圖5所示:圖53 程序void countv(void) interrupt 0 /外部中斷程序 count+; if(count%6=0) zs+; (二)定時器

8、中斷 1工作過程 TTO定時器每1秒定時中斷一次,讀取記錄的脈沖個數(shù)。 2流程圖 如圖6所示:圖63、 程序void tim0(void) interrupt 1 /定時中斷程序 TH0=0x3C;/50ms定時 TL0=0xB0; msec+; if(msec%20=0)/20*50ms=1s,1s定時到 EA=0; fb=1; 1.2.3 顯示模塊相關(guān)程序 在對液晶模塊的初始化中要先設(shè)置其顯示模式,在液晶模塊不顯示字符時光標(biāo)是自動右移的,無需人工干預(yù)。顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符。向LCD輸入的數(shù)據(jù)有兩種,一種是指令,一種是數(shù)據(jù)。指令是負責(zé)初始化LCD和顯示

9、字符在什么位置。數(shù)據(jù)是告訴該顯示什么。命令與數(shù)據(jù)是RS端的高低電平來確定。/* 函 數(shù) 名 : data_chang* 函數(shù)功能 : 將轉(zhuǎn)數(shù)的每一位依次存到數(shù)組中* 輸 入 : 無* 輸 出 : 無*/void data_chang()/數(shù)據(jù)轉(zhuǎn)換程序 SZ0=(zs/1000%10+'0');/轉(zhuǎn)換轉(zhuǎn)數(shù)的千位 SZ1=(zs/100%10+'0');/轉(zhuǎn)換轉(zhuǎn)數(shù)的白位 SZ2=(zs/10%10+'0');/轉(zhuǎn)換轉(zhuǎn)數(shù)的十位 SZ3=(zs%10+'0');/轉(zhuǎn)換轉(zhuǎn)數(shù)的個位 zs=0; msec=0; count=0; /* 函 數(shù)

10、名 : display1* 函數(shù)功能 : 將數(shù)組中的每一個依次顯示* 輸 入 : 無* 輸 出 : 無*/ void display1 ( ) /顯示子程序 int i;data_chang();/數(shù)據(jù)處理LcdWriteCom(0xc4); for(i=0;i<5;i+) LcdWriteData(SZi);Lcd1602_Delay1ms(1000); /* 函 數(shù) 名 : Lcd1602_Delay1ms* 函數(shù)功能 : 1ms延時* 輸 入 : c* 輸 出 : 無*/void Lcd1602_Delay1ms(uint c) /誤差 0us uchar a,b;for (; c

11、>0; c-) for (b=199;b>0;b-) for(a=1;a>0;a-); /* 函 數(shù) 名 : LcdWriteCom* 函數(shù)功能 : 向LCD寫入一個字節(jié)的命令* 輸 入 : com* 輸 出 : 無*/void LcdWriteCom(uchar com) /寫入命令LCD1602_RS = 0; /選擇發(fā)送命令LCD1602_RW = 0; /選擇寫入 LCD1602_E = 1; /使能LCD1602_DATAPINS = com; /放入命令Lcd1602_Delay1ms(5);/等待數(shù)據(jù)穩(wěn)定LCD1602_E = 0; /寫入時序 void Lcd

12、WriteData(uchar dat)/寫入數(shù)據(jù)LCD1602_RS = 1;/選擇輸入數(shù)據(jù)LCD1602_RW = 0;/選擇寫入LCD1602_E = 1; /寫入時序LCD1602_DATAPINS = dat; /寫入數(shù)據(jù)Lcd1602_Delay1ms(5); /保持時間LCD1602_E = 0;/* 函 數(shù) 名 : LcdInit()* 函數(shù)功能 : 初始化LCD屏* 輸 入 : 無* 輸 出 : 無*/ void LcdInit(void) /LCD初始化子程序(8位傳輸)int i; LcdWriteCom(0x38); /開顯示LcdWriteCom(0x0c); /開顯

13、示不顯示光標(biāo)LcdWriteCom(0x06); /寫一個指針加1LcdWriteCom(0x01); /清屏LcdWriteCom(0x83); /設(shè)置數(shù)據(jù)指針起點for(i=0;i<10;i+)LcdWriteData(Pai);LcdWriteCom(0xc9); LcdWriteData('R');LcdWriteData(0x2f);LcdWriteData('S');2、 PROTUES仿真結(jié)果 對于本系統(tǒng)的霍爾傳感器產(chǎn)生的脈沖信號,利用軟件中信號脈沖代替,其頻率的值就代表霍爾傳感器產(chǎn)生的頻率,霍爾傳感器6個脈沖信號表明轉(zhuǎn)一圈,即轉(zhuǎn)數(shù)N=f/6。當(dāng)頻率為f=1k:理論值N=1000/6=166.667,測量值N=166,沒有誤差。圖7圖8當(dāng)頻率為f=5k:理論值N=4000/6=833.3,測量值N=667,沒有誤差。圖9當(dāng)頻率為f=4.8k:理論值N=4800/6=800,測量值N=790,測不準(zhǔn),有誤差。圖10當(dāng)頻率為f=4.9k:理論值N=4900/6=816.6,測量值N=1099,測不準(zhǔn),誤差較大。圖11當(dāng)頻率為f=5k:理論值N=5000/6=833.3,測量值N=2265,結(jié)果與實際值不服,不能測量。圖11 由以上測試結(jié)果可以看出,當(dāng)轉(zhuǎn)數(shù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論