單片機(jī)課程方案設(shè)計(jì)書(shū)基于單片機(jī)的電機(jī)測(cè)速系統(tǒng)_第1頁(yè)
單片機(jī)課程方案設(shè)計(jì)書(shū)基于單片機(jī)的電機(jī)測(cè)速系統(tǒng)_第2頁(yè)
單片機(jī)課程方案設(shè)計(jì)書(shū)基于單片機(jī)的電機(jī)測(cè)速系統(tǒng)_第3頁(yè)
單片機(jī)課程方案設(shè)計(jì)書(shū)基于單片機(jī)的電機(jī)測(cè)速系統(tǒng)_第4頁(yè)
單片機(jī)課程方案設(shè)計(jì)書(shū)基于單片機(jī)的電機(jī)測(cè)速系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 單片機(jī)課程設(shè)計(jì) 單片機(jī)課程設(shè)計(jì) 基于單片機(jī)的電機(jī)測(cè)速系統(tǒng) 姓 名: 專(zhuān)業(yè)班級(jí): 專(zhuān)業(yè)班級(jí): 學(xué) 號(hào): 指導(dǎo)老師: 指導(dǎo)老師: 08 級(jí)電信 2 班 閔昆龍 I 目錄 1 前言 1 2總體方案設(shè)計(jì) 2 2.1 方案論證 2 2.2 方案比較 2 2.3 方案選擇 3 3.硬件部分設(shè)計(jì) 3.硬件部分設(shè)計(jì) 4 3.1 速度檢測(cè)電路 4 3.1.1 開(kāi)關(guān)型霍爾傳感器介紹 4 3.1.2 傳感檢測(cè)電路 5 3.2 單片機(jī)最小系統(tǒng)電路 6 3.2.1 主控器 STC89C52 的介紹 7 3.2.2 時(shí)鐘電路 8 3.2.3 復(fù)位電路 9 3.3 數(shù)碼顯示電路 10 3.4 RS-232 串行通信接口電

2、路 11 3.4.1 MAX232 介紹 11 3.4.2 串行通信接口電路 12 4. 軟件設(shè)計(jì) 14 4.1 主程序設(shè)計(jì) 14 4.2 T0 定時(shí)中斷程序設(shè)計(jì) 15 心得體會(huì) 錯(cuò)誤!未定義書(shū)簽。 附錄 18 附錄 1:電機(jī)測(cè)速系統(tǒng)總電路圖 18 附錄 2:電機(jī)測(cè)速系統(tǒng)總程序代碼 19 II 1 前言 隨著科技的飛速發(fā)展,計(jì)算機(jī)應(yīng)用技術(shù)日益滲透到社會(huì)生產(chǎn)生活的各個(gè)領(lǐng) 域,而單片機(jī)的應(yīng)用則起到了舉足輕重的作用。單片機(jī)又稱(chēng)單片微控制器,就是 把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。它完整地包含了計(jì)算機(jī)內(nèi)部的CPU(運(yùn)算 器、控制器)、程序存儲(chǔ)器(相當(dāng)于計(jì)算機(jī)的硬盤(pán))、數(shù)據(jù)存儲(chǔ)器(相當(dāng)于計(jì)算機(jī) 的內(nèi)存)

3、、輸入輸出端口等。雖然它的運(yùn)算速度無(wú)法和計(jì)算機(jī)相比,但在一些實(shí) 際的控制應(yīng)用場(chǎng)合已經(jīng)足夠使用了。對(duì)于高等院校電子類(lèi)和計(jì)算機(jī)類(lèi)的學(xué)生,學(xué) 習(xí)單片機(jī)是很重要的,而進(jìn)行應(yīng)用單片機(jī)的課程設(shè)計(jì)更是重中之重,將所學(xué)理論 知識(shí)應(yīng)用到實(shí)際,使更加全面的了解和掌握單片機(jī)的應(yīng)用。 在工程實(shí)踐中,經(jīng)常會(huì)遇到各種需要測(cè)量轉(zhuǎn)速的場(chǎng)合,例如在發(fā)動(dòng)機(jī)、電動(dòng) 機(jī)、機(jī)床主軸等旋轉(zhuǎn)設(shè)備的實(shí)驗(yàn)運(yùn)轉(zhuǎn)和控制中,常需要分時(shí)或連續(xù)測(cè)量、顯示其 轉(zhuǎn)速及瞬時(shí)速度。為了能精確地測(cè)量轉(zhuǎn)速,還要保證測(cè)量的實(shí)時(shí)性,要求能測(cè)得 瞬時(shí)轉(zhuǎn)速。本文提出一種基于STC89C52單片機(jī)實(shí)施電機(jī)轉(zhuǎn)速測(cè)量的方法,利用霍 爾傳感器采集脈沖信號(hào),通過(guò)定時(shí)計(jì)數(shù)算法程序,將

