課程設(shè)計數(shù)字轉(zhuǎn)速數(shù)計的設(shè)計_第1頁
課程設(shè)計數(shù)字轉(zhuǎn)速數(shù)計的設(shè)計_第2頁
課程設(shè)計數(shù)字轉(zhuǎn)速數(shù)計的設(shè)計_第3頁
課程設(shè)計數(shù)字轉(zhuǎn)速數(shù)計的設(shè)計_第4頁
課程設(shè)計數(shù)字轉(zhuǎn)速數(shù)計的設(shè)計_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 課程設(shè)計說明書設(shè)計題目:學(xué) 院:機械工程學(xué)院專 業(yè):機械設(shè)計制造及其自動化班 級:學(xué) 號:姓 名:指導(dǎo)教師:目 錄1. 課程設(shè)計要求12. 系統(tǒng)功能分析與方案確定13. 系統(tǒng)主要硬件電路模塊設(shè)計43.1編碼器模塊43.2液晶顯示模塊93.3復(fù)位電路模塊143.4晶振電路模塊173.5 單片機硬件端口分配184. 程序軟件設(shè)計與分析194.1系統(tǒng)軟件分析及詳細(xì)技術(shù)文件設(shè)計195. 后續(xù)有待完善和提高的工作25參考文獻26附錄261. 課程設(shè)計要求數(shù)字轉(zhuǎn)速(數(shù))計的設(shè)計一、設(shè)計任務(wù)轉(zhuǎn)速計是我們經(jīng)常會用到的儀器之一,通常與編碼器配合用來測量旋轉(zhuǎn)機械設(shè)備的轉(zhuǎn)速。用單片機的定時/計數(shù)器功能可以實現(xiàn)頻率

2、計的數(shù)字化、智能化,通過合理的硬件設(shè)計和軟件編程使測量精度達到實用化要求。二、 基本要求1. 測量速度范圍11000轉(zhuǎn)每分鐘。2. 可對轉(zhuǎn)數(shù)計數(shù)并實時顯示;3. 可對轉(zhuǎn)速檢測并實時顯示;4. 速度檢測精度:1%。5. 被測信號是方波。顯示方式為轉(zhuǎn)數(shù)計數(shù):5位十進制數(shù)顯示;速度計:5位有效數(shù)字顯示,保留小數(shù)點后2位。2. 系統(tǒng)功能分析與方案確定2.1 轉(zhuǎn)速測量系統(tǒng)的原理2.1.1 轉(zhuǎn)速測量方法轉(zhuǎn)速是指作圓周運動的物體在單位時間內(nèi)所轉(zhuǎn)過的圈數(shù),其大小及變化往往意味著機器設(shè)備運轉(zhuǎn)的正常與否,因此,轉(zhuǎn)速測量一直是工業(yè)領(lǐng)域的一個重要問題。按照不同的理論方法,先后產(chǎn)生過模擬測速法(如離心式轉(zhuǎn)速表) 、同步

3、測速法(如機械式或閃光式頻閃測速儀) 以及計數(shù)測速法。計數(shù)測速法又可分為機械式定時計數(shù)法和電子式定時計數(shù)法。本文介紹的采用單片機和光電傳感器組成的高精度轉(zhuǎn)速測量系統(tǒng),其轉(zhuǎn)速測量方法采用的就是電子式定時計數(shù)法。對轉(zhuǎn)速的測量實際上是對轉(zhuǎn)子旋轉(zhuǎn)引起的周期脈沖信號的頻率進行測量。在頻率的工程測量中,電子式定時計數(shù)測量頻率的方法一般有三種:測頻率法:在一定時間間隔t 內(nèi),計數(shù)被測信號的重復(fù)變化次數(shù)N ,則被測信號的頻率fx 可表示為f x =Nt(1)測周期法:在被測信號的一個周期內(nèi),計數(shù)時鐘脈沖數(shù)m0 ,則被測信號頻率fx = fc/ m0 ,其中, fc 為時鐘脈沖信號頻率。多周期測頻法:在被測信號

4、m1 個周期內(nèi), 計數(shù)時鐘脈沖數(shù)m2 ,從而得到被測信號頻率fx ,則fx 可以表示為fx =m1 fcm2, m1 由測量準(zhǔn)確度確定。電子式定時計數(shù)法測量頻率時, 其測量準(zhǔn)確度主要由兩項誤差來決定: 一項是時基誤差; 另一項是量化±1 誤差。當(dāng)時基誤差小于量化±1 誤差一個或兩個數(shù)量級時,這時測量準(zhǔn)確度主要由量化±1 誤差來確定。對于測頻率法,測量相對誤差為:Er1 =測量誤差值實際測量值×100 % =1N×100 % (2)由此可見,被測信號頻率越高, N 越大, Er1 就越小,所以測頻率法適用于高頻信號( 高轉(zhuǎn)速信號) 的測量。對于測

5、周期法,測量相對誤差為:Er2 =測量誤差值實際測量值×100 % =1m0×100 % (3)對于給定的時鐘脈沖fc , 當(dāng)被測信號頻率越低時,m0 越大, Er2 就越小,所以測周期法適用于低頻信號( 低轉(zhuǎn)速信號) 的測量。對于多周期測頻法,測量相對誤差為:Er3 =測量誤差值實際測量值100%=1m2×100 % (4)從上式可知,被測脈沖信號周期數(shù)m1 越大, m2 就越大,則測量精度就越高。它適用于高、低頻信號(高、低轉(zhuǎn)速信號) 的測量。但隨著精度和頻率的提高, 采樣周期將大大延長,并且判斷m1 也要延長采樣周期,不適合實時測量。根據(jù)以上的討論,考慮到實

