国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于單片機的轉(zhuǎn)速測量系統(tǒng)設計

2012-01-25 07:15陳博煒
關(guān)鍵詞:數(shù)碼管計數(shù)器計數(shù)

陳博煒

(延安大學 物理與電子信息學院,陜西 延安 716000)

由于電機在運行的過程中,轉(zhuǎn)速的平穩(wěn)性很重要,而且電機在生產(chǎn)過程中要進行檢驗,其中轉(zhuǎn)速就是個非常重要的參數(shù),所以要適時對電機的轉(zhuǎn)速進行測量,來檢測電機的工作情況,以及電機的質(zhì)量問題,有效地反映電機的狀況,因此轉(zhuǎn)速測量是非常重要的一個環(huán)節(jié),具有非常大的現(xiàn)實意義。因為現(xiàn)在單片機的應用為轉(zhuǎn)速測量提供了方便有效的解決方案,所以智能化的電機轉(zhuǎn)速測量應用非常廣泛[1]。

1 轉(zhuǎn)速測量系統(tǒng)設計方案

基于單片機的轉(zhuǎn)速測量,所以主要功能利用傳感器將轉(zhuǎn)速信號轉(zhuǎn)換成電信號,然后由AT89C51單片機接收傳感器傳來的脈沖信號,根據(jù)外部中斷,以及內(nèi)部定時器進行記數(shù)計算出電機轉(zhuǎn)速送到LED顯示[2]。組成及框圖如圖1所示:

圖1 轉(zhuǎn)速測量框圖

2 轉(zhuǎn)速測量系統(tǒng)的硬件電路設計

硬件設計的任務是根據(jù)總體設計要求,在選擇的機型的基礎(chǔ)上,具體確定系統(tǒng)中所要使用的元器件,設計出系統(tǒng)的電路原理圖。該系統(tǒng)包括傳感器,處理電路,計數(shù)器,和顯示四部分。

傳感器將轉(zhuǎn)速信號這個非電信號轉(zhuǎn)換成單片機可以接收的電信號,但是信號不能直接測量,要經(jīng)過處理電路進行整形,然后89C51單片機通過To輸入傳感器的脈沖信號,由P0口P2口接LED,用動態(tài)驅(qū)動顯示。

2.1 傳感器

傳感器是轉(zhuǎn)速測量的關(guān)鍵部分,沒有它轉(zhuǎn)速信號就不能用單片機進行計算測量,因為傳感器可以將轉(zhuǎn)速轉(zhuǎn)換成脈沖信號,經(jīng)過處理后,就可以利用單片機進行計算得到轉(zhuǎn)速值。光電傳感器在檢測與控制中應用非常廣泛,它基本上可以分為模擬式傳感器和脈沖式傳感器兩類。模擬式光電傳感器的作用原理是基于光電器件的光電流隨光通量而發(fā)生變化的,是光通量的函數(shù)。脈沖式光電傳感器的作用原理是光電器件的輸出僅有兩個穩(wěn)定狀態(tài),也就是“通”與“斷”的開光狀態(tài),即光電器件受光照射時,有電信號輸出,光電器件不受光照射時,沒有電信號輸出[3]。根據(jù)設計要求選擇脈沖式光電傳感器。

這里選著SZGB-4A型光電轉(zhuǎn)速傳感器,SZGB-4A型光電轉(zhuǎn)速傳感器采用紅外光電器件結(jié)構(gòu)的小型封閉式轉(zhuǎn)速傳感器具有功耗小、壽命長、抗干擾能力強等優(yōu)點,使用時通過聯(lián)軸節(jié)與被測軸連接,當轉(zhuǎn)軸旋轉(zhuǎn)時,將角位移轉(zhuǎn)換成電脈沖信號,供計數(shù)器使用。具體參數(shù)如下:

(1)輸出脈沖數(shù):60脈沖(每一轉(zhuǎn))。

(2)輸出波形:方波。

(3)輸出信號幅值:高電平≈電源電壓;低電平< +0.5V。