4、轉(zhuǎn)速結(jié)果實(shí)時(shí)顯示出來(lái)。 在本次設(shè)計(jì)中也用到了一些常用的數(shù)字電子單元元件,如霍爾傳感器,霍爾 器件作為一種轉(zhuǎn)速測(cè)量系統(tǒng)的傳感器, 具有結(jié)構(gòu)牢固、 體積小、 重量輕、 壽命長(zhǎng)、 安裝方便等優(yōu)點(diǎn),。在實(shí)際的使用中,一般需要一個(gè)鐵質(zhì)的測(cè)速齒輪,齒厚大于 2 mm即可,將之固定在待測(cè)轉(zhuǎn)速的軸上。 1 2總體方案設(shè)計(jì) 2.1 方案論證 在工程實(shí)踐中,經(jīng)常會(huì)遇到各種需要測(cè)量轉(zhuǎn)速的場(chǎng)合,例如在發(fā)動(dòng)機(jī)、電動(dòng) 機(jī)、機(jī)床主軸等旋轉(zhuǎn)設(shè)備的實(shí)驗(yàn)運(yùn)轉(zhuǎn)和控制中,常需要分時(shí)或連續(xù)測(cè)量、顯示其 轉(zhuǎn)速及瞬時(shí)速度。為了能精確地測(cè)量轉(zhuǎn)速,還要保證測(cè)量的實(shí)時(shí)性,要求能測(cè)得 瞬時(shí)轉(zhuǎn)速。本次課程設(shè)計(jì)主要是利用 STC89C52 單片機(jī)和傳

5、感器來(lái)設(shè)計(jì)電機(jī)電機(jī) 測(cè)速系統(tǒng)。利用傳感器采集脈沖信號(hào),通過(guò)定時(shí)計(jì)數(shù)算法程序,將轉(zhuǎn)速結(jié)果實(shí)時(shí) 顯示出來(lái)。 在本次設(shè)計(jì)中是利用單片機(jī)進(jìn)行信號(hào)處理, 信號(hào)的采集是使用傳感器。 對(duì)于選擇何種傳感器來(lái)采集信號(hào)是對(duì)測(cè)量的精度是有很大影響的。 所以在本次方 案比較中主要討論傳感器的選擇。 2.2 方案比較 光 敏 二 極 管 電機(jī) 光 敏 三 極 管 信 號(hào) 轉(zhuǎn) 換 單片機(jī)處理 L E D 顯 示 圖 2.1 方案一方框圖 方案一包括傳感器、處理器和顯示 3 個(gè)部分。其方框圖如圖 2.1 所示。 在該方案中傳感器是由紅外發(fā)光二極管,和紅外光敏三極管構(gòu)成。測(cè)速的過(guò) 程為:在電機(jī)的轉(zhuǎn)軸上安裝一個(gè)圓盤(pán),并在圓盤(pán)的

6、邊緣處開(kāi)一個(gè)孔讓二極管發(fā)出 的紅外光剛好可以通過(guò)。在圓盤(pán)的上下方分別安裝好發(fā)光二極管和光敏三極管, 當(dāng)電機(jī)轉(zhuǎn)動(dòng)時(shí)就可以通過(guò)圓盤(pán)來(lái)改變光敏三極管接收的光線(xiàn), 從而產(chǎn)生點(diǎn)位信號(hào) 的變化,這樣就構(gòu)成了一個(gè)收發(fā)檢測(cè)系統(tǒng),可以檢測(cè)電機(jī)的轉(zhuǎn)速。運(yùn)用的原理和 光電耦合器是相同的。 2 電機(jī) 霍 爾 傳 感 器 信 號(hào) 轉(zhuǎn) 換 單片機(jī)處理 LED 顯 示 圖 2.2 方案二方框圖 方案二也由傳感器、處理器和顯示 3 個(gè)部分幾部分組成,但所選擇的傳感器 類(lèi)型不同,其方框圖如圖 2.2 所示。 此方案的測(cè)速系統(tǒng)主要是由開(kāi)關(guān)型霍爾傳感器 A3144E 以及磁鋼構(gòu)成,由它 們來(lái)檢測(cè)電機(jī)的轉(zhuǎn)速。工作方式為:將磁鋼安裝在

7、電機(jī)的轉(zhuǎn)軸上,而霍爾傳感器 則放在轉(zhuǎn)軸的旁邊, 霍爾傳感器連接在電路中, 當(dāng)磁鋼隨轉(zhuǎn)軸經(jīng)過(guò)霍爾傳感器時(shí), 由開(kāi)關(guān)型霍爾傳感器的工作原理知,此時(shí)將輸出一個(gè)低電平信號(hào);而當(dāng)磁鋼離開(kāi) 霍爾傳感器后,又將輸出一個(gè)高電平。這樣通過(guò)高低電平的轉(zhuǎn)換,將其送入單片 機(jī)后就可以測(cè)量它的轉(zhuǎn)速。 2.3 方案選擇 兩個(gè)方案的主體電路相同,只是傳感的的選擇不同。而選擇開(kāi)關(guān)型霍爾傳感 器則具有多種優(yōu)點(diǎn):精度高:在工作溫度區(qū)內(nèi)精度優(yōu)于 1%。過(guò)載能力強(qiáng): 當(dāng)原邊電流超負(fù)荷,模塊達(dá)到飽和,可自動(dòng)保護(hù),即使過(guò)載電流是額定值的 20 倍時(shí),模塊也不會(huì)損壞。模塊的高靈敏度,使之能夠區(qū)分在“高分量”上的弱 信號(hào),例如:在幾百安的直