6、際應(yīng)用中需要測量的轉(zhuǎn)速范圍很寬,上述的轉(zhuǎn)速測量方法難以滿足要求,因此,研究高精度的轉(zhuǎn)速測量方法,以同時適用于高、低轉(zhuǎn)速信號的測量,不僅具有重要的理論意義,也是實際生產(chǎn)中的需要。2.1.2 轉(zhuǎn)速測量原理利用編碼器產(chǎn)生方波信號來模擬速度快慢,即通過編碼器,將轉(zhuǎn)速信號變?yōu)殡娒}沖,利用微機在單位時間內(nèi)對脈沖進行計數(shù),再經(jīng)過軟件計算獲得轉(zhuǎn)速數(shù)據(jù)。即:n=N/ (mT) (1)n 轉(zhuǎn)速、單位:轉(zhuǎn)/ 分鐘;N 采樣時間內(nèi)所計脈沖個數(shù);T采樣時間、單位:分鐘;m 每旋轉(zhuǎn)一周所產(chǎn)生的脈沖個數(shù)。如果m=60, 那么1 秒鐘內(nèi)脈沖個數(shù)N 就是轉(zhuǎn)速n, 即:n=N/ (mT) =N/60 ×1/60=N (

7、2)這里m 為400。(看編碼器而定)在對轉(zhuǎn)速波動較快系統(tǒng)或要求動態(tài)特性好而精度高的轉(zhuǎn)速測控系統(tǒng)中,調(diào)節(jié)周期一般很短,相應(yīng)的采樣周期需取得很小,使得脈沖當(dāng)量增高,從而導(dǎo)致整個系統(tǒng)測量精度降低,難以滿足測控要求。提高采樣速率通常就要減小采樣時間T, 而T 的減小會使采到的脈沖數(shù)值N 下降,導(dǎo)致脈沖當(dāng)量(每個脈沖所代表的轉(zhuǎn)速) 增高,從而使得測量精度變得粗糙。通過增加測速碼盤的齒數(shù)可以提高精度,但是碼盤齒數(shù)的增加會受到加工工藝的限制,同時會使轉(zhuǎn)速測量脈沖的頻率增高,頻率的提升又會受到傳感器中光電器或磁敏器或磁電器件最高工作頻率的限制。凡此種種因素限制了常規(guī)智能轉(zhuǎn)速測量方法的使用范圍。而采用本文所提

8、出的定時分時雙頻率采樣法,可在保證采樣度的同時,提高采樣速率,充分發(fā)揮微機智能測速方法的優(yōu)越性及靈活性。圖1.1 系統(tǒng)原理圖各部分模塊的功能:編碼器:用來對信號的采樣。放大、整形電路:對傳感器送過來的信號進行放大和整形,在送入單片機進行數(shù)據(jù)的處理轉(zhuǎn)換。單片機:對處理過的信號進行轉(zhuǎn)換成轉(zhuǎn)速的實際值,1602液晶1602液晶顯示:用來對所測量到的轉(zhuǎn)速進行顯示。3. 系統(tǒng)主要硬件電路模塊設(shè)計3.1編碼器模塊轉(zhuǎn)速測量的方案選擇,一般要考慮傳感器的結(jié)構(gòu)、安裝以及測速范圍與環(huán)境條件等方面的適用性;再就是二次儀表的要求,除了顯示以外還有控制、通訊和遠(yuǎn)傳方面的要求。這里主要由編碼器性質(zhì)決定,以下為本次實驗的編

9、碼器,及其工作原理:3.1.1光電編碼器的介紹:光電編碼器是通過讀取光電編碼盤上的圖案或編碼信息來表示與光電編碼器相連的電機轉(zhuǎn)子的位置信息的。根據(jù)光電編碼器的工作原理可以將光電編碼器分為絕對式光電編碼器與增量式光電編碼器,下面我就這兩種光電編碼器的結(jié)構(gòu)與工作原理做介紹。(一)、絕對式光電編碼器絕對式光電編碼器如圖所示,他是通過讀取編碼盤上的二進制的編碼信息來表示絕對位置信息的。編碼盤是按照一定的編碼形式制成的圓盤。圖1是二進制的編碼盤,圖中空白部分是透光的,用“0”來表示;涂黑的部分是不透光的,用“1”來表示。通常將組成編碼的圈稱為碼道,每個碼道表示二進制數(shù)的一位,其中最外側(cè)的是最低位,最里側(cè)

10、的是最高位。如果編碼盤有4個碼道,則由里向外的碼道分別表示為二進制的23、22、21和20,4位二進制可形成16個二進制數(shù),因此就將圓盤劃分16個扇區(qū),每個扇區(qū)對應(yīng)一個4位二進制數(shù),如0000、0001、1111。按照碼盤上形成的碼道配置相應(yīng)的光電傳感器,包括光源、透鏡、碼盤、光敏二極管和驅(qū)動電子線路。當(dāng)碼盤轉(zhuǎn)到一定的角度時,扇區(qū)中透光的碼道對應(yīng)的光敏二極管導(dǎo)通,輸出低電平“0”,遮光的碼道對應(yīng)的光敏二極管不導(dǎo)通,輸出高電平“1”,這樣形成與編碼方式一致的高、低電平輸出,從而獲得扇區(qū)的位置腳。(二)、增量式光電編碼器增量式光電編碼器是碼盤隨位置的變化輸出一系列的脈沖信號,然后根據(jù)位置變化的方向