(4)測速范圍:20~3000 r/min(連續(xù)使用)。(5)供電電源:DC;20mA;5±0.5V。

2.2 轉(zhuǎn)速信號處理電路

圖2 信號處理電路

轉(zhuǎn)速信號由光電傳感器轉(zhuǎn)換為脈沖信號,但是由于傳感器的輸出信號幅值會受到外界噪聲的影響,因此輸出電壓是不穩(wěn)定的,不是理想的方波信號,所以這里要對轉(zhuǎn)速信號進行濾波處理,濾波電路圖如圖2所示。LM324系列器件為價格便宜的帶有真差動輸入的四運算放大器。與單電源應用場合的標準運算放大器相比,它們有一些顯著優(yōu)點。該四放大器可以工作在低到3.0伏或者高到32伏的電源下,靜態(tài)電流為MC1741的靜態(tài)電流的五分之一。根據(jù)單片機TTL的需求,這里設置LM324的工作電壓正電壓為5 V,負電壓為0 V。此電路圖的工作原理是,當LM324的正信號輸入端的電壓Ui,即傳感器輸出電壓高于LM324的負信號輸入端的電壓時,這里負信號輸入端接地為0 V,LM324的輸出信號Uo為LM324的正工作電壓,即+5 V。相反的,如果Ui低于0V時,Uo為LM324的負工作電壓0 V。經(jīng)過這個電路的處理后就會輸出一個和輸入信號同頻率的方波。具體的輸入信號Ui和輸出信號Uo的波形如圖3的(a)(b)所示。

圖3 (a)轉(zhuǎn)速信號處理前Ui波形(b)轉(zhuǎn)速信號處理后Uo波形

2.3 轉(zhuǎn)速的計算電路

轉(zhuǎn)速的計算是由單片機完成的,主要用到單片機的定時器和計數(shù)器。51單片機的定時計數(shù)器有4鐘工作方式,不同的工作方式有不同的工作特點。本次設計采用方式1,即計數(shù)寄存器的位數(shù)是16位,由THx和TLx寄存器各提供8位計數(shù)初值。方式1最大計數(shù)值為65536個脈沖,是這幾種方式中計數(shù)值最大的方式。用計數(shù)器T1計數(shù),定時器T0定時。所以轉(zhuǎn)速信號由T1口接入,進行測量。

單片機我們采用AT89C51。AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存貯器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。P0口為一個8位漏極開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故[4]。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。RST:復位輸入[5]。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。

轉(zhuǎn)速信號的計算由單片機完成,單片機的最小系統(tǒng)包括時鐘電路和復位電路。

單片機的時鐘電路用來提供單片機內(nèi)部各種微操作的事件基準。51單片機的時鐘信號電路通常有兩種電路形式:內(nèi)部振蕩方式和外部振蕩方式。在引腳XTAL1和XTAL2外晶體振蕩器(簡稱晶振)或陶瓷諧振器,就構(gòu)成了內(nèi)部振蕩方式。由于單片機內(nèi)部有一個高增益反相放大器,外接晶振后,就構(gòu)成了自激振蕩器,并產(chǎn)生振蕩時鐘脈沖。內(nèi)部振蕩方式如圖所示,電容C1和C2起穩(wěn)定振蕩頻率、快速起振的作用。電容一般為5至30 pF。外部振蕩方式是把已有的時鐘信號引入單片機內(nèi),這種方式適宜用來使單片機的時鐘與外部信號保持一致。因為本設計不需要與外部信號保持一致,選擇內(nèi)部振蕩方式。

復位操作則使單片機的片內(nèi)電路初始化,使單片機從一種確定狀態(tài)開始運行。當51單片機的復位引腳出現(xiàn)5 ms以上的高電平時,單片機就完成了復位操作。如果RST持續(xù)為高電平,單片機就處于循環(huán)復位狀態(tài),而無法執(zhí)行程序,因此要求單片機復位后能脫離復位狀態(tài)。復位操作通常也有兩種形式:上電復位、開關(guān)復位。上電復位要求連通電源后,自動實現(xiàn)復位操作;開關(guān)復位要求在電源接通的情況下,在單片機運行,如果發(fā)生死機,用按鈕開關(guān)操縱使單片機復位[6]。上電復位電路圖如圖所示,電容C=20 μF,R=10 K。單片機時鐘電路和復位電路如圖4所示。