8、流分量上區(qū)分出幾毫安的交流分量。還可以通過(guò)使 用多塊磁鋼來(lái)倍頻,以增加測(cè)量的精度。 鑒于以上考慮,最終選定方案二為本次課程設(shè)計(jì)方案。 3 3.硬件部分設(shè)計(jì) 硬件部分設(shè)計(jì) 3.1 速度檢測(cè)電路 3.1.1 開(kāi)關(guān)型霍爾傳感器介紹 霍爾傳感器是利用霍爾效應(yīng)原理制成的一種磁敏傳感器。 它是近年來(lái)為適應(yīng) 信息采集的需要而迅速發(fā)展起來(lái)的一種新型傳感器,這類(lèi)傳感器具有工作頻帶 寬,響應(yīng)快、面積小、靈敏度高、無(wú)缺點(diǎn)、便于集成化、多功能化等優(yōu)點(diǎn),且易 與計(jì)算機(jī)和其它數(shù)字儀表接口, 因此被廣泛用于自動(dòng)監(jiān)測(cè)、 自動(dòng)測(cè)量、 自動(dòng)報(bào)警、 自動(dòng)控制、信息傳遞、生物醫(yī)學(xué)等各個(gè)領(lǐng)域。此處主要介紹開(kāi)關(guān)型霍爾傳感器。 開(kāi)關(guān)型霍爾

9、傳感器由穩(wěn)壓器A、硅霍爾片B、差分放大器C、施密特觸發(fā)器D 和OC門(mén)輸出E五部分組成,如圖3.11所示從輸入端1輸入電壓Vcc,經(jīng)穩(wěn)壓器A 穩(wěn)壓后加在硅霍爾片B的兩端,以提供恒定不變的工作電流在垂直于霍爾片的 感應(yīng)面方向施加磁場(chǎng),產(chǎn)生霍爾電勢(shì)差Vw,該n信號(hào)經(jīng)差分放大器c放大后送至施 密特觸發(fā)器D整形當(dāng)磁場(chǎng)達(dá)到“工作點(diǎn)”(即B。)時(shí),觸發(fā)器D輸出高電壓(相對(duì) 于地電位),使三極管E導(dǎo)通,輸出端V。輸出低電位,此狀態(tài)稱(chēng)為“開(kāi)”。當(dāng)施 加的磁場(chǎng)達(dá)到“釋放點(diǎn)”(即B。)時(shí),觸發(fā)器D輸出低電壓,使三極管E截止,輸 出端y。輸出高電位,此狀態(tài)稱(chēng)為“關(guān)”。這樣2次高低電位變換,使霍爾傳感器 完成了1次開(kāi)關(guān)

10、動(dòng)作。開(kāi)關(guān)型霍爾傳感器構(gòu)成圖如圖3.1所示: 圖3.1 開(kāi)關(guān)型霍爾傳感器構(gòu)成圖 開(kāi)關(guān)型霍爾集成傳感器(以下簡(jiǎn)稱(chēng)開(kāi)關(guān)型霍爾傳感器)主要被應(yīng)用于周期和 頻率的測(cè)量、轉(zhuǎn)速的測(cè)量、液位控制等方面。常用的開(kāi)關(guān)型霍爾傳感器有美國(guó) sPRAG1 公司的UGN3000系列如UGN3020、UGN3O3O等。它沒(méi)有輸入端,因磁場(chǎng)是由 空間輸入的。規(guī)定用磁鐵的S極接近開(kāi)關(guān)型霍爾傳感器正面時(shí)形成的B為正值,從 圖4.2曲線(xiàn)看:當(dāng)B =0時(shí), 0為高;B=Bop時(shí), 0立即變低,這點(diǎn)稱(chēng)為“工作點(diǎn)”。 繼續(xù)升高B, 0不變。降低B到BRp時(shí),Vo又回升。這點(diǎn)稱(chēng)為“釋放點(diǎn)”。 4 如圖3.2所示,B 一 B 稱(chēng)為磁滯。在

11、此差值內(nèi),輸出電位 。保持高電位或 低電位不變,因而輸出穩(wěn)定可靠。 圖 3.2 開(kāi)關(guān)型霍爾傳感器輸出電壓與外加磁感應(yīng)強(qiáng)度關(guān)系 3.1.2 傳感檢測(cè)電路 速度檢測(cè)電路是由開(kāi)關(guān)型霍爾傳感器和磁鋼組成。其電路圖如圖 3.3 所示。 測(cè)量電機(jī)轉(zhuǎn)速的第一步就是要將電機(jī)地轉(zhuǎn)速表示為單片機(jī)可以識(shí)別的脈沖 信號(hào),從而進(jìn)行脈沖計(jì)數(shù)?;魻柶骷鳛橐环N轉(zhuǎn)速測(cè)量系統(tǒng)的傳感器,具有結(jié)構(gòu) 牢固、體積小、重量輕、壽命長(zhǎng)、安裝方便等優(yōu)點(diǎn),當(dāng)電機(jī)轉(zhuǎn)動(dòng)時(shí),帶動(dòng)傳感器, 產(chǎn)生對(duì)應(yīng)頻率的脈沖信號(hào),經(jīng)過(guò)信號(hào)處理后輸出到計(jì)數(shù)器或其他的脈沖計(jì)數(shù)裝 置,進(jìn)行轉(zhuǎn)速的測(cè)量。在實(shí)際的使用中,一般需要一個(gè)鐵質(zhì)的測(cè)速齒輪,齒厚大 于 2 mm 即可,

