基于8051的電機轉(zhuǎn)速測量系統(tǒng)_第1頁
基于8051的電機轉(zhuǎn)速測量系統(tǒng)_第2頁
基于8051的電機轉(zhuǎn)速測量系統(tǒng)_第3頁
基于8051的電機轉(zhuǎn)速測量系統(tǒng)_第4頁
基于8051的電機轉(zhuǎn)速測量系統(tǒng)_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、內(nèi)容提要本設計實現(xiàn)的是轉(zhuǎn)速測量和顯示的目的,首先要解決的是電機轉(zhuǎn)動到轉(zhuǎn)速叔數(shù)字的問題。lab6000實驗箱上的直流電機模塊的電機上有個小磁鐵,下方的霍爾元件每轉(zhuǎn)一圈會產(chǎn)生一個脈沖,這是轉(zhuǎn)速的采樣,所以本設計主要實現(xiàn)的就是對這個脈沖的計數(shù)和顯示,設計采用軟件編程使用兩個定時器/計數(shù)器t0、t1分別實現(xiàn)計數(shù)和定時的功能,當定時中斷時,說明計數(shù)器中已記錄一秒種內(nèi)輸入的脈沖個數(shù),即直流電機一秒種內(nèi)轉(zhuǎn)的圈數(shù)轉(zhuǎn)化為的脈沖數(shù),此時產(chǎn)生中斷,將計數(shù)器中的數(shù)值輸出,然后用led顯示管顯示,通過軟硬件的結(jié)合實現(xiàn)直流電機每秒種轉(zhuǎn)速的測量和顯示。通過此次設計加深了對單片機8051/8031的定時/計數(shù)器的認識和對le

2、d顯示編程的理解。目錄1.設計的目的和意義1.1 設計的目的31.2設計的內(nèi)容31.3設計的要求32.硬件電路設計2.1總體設計框圖32.2電機測速方案設計圖32.3轉(zhuǎn)速顯示方案設計圖43.系統(tǒng)軟件設計3.1設計思路53.2程序模塊53.3程序清單74.電路調(diào)試105.結(jié)論10參考文獻111.設計的目的和意義1.實際應用匯編語言編制單片機程序以達到鞏固學習效果的目的,此次設計主要負責顯示模塊和部分硬件的調(diào)試;2.進一步掌握軟件和硬件結(jié)合共同實現(xiàn)msc-51系列單片機8051設計要求(偉福lab6000實驗箱中無8051用8031代替);3.進一步熟悉并掌握led顯示程序的設計1.2設計的內(nèi)容

3、根據(jù)直流電機旋轉(zhuǎn)所產(chǎn)生的脈沖用單片機8031測起轉(zhuǎn)速,并在數(shù)碼管中顯示轉(zhuǎn)速 1.3設計的要求1.要求能夠測量電機轉(zhuǎn)速(最大255轉(zhuǎn)/s);2要求能控制電機轉(zhuǎn)速快慢;2.要求能用led管顯示電機轉(zhuǎn)速2.硬件電路設計及描述2.1總體設計框圖 2.2電機測速方案設計 由電位器控制直流電機的轉(zhuǎn)速,直流電機每旋轉(zhuǎn)一周,內(nèi)部霍爾元件將其轉(zhuǎn)化為脈沖信號輸出給8031單片機并計數(shù),即可獲得轉(zhuǎn)速信息。mcs-51有兩個16位的定時/計數(shù)器:t0和t1.計數(shù)和定時實質(zhì)上都是對脈沖信號進行計數(shù),只不過脈沖源不同而已.當工作在定時方式時,計數(shù)脈沖來自單片機的內(nèi)部,每個機器周期使計數(shù)器加1,由于計數(shù)脈沖的頻率是固定的(

4、即每個脈沖為1個機器周期的時間),故可通過設定計數(shù)值來實現(xiàn)定時功能.當工作在計數(shù)方式時,計數(shù)脈沖來自單片機的引腳,每當引腳上出現(xiàn)一個由1到0的電平變化時,計數(shù)器的 加1,從而實現(xiàn)計數(shù)功能可以通過編程來指定時計數(shù)器的功能,以及它的工作方式本設計中定時器1工作在模式2,用于定時,定時器0工作在模式1,用于記數(shù),脈沖從t0口送入2.3轉(zhuǎn)速顯示方案設計 電機測速方案所測得的轉(zhuǎn)速信息經(jīng)編寫的程序處理,并確定顯示方式后在數(shù)碼管中顯示轉(zhuǎn)速。本實驗的led顯示鍵盤電路如下圖。顯示控制的位碼有74hc374輸出,經(jīng)uln2003反向驅(qū)動后,做led的位選通信號。位選通信號也可做為鍵盤列掃描碼。led顯示的段碼有