11、用計數(shù)器對脈沖進行加/減計數(shù),以此達到位置檢測的目的。它是由光源、透鏡、主光柵碼盤、鑒向盤、光敏元件和電子線路組成。增量式光電編碼器的工作原理是是由旋轉(zhuǎn)軸轉(zhuǎn)動帶動在徑向有均勻窄縫的主光柵碼盤旋轉(zhuǎn),在主光柵碼盤的上面有與其平行的鑒向盤,在鑒向盤上有兩條彼此錯開90o相位的窄縫,并分別有光敏二極管接收主光柵碼盤透過來的信號。工作時,鑒向盤不動,主光柵碼盤隨轉(zhuǎn)子旋轉(zhuǎn),光源經(jīng)透鏡平行射向主光柵碼盤,通過主光柵碼盤和鑒向盤后由光敏二極管接收相位差90o的近似正弦信號,再由邏輯電路形成轉(zhuǎn)向信號和計數(shù)脈沖信號。為了獲得絕對位置角,在增量式光電編碼器有零位脈沖,即主光柵每旋轉(zhuǎn)一周,輸出一個零位脈沖,使位置角清

12、零。利用增量式光電編碼器可以檢測電機的位置和速度。二、光電編碼器的測量方法:光電編碼器在電機控制中可以用來測量電機轉(zhuǎn)子的磁場位置和機械位置以及轉(zhuǎn)子的磁場和機械位置的變化速度與變化方向。下面就我就光電編碼器在這幾方面的應(yīng)用方法做一下介紹。(一)、使用光電編碼器來測量電機的轉(zhuǎn)速可以利用定時器/計數(shù)器配合光電編碼器的輸出脈沖信號來測量電機的轉(zhuǎn)速。具體的測速方法有M法、T法和M/T法3種。M法又稱之為測頻法,其測速原理是在規(guī)定的檢測時間Tc內(nèi),對光電編碼器輸出的脈沖信號計數(shù)的測速方法,如圖2所示,例如光電編碼器是N線的,則每旋轉(zhuǎn)一周可以有4N個脈沖,因為兩路脈沖的上升沿與下降沿正好使編碼器信號4倍頻。

13、現(xiàn)在假設(shè)檢測時間是Tc,計數(shù)器的記錄的脈沖數(shù)是M1,則電機的每分鐘的轉(zhuǎn)速為在實際的測量中,時間Tc內(nèi)的脈沖個數(shù)不一定正好是整數(shù),而且存在最大半個脈沖的誤差。如果要求測量的誤差小于規(guī)定的范圍,比如說是小于百分之一,那么M1就應(yīng)該大于50。在一定的轉(zhuǎn)速下要增大檢測脈沖數(shù)M1以減小誤差,可以增大檢測時間Tc單考慮到實際的應(yīng)用檢測時間很短,例如伺服系統(tǒng)中的測量速度用于反饋控制,一般應(yīng)在0.01秒以下。由此可見,減小測量誤差的方法是采用高線數(shù)的光電編碼器。M法測速適用于測量高轉(zhuǎn)速,因為對于給定的光電編碼器線數(shù)N機測量時間Tc條件下,轉(zhuǎn)速越高,計數(shù)脈沖M1越大,誤差也就越小。T法也稱之為測周法,該測速方法

14、是在一個脈沖周期內(nèi)對時鐘信號脈沖進行計數(shù)的方法,如圖3所示。例如時鐘頻率為fclk,計數(shù)器記錄的脈沖數(shù)為M2,光電編碼器是N線的,每線輸出4N個脈沖,那么電機的每分鐘的轉(zhuǎn)速為為了減小誤差,希望盡可能記錄較多的脈沖數(shù),因此T法測速適用于低速運行的場合。但轉(zhuǎn)速太低,一個編碼器輸出脈沖的時間太長,時鐘脈沖數(shù)會超過計數(shù)器最大計數(shù)值而產(chǎn)生溢出;另外,時間太長也會影響控制的快速性。與M法測速一樣,選用線數(shù)較多的光電編碼器可以提高對電機轉(zhuǎn)速測量的快速性與精度。M/T法測速是將M法和T法兩種方法結(jié)合在一起使用,在一定的時間范圍內(nèi),同時對光電編碼器輸出的脈沖個數(shù)M1和M2進行計數(shù),則電機每分鐘的轉(zhuǎn)速為 實際工作

15、時,在固定的Tc時間內(nèi)對光電編碼器的脈沖計數(shù),在第一個光電編碼器上升沿定時器開始定時,同時開始記錄光電編碼器和時鐘脈沖數(shù),定時器定時Tc時間到,對光電編碼器的脈沖停止計數(shù),而在下一個光電編碼器的上升沿到來時刻,時鐘脈沖才停止記錄。采用M/T法既具有M法測速的高速優(yōu)點,又具有T法測速的低速的優(yōu)點,能夠覆蓋較廣的轉(zhuǎn)速范圍,測量的精度也較高,在電機的控制中有著十分廣泛的應(yīng)用。(二)使用增量式光電編碼器來判別電機轉(zhuǎn)速方向的原理增量式光電編碼器輸出兩路相位相差90o的脈沖信號A和B,當(dāng)電機正轉(zhuǎn)時,脈沖信號A的相位超前脈沖信號B的相位90o,此時邏輯電路處理后可形成高電平的方向信號Dir。當(dāng)電機反轉(zhuǎn)時,脈