12、將之固定在待測(cè)轉(zhuǎn)速的軸上。 所謂磁鋼,就是磁鋼就是一種有磁性的鋼鐵。 在傳感檢測(cè)電路中將磁鋼安裝在電機(jī)的轉(zhuǎn)軸上, 而霍爾傳感器則放在轉(zhuǎn)軸的 旁邊,霍爾傳感器連接在電路中,當(dāng)磁鋼隨轉(zhuǎn)軸經(jīng)過(guò)霍爾傳感器時(shí),由開(kāi)關(guān)型霍 爾傳感器的工作原理知,此時(shí)將輸出一個(gè)低電平信號(hào);而當(dāng)磁鋼離開(kāi)霍爾傳感器 后,又將輸出一個(gè)高電平。這樣通過(guò)高低電平的轉(zhuǎn)換,將其送入單片機(jī)后就可以 測(cè)量它的轉(zhuǎn)速。其電路如圖 3.3 所示。 5 J2 CON2 R17 霍霍霍霍霍 1 2 3 + A MG1 MOTOR SERVO 1 +5V 3.2 單片機(jī)最小系統(tǒng)電路 單片機(jī)最小系統(tǒng)電路如圖 3.4 所示,由主控器 STC89C52、時(shí)鐘

13、電路和復(fù)位 電路三部分組成。單片機(jī) STC89C52 作為核心控制器控制著整個(gè)系統(tǒng)的工作,而 時(shí)鐘電路負(fù)責(zé)產(chǎn)生單片機(jī)工作所必需的時(shí)鐘信號(hào),復(fù)位電路使得單片機(jī)能夠正 常、有序、穩(wěn)定地工作。 OUT GND VCC GND 圖 3.3 傳感器部分 圖 3.4 單片機(jī)最小系統(tǒng) 6 3.2.1 主控器 STC89C52 的介紹 本系統(tǒng)采用單片機(jī) STC8952 作為主控制器,使用霍爾傳感器測(cè)量電機(jī)的轉(zhuǎn) 速,最終在 LED 上顯示測(cè)試結(jié)果。此外,還可以根據(jù)需要調(diào)整制電機(jī)的轉(zhuǎn)速,硬 件組成由圖 3.5 所示。 單片機(jī)(Micro Controller Unit),又稱(chēng)為微控制器,是指在一塊芯片上集成 了中

14、央處理器 CPU、隨機(jī)存儲(chǔ)器 RAM、程序存儲(chǔ)器 ROM、定時(shí)器/計(jì)數(shù)器、中斷控 制器以及串行和并行 I/0 接口等部件,構(gòu)成一個(gè)完整的微型計(jì)算機(jī)。目前,新 型單片機(jī)內(nèi)還有 A/D(D/A)轉(zhuǎn)換器、高速輸入輸出部件、DMA 通道、浮點(diǎn)運(yùn)算等 特殊功能部件。由于它的結(jié)構(gòu)和指令功能都是按工業(yè)控制要求設(shè)計(jì)的,特別適用 于工業(yè)控制及其數(shù)據(jù)處理場(chǎng)合。 STC89C52 是擁有 256 字節(jié)的 RAM,8K 的片內(nèi) ROM,3 個(gè) 16 位定時(shí)器,6 個(gè)中 斷源的微處理器,也就是俗稱(chēng)的單片機(jī)。 89系列單片機(jī)的內(nèi)核是8031,所以其指令與Intel 8051 系列單片機(jī)完全兼 容,并且具有以下優(yōu)點(diǎn): (1

15、)內(nèi)部含有Flash 存儲(chǔ)器(STC89C52 有8k)。因此在系統(tǒng)的開(kāi)發(fā)過(guò)程中 可以十分容易進(jìn)行程序的修改,這就大大縮短了系統(tǒng)的開(kāi)發(fā)周期。同時(shí),在系統(tǒng) 工作過(guò)程中,能有效地保存一些數(shù)據(jù)信息,即使外界電源損壞也不影響到信息的 保存。 (2)插座與80C51兼容。89系列單片機(jī)的引腳和80C51是一樣的,當(dāng)用89系 列單片機(jī)取代80C51時(shí),可以直接進(jìn)行代換。 (3)靜態(tài)時(shí)鐘方式。89系列單片機(jī)采用靜態(tài)時(shí)鐘方式,可以節(jié)省電能,這 對(duì)于降低便攜式產(chǎn)品的功耗十分有用。 (4)錯(cuò)誤編程亦無(wú)廢品產(chǎn)生。因?yàn)?9系列單片機(jī)內(nèi)部采用了Flash 存儲(chǔ)器, 所以,錯(cuò)誤編程之后仍可以重新編程,直到正確為止,故不存

16、在廢品。 (5)可反復(fù)進(jìn)行系統(tǒng)實(shí)驗(yàn)。用89系列單片機(jī)設(shè)計(jì)的系統(tǒng),可以反復(fù)進(jìn)行系 統(tǒng)實(shí)驗(yàn), 每次實(shí)驗(yàn)可以編入不同的程序, 這樣可以保證用戶(hù)的系統(tǒng)設(shè)計(jì)達(dá)到最優(yōu)。 而且隨著用戶(hù)的需要和發(fā)展,還可以進(jìn)行修改,使系統(tǒng)不斷能追隨用戶(hù)的最新要求。 7 圖 3.5 STC89C52 單片機(jī)引腳圖 STC8952 引腳圖如圖 3.5 所示,此芯片共 40 引腳,每個(gè)引腳的功能如下: 18 腳: 通用 I/O 接口 p1.0p1.7 9 腳: rst 復(fù)位鍵 10 .11 腳:RXD 串口輸入 TXD 串口輸出 1219:I/O p3 接口 (12,13 腳 INT0 中斷 0;INT1 中斷 1;14,15 :

17、 計(jì)數(shù)脈 沖 T0 T1;16,17: WR 寫(xiě)控制 RD 讀控制輸出端) 18,19: 晶振諧振器 20: 地線(xiàn) 2128:p2 接口 高 8 位地址總線(xiàn) 29: psen 片外 rom 選通端 單片機(jī)對(duì)片外 rom 操作時(shí) 29 腳(psen)輸出低 電平 30:ALE/PROG 地址鎖存器 31:EA rom 取指令控制器 高電平片內(nèi)取 低電平片外取 3239:p0.0p0.7(注意此接口的順序與其他 I/O 接口不同 與引腳號(hào)的排列 順序相反) 40:電源+5V 3.2.2 時(shí)鐘電路 STC89C52 單片機(jī)芯片內(nèi)部設(shè)有一個(gè)由反向放大器所構(gòu)成的振蕩器。19 腳 (XTAL1)為振蕩器。