5、另一個74hc374輸出。鍵盤和led顯示電路的地址譯碼見圖,做鍵盤和led實驗時,需將key/led cs接到相應的地址譯碼上。位碼輸出地址為0x002h,段碼輸出地址為0x004h,此處x是由key/led cs決定的。片選號地址范圍cs008000h08fffhcs109000h09fffhcs20a000h0afffhcs30b000h0bfffhcs40c000h0cfffhcs50d000h0dfffhcs60e000h0efffhcs70f000h0ffffh圖4 地址譯碼插孔對應地址范圍3.系統(tǒng)軟件設計及描述3.1設計思路 本設計可以分為以下幾個執(zhí)行步驟:(1) 從電位器中獲得

6、控制電壓控制直流電機的轉(zhuǎn)速(2) 直流電機的轉(zhuǎn)速信息被傳感器轉(zhuǎn)化為脈沖信號輸送給8031單片機并計數(shù),即為轉(zhuǎn)速信息(3) 匯編程序從單片機的接口地址中讀取脈沖信息并將其轉(zhuǎn)化為轉(zhuǎn)速輸出到數(shù)碼管中顯示(4) 用電位器改變轉(zhuǎn)速的同時數(shù)碼管同步顯示轉(zhuǎn)速信息3.2程序模塊(1) 定時器/計數(shù)器模塊計數(shù)器對脈沖進行計數(shù),當定時器定時1s中斷后執(zhí)行顯示程序;內(nèi)部定時器用做記數(shù)器時,對機器周期記數(shù),每個機器周期的長度是12個振蕩周期,因為lab6000實驗箱的8031芯片晶振是6mhz,本程序工作在方式2即8 位自動重裝方式定時器100s,所以定時常數(shù)的設置可以按下式計算:機器周期=12/6mhz=2us(2

7、56-定時常數(shù))/2us=100s設定時常數(shù)=206,然后對100us中斷10000次就是1秒;(2) 二進制到bcd的轉(zhuǎn)換將計數(shù)的二進制值轉(zhuǎn)換成bcd碼顯示(3) 顯示程序采用動態(tài)顯示,本設計key/led cs連接的是cs0口,所以位碼輸出地址為08002h,段碼輸出地址為08004h,定義以上地址編寫程序?qū)崿F(xiàn)顯示。ny,中斷入口保護現(xiàn)場10000次計數(shù)值減一設置下次10000次計數(shù)值讀取計數(shù)值計數(shù)值為0送計數(shù)值恢復現(xiàn)場中斷返回輸出位選通信號開始延時初始化顯示參數(shù)位選通信號移位關(guān)所有位顯示指向下一位顯示數(shù)據(jù)取顯示數(shù)據(jù)6位完成輸出段碼數(shù)據(jù) 否 是返回圖6 顯示處理流程圖圖5 定時中斷處理流程

8、圖要顯示的二進制數(shù)將數(shù)除于100得百位顯示百位將余數(shù)再除于10得十位顯示十位余數(shù)為各位并顯示跳出圖7 二進制到bcd轉(zhuǎn)換3.3程序清單outbit equ 08002h ;位控制口outseg equ 08004h ;段控制口ledbuf equ 60h ;顯示緩沖c100us equ 43htick equ 10000 ;循環(huán)計數(shù)初值t100us equ 206 ;定時器計數(shù)初值 org 0000h ljmp start org 001bh ;定時中斷子程序,定時1st0int: push psw ;保護斷點 push a mov a, c100us+1 jnz goon dec c100u

9、sgoon: dec c100us+1 mov a, c100us orl a, c100us+1 jnz exit mov c100us, #high(tick) mov c100us+1, #low(tick) jmp clearlcall speed ;按轉(zhuǎn)/秒顯示clear: mov tl0,#0 ;轉(zhuǎn)數(shù)清零,下一秒重新計數(shù)exit: pop a pop psw reti;=ledmap: ; 八段管顯示碼 db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hdisplay

