版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單片機(jī)課程設(shè)計(jì)題目基于單片機(jī)的電機(jī)轉(zhuǎn)速測(cè)量系統(tǒng)設(shè)計(jì)學(xué)院名稱電氣工程學(xué)院指導(dǎo)教師***班級(jí)電力**班學(xué)號(hào)*************學(xué)生姓名**2023年1月5日摘要在工程實(shí)踐中,經(jīng)常會(huì)遇到各種需要測(cè)量轉(zhuǎn)速的場(chǎng)合,測(cè)量轉(zhuǎn)速的方法分為模擬式和數(shù)字式兩種。模擬式采用測(cè)速發(fā)電機(jī)為檢測(cè)元件,得到的信號(hào)是模擬量。數(shù)字式通常采用光電編碼器,霍爾元件等為檢測(cè)元件,得到的信號(hào)是脈沖信號(hào)。隨著微型計(jì)算機(jī)的廣泛應(yīng)用,特別是高性能價(jià)格比的單片機(jī)的出現(xiàn),轉(zhuǎn)速測(cè)量普遍采用以單片機(jī)為核心的數(shù)字式測(cè)量方法。本設(shè)計(jì)主要用STC89C51作為控制核心,由光電傳感器、1620A-1液晶顯示屏,直流電機(jī)構(gòu)成。詳細(xì)介紹了單片機(jī)的測(cè)量轉(zhuǎn)速系統(tǒng)及單片機(jī)控制轉(zhuǎn)速系統(tǒng)。充分發(fā)揮了單片機(jī)的性能。本文重點(diǎn)是測(cè)量速度并顯示在液晶屏上。最后系統(tǒng)調(diào)試,通過(guò)仿真軟件proteus驗(yàn)證方案的正確性后,再進(jìn)行實(shí)物的測(cè)試,經(jīng)過(guò)不斷的調(diào)試最終得出正確的結(jié)果。關(guān)鍵字:STC89C51〔單片機(jī)〕;轉(zhuǎn)速;傳感器;控制TOC\o"1-3"\h\u16671引言1320391系統(tǒng)方案提出和論證2120702系統(tǒng)功能概述3114142.1光電傳感器簡(jiǎn)介4268582.2系統(tǒng)要求及主要內(nèi)容523582.3系統(tǒng)技術(shù)指標(biāo)538213系統(tǒng)總體設(shè)計(jì)6221823.1硬件電路設(shè)計(jì)思路637933.2軟件設(shè)計(jì)思路6108774硬件電路設(shè)計(jì)7297984.1單片機(jī)模塊7173004.1.1處理執(zhí)行元件810884.1.2時(shí)鐘電路11227284.1.3復(fù)位電路12296914.1.4顯示電路136895軟件設(shè)計(jì)16300965.1單片機(jī)轉(zhuǎn)速程序設(shè)計(jì)思路及過(guò)程16164125.1.1單片機(jī)程序設(shè)計(jì)思路17139335.1.2單片機(jī)轉(zhuǎn)速計(jì)算程序18213234.2程序設(shè)計(jì)19143804.3C語(yǔ)言程序20261876系統(tǒng)調(diào)試27225546.1硬件調(diào)試2758526.2軟件調(diào)試28173956.3綜合調(diào)試30202356.4故障分析與解決方案30198367結(jié)論與經(jīng)驗(yàn)3113186參考文獻(xiàn)3223518致謝334273附錄34引言智能化轉(zhuǎn)速測(cè)量可以對(duì)電機(jī)的轉(zhuǎn)速進(jìn)行測(cè)量,電機(jī)在運(yùn)行的過(guò)程中,需要對(duì)其平穩(wěn)性進(jìn)行監(jiān)測(cè),適時(shí)對(duì)轉(zhuǎn)速的測(cè)量有效地可以反映電機(jī)的狀況。本系統(tǒng)主要由傳感器,單片機(jī)STC89C51構(gòu)成。可以對(duì)轉(zhuǎn)速進(jìn)行測(cè)量,測(cè)量的轉(zhuǎn)速精度較高,實(shí)現(xiàn)對(duì)電機(jī)轉(zhuǎn)速的測(cè)量。單片機(jī)的英文名稱是MicroControllerunit,縮寫(xiě)為MCU,又稱為微控制器,它是一種面向控制的大規(guī)模集成電路芯片。它具有功能強(qiáng)、體積小、可靠性高、應(yīng)用簡(jiǎn)單靈活,因而使用非常廣泛,有力地推動(dòng)各行業(yè)的技術(shù)開(kāi)展和更新?lián)Q代。本文首先在第二章緒論介紹了此系統(tǒng)的功能、技術(shù)指標(biāo)以及主要內(nèi)容等;在第三章論述了總體設(shè)計(jì)過(guò)程,確定了技術(shù)指標(biāo)及器件的選擇;第四章著重描述了系統(tǒng)硬件電路設(shè)計(jì)、硬件設(shè)計(jì)框圖及所使用的各種芯片功能與特性;在第四章中重點(diǎn)剖析了軟件設(shè)計(jì)的過(guò)程;最后在第六章中具體論述單片機(jī)、電平轉(zhuǎn)換電路、通信的處理及調(diào)試。由于本人水平有限,加之時(shí)間倉(cāng)促,論文中難免會(huì)有錯(cuò)誤和缺乏之外,不夠理想、許多方面還需要繼續(xù)完善和改良。在此特別感謝我的指導(dǎo)老師***老師的大力指導(dǎo)。1系統(tǒng)方案提出和論證轉(zhuǎn)速測(cè)量的方案選擇一般要考慮傳感器的結(jié)構(gòu)、安裝以及測(cè)速范圍與環(huán)境條件等方面的適用性;再就是二次儀表的要求,出了顯示以外還有控制、通訊和遠(yuǎn)傳方面的要求。本說(shuō)明書(shū)中給出兩種轉(zhuǎn)速測(cè)量方案,經(jīng)過(guò)我和隊(duì)友查資料、構(gòu)思和自己的設(shè)計(jì),總體電路我們有兩套設(shè)計(jì)方案,局部重要模塊也考慮了其它設(shè)計(jì)方法,經(jīng)過(guò)分析,從實(shí)現(xiàn)難度、熟練程度、器件用量等方面綜合考慮,我們才最終選擇了一個(gè)方案。下面就看下我們對(duì)兩套設(shè)計(jì)方案的簡(jiǎn)要說(shuō)明。方案一:霍爾傳感器測(cè)量方案霍爾傳感器是利用霍爾效應(yīng)進(jìn)行工作,其核心元件是根據(jù)霍爾效應(yīng)原理制成的霍爾元件。本文介紹一種泵驅(qū)動(dòng)軸的轉(zhuǎn)速采用霍爾轉(zhuǎn)速傳感器測(cè)量?;魻栟D(zhuǎn)速傳感器的結(jié)構(gòu)原理圖如圖3.8。圖3.8霍爾轉(zhuǎn)速傳感器的結(jié)構(gòu)圖傳感器的定子上有2個(gè)互相垂直的繞組A和B相連,在繞組的中心線上粘有霍爾片HA和HB,轉(zhuǎn)子為永久磁鋼,霍爾元件HA和HB的激磁電機(jī)分別與繞組A和B相連,它們的霍爾電極串聯(lián)作為傳感的輸出。缺點(diǎn):采用霍爾傳感器在信號(hào)采樣的時(shí)候,會(huì)出現(xiàn)采樣不精確,因?yàn)樗强看判愿袘?yīng)才采集脈沖的,使用時(shí)間長(zhǎng)了會(huì)出現(xiàn)磁性變小,影響脈沖的采樣精度。方案二:光電傳感器整個(gè)測(cè)量系統(tǒng)轉(zhuǎn)子由一直流調(diào)速電機(jī)驅(qū)動(dòng),可實(shí)現(xiàn)大轉(zhuǎn)速范圍的無(wú)級(jí)調(diào)速。轉(zhuǎn)速信號(hào)由光電傳感器拾取,使用時(shí)應(yīng)在轉(zhuǎn)子上做好光電標(biāo)記,具體方法可以是:將轉(zhuǎn)子外表擦干凈后用黑漆〔或者黑色膠布〕全部涂黑,再將一塊反光材料貼在其上作為光電標(biāo)記,然后將光電傳感器〔光電頭〕固定在正對(duì)光電標(biāo)記的某一適當(dāng)距離處。光電投采用低功耗亮度LED,光源為高可靠性可見(jiàn)光,無(wú)論黑夜還是白天,或者是背景光強(qiáng)、有大范圍改變都不影響接收效果。光電頭包含有前置電路,輸出0-5V的脈沖信號(hào)。接到單片機(jī)89C51的相應(yīng)管腳上,通過(guò)89C51內(nèi)部定時(shí)器/計(jì)數(shù)器T0、T1及相應(yīng)的程序設(shè)計(jì),組成一個(gè)數(shù)字式轉(zhuǎn)速測(cè)量系統(tǒng)。優(yōu)點(diǎn)這種方案使用光電傳感器具有采用精確,采樣速度快、范圍廣的特點(diǎn)。綜上所述,方案二使用的光電傳感器來(lái)作為設(shè)計(jì)的最正確方案。2系統(tǒng)功能概述功能:系統(tǒng)主要實(shí)現(xiàn)功能是:STC89C51單片機(jī)接收光電傳感器傳來(lái)的脈沖信號(hào),單片機(jī)根據(jù)外部中斷,以及內(nèi)部定時(shí)器進(jìn)行記數(shù)計(jì)算出電機(jī)轉(zhuǎn)速送到LED顯示,并通過(guò)輸出PWM波控制電機(jī)的轉(zhuǎn)速。記錄各時(shí)段的轉(zhuǎn)速,畫(huà)出V-T坐標(biāo)圖。組成及框圖:傳感器電路、轉(zhuǎn)速測(cè)量、液晶顯示、PWM控制電路等將在以下章節(jié)作詳細(xì)地設(shè)計(jì)。系統(tǒng)硬件電路如圖2.1。輸出PWM單片機(jī)AT89C51輸出PWM單片機(jī)AT89C51傳感器驅(qū)動(dòng)電路直流電機(jī)驅(qū)動(dòng)電路直流電機(jī)液晶顯示圖2.1系統(tǒng)硬件電路應(yīng)用:從實(shí)用的角度看,評(píng)價(jià)一個(gè)系統(tǒng)實(shí)用價(jià)值的重要標(biāo)準(zhǔn),就是這個(gè)系統(tǒng)對(duì)社會(huì)生活和科技觀念有多大的奉獻(xiàn)。轉(zhuǎn)速測(cè)量系統(tǒng)具有大范圍、高精度等優(yōu)點(diǎn)、測(cè)量速度快,這種系統(tǒng)將會(huì)有良好的應(yīng)用。2.1光電傳感器簡(jiǎn)介光電傳感器是采用光電元件作為檢測(cè)元件的傳感器。它首先把被測(cè)量的變化轉(zhuǎn)換成光信號(hào)的變化,然后借助光電元件進(jìn)一步將光信號(hào)轉(zhuǎn)換成電信號(hào)。光電傳感器一般由光源、光學(xué)通路和光電元件三局部組成。光電檢測(cè)方法具有精度高、反響快、非接觸等優(yōu)點(diǎn),而且可測(cè)參數(shù)多,傳感器的結(jié)構(gòu)簡(jiǎn)單,形式靈活多樣,因此,光電式傳感器在檢測(cè)和控制中應(yīng)用非常廣泛。光電傳感器是各種光電檢測(cè)系統(tǒng)中實(shí)現(xiàn)光電轉(zhuǎn)換的關(guān)鍵元件,它是把光信號(hào)〔紅外、可見(jiàn)及紫外光輻射〕轉(zhuǎn)變成為電信號(hào)的器件。光電式傳感器是以光電器件作為轉(zhuǎn)換元件的傳感器。它可用于檢測(cè)直接引起光量變化的非電量,如光強(qiáng)、光照度、輻射測(cè)溫、氣體成分分析等;也可用來(lái)檢測(cè)能轉(zhuǎn)換成光量變化的其他非電量,如零件直徑、外表粗糙度、應(yīng)變、位移、振動(dòng)、速度、加速度,以及物體的形狀、工作狀態(tài)的識(shí)別等。光電式傳感器具有非接觸、響應(yīng)快、性能可靠等特點(diǎn),因此在工業(yè)自動(dòng)化裝置和機(jī)器人中獲得廣泛應(yīng)用。近年來(lái),新的光電器件不斷涌現(xiàn),特別是CCD圖像傳感器的誕生,為光電傳感器的進(jìn)一步應(yīng)用開(kāi)創(chuàng)了新的一頁(yè)。本設(shè)計(jì)仿真中的直流電機(jī)為帶光電傳感器的電機(jī)。圖2.1光電傳感器工作電路圖2.2系統(tǒng)要求及主要內(nèi)容將光電傳感器產(chǎn)生的脈沖信號(hào)輸出入到單片機(jī)的定時(shí)器0口,單片機(jī)工作在內(nèi)部定時(shí)器工作方式0,對(duì)周期信號(hào)進(jìn)行內(nèi)部記數(shù),調(diào)用計(jì)算公式算出轉(zhuǎn)速,調(diào)用顯示程序顯示在液晶屏上。主要內(nèi)容:〔1〕單片機(jī)局部主要完成電機(jī)轉(zhuǎn)速的測(cè)量〔2〕LED局部主要是把轉(zhuǎn)速顯示出來(lái),顯示范圍0-6000r/min〔3〕輸出PWM波控制電機(jī)轉(zhuǎn)速〔4〕傳感器電路模塊2.3系統(tǒng)技術(shù)指標(biāo)系統(tǒng)主要完成以下功能:測(cè)量系統(tǒng):〔1〕設(shè)計(jì)并制作單片機(jī)的轉(zhuǎn)速測(cè)量的硬件系統(tǒng);〔2〕用C語(yǔ)言完成轉(zhuǎn)速測(cè)量的軟件系統(tǒng);〔3〕要求把轉(zhuǎn)速顯示在液晶屏;〔4〕可以自己行控制電機(jī)在一個(gè)穩(wěn)定的轉(zhuǎn)速上;根據(jù)系統(tǒng)要實(shí)現(xiàn)的功能以及要求,要實(shí)現(xiàn)單片機(jī)的轉(zhuǎn)速測(cè)量主要是各個(gè)模塊的設(shè)計(jì),定時(shí)器記數(shù)功能、以及LED驅(qū)動(dòng)。單片機(jī)可通過(guò)編程控制外圍部件,能實(shí)現(xiàn)較高的自動(dòng)化程度。以它為系統(tǒng)核心的控制模塊可實(shí)現(xiàn)主從控制,完成預(yù)定的任務(wù)。3系統(tǒng)總體設(shè)計(jì)3.1硬件電路設(shè)計(jì)思路硬件設(shè)計(jì)的任務(wù)是根據(jù)總體設(shè)計(jì)要求,在選擇的機(jī)型的根底上,具體確定系統(tǒng)中所要使用的元器件,設(shè)計(jì)出系統(tǒng)的原理框圖、電路原理圖。89C51單片機(jī)通過(guò)T0輸入傳感器的脈沖信號(hào),中斷0口輸出PWM波,P1口、P2口接LED動(dòng)態(tài)顯示。轉(zhuǎn)速測(cè)量局部的硬件設(shè)計(jì)思路:本次設(shè)計(jì)單片機(jī)局部的硬件框圖如圖2.1所示。CPU執(zhí)行單元顯示電路復(fù)位電路CPU執(zhí)行單元顯示電路復(fù)位電路時(shí)鐘電路時(shí)鐘電路圖3.1單片機(jī)局部硬件框圖具體詳細(xì)的表達(dá)將在下面的章節(jié)中逐一介紹。3.2軟件設(shè)計(jì)思路軟件需要解決的是定時(shí)器0的記數(shù),由于測(cè)量的轉(zhuǎn)速范圍大,所以低速和高速都要考慮在內(nèi),關(guān)鍵在于一個(gè)四字節(jié)除三字節(jié)程序的實(shí)現(xiàn)。顯示局部、需要有一個(gè)二進(jìn)制到十進(jìn)制的轉(zhuǎn)化程序,以及轉(zhuǎn)換成非壓縮BCD的程序后、才能進(jìn)行調(diào)用查表程序送到顯示。軟件工作流程:光電傳感器利用光電電效應(yīng)產(chǎn)生一周期脈沖向單片機(jī)的T0計(jì)數(shù)器〔P3.4〕口發(fā)送脈沖信號(hào),定時(shí)器工作在內(nèi)部定時(shí),TH0、TL0設(shè)定初值為0,作為除數(shù)的低兩字節(jié),利用軟件記數(shù)器、定時(shí)器0中斷的次數(shù)作為除數(shù)高字節(jié)。中斷完畢讀取內(nèi)部記數(shù)值作為除數(shù),調(diào)用除法程序計(jì)算轉(zhuǎn)速,再對(duì)二進(jìn)制數(shù)進(jìn)行一系列變換后調(diào)用查表顯示程序,顯示在液晶屏上。轉(zhuǎn)速局部軟件設(shè)計(jì)思路:STC89C51單片機(jī)的P3.4口接收傳感器的信號(hào)。主要編寫(xiě)兩個(gè)定時(shí)中斷效勞程序TO、T1,讀取記數(shù)值的三個(gè)字節(jié),并再次清0記數(shù)初值以便下次的記數(shù)和計(jì)算。后調(diào)用查表程序送顯示。4硬件電路設(shè)計(jì)硬件的功能由總體設(shè)計(jì)所規(guī)定,硬件設(shè)計(jì)的任務(wù)是根據(jù)總體設(shè)計(jì)要求,在選擇的機(jī)型的根底上,具體確定系統(tǒng)中所要使用的元器件,設(shè)計(jì)出系統(tǒng)的電路原理圖,必要時(shí)做一些部件實(shí)驗(yàn),以確定電路圖的正確性,以及工藝結(jié)構(gòu)的設(shè)計(jì)加工、印制板的制作、樣機(jī)的組裝等。整個(gè)單片機(jī)測(cè)量轉(zhuǎn)速系統(tǒng)為單片機(jī)控制模塊、光電傳感器模塊、發(fā)送模塊,各個(gè)模塊都承當(dāng)著各自的任務(wù)。設(shè)計(jì)單片機(jī)模塊,考慮到單片機(jī)本身的外圍電路較多,所以在單片機(jī)模塊方面需要極為小心。在整個(gè)電路設(shè)計(jì)時(shí)要考慮電平轉(zhuǎn)換電路,具體每一局部的設(shè)計(jì)將在以下章節(jié)中詳細(xì)分析。4.1單片機(jī)模塊根據(jù)系統(tǒng)功能要求以及單片機(jī)硬件電路設(shè)計(jì)思路〔如圖3.1〕對(duì)單片機(jī)模塊進(jìn)行設(shè)計(jì),要使單片機(jī)準(zhǔn)確的測(cè)量電機(jī)轉(zhuǎn)速,并且使測(cè)出的數(shù)據(jù)能顯示出來(lái),所以整個(gè)單片機(jī)局部分為傳感器電路、時(shí)鐘電路、復(fù)位電路、執(zhí)行元件以及顯示電路五個(gè)局部。4.1.1處理執(zhí)行元件單片機(jī)我們采用STC89C51(其引腳圖如圖4.1),相較于INTEL公司的8051它本身帶有一定的優(yōu)點(diǎn)。STC89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存貯器的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的STC89C51是一種高效微控制器,AT89C單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。圖4.1STC89C51引腳圖主要特性:·與MCS-51兼容·4K字節(jié)可編程閃爍存儲(chǔ)器壽命:1000寫(xiě)/擦循環(huán)·數(shù)據(jù)保存時(shí)間:10年·全靜態(tài)工作:0Hz-24Hz·三級(jí)程序存儲(chǔ)器鎖定·128*8位內(nèi)部RAM·32可編程I/O線·兩個(gè)16位定時(shí)器/計(jì)數(shù)器·5個(gè)中斷源·可編程串行通道·低功耗的閑置和掉電模式·片內(nèi)振蕩器和時(shí)鐘電路管腳說(shuō)明:(1)VCC:供電電壓;(2)GND:接地;(3)P0口:P0口為一個(gè)8位漏極開(kāi)路雙向I/O口,每腳可吸收8TTL門(mén)電流。當(dāng)P1口的管腳第一次寫(xiě)1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。(4)P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門(mén)電流。P1口管腳寫(xiě)入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收?!?〕P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門(mén)電流,當(dāng)P2口被寫(xiě)“1〞時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1〞時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫(xiě)時(shí),P2口輸出其特殊功能存放器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)?!?〕P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門(mén)電流。當(dāng)P3口寫(xiě)入“1〞后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流〔ILL〕這是由于上拉的緣故。P3口也可作為STC89C51的一些特殊功能口,如下表3.1所示:〔7〕RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間?!?〕ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。表3.1P3口的第二功能引腳第二功能信號(hào)名稱P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7RXDTXDINT0INT1T0T1WRRD串行數(shù)據(jù)接收串行數(shù)據(jù)發(fā)送外部中斷0請(qǐng)求外部中斷1請(qǐng)求定時(shí)器/計(jì)數(shù)器0計(jì)數(shù)輸入定時(shí)器/計(jì)數(shù)器1計(jì)數(shù)輸入外部RAM寫(xiě)選通外部RAM讀選通P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。此時(shí),ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效。
〔9〕/PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。
〔10〕/EA/VPP:當(dāng)/EA保持低電平時(shí),那么在此期間外部程序存儲(chǔ)器〔0000H-FFFFH〕,不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源〔VPP〕。(11〕XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。
(12)XTAL2:來(lái)自反向振蕩器的輸出。振蕩器特性:XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石英振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過(guò)一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無(wú)任何要求,但必須保證脈沖的上下電平要求的寬度。芯片擦除:整個(gè)PEROM陣列和三個(gè)鎖定位的電擦除可通過(guò)正確的控制信號(hào)組合,并保持ALE管腳處于低電平10ms來(lái)完成。在芯片擦操作中,代碼陣列全被寫(xiě)“1〞且在任何非空存儲(chǔ)字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。此外,STC89C51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個(gè)硬件復(fù)位為止。4.1.2時(shí)鐘電路時(shí)鐘電路是計(jì)算機(jī)的心臟,它控制著計(jì)算機(jī)的工作節(jié)奏。MCS-51單片機(jī)允許的時(shí)鐘頻率是因型號(hào)而異的典型值為12MHZMCS-51內(nèi)部都有一個(gè)反相放大器,XTAL1、XTAL2分別為反相放大器輸入和輸出端,外接定時(shí)反響元件以后就組成振蕩器,產(chǎn)生時(shí)鐘送至單片機(jī)內(nèi)部的各個(gè)部件。STC89C51是屬于CMOS8位微處理器,它的時(shí)鐘電路在結(jié)構(gòu)上有別于NMOS型的單片機(jī)。CMOS型單片機(jī)內(nèi)部〔如STC89C51〕有一個(gè)可控的負(fù)反響反相放大器,外接晶振〔或陶瓷諧振器〕和電容組成振蕩器,圖3.2為CMOS型單片機(jī)時(shí)鐘電路框圖。振蕩器工作受/PD端控制,由軟件置“1〞PD〔即特殊功能存放器PCON.1〕使/PD=0,振蕩器停止工作,整個(gè)單片機(jī)也就停止工作,以到達(dá)節(jié)電目的。清“0〞PD,使振蕩器工作產(chǎn)生時(shí)鐘,單片機(jī)便正常運(yùn)行。圖中SYS為晶振或陶瓷諧振器,振蕩器產(chǎn)生的時(shí)鐘頻率主要由SYS參數(shù)確定〔晶振上標(biāo)明的頻率〕。電容C1和C2的作用有兩個(gè):其一是使振蕩器起振,其二是對(duì)振蕩器的頻率f起微調(diào)作用〔C1、C2大,f變小〕,其典型值為30pF。圖4.2CMOS型單片機(jī)時(shí)鐘電路框圖4.1.3復(fù)位電路計(jì)算機(jī)在啟動(dòng)運(yùn)行時(shí)都需要復(fù)位,使中央處理器CPU和系統(tǒng)中的其它部件都處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開(kāi)始工作。MCS-51單片機(jī)有一個(gè)復(fù)位引腳RST,它是史密特觸發(fā)輸入(對(duì)于CHMOS單片機(jī),RST引腳的內(nèi)部有一個(gè)拉低電阻),當(dāng)振蕩器起振后該引腳上出現(xiàn)2個(gè)機(jī)器周期(即24個(gè)時(shí)鐘周期)以上的高電平,使器件復(fù)位,只要RST保持高電平,MCS-51保持復(fù)位狀態(tài)。此時(shí)ALE、PSEN、P0、P1、P2、P3口都輸出高電平。RST變?yōu)榈碗娖胶?,退出?fù)位,CPU從初始狀態(tài)開(kāi)始工作。單片機(jī)采用的復(fù)位方式是自動(dòng)復(fù)位方式。對(duì)于MOS(STC89C51)單片機(jī)只要接一個(gè)電容至VCC即可(見(jiàn)圖3.3)。在加電瞬間,電容通過(guò)電阻充電,就在RST端出現(xiàn)一定時(shí)間的高電平,只要高電平時(shí)間足夠長(zhǎng),就可以使MCS-51有效的復(fù)位。RST端在加電時(shí)應(yīng)保持的高電平時(shí)間包括VCC的上升時(shí)間和振蕩器起振的時(shí)間,Vss上升時(shí)間假設(shè)為10ms,振蕩器起振的時(shí)間和頻率有關(guān)。10MHZ時(shí)約為1ms,1MHZ時(shí)約為10ms,所以一般為了可靠的復(fù)位,RST在上電應(yīng)保持20ms以上的高電平。RC時(shí)間常數(shù)越大,上電RST端保持高電平的時(shí)間越長(zhǎng)。假設(shè)復(fù)位電路失效,加電后CPU從一個(gè)隨機(jī)的狀態(tài)開(kāi)始工作,系統(tǒng)就不能正常運(yùn)轉(zhuǎn)。圖4.3上電復(fù)位電路4.1.4顯示電路4.4LCD1602液晶屏〔1〕1602LCD主要技術(shù)參數(shù)顯示容量為16×2個(gè)字符;芯片工作電壓為4.5~5.5V;工作電流為2.0mA〔5.0V〕;模塊最正確工作電壓為5.0V;字符尺寸為2.95×4.35〔W×H〕mm?!?〕接口,信號(hào)說(shuō)明1602LCD采用標(biāo)準(zhǔn)的14引腳〔無(wú)背光〕或16引腳〔帶背光〕接口,各引腳接口說(shuō)明見(jiàn)表1602液晶接口引腳定義編號(hào)符號(hào)引腳說(shuō)明編號(hào)符號(hào)引腳說(shuō)明1VSS電源地9D2DateI/O2VDD電源正極10D3DateI/O3VL液晶顯示偏壓信號(hào)11D4DateI/O4RS數(shù)據(jù)/命令選擇端〔V/L〕12D5DateI/O5R/W讀/寫(xiě)選擇端〔H/L〕13D6DateI/O6E使能信號(hào)14D7DateI/O7D0DateI/O15BLA背光源正極8D1DateI/O16BLK背光源負(fù)極1、2組電源一組是模塊的電源一組是背光板的電源均為5V供電。2、VL是調(diào)節(jié)比照度的引腳調(diào)節(jié)此腳上的電壓可以改變黑白比照度3、RS是很多液晶上都有的引腳是命令/數(shù)據(jù)選擇引腳該腳電平為高時(shí)表示將進(jìn)行數(shù)據(jù)操作;為低時(shí)表示進(jìn)行命令操作。4、RW也是很多液晶上都有的引腳是讀寫(xiě)選擇端該腳電平為高是表示要對(duì)液晶進(jìn)行讀操作;為低時(shí)表示要進(jìn)行寫(xiě)操作。5、E同樣很多液晶模塊有此引腳通常在總線上信號(hào)穩(wěn)定后給一正脈沖通知把數(shù)據(jù)讀走,在此腳為高電平的時(shí)候總線不允許變化。6、D0—D78位雙向并行總線,用來(lái)傳送命令和數(shù)據(jù)。7、BLA是背光源正極,BLK是背光源負(fù)極?!?〕控制器接口說(shuō)明根本操作時(shí)序見(jiàn)表根本操作時(shí)序讀狀態(tài)輸入RS=L,R/W=H,E=H輸出D0~D7=狀態(tài)字寫(xiě)指令輸入RS=L,R/W=L,D0~D7=指令碼,E=高脈沖輸出無(wú)讀數(shù)據(jù)輸入RS=H,R/W=H,E=H輸出D0~D7=數(shù)據(jù)寫(xiě)數(shù)據(jù)輸入RS=H,R/W=L,D0~D7=數(shù)據(jù),E=高脈沖輸出無(wú)對(duì)此液晶操作主要有以下幾種方法。1寫(xiě)命令〔包括但不限于初始化、調(diào)節(jié)顯示位置、去除顯示〕2寫(xiě)數(shù)據(jù)(把一個(gè)字符的ASC碼寫(xiě)入液晶使其顯示)3讀忙信號(hào)〔液晶乃低速設(shè)備,每次操作前應(yīng)該測(cè)試忙信號(hào),確定其不忙時(shí)再操作〕〔4〕1602LCD的指令碼〔命令碼〕此液晶上電的時(shí)候需要初始化典型的指令碼是38H,也就是上電的時(shí)候需要調(diào)用voidwrite_cmd(unsignedcharcommand)這個(gè)函數(shù)寫(xiě)指令碼,用法是write_cmd(0x38);執(zhí)行完這個(gè)函數(shù)可以把液晶初始化成16x2顯示5x7的點(diǎn)陣8位總線接口。以下指令碼用法相同。此液晶支持的指令碼有
指令碼功能00111000設(shè)置16×2顯示,5×7點(diǎn)陳,8位數(shù)據(jù)接口解釋:就是0x38的命令
指令碼功能00001DCBD=1開(kāi)顯示;D=0關(guān)顯示C=1顯示光標(biāo);C=0不顯示光標(biāo)B=1光標(biāo)閃爍;B=0光標(biāo)不顯示000001NSN=1當(dāng)讀或?qū)懸粋€(gè)字符后地址指針加一,且光標(biāo)加一N=0當(dāng)讀或?qū)懸粋€(gè)字符后地址指針減一,且光標(biāo)減一S=1當(dāng)寫(xiě)一個(gè)字符,整屏顯示左移〔N=1〕
或右移〔N=0〕,以得到光標(biāo)不移動(dòng)而屏幕移動(dòng)的效果。S=1當(dāng)寫(xiě)一個(gè)字符,整屏顯示不移動(dòng)解釋:第一行指令主要能完成的功能是控制液晶顯示否,光標(biāo)顯示否,光標(biāo)閃爍否?共有以下8種指令0000100008H關(guān)液晶顯示光標(biāo)不閃爍不顯示光標(biāo)位置0000100109H關(guān)液晶顯示光標(biāo)不閃爍顯示光標(biāo)位置000010100AH關(guān)液晶顯示光標(biāo)不閃爍不顯示光標(biāo)位置000010110BH關(guān)液晶顯示光標(biāo)不閃爍顯示光標(biāo)位置000011000CH開(kāi)液晶顯示光標(biāo)不閃爍不顯示光標(biāo)位置000011010DH開(kāi)液晶顯示光標(biāo)不閃爍顯示光標(biāo)位置000011100EH開(kāi)液晶顯示光標(biāo)不閃爍不顯示光標(biāo)位置000011110FH開(kāi)液晶顯示光標(biāo)不閃爍顯示光標(biāo)位置解釋:第二行指令主要能完成的功能是寫(xiě)完字符光標(biāo)或屏幕移動(dòng)方向指令碼功能80H+地址碼〔0-27H,40H-67H〕設(shè)置數(shù)據(jù)地址指針解釋:用該指令碼可以把光標(biāo)移動(dòng)到想要的位置這是虛擬的液晶顯示圖表示2行16列顯示方框中的數(shù)字表示當(dāng)前位置的指針
80H81H82H83H84H85H86H87H88H89H8AH8BH8CH8DH8EH8FH
C0HC1HC2HC3HC4HC5HC6HC7HC8HC9HCAHCBHCCHCDHCEHCFH例如:只要調(diào)用write_cmd(0x82);函數(shù)就能把光標(biāo)挪到第1行第3列的位置
指令碼功能01H顯示清屏:1.數(shù)據(jù)指針清零
2.所有顯示清零02H顯示回車(chē):1數(shù)據(jù)指針清零5軟件設(shè)計(jì)本章重點(diǎn)闡述測(cè)量轉(zhuǎn)速的匯編語(yǔ)言。以及軟件設(shè)計(jì)的過(guò)程。軟件需要解決的是單片機(jī)中斷效勞程序的設(shè)計(jì)、計(jì)算程序的設(shè)計(jì)、顯示局部的程序設(shè)計(jì)以及在我們這里非重點(diǎn)介紹的通信程序設(shè)計(jì)。5.1單片機(jī)轉(zhuǎn)速程序設(shè)計(jì)思路及過(guò)程單片機(jī)測(cè)量轉(zhuǎn)速可以分為假設(shè)干模塊,然后在主程序中調(diào)用各個(gè)模塊,流程圖如圖5.1所示。開(kāi)始開(kāi)始初始化計(jì)算程序數(shù)值轉(zhuǎn)換字符調(diào)用顯示程序返回圖5.1主程序流程圖5.1.1單片機(jī)程序設(shè)計(jì)思路計(jì)算轉(zhuǎn)速公式:n=N/MTc(r/min)n轉(zhuǎn)速、單位:轉(zhuǎn)/分鐘N采樣時(shí)間內(nèi)所計(jì)脈沖個(gè)數(shù)Tc采樣時(shí)間、單位:分鐘M每旋轉(zhuǎn)一周所產(chǎn)生的脈沖數(shù)〔通常指測(cè)速碼盤(pán)的齒數(shù)〕如果M=60,那么一秒鐘內(nèi)產(chǎn)生的脈沖個(gè)數(shù)N就是轉(zhuǎn)速n,即:n==N通常M為60其中,N是內(nèi)部定時(shí)器的計(jì)數(shù)值,為三字節(jié),分別由TH0,TL0,VTT構(gòu)成;Tc為時(shí)基,由于采用11.0592M的晶振,所以Tc不在是1um,而是12M/11.0592M約為1.08um,帶入上面公式,即可得到轉(zhuǎn)速的精確計(jì)算公式:N=60*11059200/12N=55296000/N再將55296000化為二進(jìn)制存入單片機(jī)的內(nèi)存單元。下面我們將介紹除數(shù)是如何獲得的:?jiǎn)纹瑱C(jī)的轉(zhuǎn)速測(cè)量完成,定時(shí)器T0作為內(nèi)部定時(shí)器,外部中斷來(lái)的時(shí)候讀取TH0,TL0,并同時(shí)清零TH0、TL0,使定時(shí)器再次循環(huán)計(jì)內(nèi)部脈沖。此外,對(duì)于低速情況下,我們還要設(shè)定一個(gè)軟件計(jì)數(shù)器VTT,當(dāng)外部中斷還沒(méi)來(lái)而內(nèi)部定時(shí)器已經(jīng)溢出,產(chǎn)生定時(shí)器0中斷時(shí),增加VTT,作為三字節(jié)中的高字節(jié)。三字節(jié)組成除數(shù),上面的常數(shù)為四字節(jié),所以計(jì)算程序?qū)嶋H上就是調(diào)用一個(gè)四字節(jié)除三字節(jié)商為兩字節(jié)〔最高轉(zhuǎn)速6000r/min足夠〕的程序。為液晶屏顯示出來(lái),需將二進(jìn)制轉(zhuǎn)換為十進(jìn)制,在將十進(jìn)制轉(zhuǎn)換為十六進(jìn)制,才能調(diào)用查表程序,最后送顯示。5.1.2單片機(jī)轉(zhuǎn)速計(jì)算程序由于本次設(shè)計(jì)的系統(tǒng)要實(shí)現(xiàn)的功能是將光電傳感器的信號(hào)送到單片機(jī)的外部中斷口,再對(duì)周期方波進(jìn)行內(nèi)部計(jì)數(shù),調(diào)用計(jì)算程序把轉(zhuǎn)速測(cè)出來(lái)??梢哉f(shuō)是核心局部,流程圖如圖4.2所示:開(kāi)始開(kāi)始被除數(shù)初始化被除數(shù)初始化讀取定時(shí)值讀取定時(shí)值調(diào)用除法程序調(diào)用除法程序返回返回圖5.2計(jì)算程序流程圖計(jì)算程序中又再次調(diào)用了除法程序,這里的除法為四字節(jié)除三字節(jié)商為兩字節(jié),除法的程序的編程思想可以和手工計(jì)算的除法相似,比擬減法的思想,流程圖如圖5.3所示具體程序見(jiàn)附錄。5.2程序設(shè)計(jì)根據(jù)以上設(shè)計(jì)思路和各個(gè)模塊的流程圖即可編寫(xiě)出本次課程設(shè)計(jì)的程序,注意其中各個(gè)模塊間的參數(shù)傳遞以及堆棧指針等問(wèn)題,程序設(shè)計(jì)的任務(wù)即可完成,寫(xiě)出初始的程序,再進(jìn)行上機(jī)調(diào)試,這些我們將具體在下章中加以詳細(xì)表達(dá)。開(kāi)始開(kāi)始電機(jī)轉(zhuǎn)速是否在設(shè)定轉(zhuǎn)速范圍內(nèi)給電機(jī)的轉(zhuǎn)速賦初值控制PWM計(jì)算速度標(biāo)志是否為1計(jì)算速度電機(jī)轉(zhuǎn)速是否在設(shè)定轉(zhuǎn)速范圍內(nèi)給電機(jī)的轉(zhuǎn)速賦初值控制PWM計(jì)算速度標(biāo)志是否為1計(jì)算速度是否T0繼續(xù)計(jì)數(shù)否是是調(diào)用顯示圖5.3顯示程序流程圖5.3C語(yǔ)言程序#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintsbitinput=p3^2;sbitE=p2^7;//1602使能引腳sbitRW=p2^6;//1602讀寫(xiě)引腳sbitRS=P2^5;//1602數(shù)據(jù)/命令選擇引腳sbitkey1=p3^4;sbitpwm=p1^0;unsignedcharcycle;//定義周期該數(shù)字X基準(zhǔn)定時(shí)時(shí)間如果是10那么周期是10×0.1msunsignedcharpwm_on;//定義高電平時(shí)間ucharcount=0;intcount_2=0;intsudu=0;/*名稱:delay〔〕*功能:延時(shí),延時(shí)時(shí)間為10ms*del*輸入:del*輸出:無(wú)/voiddelay〔〕{inti,j;for(i=0;i<=100;i++)for(j=0;j<=20;j++);}/*名稱:enable〔uchardel〕*功能:1602命令函數(shù)*輸入:輸入的命令值*輸出:無(wú)/voidenable〔uchardel〕{P0=del;RS=0;RW=0;E=0;delay();E=1;delay();}/*名稱:write(uchardel)*功能:1602寫(xiě)數(shù)據(jù)函數(shù)*輸入:需要寫(xiě)入1602的數(shù)據(jù)*輸出:無(wú)/voidwrote〔uchardel〕{P0=del;RS=1;RW=0;E=0;delay();E=1;delay();}/*名稱:L1602_init()*功能:1602初始化*輸入:無(wú)*輸出:無(wú)/voidL1602_init(void){enable(0x01);enable(0x38);enable(0x0c);enable(0x06);enable(0xd0);}/*名稱:L1602_char〔ucharhang,ucharlie,charsign〕*功能:改變液晶中某位的值,如果要讓第一行,第五個(gè)字符顯示"b",調(diào)用該函數(shù)如下L1602_char(1,5,‘b’)*輸入:行,列,需要輸入1602的數(shù)據(jù)*輸出:無(wú)/voidL1602_char(ucharhang,ucharlie,charsign){uchara;if(hang==1)a=0x80;if(hang==2)a=oxc0;a=a+lie-1;enable(a);write(sign);}/*名稱:1602_string(ucharhang,ucharlie,uchar*p)*功能:改變液晶屏中某位的值,如果要讓第一行,第五個(gè)字符開(kāi)始顯示"abcdef",調(diào)用該函數(shù)如下L1602-string(1,5,"abcdef;")*輸入:行,列,需要輸入1602的數(shù)據(jù)*輸出:無(wú)/voidL1602-string(ucharhang,ucharlie,uchar*p){uchara;if(hang==1)a=0x80;if(hang==2)a=0xc0;a=a+lie-1enable(a);while(1){if(*p=='\0')break;write(*p);p++;}}/*名稱:outside-Init()*功能:外部中斷0的初始化*輸入:無(wú)*輸出:無(wú)/\voidoutside-Init(void){EX0=1;//開(kāi)外部中斷0IT0=1;//負(fù)邊沿觸發(fā)EA=1;//開(kāi)總中斷}/*名稱:Outside-Init()*功能:外部中斷0的中斷處理*輸入:無(wú)*輸出:無(wú)/voidOutside-Init(void)interrupt0{EX0=0;if(input==0)//對(duì)按鍵進(jìn)行抗干擾處理{count++;//TR0=1;}EX0=1;}/*名稱:main〔〕*功能:外部中斷實(shí)驗(yàn)主程序*輸入:無(wú)*輸出:無(wú)/Voidmain(void){inta,b,c,d;L1602-init();outside-init();TMOD|=0x01;//定時(shí)器設(shè)置1msin12McrystalTH0=(65536-1000)/256;TL0=(65536-1000)%256;//定時(shí)1msIE=0x83;//翻開(kāi)中斷TR0=1;CYCLE=10;//時(shí)間可以調(diào)整這個(gè)是10步調(diào)整周期100ms8位PWM就是256步PWM-ON=6;while(1){if(!KEY1){delay();if(!KEY1){PWM-ON++;if〔PWM-ON==9〕PWM-ON=0;}}a=sude/1000;b=(sudu-a*1000)/100;c=(sudu-a*1000-b*100)/10;d=sudu-a*1000-b*100-c*10;L1602-char(1,5,a+0x30);L1602-char(1,6,b+0x30);L1602-char(1,7,c+0x30);L1602-char(1,8,d+0x30);}}voidtime(void)interrupt1using1{staticunsignedcharcount-1;TH0=(65536-1000)/256;TL0=(65536-1000)%256;//定時(shí)1msif(count-1==PWM-ON){PWM=1;//燈滅}count-1++;if(count-1==CYCLE){count-1=0;count-2++;if(PWM-ON!=0)//如果左右時(shí)間是0保持原來(lái)狀態(tài)PWM=0;//燈亮}if〔count-2==10〕{count-2=0;sudu=Count;count=0;}}6系統(tǒng)調(diào)試電路調(diào)試是整個(gè)系統(tǒng)功能否實(shí)現(xiàn)的關(guān)鍵步驟,我們將整個(gè)調(diào)試過(guò)程分為三大局部:硬件調(diào)試、軟件調(diào)試和綜合調(diào)試。6.1硬件調(diào)試硬件調(diào)試主要是針對(duì)我的轉(zhuǎn)速測(cè)量系統(tǒng)的單片機(jī)硬件電路分別進(jìn)行調(diào)試。這一局部硬件調(diào)試主要分成兩大塊:上電前的調(diào)試和上電后的調(diào)試。上電前的調(diào)試:在上電前,我們必須確保電路中不存在斷路或短路情況,這一工作是整個(gè)調(diào)試工作的第一步,也是非常重要的一個(gè)步驟。在這局部調(diào)試中主要使用的工具是萬(wàn)用表,用來(lái)完成檢測(cè)電路中是否存在虛焊或者短路情況等。特別是數(shù)碼管的連接局部,proteus制作的原理圖與實(shí)際的封裝不一樣,需要我們注意連線。有些在電路板上沒(méi)法連接的線路,要用短接線把接好,對(duì)照著原理圖局部,一局部一局部地用萬(wàn)用表測(cè)量,注意焊點(diǎn)之間,確保焊點(diǎn)沒(méi)有短接在一起,同時(shí)注意焊點(diǎn)的美觀,確保沒(méi)有開(kāi)路以及短路的現(xiàn)象出現(xiàn)。上電后的調(diào)試:在確保硬件電路正常,無(wú)異常情況(斷路或短路)方可上電調(diào)試,上電調(diào)試的目的是檢驗(yàn)電路是否接錯(cuò),同時(shí)還要檢驗(yàn)原理是否正確,在本次課程設(shè)計(jì)中,上電調(diào)試主要是轉(zhuǎn)速測(cè)量系統(tǒng)的單片機(jī)控制局部、數(shù)碼管點(diǎn)亮局部、光電傳感器局部和直流電機(jī)轉(zhuǎn)動(dòng)局部的硬件調(diào)試。(1)單片機(jī)控制局部硬件調(diào)試:這一局部調(diào)試主要是檢查時(shí)鐘電路、復(fù)位電路是否接對(duì),單片機(jī)的電源以及地是否接好,以及其他的一些管腳的接法。看單片機(jī)通電后能否可以正常工作等這一系列問(wèn)題。(2)數(shù)碼管LED電路調(diào)試:由于數(shù)碼管采用的是動(dòng)態(tài)掃描的方式點(diǎn)亮的。數(shù)碼管的公共端〔COM〕接在三極管驅(qū)動(dòng)再接到單片機(jī)的P2口作為位選信號(hào),段選是接在P1口。電路上電檢查三極管是否接上電源和地讓其正常工作。在這一前提下,查看數(shù)碼管能否點(diǎn)亮。只需要接仿真機(jī)上編寫(xiě)一個(gè)小程序讓5位LED全亮,或者讓它們其中的某位點(diǎn)亮,也可以顯示不同的數(shù)字,根據(jù)要求給P1口,P2口分別賦值。即可檢查數(shù)碼管的硬件電路是否正確,即可判斷顯示驅(qū)動(dòng)電路整個(gè)完整,首先排除這里的故障。(3)光電管局部的電路調(diào)試:用萬(wàn)用表檢測(cè)光電管輸出端口的電壓,分別測(cè)光電管被遮蓋和未被遮蓋的情況。檢測(cè)這兩種的情況下,輸出的電壓是否存在較大的壓差,以排除光電傳感器的故障。(4)直流電機(jī)的測(cè)試:將直流電機(jī)直接加在電源的正負(fù)極,檢測(cè)電機(jī)是否正常轉(zhuǎn)動(dòng),排除電機(jī)故障。6.2軟件調(diào)試單片機(jī)程序調(diào)試思路:?jiǎn)纹瑱C(jī)局部調(diào)試工作的完成主要應(yīng)用keilc軟件來(lái)完成,這一局部工作首先將轉(zhuǎn)速測(cè)量系統(tǒng)中的各個(gè)模塊——計(jì)算程序中的除法程序、雙字節(jié)的二-十進(jìn)制數(shù)制轉(zhuǎn)換程序,壓縮BCD碼十進(jìn)制數(shù)轉(zhuǎn)換為非壓縮BCD碼的程序以及顯示局部程序調(diào)試好,不斷調(diào)試,不斷修改直到正確為止。keilc軟件是一種非常實(shí)用的多窗口編輯、調(diào)試軟件。keilc軟件全面支持匯編語(yǔ)言,C語(yǔ)言。調(diào)試主要方法和技巧:通常一個(gè)調(diào)試程序應(yīng)該具備至少四種性能:跟蹤、斷點(diǎn)、查看變量、更改數(shù)值。(1)跟蹤調(diào)試調(diào)試應(yīng)用程序所提供的重要性能也許就是跟蹤應(yīng)用程序。跟蹤應(yīng)用程序使用戶能夠在運(yùn)行應(yīng)用程序時(shí),看到PC指針在應(yīng)用源代碼程序中確實(shí)切位置,keilc提供以下方法對(duì)程序的執(zhí)行進(jìn)行跟蹤。跟蹤型單步執(zhí)行一條源語(yǔ)句程序。但是,如果調(diào)用一函數(shù),那么進(jìn)入函數(shù)中,再執(zhí)行函數(shù)的第一條源語(yǔ)句行前停止。通過(guò)型單步僅執(zhí)行下一條源語(yǔ)句程序,然后又停止。如果是調(diào)用一函數(shù),運(yùn)行完整個(gè)函數(shù)并停止在函數(shù)返回處。(2)斷點(diǎn)調(diào)試如果程序中某塊代碼實(shí)際運(yùn)行正常的情況下,仍用跟蹤調(diào)試方法,將大大浪費(fèi)時(shí)間,而且很枯燥,因此調(diào)試中第二個(gè)重要工具是在源代碼中預(yù)定處設(shè)置斷點(diǎn),大多數(shù)調(diào)試程序通過(guò)使用斷點(diǎn)中止程序執(zhí)行。注意:如果用戶調(diào)試高級(jí)語(yǔ)言,因?yàn)橄到y(tǒng)要占用2個(gè)斷點(diǎn),所以可設(shè)置的斷點(diǎn)數(shù)為最大斷點(diǎn)個(gè)數(shù)減2。keilc調(diào)試軟件還提供一次性斷點(diǎn):執(zhí)行到光標(biāo)所在行。如果用戶按熱鍵F4,調(diào)試程序繼續(xù)執(zhí)行程序代碼,直到它到達(dá)光標(biāo)行處或調(diào)試程序遇到另一個(gè)斷點(diǎn)。(3)查看變量顯然,通過(guò)一系列指令查看應(yīng)用程序,了解導(dǎo)致某一錯(cuò)誤的執(zhí)行也是一種非常有效的方法。keilc軟件提供了以下幾種方法對(duì)變量進(jìn)行查看。通過(guò)添加觀察項(xiàng)菜單可以將用戶希望觀察的變量添加到觀察窗口中,長(zhǎng)期進(jìn)行觀察。用戶程序在單步或斷點(diǎn)停下時(shí),將更新變量的取值。用戶可以直接移動(dòng)鼠標(biāo)到相應(yīng)的變量名上,點(diǎn)擊鼠標(biāo)左鍵,將出現(xiàn)一個(gè)提示窗口,顯示這個(gè)變量的當(dāng)前值。用戶還可以翻開(kāi)程序空間窗口、內(nèi)部數(shù)據(jù)窗口、外部數(shù)據(jù)窗口進(jìn)行數(shù)據(jù)塊觀察。(4)更改數(shù)值如果用戶在調(diào)試過(guò)程中了解到變量的內(nèi)容〔超值、未定義等〕會(huì)對(duì)程序性能產(chǎn)生影響或引起異常時(shí),立即更改變量的內(nèi)容是很有效的方法,以確保該值在正確范圍內(nèi)不會(huì)產(chǎn)生錯(cuò)誤。keilc軟件提供一系列更改變量數(shù)值的方法,以便用戶能檢查程序?qū)φ麄€(gè)變量值范圍的反響,而無(wú)需為設(shè)置每個(gè)值而重新加載調(diào)試。在更改對(duì)話框中用戶輸入要更改的取值,點(diǎn)擊確定按鈕。用戶可以在輸入框中輸入十六進(jìn)制或十進(jìn)制數(shù)據(jù)。程序調(diào)試過(guò)程:整個(gè)程序是一個(gè)主程序調(diào)用各個(gè)子程序?qū)崿F(xiàn)功能的過(guò)程,要使主程序和整個(gè)程序都能平穩(wěn)運(yùn)行,各個(gè)模塊的子程序的正確與平穩(wěn)運(yùn)行必不可少,所以在軟件調(diào)試的最初階段就是把各個(gè)子程序模塊進(jìn)行分別調(diào)試。首先、要對(duì)計(jì)算程序進(jìn)行調(diào)試,其中關(guān)鍵就是那個(gè)四字節(jié)除三字節(jié)的程序顯得尤為重要,在整個(gè)程序中,四字節(jié)的被除數(shù)是確定的常數(shù),而除數(shù)是測(cè)量記數(shù)的值,當(dāng)各個(gè)模塊調(diào)試時(shí),我們可以先對(duì)除數(shù)先賦不同的值,利用查看內(nèi)部數(shù)據(jù)的數(shù)據(jù)窗口觀察出計(jì)算出來(lái)的結(jié)果和用計(jì)算器算得的結(jié)果是否一致,可以舉例屢次數(shù)據(jù),確保程序正確,才能得到想得到的數(shù)據(jù)。其次、二進(jìn)制到十進(jìn)制的轉(zhuǎn)換,我們依然可以利用上述列舉的方法,屢次給出數(shù)據(jù),然后運(yùn)行程序,可以設(shè)置觀察變量,觀察出程序轉(zhuǎn)換的結(jié)果。最后、轉(zhuǎn)換為十六進(jìn)制以及最后的顯示程序,可以利用上述提到的各種方法,觀察30-34H內(nèi)部的數(shù)據(jù),緩沖數(shù)據(jù)的觀察檢查完畢后,調(diào)用顯示程序,觀察數(shù)液晶屏顯示的數(shù)據(jù)是否是內(nèi)存緩沖中需要顯示的數(shù)據(jù)。6.3綜合調(diào)試在硬件和軟件單獨(dú)調(diào)試成功后進(jìn)行軟硬件綜合調(diào)試,它可以分成以下幾個(gè)步驟:〔1〕使光電傳感器有方波信號(hào)輸出;〔2〕使單片機(jī)獲得中斷信號(hào),計(jì)算出轉(zhuǎn)速值并存儲(chǔ);〔3〕通過(guò)LED數(shù)碼管把測(cè)量的數(shù)據(jù)顯示出來(lái)?!?〕單片機(jī)輸出信號(hào)控制電機(jī)轉(zhuǎn)動(dòng)速度。6.4故障分析與解決方案故障出現(xiàn)情況:〔1〕通電后無(wú)任何反響;〔2〕光電傳感器不能產(chǎn)生有效的TTL電平;〔3〕電機(jī)不轉(zhuǎn);〔4〕電機(jī)兩端無(wú)電壓;〔5〕單片機(jī)顯示局部無(wú)法工作,顯示不穩(wěn)定。解決方案〔針對(duì)上述故障一一對(duì)應(yīng)的解決方案〕:①電路不工作。通過(guò)對(duì)電路的檢查發(fā)現(xiàn),復(fù)位電路中的正負(fù)極接反,導(dǎo)致復(fù)位端口一直保持高電平,單片機(jī)一直保持復(fù)位狀態(tài);解決方法:將正負(fù)極和電容的順序連接正確,故障排除。②光電管被遮擋和未被遮擋情況下輸出電壓幾乎不變。這時(shí)我們檢查了電路管腳連接情況。原因是實(shí)際接線時(shí)封裝的管腳與原理圖上不一致,導(dǎo)致管腳未能正確連接到電路。最后按照封裝的順序?qū)⒐怆姽苷_連接到電路板,故障排除。③電機(jī)不轉(zhuǎn)動(dòng)。檢查電機(jī)回路是否有電流、電機(jī)兩端是否有電壓差和單片機(jī)P3.2腳是否輸出高
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年小學(xué)衛(wèi)生管理工作計(jì)劃范例(三篇)
- 2024年小學(xué)班級(jí)衛(wèi)生工作計(jì)劃模版(二篇)
- 2024年委托加工協(xié)議標(biāo)準(zhǔn)范本(二篇)
- 2024年單位員工勞動(dòng)合同范本(四篇)
- 2024年賣(mài)場(chǎng)經(jīng)營(yíng)管理制度模版(二篇)
- 2024年學(xué)校結(jié)核病防治工作計(jì)劃范例(二篇)
- 2024年工程進(jìn)度管理制度范例(二篇)
- 2024年幼兒園中班工作計(jì)劃(四篇)
- 【《淺談?dòng)變簣@開(kāi)展幼小銜接工作的策略》6400字(論文)】
- 2024年安檢工崗位責(zé)任制例文(七篇)
- 如何搞定你的客戶-
- 寧夏特色美食文化介紹推介PPT圖文課件
- 學(xué)生對(duì)學(xué)校滿意度評(píng)價(jià)表
- 壓縮機(jī)輔助系統(tǒng)試運(yùn)
- 環(huán)磷酰胺原料藥相關(guān)項(xiàng)目投資計(jì)劃書(shū)
- 部編版語(yǔ)文四年級(jí)上冊(cè)第五單元【集體備課】
- 職高新思政-第五課:推動(dòng)高質(zhì)量發(fā)展
- 天然氣超聲波脫水技術(shù)
- 機(jī)械制造課程設(shè)計(jì)-《機(jī)械制造工藝學(xué)》課程設(shè)計(jì)
- 疲勞駕駛安全教育內(nèi)容
- 靜脈留置針護(hù)理ppt(完整版)
評(píng)論
0/150
提交評(píng)論