圖4 單片機復位電路圖

2.4 轉(zhuǎn)速顯示電路

顯示電路采用 LED數(shù)碼管動態(tài)顯示,LED(Light-EmittingDiode)是一種外加電壓從而渡過電流并發(fā)出可見光的器件。LED是屬于電流控制器件,使用時必須加限流電阻。LED有共陰和共陽兩種[7]。發(fā)光二極管的陽極連在一起的稱為共陽極顯示器,陰極連在一起的稱為共陰極顯示器。1位顯示器由八個發(fā)光二極管組成,其中七個發(fā)光二極管a~g控制七個筆畫(段)的亮或暗,另一個控制一個小數(shù)點的亮和暗[8]。LED斷碼表如下表1所示。

表2 LED段碼表

本設計采用四位一體數(shù)碼管,管腳圖如圖5所示。根據(jù)設計方案選著的是動態(tài)現(xiàn)實,在輪流顯示過程中,每位數(shù)碼管的點亮時間為1~2 ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應,盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的。轉(zhuǎn)速測量系統(tǒng)的顯示電路由單片機的P0口控制數(shù)碼管的字形,即P1口依次接“a~g”口。由P2口的低四位接數(shù)碼管的“1~4”口,用三極管構(gòu)成位驅(qū)動。顯示電路圖如圖6所示。

圖5 四位一體數(shù)碼管管腳圖

圖6 顯示電路

3 轉(zhuǎn)速測量系統(tǒng)的軟件設計

軟件部分主要是實現(xiàn)計數(shù)功能和顯示功能,單片機的計數(shù)有兩種方法,一種是片外計數(shù),一種是片內(nèi)計數(shù)。片外計數(shù)方案是采用片外專用計數(shù)芯片進行脈沖計數(shù),單片機控制片外芯片的計算過程,并在計數(shù)完畢后讀取計數(shù)值;片內(nèi)計數(shù)方案是指采用單片機的內(nèi)被計數(shù)器完成對脈沖的計數(shù)過程。

本次設計采用片內(nèi)計數(shù)的方法,設計比較簡單。使用單片機內(nèi)部的T1作為外部脈沖的計數(shù)器,每到一個脈沖將會產(chǎn)生一個T1的計數(shù),在T0定時中斷完成后,T1的中斷益處次數(shù)就是所需要計的脈沖數(shù)。

顯示部分,根據(jù)數(shù)碼管的驅(qū)動方式的不同,可以分為靜態(tài)式和動態(tài)式兩類,為了節(jié)省I/O口線,我們采用的動態(tài)顯示方式。

采用12MHz的晶振,所以機器周期是1 μs,定時/計數(shù)器的工作方式采用方式1,即計數(shù)寄存器的位數(shù)是16位。由于定時時間小于65.5ms,計數(shù)脈沖小于65536個,所以這里我采用定時50ms,根據(jù)定時方式計數(shù)初值C=模-[t/MC],這里t就是定時時間,MC就是機器周期。計算的初值是3CAFH。累計計數(shù)20次,計數(shù)之和就是一秒鐘內(nèi)的轉(zhuǎn)速。再計算轉(zhuǎn)速的個、十、百、千位,根據(jù)硬件電路圖,P1口控制字形,P2口的第四位控制位選,分別顯示在LED上。

51系列單片機支持3種高級語言,即PL/M,C和BASIC。C語言是一種通用的程序設計語言,其代碼率高,數(shù)據(jù)類型及運運算豐富,并具有良好的程序結(jié)構(gòu),適用于各種應用程序設計,是目前使用較廣的單片機編程語言。應用C51編程具有以下優(yōu)點:(1)C51管理內(nèi)部寄存器和存儲器的分配、編程時,無需考慮不同存儲器的尋址和數(shù)據(jù)類型等細節(jié)問題;(2)程序又若干函數(shù)組成,具有良好的模塊化結(jié)構(gòu);(3)有豐富的子程序庫可直接引用,從而大大減少用戶編程的工作量[9]。所以本次編程我選擇C語言。