16、沖信號A的相位滯后脈沖信號B的相位90o,此時邏輯電路處理后的方向信號Dir為低電平。因此根據(jù)超前與滯后的關(guān)系可以確定電機的轉(zhuǎn)向。其轉(zhuǎn)速辯相的原理如圖4所示 圖4轉(zhuǎn)向判別原理圖(三)、增量式光電編碼器的反饋脈沖的四倍頻原理在使用增量式編碼器時,通過計相位相差90o的兩路正交脈沖信號A和B的上升沿與下降沿已達到將增量式編碼器的反饋脈沖四倍頻的目的。這樣在不增加增量式光電編碼器的線數(shù)的情況下,就可以獲得更精度高的位置脈沖信息,以實現(xiàn)對電機位置的精確控制。其工作原理與脈沖的相位關(guān)系如圖5所示圖5 脈沖四倍頻相位關(guān)系圖結(jié)束語:光電式編碼器有著良好的抗干擾特性與應(yīng)用的可靠性,在電機控制這種有著極高電磁感

17、染的應(yīng)用環(huán)境下有著廣闊的應(yīng)用前景。相信在不久的將來光電式編碼器一定會在電機控制領(lǐng)域發(fā)揮更為重要的作用。而我們對于光電式編碼器的研究也就顯得格外的重要。3.2液晶顯示模塊液晶顯示原理液晶顯示的原理是利用液晶的物理特性,通過電壓對其顯示區(qū)域進行控制,有電就有顯示,這樣即可以顯示出圖形。液晶顯示器具有厚度薄、適用于大規(guī)模集成電路直接驅(qū)動、易于實現(xiàn)全彩色顯示的特點,目前已經(jīng)被廣泛應(yīng)用在便攜式電腦、數(shù)字?jǐn)z像機、PDA移動通信工具等眾多領(lǐng)域。液晶顯示器的分類液晶顯示的分類方法有很多種,通??砂雌滹@示方式分為段式、字符式、點陣式等。除了黑白顯示外,液晶顯示器還有多灰度有彩色顯示等。如果根據(jù)驅(qū)動方式來分,可以

18、分為靜態(tài)驅(qū)動(Static)、單純矩陣驅(qū)動(Simple Matrix)和主動矩陣驅(qū)動(Active Matrix)三種。液晶顯示器各種圖形的顯示原理:線段的顯示點陣圖形式液晶由M×N個顯示單元組成,假設(shè)LCD顯示屏有64行,每行有128列,每8列對應(yīng)1字節(jié)的8位,即每行由16字節(jié),共16×8=128個點組成,屏上64×16個顯示單元與顯示RAM區(qū)1024字節(jié)相對應(yīng),每一字節(jié)的內(nèi)容和顯示屏上相應(yīng)位置的亮暗對應(yīng)。例如屏的第一行的亮暗由RAM區(qū)的000H00FH的16字節(jié)的內(nèi)容決定,當(dāng)(000H)=FFH時,則屏幕的左上角顯示一條短亮線,長度為8個點;當(dāng)(3FFH)=

19、FFH時,則屏幕的右下角顯示一條短亮線;當(dāng)(000H)=FFH,(001H)=00H,(002H)=00H,(00EH)=00H,(00FH)=00H時,則在屏幕的頂部顯示一條由8段亮線和8條暗線組成的虛線。這就是LCD顯示的基本原理。字符的顯示用LCD顯示一個字符時比較復(fù)雜,因為一個字符由6×8或8×8點陣組成,既要找到和顯示屏幕上某幾個位置對應(yīng)的顯示RAM區(qū)的8字節(jié),還要使每字節(jié)的不同位為“1”,其它的為“0”,為“1”的點亮,為“0”的不亮。這樣一來就組成某個字符。但由于內(nèi)帶字符發(fā)生器的控制器來說,顯示字符就比較簡單了,可以讓控制器工作在文本方式,根據(jù)在LCD上開始顯

20、示的行列號及每行的列數(shù)找出顯示RAM對應(yīng)的地址,設(shè)立光標(biāo),在此送上該字符對應(yīng)的代碼即可。漢字的顯示漢字的顯示一般采用圖形的方式,事先從微機中提取要顯示的漢字的點陣碼(一般用字模提取軟件),每個漢字占32B,分左右兩半,各占16B,左邊為1、3、5右邊為2、4、6根據(jù)在LCD上開始顯示的行列號及每行的列數(shù)可找出顯示RAM對應(yīng)的地址,設(shè)立光標(biāo),送上要顯示的漢字的第一字節(jié),光標(biāo)位置加1,送第二個字節(jié),換行按列對齊,送第三個字節(jié)直到32B顯示完就可以LCD上得到一個完整漢字。3.2.1 1602字符型LCD簡介字符型液晶顯示模塊是一種專門用于顯示字母、數(shù)字、符號等點陣式LCD,目前常用16*1,16*

21、2,20*2和40*2行等的模塊。下面以長沙太陽人電子有限公司的1602字符型液晶顯示器為例,介紹其用法。一般1602字符型液晶顯示器實物如圖10-53:圖3-1 1602字符型液晶顯示器實物圖3.2.2 1602LCD的基本參數(shù)及引腳功能1602LCD分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應(yīng)用中并無差別,兩者尺寸差別如下圖10-54所示:圖3-2 1602LCD尺寸圖1602LCD主要技術(shù)參數(shù):顯示容量:16×2個字符芯片工作電壓:4.55.5V工作電流:2.0mA(5.0V)模塊最佳工作電壓:5.0V字符尺寸:2.95

