基于單片機數(shù)字轉(zhuǎn)速計的設(shè)計
引 言
在工業(yè)控制中經(jīng)常要進行轉(zhuǎn)速測量,一般采用的是接觸式轉(zhuǎn)速計,這種轉(zhuǎn)速計必須頂在轉(zhuǎn)軸中心才能進行測量,使用起來不方便,而且局限性很大,安全性也不是很好。因此,我們設(shè)計了采用光電傳感器的非接觸式轉(zhuǎn)速計,測量范圍從1.0~9999轉(zhuǎn)/分鐘,四位數(shù)碼管顯示,當被測轉(zhuǎn)速小于1000轉(zhuǎn)/分鐘時,精確到0.1轉(zhuǎn)/分鐘。
1 測量原理
在被測旋轉(zhuǎn)軸上貼一片鋁箔作為反光體,當反光體轉(zhuǎn)到光電傳感器的正前方時,光電傳感器發(fā)出的紅外光束被反射回來,同時被光電傳感器上的紅外接收管接收,產(chǎn)生一個脈沖信號,我們利用這個信號的邊沿觸發(fā)單片機內(nèi)部的高精度定時器進行計時,精度可達1μs,當反光體再次轉(zhuǎn)到光電傳感器的正前方時,利用光反射信號的邊沿停止單片機計時。這樣轉(zhuǎn)軸的旋轉(zhuǎn)周期t就被精確地測量出來了,然后單片機把周期換算成轉(zhuǎn)速并通過LED數(shù)碼管顯示出來。
2 電路構(gòu)成及軟件設(shè)計
電路結(jié)構(gòu)見圖1,因為要求體積小巧且顯示亮度高,因此,采用掃描顯示模式,然而,用一片CPU同時完成測量和顯示是不行的,掃描功能將嚴重影響CPU的測量。因此,采用兩片ATMEL公司生產(chǎn)的AT89C2051單片機來分別擔任,AT89C2051具有內(nèi)置2KB的EEPROM程序存儲器和128個字節(jié)的RAM,且每個引腳能夠吸入20mA的電流等這些良好特性。CPU1用來測量旋轉(zhuǎn)軸的旋轉(zhuǎn)周期并換算成轉(zhuǎn)速,然后把顯示數(shù)據(jù)發(fā)送給CPU2,CPU2平時只是在不斷地掃描顯示數(shù)據(jù),當CPU1發(fā)送數(shù)據(jù)過來時,CPU2產(chǎn)生中斷,立即接收數(shù)據(jù),然后更新顯示數(shù)據(jù),這樣在四位LED數(shù)碼管上的數(shù)據(jù)就被立即更新了。采用兩片CPU的好處是電路結(jié)構(gòu)清晰,編程簡單,實現(xiàn)了模塊化設(shè)計。CPU之間采用串行接口方式2,以中斷形式進行通信。CPU2的通信部分程序清單如下:
3 結(jié) 論
經(jīng)過實際使用,我們設(shè)計的轉(zhuǎn)速計達到了預先設(shè)想的目的,使用方便可靠,而且因為這樣的結(jié)構(gòu)設(shè)計使得CPU1的輸入/輸出口占用極少,因此還可以拓展它的功能。例如我們安裝了一個切換開關(guān),增加了光電計數(shù)器的功能(探頭是共用的)。另外,我們還可以把CPU2及四位LED共陽數(shù)碼管構(gòu)成一個通用顯示模塊,除顯示0~9等數(shù)字外,還可以顯示例如A-J、L、O、P、q、r、U、Y等字符。這樣,如果我們在設(shè)計其他的電路時,如果要用到LED數(shù)碼管顯示,不必再編程制版,只要使用這個通用顯示模塊即可,簡單方便。這種顯示模塊如果不擴充輸入輸出口線,最多可以進行五位的七段數(shù)碼管顯示。
評論