具體的編程思路是這樣的,首先主程序是計算單位時間的轉(zhuǎn)速值,由于采用的定時時間是50 ms,計數(shù)器每次的計數(shù)值并不是單位時間的轉(zhuǎn)速值,所以將20次的計數(shù)值累加起來就是1 s鐘的計數(shù)值,也就是測得的轉(zhuǎn)速值,然后計算轉(zhuǎn)速值的各個數(shù)位,假設轉(zhuǎn)速值是f,那么千位為f1=f/1000;百位為f2=f%1000/100;十位為f3=f%100/10;個位為f4=f%10。最后調(diào)用顯示函數(shù)。

子函數(shù)包括中斷函數(shù)、計數(shù)函數(shù)、顯示函數(shù)、延遲函數(shù)。這里中斷函數(shù)要根據(jù)定時時間來編程,上邊已經(jīng)計算出定時初值為3CAF,TL0=0V3C,TH0=0XAF,當定時開始后50 ms就會產(chǎn)生一個中斷。計數(shù)函數(shù)首先是將計數(shù)器T1初始化,當外部轉(zhuǎn)速信號每到一個高電平是計數(shù)器會自動加1,當定時時間到產(chǎn)生中斷后,計數(shù)計數(shù)值。因為選擇的是共陽極數(shù)碼管,所以為選要給高電平才可以具體的代碼如下:

程序流程圖如圖7所示。

圖7 程序流程圖

4 轉(zhuǎn)速測量系統(tǒng)的軟、硬件調(diào)試

軟件調(diào)試用Keil軟件進行編譯,它是一個基于32位Windows環(huán)境的應用程序,支持C語言和匯編語言編程,應用Keil進行軟件仿真開發(fā)的主要步驟為:編寫源程序并保存—建立工程并添加源文件—設置工程—編譯/匯編、連接,產(chǎn)生目標文件—程序調(diào)試[10]。

首先選擇菜單File-New…,在源程序編輯器中輸入?yún)R編語言或C語言源程序(或選擇File-Open…,直接打開已用其它編輯器編輯好的源程序文檔)并保存,注意保存時必須在文件名后加上擴展名.asm(.a51)或.c;然后選擇菜單 Project-New-Project…,建立新工程并保存(保存時無需加擴展名,也可加上擴展名.uv2);工程保存后會立即彈出一個設備選擇對話框,選擇CPU后點確定返回主界面。這時工程管理窗口的文件頁(Files)會出現(xiàn)“Target1”,將其前面 +號展開,接著選擇 Source Group1,右擊鼠標彈出快捷菜單,選擇“Add File to Group‘Source Group1’”,出現(xiàn)一個對話框,要求尋找并加入源文件(在加入一個源文件后,該對話框不會消失,而是等待繼續(xù)加入其它文件)。加入文件后點close返回主界面,展開“Source Group1”前面+號,就會看到所加入的文件,雙擊文件名,即可打開該源程序文件。緊接著對工程進行設置,選擇工程管理窗口的 Target1,再選擇 Project-Option for Target‘Target1’(或點右鍵彈出快捷菜單再選擇該選項),打開工程屬性設置對話框,共有8個選項卡,主要設置工作包括在Target選項卡中設置晶振頻率、在Debug選項卡中設置實驗仿真板等,如要寫片,還必須在Output選項卡中選中“Creat HexFi”;其它選項卡內(nèi)容一般可取默認值。工程設置后按F7鍵(或點擊編譯工具欄上相應圖標)進行編譯/匯編、連接以及產(chǎn)生目標文件。

硬件調(diào)試主要對單片機硬件電路進行調(diào)試。在以前所學的課程當中,主要是單片機電路的上電前和上電后的調(diào)試。