18、 反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端,18 腳(XTAL2)為振蕩器反相放大 器的輸出端。在 XTAL1 和 XTAL2 引腳上外接定時(shí)元器件,內(nèi)部振蕩電路就會(huì)產(chǎn)生 自激振蕩。本系統(tǒng)采用的定時(shí)元器件為石英晶體(晶振)和電容組成的并聯(lián)諧振 8 回路。晶振頻率為 6MHz,電容大小為 1530pF,電容的大小可以起到頻率微調(diào)的 作用,時(shí)鐘電路如圖 3.6 所示。 圖 3.6 時(shí)鐘電路(晶振) 3.2.3 復(fù)位電路 STC89C52 的復(fù)位是由外部的復(fù)位電路來(lái)實(shí)現(xiàn)的,復(fù)位電路通常采用上電復(fù)位 和按鈕復(fù)位兩種方式,本設(shè)計(jì)采用的是最簡(jiǎn)單的上電自動(dòng)復(fù)位電路,其電路圖如 圖 3.7 所示。上電自動(dòng)復(fù)位是通

19、過(guò)外部復(fù)位電路的電容充電實(shí)現(xiàn)的,當(dāng)電源接通 時(shí)只要 VCC 的上升時(shí)間不超過(guò) 1 毫秒,就可以實(shí)現(xiàn)自動(dòng)上電復(fù)位。本設(shè)計(jì)時(shí)鐘頻 率選用 6MHZ,電容取 22 微法,電阻取 1 千歐。 圖 3.7 復(fù)位電路 9 3.3 數(shù)碼顯示電路 LED 又稱(chēng)為數(shù)碼管, 它主要由 8 段發(fā)光二極管組成的不同組合, 可以顯示 a g 為數(shù)字和字符顯示段, 段為小數(shù)點(diǎn)顯示, h 通過(guò) ag 為 7 個(gè)發(fā)光段的不同組合, 可以顯示 09 和 AF 共 16 個(gè)數(shù)字和字母。LED 可以分為共陰極和共陽(yáng)極兩種 結(jié)構(gòu)。共陰極結(jié)構(gòu)即把 8 個(gè)發(fā)光二極管陰極連在一起。這種裝入數(shù)碼管中顯示字 形的數(shù)據(jù)稱(chēng)字形碼,又稱(chēng)段選碼。 點(diǎn)

20、亮 LED 顯示器有兩種方式:一是靜態(tài)顯示:二是動(dòng)態(tài)顯示。 所謂靜態(tài)顯示,就是當(dāng)顯示器顯示某一個(gè)字符時(shí),相應(yīng)的發(fā)光二極管恒定的 導(dǎo)通或截止。 如圖 3.8 所示為 4 位靜態(tài) LED 顯示電路。 該電路每一位可單獨(dú)顯示。 只要在要顯示的那位段選線(xiàn)上保持段選電平,該位就能保持顯示相應(yīng)的顯示字 符。這種電路的優(yōu)點(diǎn)是:在同一瞬間可以顯示不同的字符;但缺點(diǎn)就是占用端口 資源較多。從下圖可以看出,每位 LED 顯示器需要單獨(dú)占用 8 根端口線(xiàn),因而, 在數(shù)據(jù)較多時(shí)不采用此中設(shè)計(jì),而是采用動(dòng)態(tài)顯示方式。本設(shè)計(jì)采用靜態(tài)顯示。 圖 3.8 靜態(tài)顯示電路 所謂動(dòng)態(tài)顯示,就是將要顯示的多位 LED 顯示器采用一個(gè)

21、 8 位的段選端口, 然后采用動(dòng)態(tài)掃描方式一位一位地輪流點(diǎn)亮各位顯示器。 如下圖 3.9 所示為 4 位 LED 動(dòng)態(tài)顯示電路。 +5V P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 AT89C51 P2.0 P2.1 P2.2 P2.3 圖 3.9 4 位動(dòng)態(tài) LED 顯示器電路 本設(shè)計(jì)用到的是 LED 顯示器靜態(tài)顯示方式,其電路如圖 3.10 所示是發(fā)光二 10 極管顯示器(LED)的結(jié)構(gòu)、工作原理及接口電路。 圖 3.10 LED 顯示部分 RS3.4 RS-232 串行通信接口電路 單片機(jī)的串行口是非常有用的, 通過(guò)它我們可以把單片機(jī)系統(tǒng)的數(shù)據(jù)傳回電