10、led: mov r0, #ledbuf mov r1, #6 ; 共用6個八段管 mov r2, #00100000b ; 從左邊第1個開始顯示loop: mov dptr, #outbit mov a, #0 movx dptr, a ; 關(guān)所有八段管 mov a, r0 mov dptr, #outseg movx dptr,a mov dptr, #outbit mov a, r2 movx dptr, a ; 顯示一位八段管 mov a, r2 ; 顯示下一位 rr a mov r2, a inc r0 djnz r1, loop ret; =toled: ;查找字形代碼 mov d

11、ptr, #ledmap movc a, a+dptr retstart: mov tmod, #25h ;定時器1模式2,定時工作 ;定時器0模式1,計數(shù)工作 mov th0,#0 ;計數(shù)初值為0 mov tl0,#0 mov th1, #t100us mov tl1, #t100us mov ie, #10001011b ;ea=1,et1=1,ex1=0,et0=1,ex0=1 mov c100us, #high(tick) mov c100us+1, #low(tick) setb tr1 ;啟動定時器1 setb tr0 ;啟動定時器0mloop: lcall displayled

12、jmp mloop;=speed: ;顯示轉(zhuǎn)速(轉(zhuǎn)/秒) mov a,#0 ;前四位數(shù)碼管清零 call toled mov ledbuf,a mov ledbuf+1,a mov ledbuf+2,a mov ledbuf+3,a mov a, tl0 mov b, #10 div ab call toled mov ledbuf+3, a ;顯示百位 mov a,#10 xch a, b div ab call toled mov ledbuf+4, a ;顯示十位 xch a,b call toled mov ledbuf+5, a ;顯示個位 retend4.電路調(diào)試本次實驗采用wav

13、e lab6000通用微控制器實驗箱做開發(fā)工具,調(diào)試具體程序時,先采用軟件模擬器調(diào)試程序,程序調(diào)試無誤后,連接硬件,進行軟件與硬件相結(jié)合的調(diào)試。為方便查找程序錯誤,分析程序執(zhí)行過程,調(diào)試過程中一般使用單步執(zhí)行和跳到光標位置執(zhí)行操作,需要知道最終調(diào)試結(jié)果是否正確時使用全速執(zhí)行。調(diào)試過程大致經(jīng)過以下幾個階段:1)剛開始我們打算完全用軟件模擬本次實驗,用定時器t1做波特率發(fā)生器模擬直流電機的脈沖輸入,定時器t0工作在模式三,這樣t0高八位可作為定時器,低八位可做計數(shù)器,完成脈沖每秒的數(shù)量測量,但由于t1做波特率發(fā)生器時很難控制,所以我們只得使用軟硬件結(jié)合的方式。2)軟硬件結(jié)合。將電位器接直流電機d/

14、a輸入口,其脈沖輸出接8051t0口(p3.4口),然后將片外ram cs0與led和鍵盤片選key/led cs相連,完成硬件連接。3)軟件調(diào)試:先執(zhí)行全速執(zhí)行,觀察所出現(xiàn)的問題。定時器/計數(shù)器模塊調(diào)試時,打開cpu窗口及定時器t0和定時期t1窗口,然后單步運行觀察所編語句是否每句達到預定效果,應注意的是定時期/計數(shù)器工作時無法賦初值。led顯示模塊的調(diào)試需先用跳到光標位置執(zhí)行,然后單步運行程序,觀察cpu窗口中各寄存器中數(shù)據(jù)變化是否按預定執(zhí)行,同時觀察led顯示結(jié)果,并思考軟件運行過程。led顯示模塊調(diào)試時先增大延時,使其在動態(tài)顯示時能從左到右逐位清楚的顯示,調(diào)用無誤后再調(diào)整好延時,使其快速顯示,達到穩(wěn)定顯示的效果。5.結(jié)論本實驗通過傳感器將轉(zhuǎn)速轉(zhuǎn)化為脈沖的形式,輸送給8031單片機,單片機再將脈沖計數(shù),即可得直流電機的轉(zhuǎn)速信息。本測速系統(tǒng)結(jié)構(gòu)簡單,顯示直觀,與應用中的電子汽車里程表原理相似。但在調(diào)試當中也發(fā)現(xiàn)了一些不足,譬如轉(zhuǎn)速的顯示位數(shù)有限,最大255轉(zhuǎn)/s能滿組一般電

溫馨提示

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

評論

0/150

提交評論