上電前的調(diào)試,主要是利用萬用表測量電路,以確保電路中不存在短路和斷路情況,這個任務是非常重要的,關(guān)系到以下的調(diào)試,所以要認真測量調(diào)試。特別是數(shù)碼管的管腳連接部分,注意焊接點,是否有漏焊虛焊顯現(xiàn),是否有短路顯現(xiàn),出現(xiàn)問題及時修改。

上電后的調(diào)試,這一步是在上一步確保硬件電路無短路斷路的情況下才可以上電調(diào)試的,而上電調(diào)試的目的是檢驗電路是否接錯,同時還要檢驗原理是否正確。在本次課程設計中硬件比較簡單,所以上電調(diào)試主要只轉(zhuǎn)速測量系統(tǒng)的單片機部分、數(shù)碼管部分。

5 小結(jié)

本系統(tǒng)采用的是89C51單片機,充分利用單片機內(nèi)部自帶的兩個16位定時/計數(shù)器進行設計,較完全的開發(fā)了單片機自身的功能,接口利用了89C5l的P0口具有較大的電流驅(qū)動能力的特點,來擴展驅(qū)動芯片,直接由單片機驅(qū)動,簡化了硬件電路。但是本文的研究還遠遠不夠,因為轉(zhuǎn)速測量在不同的場合要求是不同的,有的時候要求是非常高的,在不少場合下對低速(如每小時一轉(zhuǎn)以下)、高速(如每分鐘數(shù)十萬轉(zhuǎn))、穩(wěn)速(如誤差僅為萬分之幾)和瞬時速度的精確測量有嚴格的要求。這里研究的精度不是很高,所以有待于繼續(xù)研究不同轉(zhuǎn)速的測量,并能保證較高的精度。

[1]何立民.單片機應用技術(shù)選編[M].北京:北京航空航天大學出版社,1997.

[2]張有德.單片微機原理、應用與實驗[M].上海:復旦大學出版社,1997.

[3]何勇,王生澤.光電傳感器及其應用[M].化學工業(yè)出版社,2004.

[4]李群芳,張士軍.單片微型計算機與接口技術(shù)[M].北京:電子工業(yè)出版社,2005.

[5]李朝青.單片機&DSP外圍數(shù)字IC技術(shù)手冊[M].北京:北京航空航天大學出版社,1998.

[6]扈嘯,周旭升.單片機數(shù)據(jù)通信技術(shù)從入門到精通[M].西安:西安電子科技大學出版社,2002.

[7]徐愛鈞.智能化測量控制儀表原理與設計[M].北京:北京航空航天大學出版社,1995.

[8]朱巍峰.基于單片機的散顯轉(zhuǎn)速計設計[J].內(nèi)江科技.2010,31(11).

[9]周興華.手把手教你學單片機[M].北京:北京航空航天大學出版社,1996.

[10]孫桂榮,班瑩,劉鳴.電機轉(zhuǎn)速測量設計實驗[M].實驗科學,2005.

猜你喜歡
數(shù)碼管計數(shù)器計數(shù)
物理項目教學設計,用單片機控制四位數(shù)碼管顯示
采用虛擬計數(shù)器的電子式膜式燃氣表
基于51單片機的分數(shù)計數(shù)器設計
古代的計數(shù)方法
Arduino編程
古代的人們是如何計數(shù)的?
MC9S08FL16單片機數(shù)碼管靜態(tài)顯示分析
基于Multisim10.1的任意進制計數(shù)器的設計與實現(xiàn)
SR620型與53230A型計數(shù)器的性能測試
算盤是個“小氣鬼”
龙泉市| 山东省| 柞水县| 静乐县| 东光县| 海淀区| 南雄市| 额济纳旗| 平乐县| 永泰县| 新兴县| 壶关县| 黔西县| 平遥县| 类乌齐县| 北票市| 赣州市| 平阴县| 张家界市| 龙口市| 三都| 承德县| 紫阳县| 岑溪市| 桓台县| 嘉义县| 邵阳县| 读书| 开封县| 腾冲县| 瑞安市| 道真| 南丰县| 镇坪县| 津南区| 洪江市| 永平县| 石柱| 甘谷县| 韩城市| 西吉县|