22、腦處理或者接受電腦傳過(guò)來(lái)的數(shù)據(jù)而進(jìn)行相應(yīng)的動(dòng)作。 微控制器有許多標(biāo)準(zhǔn)的通信方法,但在主/從嵌入式系統(tǒng)中,最常用的是 RS23 2 串行接口、SPI 和 I2C。52 單片機(jī)有一個(gè)全雙工的串行通信口,非常適合與電 腦進(jìn)行通信,本次課程設(shè)計(jì),采用的是 RS232 出行接口方式。 3.4.1 MAX232 介紹 MAX232 是由德州儀器公司(TI)推出的一款兼容 RS232 標(biāo)準(zhǔn)的芯片。由于 電腦串口 rs232 電平是-10v +10v,而一般的單片機(jī)應(yīng)用系統(tǒng)的信號(hào)電壓是 TTL 電平 0 +5v,max232 就是用來(lái)進(jìn)行電平轉(zhuǎn)換的,該器件包含 2 驅(qū)動(dòng)器、2 接收器和 一個(gè)電壓發(fā)生器電路提供

23、 TIA/EIA-232-F 電平。MAX232 引腳圖如圖 3.11 所示。 該器件符合 TIA/EIA-232-F 標(biāo)準(zhǔn), 每一個(gè)接收器將 TIA/EIA-232-F 電平轉(zhuǎn)換 成 5-V TTL/CMOS 電平。每一個(gè)發(fā)送器將 TTL/CMOS 電平轉(zhuǎn)換成 TIA/EIA-232-F 電 平。 其主要特點(diǎn)為: 1、單 5V 電源工作 11 2、LinBiCMOSTM 工藝技術(shù) 3、兩個(gè)驅(qū)動(dòng)器及兩個(gè)接收器 4、30V 輸入電平 5、低電源電流:典型值是 8mA 6、符合甚至優(yōu)于 ANSI 標(biāo)準(zhǔn) EIA/TIA-232-E 及 ITU 推薦標(biāo)準(zhǔn) V.28 7、ESD 保護(hù)大于 MIL-STD

24、-883(方 法 3015)標(biāo)準(zhǔn)的 2000V 圖 3.11 MAX232 引腳圖 3.4.2 串行通信接口電路 串行端口的本質(zhì)功能是作為 CPU 和串行設(shè)備間的編碼轉(zhuǎn)換器。當(dāng)數(shù)據(jù)從 CPU 經(jīng)過(guò)串行端口發(fā)送出去時(shí),字節(jié)數(shù)據(jù)轉(zhuǎn)換為串行的位。在接收數(shù)據(jù)時(shí),串行的位 被轉(zhuǎn)換為字節(jié)數(shù)據(jù)。 在 Windows 環(huán)境(Windows NT、Win98、Windows2000)下,串口是系統(tǒng)資源 的一部分。 應(yīng)用程序要使用串口進(jìn)行通信,必須在使用之前向操作系統(tǒng)提出資 源申請(qǐng)要求(打開(kāi)串口),通信完成后必須釋放資源(關(guān)閉串口)。 本次課程設(shè)計(jì)串行通信接口電路如圖 3.12 所示。 12 圖 3.12 串行通

25、信接口電路 13 4. 軟件設(shè)計(jì) 對(duì)于電機(jī)轉(zhuǎn)速的測(cè)定,一般有兩種方法:一種是測(cè)頻率,就是在給定時(shí)間內(nèi) 測(cè)電機(jī)轉(zhuǎn)了幾圈,這種方法適合于高速旋轉(zhuǎn)的電機(jī);另一種則是測(cè)周期,就是測(cè) 電機(jī)轉(zhuǎn)一圈的時(shí)間,這種方法適合于測(cè)低速的電機(jī)。而我們這次使用的電機(jī)是一 個(gè)高速的直流電機(jī),所以就選用測(cè)頻法來(lái)編程。 4.1 主程序設(shè)計(jì) 本系統(tǒng)采用 STC89C52 中的 T0 定時(shí)器和 T1 計(jì)數(shù)器配合使用對(duì)轉(zhuǎn)速脈沖定時(shí) 計(jì)數(shù)。計(jì)數(shù)器 T1 工作于計(jì)數(shù)狀態(tài)對(duì)外部脈沖進(jìn)行計(jì)數(shù);T0 工作為定時(shí)器方式每 次定時(shí) 10ms。本設(shè)計(jì)程序編程的思想就是在給定的 10ms 之內(nèi),用單片機(jī)自帶的 計(jì)數(shù)器 T1 對(duì)外部脈沖進(jìn)行計(jì)數(shù)。主程

26、序的流程圖如圖 4.1 所示。 開(kāi)始 初始化 T0,T1 開(kāi)啟定時(shí) T0 等待 50ms 開(kāi)啟計(jì)數(shù)器 T1 N buf_min=100 Y 關(guān)閉計(jì)數(shù)器 T1 處理 TH1,TH0 數(shù)據(jù) 顯示數(shù)據(jù) 圖 4.1 主程序流程圖 主程序部分程序如下: #include 14 #define uint unsigned int sbit CNPN0=P00。 sbit CNPN1=P01。 sbit CNPN2=P02。 sbit CNPN3=P03。 uint buf_min=0x1,flag。 void delay(uint x)/x=1000 表示 4ms while(-x)。 void main

