版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、北京信息科技大學測控綜合實踐課程設計報告題 目: 基于光電傳感器的直流電機轉速測量系統(tǒng)設計 學 院: 儀器科學與光電工程學院 專 業(yè): 測控技術與儀器 學生姓名: 摘要摘 要 基于單片機的轉速測量方法較多,本次設計主要針對于光電傳感器測量直流電機轉速的原理進行簡單介紹,并說明它是如何對電機轉速進行測量的。通過實驗得到結果并進行了數(shù)據(jù)分析。本次設計應用了STC89C52RC單片機,采用光電傳感器測量電機轉速的方法,其中硬件系統(tǒng)包括脈沖信號的產生模塊、脈沖信號的處理模塊和轉速的顯示模塊三個模塊,采用C語言編程,結果表明該方法具有簡單、精度高、穩(wěn)定性好的優(yōu)點。關鍵詞:直流電機;單片機;PWM調節(jié);光
2、電傳感器Abstract目錄目 錄摘要 I第一章 概述 1 1.1 課設目標 1 1.2 內容 1第二章 系統(tǒng)設計原理 2 2.1 STC89C52單片機介紹 2 2.2 STC89C52定時計數(shù)器 4 2.3 STC89C52中斷控制62.4 光電傳感器 62.5 數(shù)碼管介紹 7第三章 硬件系統(tǒng)設計 10 3.1 測速信號采集及其處理 10 3.2 單片機處理電路設計 11 3.3 顯示電路 12 3.4 PWM驅動電路 13第四章 軟件設計 144.1 語言選用 144.2 程序設計流程圖 144.3 原程序代碼 15第五章 數(shù)據(jù)分析 19總結 20附件
3、21 參考文獻 23 46第一章 概述在工程實踐中,經常會遇到各種需要測量轉速的場合,例如在發(fā)動機、電動機、卷揚機、機床主軸等旋轉設備的試驗、運轉和控制中,常需要分時或連續(xù)測量和顯示其轉速及瞬時轉速。目前國內外測量電機轉速的方法有很多,按照不同的理論方法,先后產生過模擬測速法(如離心式轉速表、用電機轉矩或者電機電樞電動勢計算所得)、同步測速法(如機械式或閃光式頻閃測速儀)以及計數(shù)測速法。計數(shù)測速法又可分為機械式定時計數(shù)法和電子式定時計數(shù)法。其中應用最廣的是光電式,光電式測系統(tǒng)具有低慣性、低噪聲、高分辨率和高精度的優(yōu)點。加之激光光源、光柵、光學碼盤、CCD器件、光導纖維等的相繼出現(xiàn)和成功應用,使
4、得光電傳感器在檢測和控制領域得到了廣泛的應用。而采用光電傳感器的電機轉速測量系統(tǒng)測量準確度高、采樣速度快、測量范圍寬和測量精度與被測轉速無關等優(yōu)點,具有廣闊的應用前景。這次設計的內容包含了多個方面,從脈沖信號的產生模塊、脈沖信號的處理模塊和轉速的顯示模塊三個模塊入手,全面鍛煉了我們信號采集,處理和分析的工作能力。1.1 課設目標通過51單片機進行PWM驅動直流電機轉動,然后使用對射式紅外光電傳感器通過檢測直流電機上的光電碼盤進行脈沖測量,單片機處理脈沖最后數(shù)碼管顯示實際轉速。1.2 內容1.2.1 總體方案本文針對電機的轉速進行測量,以單片機為核心對光電開關產生的數(shù)字信號進行運算,從而測得電機
5、的轉速,然后用數(shù)碼管把電機的轉速顯示出來。即通過光電開關將電機的轉數(shù)轉換成0,1的數(shù)字量,只要轉軸每旋轉一周,產生一個或固定的多個脈沖,并將脈沖送入單片機中進行計數(shù)和計算,就可獲得轉速的信息。 系統(tǒng)主要由STC89C52單片機處理系統(tǒng)、電機、傳感器檢測單元、信號處理單元和顯示系統(tǒng)等幾個部分組成,如圖1.1: 單片機STC89C52PWM驅動直流電機光電傳感器測量脈沖數(shù)碼管顯示轉速圖1.1 第二章 系統(tǒng)設計原理2.1 STC89C52單片機介紹2.1.1 STC89C52主要功能及PDIP封裝STC89C52是由深圳宏晶科技公司生產的與工業(yè)標準MCS-51指令集和輸出管腳相兼容的單片機
6、。STC89C52主要功能如表2.1所示,其PDIP封裝如圖2.1所示主要功能特性兼容MCS51指令系統(tǒng)8K可反復擦寫Flash ROM32個雙向I/O口256x8bit內部RAM3個16位可編程定時/計數(shù)器中斷時鐘頻率0-24MHz2個串行中斷可編程UART串行通道2個外部中斷源共6個中斷源2個讀寫中斷口線3級加密位低功耗空閑和掉電模式軟件設置睡眠和喚醒功能表2.1 STC89C52主要功能2.1.2 STC89C52引腳介紹 主電源引腳(2根)VCC(Pin40):電源輸入,接5V電源GND(Pin20):接地線外接晶振引腳(2根)XTAL1(Pin19):片內振蕩電路的輸入端XTAL2(
7、Pin20):片內振蕩電路的輸出端控制引腳(4根)RST/VPP(Pin9):復位引腳,引腳上出現(xiàn)2個機器周期的高電平將使單片機復位。ALE/PROG(Pin30):地址鎖存允許信號PSEN(Pin29):外部存儲器讀選通信號EA/VPP(Pin31):程序存儲器的內外部選通,接低電平從外部程序存儲器讀指令,如果接高電平則從內部程序存儲器讀指令??删幊梯斎?輸出引腳(32根)STC89C52單片機有4組8位的可編程I/O口,分別位P0、P1、P2、P3口,每個口有8位(8根引腳),共32根。P0口(Pin39Pin32):8位雙向I/O口線,名稱為P0.0P0.7P1口(Pin1Pin8):8
8、位準雙向I/O口線,名稱為P1.0P1.7 P2口(Pin21Pin28):8位準雙向I/O口線,名稱為P2.0P2.7 P3口(Pin10Pin17):8位準雙向I/O口線,名稱為P3.0P3.7圖2.1 STC89C52 PDIP封裝圖2.1.3 STC89C52最小系統(tǒng) 最小系統(tǒng)是指能進行正常工作的最簡單電路。STC89C52最小應用系統(tǒng)電路如圖2.2所示。它包含五個電路部分:電源電路、時鐘電路、復位電路、片內外程序存儲器選擇電路、輸入/輸出接口電路。其中電源電路、時鐘電路、復位電路是 保證單片機系統(tǒng)能夠正常工作的最基本的三部分電路,缺一不可。電源電路 芯片引腳VCC一般接上直流穩(wěn)壓電源
9、+5V,引腳GND接電源+5V的負極,電源電壓范圍在45.5之間,可保證單片機系統(tǒng)能正常工作。為提高電路的抗干擾性能,通常在引角Vcc與GND之間接上一個10uF的電解電容和一個0.1uF陶片電容,這樣可抑制雜波串擾,從而有效確保電路穩(wěn)定性。時鐘電路 單片機引腳18和引腳19外接晶振及電容, STC89C52芯片的工作頻率可在233MHz范圍之間選,單片機工作頻率取決于晶振XT的頻率,通常選用11.0592MHz晶振。兩個小電容通常取值3pF,以保證振蕩器電路的穩(wěn)定性及快速性。復位電路 一般若在引腳RST上保持24個工作主頻周期的高電平,單片機就可以完成復位,但為了保證系統(tǒng)可靠地復位,復位電路
10、應使引腳RST保持10ms以上的高電平。如圖復位電路帶有上電自動復位功能,當電路上電時,由于C1電容兩端電壓值不能突變,電源+5V會通過電容向RST提供充電電流,因此在RST引腳上產生一高電平,使單片機進入復位狀態(tài)。隨著電容C1充電,它兩端電壓上升使得RST電位下降,最終使單片機退出復位狀態(tài)。正常運行時,可按復位按鈕對單片機復位圖2.2 STC89C52最小系統(tǒng)原理圖2.2 STC89C52定時計數(shù)器2.2.1定時/計數(shù)器的結構和工作原理51系列單片機有2個16位定時/計數(shù)器:T0和T1 ;2個定時器都有定時或事件計數(shù)的功能,可用于定時控制、延時、對外部事件計數(shù)和檢測等場合;定時/計數(shù)器實際上
11、是16位加1計數(shù)器。T0由2個8位持殊功能寄存器TH0和TL0構成,T1由2個8位持殊功能寄存器TH1和TL1構成。T0和T1都可由軟件設置為定時或計數(shù)工作方式;T0和T1受2個特殊功能寄存器TMOD和TCON控制。 圖2.3定時/計數(shù)器T0(或T1)的內部結構和控制信號S開關: S打向上,定時; S 打向下,計數(shù)。 計數(shù)滿,標志置位,產生中斷。K開關: GATE=0時,TR0=1,定時/計數(shù)器啟動工作;GATE=1時,INT0和TR0 同時為1時,啟動工作。2.2.2 定時/計數(shù)器的寄存器寄存器有2個:控制寄存器TCON(88H)和工作方式寄存器TMOD(89H)1.工作方式寄存器TMOD&
12、#160;工作方式寄存器TMOD用于設置定時/計數(shù)器的工作方式,低四位用于T0,高四位用于T1。其格式如下: GATE:門控位。 GATE0時,以運行控制位TRX(X=0,1)來啟動定時/計數(shù)器運行; GATA1時,要用軟件使TR0或TR1為1,同時外部中斷引腳或也為高電平時,才能啟動定時/計數(shù)器工作; C/T計數(shù)器模式和定時器模式選擇位 C/T=1時,選擇計數(shù)器模式,計數(shù)器對外部輸入引腳T0(P3.4)或T1(P3.5)的外部脈沖計數(shù); C/T=0時,選擇定時器模式。 M1M0:工作方式設置位。定時/計數(shù)器有四種工作方式,
13、由M1M0進行設置。 2.控制寄存器TCON TCON的低4位用于控制外部中斷,已在前面介紹。TCON的高4位用于控制定時/計數(shù)器的啟動和中斷申請。其格式如下:TF1(TCON.7):T1溢出中斷請求標志位。T1計數(shù)溢出時由硬件自動置TF1為1。CPU響應中斷后TF1由硬件自動清0。T1工作時,CPU可隨時查詢TF1的狀態(tài)。所以,TF1可用作查詢測試的標志。TF1也可以用軟件置1或清0,同硬件置1或清0的效果一樣。 TR1(TCON.6): T1運行控制位。TR1置1時,T1開始工作;TR1置0時,T1停止
14、工作。TR1由軟件置1或清0。所以,用軟件可控制定時/計數(shù)器的啟動與停止。 TF0(TCON.5): T0溢出中斷請求標志位,其功能與TF1類同。 TR0(TCON.4): T0運行控制位,其功能與TR1類同。2.2.3 定時器的四種工作方式1.方式0 M1M0=00T0(或T1)工作于13位定時、計數(shù)方式。16位寄存器(THX+TLX)只用13位,TLX的高3位未用。2.方式1 M1M0=01 (與方式0類似)16位定時計數(shù)方式,寄存器THx和TLx以16位參與操作。 最大計數(shù) 21665536(個外部脈沖) 3.方式2 M1M0=10 8位的可自動重
15、裝載的定時/計數(shù)方式。 16位的計數(shù)器被拆成兩個8位,其中TLx用作8位計數(shù)器, THx用以保持計數(shù)初值。 當TLx計數(shù)溢出,置位TFx,THx中的初值自動裝入TLx,繼續(xù)計數(shù),循環(huán)重復計數(shù)。4.方式3 M1M0=11 (僅適用于T0)TL0和TH0被分成為兩個互相獨立的8位計數(shù)器。TL0可作為定時或計數(shù)方式。占用定時器0的各控制位、引腳和中斷源。TH0只能用作定時功能,占用定時器1的控制位TR1和中斷標志位TF1,其啟動和關閉僅受TRl的控制。這種情況下,T1仍可工作于方式0、1、2,但不能使用中斷方式。只有將T1用做串行口的波特率發(fā)生器時,T0才工作在方式3,以便增加一個定時器。 2.3
16、STC89C52中斷控制CPU對中斷系統(tǒng)所有中斷以及某個中斷源的開放和屏蔽是由中斷允許寄存器IE控制的。 EX0(IE.0),外部中斷0允許位; ET0(IE.1),定時/計數(shù)器T0中斷允許位;EX1(IE.2),外部中斷0允許位; § ET1(IE.3),定時/計數(shù)器T1中斷允許位; § ES(IE.4),串行口中斷允許位; EA (IE.7),CPU中斷允許(總允許)位。2.4光電傳感器目前,光電開關已被用作物位檢測、液位控制、產品計數(shù)、寬度判別、速度檢測、定長剪切、孔洞識別、信號延時、自動門傳感、色
17、標檢出、沖床和剪切機以及安全防護等諸多領域。此外,利用紅外線的隱蔽性,還可在銀行、倉庫、商店、辦公室以及其它需要的場合作為防盜警戒之用。 光電開關把發(fā)射端和接收端之間光的強弱變化轉化為電流的變化以達到探測的目的。由于光電開關輸出回路和輸入回路是電隔離的(即電緣絕),所以它可以在許多場合得到應用。光電傳感器具有線性度好、分辨率高、噪音小和精度高、無觸點、無機械碰撞、響應快、控制精度高,而且能識別色標等優(yōu)點,在此我們選擇光電轉速傳感器來進行轉速的檢測。2.4.1光電開關的工作原理 本課題中使用的光電開關是根據(jù)光敏二極管工作原理制造的一種感應接收光強度變化的器件,當它發(fā)出的光被目
18、標反射或阻斷時,則接收器感應出相應的電信號。它包含調制光源,由光敏元件等組成的光學系統(tǒng)、放大器、開關或模擬量輸出裝置,其工作原理如圖2.3 所示。光電式傳感器由獨立且相對放置的光發(fā)射器和收光器組成。當目標通過光發(fā)射器和收光器之間并阻斷光線時,傳感器輸出信號。它是效率最高、最可靠的檢測裝置。槽形(U形)光電開關是對射式的變形,其優(yōu)點是無須調整光軸。圖2.3光電傳感器的原理圖2.4.2 光電開關的分類(1)漫反射式光電開關:它是一種集發(fā)射器和接收器于一體的傳感器,當有被檢測物體經過時,物體將光電開關發(fā)射器發(fā)射的足夠量的光線反射到接收器,于是光電開關就產生了開關信號。當被檢測物體
19、的表面光亮或其反光率極高時,漫反射式的光電開關是首選的檢測模式(2)鏡反射式光電開關:它亦集發(fā)射器與接收器于一體,光電開關發(fā)射器發(fā)出的光線經過反射鏡反射回接收器,當被檢測物體經過且完全阻斷光線時,光電開關就產生了檢測開關信號。 (3)對射式光電開關:它包含了在結構上相互分離且光軸相對放置的發(fā)射器和接收器,發(fā)射器發(fā)出的光線直接進入接收器,當被檢測物體經過發(fā)射器和接收器之間且阻斷光線時,光電開關就產生了開關信號。當檢測物體為不透明時,對射式光電開關是最合適的檢測裝置(4)槽式光電開關:它通常采用標準的U字型結構,其發(fā)射器和接收器分別位于U型槽的兩邊,并形成一光軸,當被檢測物體經過U型槽且
20、阻斷光軸時,光電開關就產生了開關量信號。槽式光電開關比較適合檢測高速運動的物體,并且它能分辨透明與半透明物體,使用安全可靠 (5)光纖式光電開關:它采用塑料或玻璃光纖傳感器來引導光線,可以對距離遠的被檢測物體進行檢測。通常光纖傳感器分為對射式和漫反射式。 2.4.3 光電開關的特點MGK系列光電開關是現(xiàn)代微電子技術發(fā)展的產物,是HGK系列紅外光電開關的升級換代產品。與以往的光電開關相比具有自己顯著的特點: (1) 具有自診斷穩(wěn)定工作區(qū)指示功能,可及時告知工作狀態(tài)是否可靠;(2) 對射式、反射式、鏡面反射式光電開關都有防止相互干擾功能,安裝方便;(3)對E
21、S外同步(外診斷)控制端的進行設置可在運行前預檢光電開關是否正常工作。并可隨時接受計算機或可編程控制器的中斷或檢測指令,外診斷與自診斷的適當組合可使光電開關智能化; (4)響應速度快,高速光電開關的響應速度可達到0.1ms,每分鐘可進行30萬次檢測操作,能檢出高速移動的微小物體; (5)采用專用集成電路和先進的SMT表面安裝工藝,具有很高的可靠性; (6)體積?。ㄗ钚H20×31×12mm)、重量輕,安裝調試簡單,并具有短路保護功能。2.5數(shù)碼管的介紹LED數(shù)碼有共陽和共陰兩種,把這些LED發(fā)光二極管的正極接到一塊(一般是拼成一個8字加一個小數(shù)
22、點)而作為一個引腳,就叫共陽的,相反的,就叫共陰的,那么應用時這個腳就分別的接VCC和GND。再把多個這樣的8字裝在一起就成了多位的數(shù)碼管了。實物如下圖所示:圖2.4 數(shù)碼管共陽型(圖2.5)就是八個發(fā)光管的正極都連在一起,作為一條引線AG段用于顯示數(shù)字,字符的筆畫,(dp顯示小數(shù)點),每一段控制AGdp的亮與來。 內部結構:圖2.5 共陽型LCD共陰型(圖2.6)就是七個發(fā)光管的負極都連在一起 ,作為一條引線。AG段用于顯示數(shù)字,字符的筆畫,(dp顯示小數(shù)點),每一段控制AGdp的亮與來.內部結構:圖2.6 共陰型LCD數(shù)碼管要正常顯示,就要用驅動電路來驅動數(shù)碼管的各個段碼,從而顯示出我們要
23、的數(shù)字,因此根據(jù)數(shù)碼管的驅動方式的不同,可以分為靜態(tài)式和動態(tài)式兩類。靜態(tài)顯示驅動:靜態(tài)驅動也稱直流驅動。靜態(tài)驅動是指每個數(shù)碼管的每一個段碼都由一個單片機的I/O端口進行驅動,或者使用如BCD碼二-十進制譯碼器譯碼進行驅動。靜態(tài)驅動的優(yōu)點是編程簡單,顯示亮度高,缺點是占用I/O端口多,如驅動5個數(shù)碼管靜態(tài)顯示則需要5×840根I/O端口來驅動,要知道一個89S51單片機可用的I/O端口才32個,實際應用時必須增加譯碼驅動器進行驅動,增加了硬件電路的復雜性。動態(tài)顯示驅動:數(shù)碼管動態(tài)顯示接口是單片機中應用最為廣泛的一種顯示方式之一,動態(tài)驅動是將所有數(shù)碼管的8個顯示筆劃"a,b,c
24、,d,e,f,g,dp"的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅動。在輪流顯示過程中,每位數(shù)碼管的點亮時間為12ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應,盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是
25、一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。LED段碼表如下表所示:顯示字符共陰極段選碼共陽極段選碼顯示字符共陰極段選碼共陽極段選碼012343FH06H5BH4FH66HC0HF9HA4HB0H99H567896DH7DH07H7BH6FH92H82HF8H80H90H表1 LED段碼表第3章 硬件系統(tǒng)設計(本部分由本組成員吳輝負責)根據(jù)系統(tǒng)設計要求本系統(tǒng)分為PWM直流電機驅動模塊,測速信號采集與處理模塊,單片機模塊以及顯示模塊四大部分。3.1.1測速信號采集及其處理 本設計中采用對射式光電傳感器如圖3.1(b)測量
26、電機轉速。使用專用的光電編碼盤如圖3.1(a)所示,安裝在電機轉軸上, 圖:3.1(a) 圖:3.1(b)3.1.2 檢測裝置安裝 此檢測裝置按照發(fā)動機上傳感器的實際安裝位置進行安裝。如圖3.2,將碼盤固定在電動機轉軸上,光電轉速傳感器正對著碼盤。光電轉速傳感器接有3根導線,紅線接+5V,黑線連接GND,藍線為脈沖信號輸出口。圖:3.23.2 單片機處理電路設計如下圖所示,采用11.0592MHz的晶振,9口為復位接口,通過開關控制。如圖3.3所示:圖3.33.2.1 時鐘電路 單片機各功能部件的運行都是以時鐘控制信號為基準,有條不
27、紊地一拍一拍地工作。因此,時鐘頻率直接影響單片機的速度,時鐘電路的質量也直接影響單片機系統(tǒng)的穩(wěn)定性。 本設計中此采用內部時鐘方式,如圖3.4所示,以石英晶體振蕩器和兩個片電容組成外部振蕩源。片內的高增益反相放大器通過XTAL1、XTAL2外接,作為反饋元件的片外晶體振蕩器與電容組成的并聯(lián)諧振回路構成一個自激振蕩器,向內部時鐘電路提供振蕩時鐘。振蕩器的頻率取決于晶振的振蕩頻率,振蕩頻率范圍為1.212MHz。工程應用時通常采用6MHz或12MHz。圖中X1為11.0592MHz,電容C2、C4為33pF,它們一起構成此單片機的自激振蕩器。圖:3.43.2.2 復位電路
28、0;單片機的RST引腳為復位(Reset)端。當單片機振蕩器工作時,該引腳上出現(xiàn)持續(xù)兩個機器周期的低電平,就可以實現(xiàn)系統(tǒng)復位,使單片機回到初始狀態(tài)。如圖3.5所示,本設計采用手動復位,用一個電容與一個10K電阻串聯(lián)組成,電阻接VCC,電容接地,RESET腳接在它們中間,RC選擇10uF,按鍵與200R電阻串聯(lián),在電容兩端并聯(lián),就成了按鍵復位電路,未上電時,RST端為高電平,只要按下這個按鍵,RST端轉換為低電平,經過兩個機器周期后,單片機就能復位。圖:3.53.3 顯示部分 LED靜態(tài)顯示的亮度高,占用CPU的時間短,但它的成本高。為了簡化硬件電路,降低成本,在單片機應用系
29、統(tǒng)中常采用動態(tài)掃描的方法,解決多位LED顯示的問題。 動態(tài)掃描顯示的硬件接口簡單,只需一個公共的七段碼輸出口(字形口),即所有顯示位的段選線并聯(lián)在一起,由一個8位I/O口控制。一個選擇顯示為的數(shù)位選擇口(字位口),由其它的I/O口控制。顯示時,從左到右輪流點亮每位顯示器,由于視覺的暫留,只要保證掃描周期不超過一定的限度(一般在20ms以下),即每一時刻位選只選通一個顯示位,同時段選控制口輸出顯示字符對應的段選碼,使該位顯示的字符,一定時間后,再選其他顯示位,如此循環(huán),使每個顯示器件顯示該位相應的字符。則可達到“同時”顯示各位不同的數(shù)字或字符的目的。 如下圖所示為四連數(shù)碼管,
30、其中A、B、C、D、E、F、G、DP分別對應數(shù)碼管的8段,連接單片機的I/O口(P0口)。使用兩個鎖存器,一個控制數(shù)碼管的段選,一個控制 4位數(shù)碼管的位選。通過單片機P2.0P2.1口控制鎖存器的鎖存。 圖3.63.4 PWM驅動電路圖3.7第4章 軟件設計4.1 語言的選用 本設計中采用的處理器是STC89C52單片機,由此可采用面向MCS-51的程序設計語言,包括ASM51匯編語言和C51高級語言,這兩種語言各有特點。匯編語言更接近機器語言,常用來編制與系統(tǒng)硬件相關的程序,如訪問I/O端口、中斷處理程序、實時控制程序、實時通信
31、程序等;而數(shù)學運算程序則適合用C51高級語言編寫,因為用高級語言編寫運算程序可提高編程效率和應用程序的可靠性。C語言是一種通用的計算機程序設計語言,在國際上十分流行,它即可用來編寫計算機系統(tǒng)程序,也可以用來編寫一般的應用程序。以前計算機的系統(tǒng)軟件主要是用匯編語言編寫的,對于單片機應用系統(tǒng)來說更是如此。由于匯編語言程序的可讀性和可移植性都較差,采用匯編語言編寫單片機應用程序的周期長,而且調試和排錯也比較困難。C語言具有很好的可移植性和硬件控制能力,表達和運算能力也較強。它具有以下特點: 1語言簡潔,使用方便靈活。 2可移植性好。 3表達能力強。 4表達方式
32、靈活。5可進行架構化程序設計。6可以直接操作計算機硬件。 7生成的目標代碼質量高。 為了提高編制計算機系統(tǒng)和應用程序的效率,改善程序的可讀性和可移植性,在此采用高級語言編程。 4.2 程序設計流程圖 本系統(tǒng)用外部中斷程序采集信號脈沖,用定時器產生PWM脈沖,每1秒就計算一次轉速并對數(shù)碼管刷新和緩沖區(qū)數(shù)據(jù)進行更新,輔以數(shù)碼管進行顯示。程序流程如圖4.1。圖4.1當開始工作時,單片機通過控制P2.4口輸出PWM波,經過驅動電路,直流單機開始轉動。光電傳感器通過檢測直流電機的光柵通斷,產生輸出高低電平,輸入單片機P3.2口。用于測量轉速的脈沖通過P3
33、.2輸入單片機,用STC89C52的外部中斷INT0對脈沖信號進行計數(shù)(負邊沿觸發(fā)),用定時計數(shù)器T0進行定時,定時0.5ms,產生2000個中斷后(即1s),進行一次轉速處理,再通過單片機對INT0的脈沖數(shù)進行運算轉換后,最后用四連數(shù)碼管顯示電機的轉速。4.3 原程序代碼#include<reg52.h>typedef unsigned int u16;typedef unsigned char u8;sbit key1=P11;/獨立按鍵sbit key2=P12;/獨立按鍵sbit p20=P20;/數(shù)碼管顯示sbit p21=P21;/數(shù)碼管位選sbit p22=
34、P24;/pwm控制直流電機sbit p32=P32;/接受傳感器數(shù)字信號u8 code tab1=0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e;/數(shù)字u8 code tab2=0x08,0x04,0x02,0x01, ;/位選u16 counter1=0,tmp=0,counter2,flag=0;void delay(u16 num)u16 x,y;for(x=num;x>0;x-) for(y=110;y>0;y-) ;/10us左右void display
35、(u8 wei,u8 num)p21 = 1;/D7.0 = Q7.0P0 = tab2wei-1;p21 = 0;p20 = 1;P0 = tab1num;p20 = 0;void timer_init()TMOD = 0x01;/設置tmod工作在定時模式TCON |=0x01;/設置外部中斷0,為負邊沿觸發(fā) TH0 = (65535-461)/256;/計算初值TL0 = (65535-461)%256;/計算初值ET0 = 1;/開放定時器0的溢出中斷EA = 1;/開放總中斷EX0 = 1;/開放TF0 = 0;/清除溢出TR0 = 1;/打開定時計數(shù)器T0PT0 = 1;/將定時器
36、0設為最高優(yōu)先級void jishu()if(counter1>=2000)counter2 = tmp/100;tmp = 0;counter1 = 0;void display2(u16 num)u16 wan,qian,bai,shi,ge;wan = num/10000;qian = num%10000/1000;bai = num%1000/100;shi = num%100/10;ge = num%10;display(4,qian);delay(2);display(3,bai);delay(2);display(2,shi);delay(2);display(1,ge);
37、delay(2);void main(void)timer_init();P0 = 0xff;P1 = 0xff;/端口初始化p20 = 0;p21 = 0;/LE禁止鎖存while(1)jishu();display2(counter2);if(key1 = 0) delay(5);/消除抖動 if(key1 = 0) flag=1; while(!key1);/松鍵檢測if(key2 = 0) delay(5);/消除抖動 if(key2 = 0) flag=2; while(!key1);/松鍵檢測void t0(void) interrupt 1TH0 = (65535-461)/25
38、6;/計算初值0.5ms周期1ms/真實是0.542msTL0 = (65535-461)%256;/計算初值counter1+;if(flag=1)if(p22=1)TH0 = (65535-681)/256;/計算初值 /低電平時間TL0 = (65535-681)%256;/計算初值p22 = 0;elseTH0 = (65535-231)/256;/計算初值/高電平時間TL0 = (65535-231)%256;/計算初值p22 = 1;else if(flag=2)if(p22=1)TH0 = (65535-231)/256;/計算初值 /低電平時間TL0 = (65535-231)
39、%256;/計算初值p22 = 0;elseTH0 = (65535-681)/256;/計算初值/高電平時間TL0 = (65535-681)%256;/計算初值p22 = 1;elseif(p22=1)TH0 = (65535-461)/256;/計算初值 /低電平時間TL0 = (65535-461)%256;/計算初值p22 = 0;elseTH0 = (65535-461)/256;/計算初值/高電平時間TL0 = (65535-461)%256;/計算初值p22 = 1;void into(void) interrupt 0tmp+;第五章 數(shù)據(jù)分析實驗數(shù)據(jù)記錄:PWM占空比10%25%40%50%60%75%100%電機轉速r/s53107164206242297395通過實驗證明電機轉速與PWM占空比基本呈線性,轉速誤差為±4% r/s,可以實現(xiàn)對高轉速的測量??偨Y:設計采用光電開關測速法,利用對射式光電開關采集轉速信號,通過信號處理電路得到適合的脈沖后,輸入單片
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年對溴芐胺公司技術改造及擴產項目可行性研究報告
- 2024-2030年國家甲級資質:中國垃圾焚燒煙氣脫硝(SNCR+SCR)融資商業(yè)計劃書
- 2024-2030年國家甲級資質:中國冰箱內膽融資商業(yè)計劃書
- 2024-2030年前端裝載機行業(yè)市場現(xiàn)狀供需分析及重點企業(yè)投資評估規(guī)劃分析研究報告
- 2024-2030年全球市場噴干水果粉市場銷售規(guī)模及投資盈利預測報告
- 2024-2030年全球及中國虛擬數(shù)據(jù)優(yōu)化器行業(yè)前景動態(tài)及發(fā)展趨勢預測報告
- 2024-2030年全球及中國鹽酸硫胺行業(yè)產銷規(guī)模及需求趨勢預測報告
- 2024-2030年全球及中國汽車系統(tǒng)基礎芯片(SBC)行業(yè)銷售策略與供需前景預測報告版
- 2024-2030年全球及中國有機廢棄物轉換器行業(yè)發(fā)展前景及投資趨勢預測報告
- 2024-2030年全球及中國快速抗原檢測試劑盒行業(yè)運行態(tài)勢及發(fā)展前景預測報告
- 2024-2025學年高二上學期期末數(shù)學試卷(提高篇)(含答案)
- 2025年安全生產目標實施計劃
- 福建百校2025屆高三12月聯(lián)考歷史試卷(含答案解析)
- 2024年山西省建筑安全員《B證》考試題庫及答案
- 2023年益陽市安化縣招聘鄉(xiāng)鎮(zhèn)衛(wèi)生院護理人員筆試真題
- 《基于PLC的智能交通燈控制系統(tǒng)設計》10000字(論文)
- 首都經濟貿易大學《微積分》2021-2022學年第一學期期末試卷
- 人音版音樂七年級上冊《父親的草原母親的河》課件
- 2024年度短視頻內容創(chuàng)作服務合同3篇
- 介入治療并發(fā)癥
- 鑄牢中華民族共同體意識-形考任務1-國開(NMG)-參考資料
評論
0/150
提交評論