22、15;4.35(W×H)mm引腳功能說明1602LCD采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。第5腳:R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當(dāng)RS和R/W共同為低電平時可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時可以讀忙信號,當(dāng)RS為高電平R/W為低電平時可以寫入數(shù)據(jù)。

23、第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第714腳:D0D7為8位雙向數(shù)據(jù)線。第15腳:背光源正極。第16腳:背光源負(fù)極。3.2.7 硬件原理圖1602液晶顯示模塊可以和單片機AT89C51直接接口,電路如圖3-11所示。圖3-11 硬件原理圖3.2.8 程序流程圖圖3-12 軟件流程圖3.3復(fù)位電路模塊復(fù)位電路(圖4.8):MCS-51 單片機復(fù)位電路是指單片機的初始化操作。單片機啟運運行時,都需要先復(fù)位,其作用是使CPU 和系統(tǒng)中其他部件處于一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。因而,復(fù)位是一個很重要的操作方式。但單片機本身是不能自動進行復(fù)位的,必須配合相

24、應(yīng)的外部電路才能實現(xiàn)。圖4.8 復(fù)位電路復(fù)位功能:復(fù)位電路的基本功能是:系統(tǒng)上電時提供復(fù)位信號,直至系統(tǒng)電源穩(wěn)定后,撤銷復(fù)位信號。為可靠起見,電源穩(wěn)定后還要經(jīng)一定的延時才撤銷復(fù)位信號,以防電源開關(guān)或電源插頭分-合過程中引起的抖動而影響復(fù)位。單片機的復(fù)位是由外部的復(fù)位電路來實現(xiàn)的。片內(nèi)復(fù)位電路是復(fù)位引腳RST 通過一個斯密特觸發(fā)器與復(fù)位電路相連,斯密特觸發(fā)器用來抑制噪聲,它的輸出在每個機器周期的S5P2,由復(fù)位電路采樣一次。復(fù)位電路通常采用上電自動復(fù)位(如圖4.9 (a))和按鈕復(fù)位(如圖4.9(b)兩種方式。圖4.9 RC 復(fù)位電路單片機復(fù)位后的狀態(tài):單片機的復(fù)位操作使單片機進入初始化狀態(tài),其

25、中包括使程序計數(shù)器PC0000H,這表明程序從0000H 地址單元開始執(zhí)行。單片機冷啟動后,片內(nèi)RAM 為隨機值,運行中的復(fù)位操作不改變片內(nèi)RAM 區(qū)中的內(nèi)容,21 個特殊功能寄存器復(fù)位后的狀態(tài)為確定值,見表1。值得指出的是,記住一些特殊功能寄存器復(fù)位后的主要狀態(tài),對于了解單片機的初態(tài),減少應(yīng)用程序中的初始化部分是十分必要的。說明:表4-1 中符號*為隨機狀態(tài):表4-1 寄存器復(fù)位后狀態(tài)表PSW00H,表明選寄存器0 組為工作寄存器組; SP07H,表明堆棧指針指向片內(nèi)RAM 07H 字節(jié)單元,根據(jù)堆棧操作的先加后壓法則,第一個被壓入的內(nèi)容寫入到08H 單元中;Po-P3FFH,表明已向各端口

26、線寫入1,此時,各端口既可用于輸入又可用于輸出。IP×××00000B,表明各個中斷源處于低優(yōu)先級; IE0××00000B,表明各個中斷均被關(guān)斷; 系統(tǒng)復(fù)位是任何微機系統(tǒng)執(zhí)行的第一步,使整個控制芯片回到默認(rèn)的硬件狀態(tài)下。51 單片機的復(fù)位是由RESET 引腳來控制的,此引腳與高電平相接超過24 個振蕩周期后,51 單片機即進入芯片內(nèi)部復(fù)位狀態(tài),而且一直在此狀態(tài)下等待,直到RESET 引腳轉(zhuǎn)為低電平后,才檢查EA 引腳是高電平或低電平,若為高電平則執(zhí)行芯片內(nèi)部的程序代碼,若為低電平便會執(zhí)行外部程序。51 單片機在系統(tǒng)復(fù)位時,將其內(nèi)部的一些重要寄

27、存器設(shè)置為特定的值,至于內(nèi)部RAM 內(nèi)部的數(shù)據(jù)則不變。3.4 晶振電路模塊晶振(圖4.10)是晶體振蕩器的簡稱,在電氣上它可以等效成一個電容和一個電阻并聯(lián)再串聯(lián)一個電容的二端網(wǎng)絡(luò),電工學(xué)上這個網(wǎng)絡(luò)有兩個諧振點,以頻率的高低分其中較低的頻率是串聯(lián)諧振,較高的頻率是并聯(lián)諧振。AT89C51 單片機內(nèi)部有一個用構(gòu)成振蕩器的高增益反相放大器。引腳XTAL1 和XTAL2 分別是此放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外晶體諧振器一起構(gòu)成一個自激振蕩器。外接晶體諧振器以及電容C1 和C2 構(gòu)成并聯(lián)諧振電路,接在放大器的反饋回路中。對外接電容的值雖然沒有嚴(yán)格的要求,但電容的大小會影響震蕩器頻

28、率的高低、震蕩器的穩(wěn)定性、起振的快速性和溫度的穩(wěn)定性。因此,此系統(tǒng)電路的晶體振蕩器的值為12MHz,電容應(yīng)盡可能的選擇陶瓷電容,電容值約為30F。在焊接刷電路板時,晶體振蕩器和電容應(yīng)盡可能安裝得與單片機芯片靠近,以減少寄生電容,更好地保證震蕩器穩(wěn)定和可靠地工作。晶體振蕩電路如圖3-6:晶振有一個重要的參數(shù),那就是負(fù)載電容值,選擇與負(fù)載電容值相等的并聯(lián)電容,就可以得到晶振標(biāo)稱的諧振頻率。3.5 單片機硬件端口分配 為合理利用單片機的端口資源,并且兼顧程序設(shè)計的便利,將系統(tǒng)的輸出和輸入端口作如表3.1配置。 表3.1 單片機端口配置表單片機端口外圍接口電路硬件模塊P1.2,P3.2編碼器信號接收口

29、液晶顯示集成電路模塊4. 程序軟件設(shè)計與分析4.1系統(tǒng)軟件分析及詳細(xì)技術(shù)文件設(shè)計單片機 AT89C51介紹AT89C51 是一種帶4K 字節(jié)閃爍可編程可擦除只讀存儲器(FPEROMFalshProgrammable and Erasable Read Only Memory)的低電壓,高性能CMOS8 位微處理器,俗稱單片機。該器件采用ATMEL 高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51 指令集和輸出管腳相兼容。由于將多功能8 位CPU 和閃爍存儲器組合在單個芯片中,ATMEL 的AT89C51 是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。圖4.5

30、是常用的一種單片機,型號為AT89C51,它將計算機的功能都集成到這個芯片內(nèi)部去了,就這么一個小小的芯片就能構(gòu)成一臺小型的電腦,因此叫做單片機。圖4.5 AT89C51 芯片它有40 個管腳,分成兩排,每一排各有20 個腳,其中左下角標(biāo)有箭頭的為第1 腳,然后按逆時針方向依次為第2 腳、第3 腳第40 腳。在40 個管腳中,其中有32 個腳可用于各種控制,比如控制小燈的亮與滅、控制電機的正轉(zhuǎn)與反轉(zhuǎn)、控制電梯的升與降等,這32 個腳叫做單片機的“端口”,在單片機技術(shù)中,每個端口都有一個特定的名字,比如第一腳的那個端口叫做“P1.0”。AT89C51 單片機的功能:1主要特性:與MCS-51 兼容

31、4K 字節(jié)可編程閃爍存儲器壽命:1000 寫/擦循環(huán)數(shù)據(jù)保留時間:10 年全靜態(tài)工作:0Hz-24Hz三級程序存儲器鎖定128*8 位內(nèi)部RAM32 可編程I/O 線兩個16 位定時器/計數(shù)器5 個中斷源可編程串行通道低功耗的閑置和掉電模式片內(nèi)振蕩器和時鐘電路2管腳說明(圖4.7):VCC:供電電壓,GND:接地。P0 口:P0 口為一個8 位漏級開路雙向I/O 口,每腳可吸收8TTL 門電流。當(dāng)P1 口的管腳第一次寫1 時,被定義為高阻輸入。P0 能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH 編程時,P0 口作為原碼輸入口,當(dāng)FIASH 進行校驗時,P0 輸出原

32、碼,此時P0 外部必須被拉高。P1 口:P1 口是一個內(nèi)部提供上拉電阻的8 位雙向I/O 口,P1 口緩沖器能接收輸出4TTL 門電流。P1 口管腳寫入1 后,被內(nèi)部上拉為高,可用作輸入,P1 口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH 編程和校驗時,P1 口作為第八位地址接收。P2 口:P2 口為一個內(nèi)部上拉電阻的8 位雙向I/O 口,P2 口緩沖器可接收,輸出4 個TTL 門電流,當(dāng)P2 口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2 口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2 口當(dāng)用于外部程序存儲器或16 位地

33、址外部數(shù)據(jù)存儲器進行存取時,P2 口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2 口輸出其特殊功能寄存器的內(nèi)容。P2 口在FLASH 編程和校驗時接收高八位地址信號和控制信號。P3 口:P3 口管腳是8 個帶內(nèi)部上拉電阻的雙向I/O 口,可接收輸出4 個TTL 門電流。當(dāng)P3 口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3 口將輸出電流(ILL)這是由于上拉的緣故。P3 口也可作為AT89C51 的一些特殊功能口。P3 口管腳備選功能:P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P

34、3.2 /INT0(外部中斷0)P3.3 /INT1(外部中斷1)P3.4 T0(記時器0 外部輸入)P3.5 T1(記時器1 外部輸入)P3.6 /WR(外部數(shù)據(jù)存儲器寫選通)P3.7 /RD(外部數(shù)據(jù)存儲器讀選通)P3 口同時為閃爍編程和編程校驗接收一些控制信號。 RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST 腳兩個機器周期的高電平時間。ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH 編程期間,此引腳用于輸入編程脈沖。在平時,ALE 端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目

35、的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE 脈沖。如想禁止ALE 的輸出可在SFR8EH 地址上置0。此時, ALE 只有在執(zhí)行MOVX,MOVC 指令是ALE 才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE 禁止,置位無效。PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN 有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。EA/VPP:當(dāng)/EA 保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1 時,/EA 將內(nèi)部鎖定為RESET;當(dāng)/E

36、A 端保持高電平時,此間內(nèi)部程序存儲器。在FLASH 編程期間,此引腳也用于施加12V 編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。3振蕩器特性:XTAL1 和XTAL2 分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅(qū)動器件,XTAL2 應(yīng)不接。有余輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。4芯片擦除:整個PEROM 陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ALE 管腳處于低電

37、平10ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。此外,AT89C51 設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU 停止工作。但RAM,定時器,計數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM 的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個硬件復(fù)位為止。5.系統(tǒng)軟件設(shè)計硬件電路完成以后,進行系統(tǒng)軟件設(shè)計。首先要分析系統(tǒng)對軟件的要求,然后進行軟件的總體的設(shè)計,包括程序的總體設(shè)計和對程序的模塊化設(shè)計。按整體功能分為多個不同的模塊,單獨設(shè)計、編程、調(diào)試,然后將各個模塊裝配

38、聯(lián)調(diào),組成完整的軟件。根據(jù)設(shè)計的要求,單片機的任務(wù)是:內(nèi)部進行計數(shù),在計算出速度后顯示。軟件編程用C 語言完成的,需要能掌握C 語言,還要熟練AT89C51 單片機。從程序流程圖、編寫程序、編譯,到最后的調(diào)試,是很復(fù)雜的。下面作簡單介紹:系統(tǒng)軟件主程序的功能是完成系統(tǒng)的初始化、顯示程序。5.1 主程序初始化(1) .定時器的初始化AT89C51 有兩個定時器/計數(shù)器T0 和T1,每個定時器/計數(shù)器均可設(shè)置成為16位,也可以設(shè)置成為13 位進行定時或計數(shù)。計數(shù)器的功能是對T0 或T1 外來脈沖的進行計數(shù),外部輸入脈沖負(fù)跳變時,計數(shù)器進行加1。定時功能是通過計數(shù)器的計數(shù)來實現(xiàn)的,每個機器周期產(chǎn)生1

39、 個計數(shù)脈沖,即每個機器周期計數(shù)器加1,因此定時時間等于計數(shù)個數(shù)乘以機器周期。定時器工作時,每接收到1 個計數(shù)脈沖(或機器周期)則在設(shè)定的初值基礎(chǔ)上自動加1,當(dāng)所有位都位1時,再加1 就會產(chǎn)生溢出,將向CPU 提出定時器溢出中斷身請。當(dāng)定時器采用不同的工作方式和設(shè)置不同的初值時,產(chǎn)生溢出中斷的定時值和計數(shù)值將不同,從而可以適應(yīng)不同的定時或計數(shù)控制。定時器有4 種工作方式:方式0、方式2、方式2 和方式3,在此對工作方式不做具體介紹。工作方式寄存器TMOD 的設(shè)定:TMOD 各位的含義如下:GATE:門控位,用于控制定時/計數(shù)器的啟動是否受外部中斷請求信號的影響。C/T:定時或計數(shù)方式選擇位,當(dāng)

40、C/T=1 時工作于計數(shù)方式;當(dāng)C/T=0 時工作于定時方式。M1、M0 為工作方式選擇位,用于對T0 的四種工作方式,T1 的三種工作方式進行選擇,選擇情況如下表5-1:M1M0=00 為方式0;M1M0=01 為方式1;表5-1 M1、M0 為工作方式選擇位(2)中斷允許控制MCS-51 單片機中沒有專門的開中斷和關(guān)中斷指令,對各個中斷源的允許和屏蔽是由內(nèi)部的中斷允許寄存器IE 的各位來控制的。中斷允許寄存器IE 的字節(jié)地址為A8H,可以進行位尋址表5-2 中斷位尋址表EA:中斷允許總控位。EA=0,屏蔽所有的中斷請求;EA=1,開放中斷。ET2:定時器/計數(shù)器T2 的溢出中斷允許位ES:

41、串行口中斷允許位。ET1:定時器/計數(shù)器T1 的溢出中斷允許位。EX1:外部中斷INT1 的中斷允許位。ET0:定時器/計數(shù)器T0 的溢出中斷允許位。EX0:外部中斷INT0 的中斷允許位。5.2主程序流程圖程序流程圖主程序流程圖5.1圖5.1 流程圖定時計數(shù)子程序流程圖5.3圖5.3 定時計數(shù)子程序流程圖5. 后續(xù)有待完善和提高的工作采用單片機技術(shù)來實現(xiàn)轉(zhuǎn)速的測量,可以提高轉(zhuǎn)速的測量,可以提高轉(zhuǎn)速測量的精確度,并且加快了采樣的速率,具有較好的實時性。本文介紹的轉(zhuǎn)速方法使用于高、低轉(zhuǎn)速的測量,測量精確度與轉(zhuǎn)速無關(guān),因而具有較寬的應(yīng)用范圍和廣闊的應(yīng)用的前景。基于單片機的轉(zhuǎn)速測量系統(tǒng),具有硬件電路

42、簡單,程序簡單和運算速度快,測速范圍廣,抗干擾性能好的特點。在設(shè)計的信號處理電路中經(jīng)過濾波,能夠進一步減少誤差,是測速精度得到提高??梢栽偌尤肫渌麢z測模塊如檢測電機溫度、扭矩等,精度方面也可以再提高一點。參考文獻1、陳伯時.電力拖動自動控制系統(tǒng)-運動控制系統(tǒng).機械工業(yè)出版社,20032、馬全權(quán),李慶輝,強盛.一種高精度實時電機轉(zhuǎn)速測量新方法,齊齊哈爾大學(xué)學(xué)報.20023、孫桂榮,班瑩,劉鳴.電機轉(zhuǎn)速測量設(shè)計實驗. 實驗室科學(xué),20054、王雪文.張志勇.傳感器原理及應(yīng)用.北京航空航天大學(xué)出版社.20045、王秀杰,張疇先.模擬集成電路應(yīng)用.西北工業(yè)大學(xué)出版社,20036、何立民.MCS-51

43、系列單片機應(yīng)用系統(tǒng)設(shè)計.北京:北京航空航天大學(xué)出版社,19907、蔣智勇. 單片微型計算機原理及接口技術(shù).沈陽:遼寧科學(xué)技術(shù)出版設(shè),19928、何立民.MCS-51 系列單片機應(yīng)用系統(tǒng)設(shè)計.北京:北京航空航天大學(xué)出版社,19909、穆蘭.單片微型計算機原理及接口技術(shù).北京:機械工業(yè)出版社,199510、張毅剛.MCS-51 單片機應(yīng)用設(shè)計.哈爾濱:哈爾濱工業(yè)大學(xué)出版社,199011、蔣智勇. 單片微型計算機原理及接口技術(shù).沈陽:遼寧科學(xué)技術(shù)出版設(shè),1992附錄/*系統(tǒng)軟件源程序*/#include<reg52.h> /包含單片機寄存器的頭文件#include<stdlib.h

44、> /包含隨機函數(shù)rand()的定義文件#include<intrins.h> /包含_nop_()函數(shù)定義的頭文件sbit RS=P20; /寄存器選擇位,將RS位定義為P2.0引腳sbit RW=P21; /讀寫選擇位,將RW位定義為P2.1引腳sbit E=P22; /使能信號位,將E位定義為P2.2引腳sbit BF=P07; /忙碌標(biāo)志位,將BF位定義為P0.7引腳 sbit b_pul=P32; /編碼器脈沖 sbit b_dir=P12; /編碼器方向float counter = 0.0,shudu=0.0,shuju1=0.0,shuju2=0.0; /編碼

45、器脈沖計數(shù) unsigned char n,shift;unsigned char code digit ="0123456789" /定義字符數(shù)組顯示數(shù)字unsigned char code string2 ="ZS" /定義字符數(shù)組顯示提示信息unsigned char code string1 ="QS" /定義字符數(shù)組顯示提示信息unsigned char count; /定義變量統(tǒng)計中斷累計次數(shù)long s,m,zuikuai;/*函數(shù)功能:延時1ms(3j+2)*i=(3×33+2)×10=1010(微

46、秒),可以認(rèn)為是1毫秒*/void delay1ms() unsigned char i,j; for(i=0;i<10;i+) for(j=0;j<33;j+) ; /*函數(shù)功能:延時若干毫秒入口參數(shù):n*/ void delay(unsigned char ms) unsigned char i;for(i=0;i<ms;i+) delay1ms(); /*函數(shù)功能:判斷液晶模塊的忙碌狀態(tài)返回值:result。result=1,忙碌;result=0,不忙*/ unsigned char BusyTest(void) bit result;RS=0; /根據(jù)規(guī)定,RS為低

47、電平,RW為高電平時,可以讀狀態(tài) RW=1; E=1; /E=1,才允許讀寫 _nop_(); /空操作 _nop_(); _nop_(); _nop_(); /空操作四個機器周期,給硬件反應(yīng)時間 result=BF; /將忙碌標(biāo)志電平賦給result E=0; /將E恢復(fù)低電平 return result; /*函數(shù)功能:將模式設(shè)置指令或顯示地址寫入液晶模塊入口參數(shù):dictate*/void WriteInstruction (unsigned char dictate) while(BusyTest()=1); /如果忙就等待 RS=0; /根據(jù)規(guī)定,RS和R/W同時為低電平時,可以寫入

48、指令 RW=0; E=0; /E置低電平(根據(jù)表8-6,寫指令時,E為高脈沖, / 就是讓E從0到1發(fā)生正跳變,所以應(yīng)先置"0" _nop_(); _nop_(); /空操作兩個機器周期,給硬件反應(yīng)時間 P0=dictate; /將數(shù)據(jù)送入P0口,即寫入指令或地址 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四個機器周期,給硬件反應(yīng)時間 E=1; /E置高電平 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四個機器周期,給硬件反應(yīng)時間 E=0; /當(dāng)E由高電平跳變成低電平時,液晶模塊開始執(zhí)行命令 /*函數(shù)

49、功能:指定字符顯示的實際地址入口參數(shù):x*/ void WriteAddress(unsigned char x) WriteInstruction(x|0x80); /顯示位置的確定方法規(guī)定為"80H+地址碼x" /*函數(shù)功能:將數(shù)據(jù)(字符的標(biāo)準(zhǔn)ASCII碼)寫入液晶模塊入口參數(shù):y(為字符常量)*/ void WriteData(unsigned char y) while(BusyTest()=1); RS=1; /RS為高電平,RW為低電平時,可以寫入數(shù)據(jù) RW=0; E=0; /E置低電平(根據(jù)表8-6,寫指令時,E為高脈沖, / 就是讓E從0到1發(fā)生正跳變,所以應(yīng)先置"0" P0=y; /將數(shù)據(jù)送入P0口,即將數(shù)據(jù)寫入液晶模塊 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四個機器周期,給硬件反應(yīng)時間 E=1; /E置高電平 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四個機器周期,給硬件反應(yīng)時間 E=0; /當(dāng)E由高電平跳變成低電平時,液晶模塊開始執(zhí)行命令 /*函數(shù)功能:對LCD的顯示模式進行初始化設(shè)置*/void Lc

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論