27、() uint num10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90。 uint i,j,temp。 uint sum=0x0,disnum4=0。 TMOD=0x51。 TH0=-10236/256。 TL0=-10236%256。 TH1=0。 TL1=0。 EA=1。 /啟動(dòng)外部中斷 0 /TO 工作為定時(shí)方式,T1 工作為計(jì)數(shù)方式 4.2 T0 定時(shí)中斷程序設(shè)計(jì) T0 T0 定時(shí)中斷程序主要是完成 10ms 的定時(shí)任務(wù),并且對(duì)變量 buf_min 進(jìn)行加 一處理,其中在對(duì) T0 進(jìn)行賦初值時(shí),選擇為 10236 而不是 1000

28、0。主要是 c 語(yǔ) 言在經(jīng)過(guò)反匯編后,一條 c 語(yǔ)句將會(huì)編譯成幾條語(yǔ)句,這樣就增加了指令執(zhí)行的 時(shí)間,使定時(shí)產(chǎn)生誤差,而在經(jīng)過(guò)多次調(diào)試后,選擇 10236 為 T0 初值是最接近 10ms 的。 15 進(jìn)入定時(shí)中斷 關(guān)閉定時(shí)器 T0 TH0,TL0 賦值 buf_min 加 1 開(kāi)啟定時(shí)器 T0 退出中斷 圖 4.2 T0 定時(shí)中斷流程圖 T0 定時(shí)中斷部分程序: void time0() interrupt 1 /定時(shí) 10ms EA=0。 ET0=0。 TR0=0。 TH0=-10236/256。 TL0=-10236%256。 buf_min+。 EA=1。 ET0=1。 TR0=1。

29、16 心得體會(huì) 在本次課程設(shè)計(jì)中,介紹了一種基于 STC89C52 單片機(jī)的電機(jī)測(cè)速系統(tǒng),該 測(cè)速系統(tǒng)采用集成霍爾傳感器敏感速率信號(hào),具有頻率響應(yīng)快、抗干擾能力強(qiáng)等 特點(diǎn)。霍爾傳感器的輸出信號(hào)經(jīng)信號(hào)調(diào)理后,通過(guò)單片機(jī)對(duì)連續(xù)脈沖記數(shù)來(lái)實(shí)現(xiàn) 轉(zhuǎn)速測(cè)控,并且充分利用了單片機(jī)的內(nèi)部資源,有很高的性?xún)r(jià)比。經(jīng)過(guò)測(cè)試并對(duì) 誤差進(jìn)行分析發(fā)現(xiàn),該系統(tǒng)的測(cè)量誤差在 5以?xún)?nèi),并且在測(cè)量范圍內(nèi)轉(zhuǎn)速越高 測(cè)量精度越高。所以該系統(tǒng)在一般的轉(zhuǎn)速檢測(cè)和控制中均可應(yīng)用。 通過(guò)本次課程設(shè)計(jì),我對(duì)單片機(jī)的工作原理和應(yīng)用有了深入的理解,掌握了 單片機(jī)系統(tǒng)軟硬件設(shè)計(jì)的基本方法,對(duì)一個(gè)課題如何畫(huà)流程圖,編寫(xiě)程序等有 了一定的認(rèn)識(shí)。使我深

30、刻體會(huì)到單片機(jī)技術(shù)應(yīng)用領(lǐng)域的廣泛,也讓我了解到單片 機(jī)技術(shù)對(duì)當(dāng)今人們生活的重要性。 雖然本次課程設(shè)計(jì)不要求做出實(shí)物, 而且只是針對(duì)微機(jī)控制的一個(gè)領(lǐng)域進(jìn)行 研究和查找有關(guān)的單片機(jī)控制的資料。 但是已經(jīng)讓我了解到了做一個(gè)課程設(shè)計(jì)不 僅要全面的分析和解決在設(shè)計(jì)時(shí)出現(xiàn)的問(wèn)題。 也通過(guò)查閱資料了解到微機(jī)控制的 重要性和其應(yīng)用的廣泛性。在這不斷發(fā)展的社會(huì),微機(jī)控制的自動(dòng)化已經(jīng)占據(jù)了 很大的地位,而且其發(fā)展的速度是很快的,所以對(duì)于我們學(xué)習(xí)這個(gè)專(zhuān)業(yè)的學(xué)生來(lái) 說(shuō),就要求我們應(yīng)該不斷的去了解最新的設(shè)計(jì)和理論知識(shí),那樣才能讓我們?cè)诒?領(lǐng)域有一立足之地。 17 R3 200 R4 200 R5 200 R6 200

31、R7 200 R8 200 R9 200 R10 200 IC1 1 2 3 4 5 6 7 8 20 13 12 40 15 14 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 VCC INT1/P3.3 INT0/P3.2 GND T1/P3.5 T0/P3.4 EA/VP X1 X2 9 17 16 RESET RD/P3.7 WR/P3.6 89C51 22u R1 200 S1 J2 CON2 R17 霍霍霍霍霍 1 R2 1k 1 2 3 J1 1 CON1 OUT GND VCC RXD/P3.0 TXD/P3.1 ALE/P PSEN 10 1

32、1 30 29 T1 T2 P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 21 22 23 24 25 26 27 28 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 31 Y1 12M 19 18 C2 +5V 39 38 37 36 35 34 33 32 R11 R12 1K R13 1K R14 1K 1K a 7 b 6 c 4 d 1 e 3 f 8 g dp a b c d e f g dp 7 4 2 3 9 6 1 8 LED2 2LED-CC a c e b d 9 2 LED1 2LED-CC f a c

33、 dp e f +5V G1 G2 G1 10 22uF T3 10 C1 5 T4 附錄 1:電機(jī)測(cè)速系統(tǒng)總電路圖 22uF C3 PNP PNP PNP PNP + MG1 MOTOR SERVO A +5V J3 1 6 2 7 3 8 4 9 5 DB9 6 2 C4 0.1u 12 9 14 7 4 5 C6 0.1u R1 OUT R2 OUT T1 OUT T2 OUT C2+ C2 C5 0.1u R1 IN R2 IN T1 IN T2 IN C1+ C1 VV+ U1 MAX232AEPE(16) 13 8 11 10 1 3 C8 0.1u GND C7 0.1u 附錄

34、5 +5V G2 dp g b d g 18 附錄 2:電機(jī)測(cè)速系統(tǒng)總程序代碼 include #define uchar unsigned char #define uint unsigned int sbit G=P16。 sbit ENB=P11。 sbit IN3=P12。 sbit IN4=P10。 sbit wela=P27。 sbit dula=P26。 int rate。 unsigned dat_buf10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f,0x67。 uint ttt=0。 void delay(uint z) uin

35、t x,y。 for(x=z。x0。x-) for(y=110。y0。y-)。 void display(uchar shi,uchar ge) dula=1。 P0=dat_bufshi。 dula=0。 P0=0xff。 wela=1。 P0=0xfe。 wela=0。 delay(1)。 dula=1。 P0=dat_bufge。 dula=0。 P0=0xff。 wela=1。 P0=0xfd。 wela=0。 delay(1)。 char 19 dula=1。 P0=dat_bufshi。 dula=0。 P0=0xff。 wela=1。 P0=0xfb。 wela=0。 delay

36、(1)。 dula=1。 P0=dat_bufge。 dula=0。 P0=0xff。 wela=1。 P0=0xf7。 wela=0。 delay(1)。 void ISR0(void) interrupt 0 rate+。 void T0ISR(void) interrupt 1 unsigned char ge,shi。 TL0=0x0c。 TH0=0xf0。 ttt+。 if(ttt500) ttt=0。 shi=rate/10。 ge=rate%10。 rate=0。 main() TMOD=0x00。 TL0=0x0c。 TH0=0xf0。 PT0=0。 20 /外部中斷 0 服務(wù)

37、例程 /定時(shí)器 T0 中斷響應(yīng) TR0=1。 ET0=1。 IT0=1。 EX0=1。 EA=1。 while(1) uchar shi,ge。 G=0。 ENB=0。 /外部中斷 0 為下降沿觸發(fā) /開(kāi) EX0 中斷 IN3=1。 IN4=0。 display(shi,ge)。 #include #define uchar unsigned char #define uint unsigned int sbit G=P16。 sbit ENB=P11。 sbit IN3=P12。 sbit IN4=P10。 sbit wela=P27。 sbit dula=P26。 int rate。 un

38、signed dat_buf10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f,0x67。 uint ttt=0。 void delay(uint z) uint x,y。 for(x=z。x0。x-) for(y=110。y0。y-)。 void display(uchar shi,uchar ge) dula=1。 P0=dat_bufshi。 dula=0。 P0=0xff。 wela=1。 P0=0xfe。 char 21 wela=0。 delay(1)。 dula=1。 P0=dat_bufge。 dula=0。 P0=0xff。 wel

39、a=1。 P0=0xfd。 wela=0。 delay(1)。 dula=1。 P0=dat_bufshi。 dula=0。 P0=0xff。 wela=1。 P0=0xfb。 wela=0。 delay(1)。 dula=1。 P0=dat_bufge。 dula=0。 P0=0xff。 wela=1。 P0=0xf7。 wela=0。 delay(1)。 void ISR0(void) interrupt 0 rate+。 void T0ISR(void) interrupt 1 unsigned char ge,shi。 TL0=0x0c。 TH0=0xf0。 ttt+。 if(ttt5

40、00) 22 /外部中斷 0 服務(wù)例程 /定時(shí)器 T0 中斷響應(yīng) ttt=0。 shi=rate/10。 ge=rate%10。 rate=0。 main() TMOD=0x00。 TL0=0x0c。 TH0=0xf0。 PT0=0。 TR0=1。 ET0=1。 IT0=1。 EX0=1。 EA=1。 while(1) uchar shi,ge。 G=0。 ENB=0。 /外部中斷 0 為下降沿觸發(fā) /開(kāi) EX0 中斷 IN3=1。 IN4=0。 display(shi,ge)。 #include #define uchar unsigned char #define uint unsigne

41、d int sbit G=P16。 sbit ENB=P11。 sbit IN3=P12。 sbit IN4=P10。 sbit wela=P27。 sbit dula=P26。 int rate。 unsigned dat_buf10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f,0x67。 uint ttt=0。 void delay(uint z) char 23 uint x,y。 for(x=z。x0。x-) for(y=110。y0。y-)。 void display(uchar shi,uchar ge) dula=1。 P0=dat_bufshi。 dula=0。 P0=0xff。 wela=1。 P0=0xfe。 wela=0。 delay(1)。 dula=1。 P0=dat_bufge。 dula=0。 P0=0xff。 wela=1。P0=0xfd。 wela=0。 delay(1)。 dula=1。 P0=dat_bufshi。 dula=0。 P0=0xff。 wela=1。 P0=0xfb。 wela=0。 delay(1)。 dula=1。 P0=dat_bufge。 dula=0。 P0=0xff。 wela=1。 P0

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論