基于單片機(jī)的電機(jī)轉(zhuǎn)速測(cè)量系統(tǒng)設(shè)計(jì)(附圖及源程序)_第1頁
基于單片機(jī)的電機(jī)轉(zhuǎn)速測(cè)量系統(tǒng)設(shè)計(jì)(附圖及源程序)_第2頁
基于單片機(jī)的電機(jī)轉(zhuǎn)速測(cè)量系統(tǒng)設(shè)計(jì)(附圖及源程序)_第3頁
基于單片機(jī)的電機(jī)轉(zhuǎn)速測(cè)量系統(tǒng)設(shè)計(jì)(附圖及源程序)_第4頁
基于單片機(jī)的電機(jī)轉(zhuǎn)速測(cè)量系統(tǒng)設(shè)計(jì)(附圖及源程序)_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

摘要在工程實(shí)踐中,經(jīng)常會(huì)遇到各種需要測(cè)量轉(zhuǎn)速的場合,測(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è)量方法。本文便是運(yùn)用AT89C51單片機(jī)控制的智能化轉(zhuǎn)速測(cè)量儀。電機(jī)在運(yùn)行過程中,需要對(duì)其進(jìn)行監(jiān)控,轉(zhuǎn)速是一個(gè)必不可少的一個(gè)參數(shù)。本系統(tǒng)就是對(duì)電機(jī)轉(zhuǎn)速進(jìn)行測(cè)量,并可以和PC機(jī)進(jìn)行通信,顯示電機(jī)的轉(zhuǎn)速,并觀察電機(jī)運(yùn)行的基本狀況。本設(shè)計(jì)主要用AT89C51作為控制核心,由霍爾傳感器、LED數(shù)碼顯像管、HIN232CPE電平轉(zhuǎn)換、及RS232構(gòu)成。詳細(xì)介紹了單片機(jī)的測(cè)量轉(zhuǎn)速系統(tǒng)及PC機(jī)與單片機(jī)之間的串行通訊。充分發(fā)揮了單片機(jī)的性能。本文重點(diǎn)是測(cè)量速度并顯示在5位LED數(shù)碼管上。其優(yōu)點(diǎn)硬件是電路簡單,軟件功能完善,測(cè)量速度快、精度高、控制系統(tǒng)可靠,性價(jià)比較高等特點(diǎn)。關(guān)鍵字MSC51(單片機(jī));轉(zhuǎn)速;傳感器目錄摘要1ABSTRACT21序言12系統(tǒng)功能分析221系統(tǒng)功能概述222系統(tǒng)要求及主要內(nèi)容23系統(tǒng)總體設(shè)計(jì)431硬件電路設(shè)計(jì)思路432軟件設(shè)計(jì)思路44硬件電路設(shè)計(jì)641單片機(jī)模塊6411處理執(zhí)行元件6412時(shí)鐘電路10413復(fù)位電路11414顯示電路1242霍爾傳感器簡介15421霍爾器件概述15422霍爾傳感器的應(yīng)用16423AH41霍爾開關(guān)1743發(fā)送模塊185軟件設(shè)計(jì)2251單片機(jī)轉(zhuǎn)速程序設(shè)計(jì)思路及過程22511單片機(jī)程序設(shè)計(jì)思路22512單片機(jī)轉(zhuǎn)速計(jì)算程序23513二十進(jìn)制轉(zhuǎn)換程序2452程序設(shè)計(jì)276系統(tǒng)調(diào)試2961硬件調(diào)試2962軟件調(diào)試3063綜合調(diào)試3264故障分析與解決方案3365結(jié)論與經(jīng)驗(yàn)34參考文獻(xiàn)36致謝37附錄38附錄1電路原理圖38附錄2元器件清單391序言智能化轉(zhuǎn)速測(cè)量可以對(duì)電機(jī)的轉(zhuǎn)速進(jìn)行測(cè)量,電機(jī)在運(yùn)行的過程中,需要對(duì)其平穩(wěn)性進(jìn)行監(jiān)測(cè),適時(shí)對(duì)轉(zhuǎn)速的測(cè)量有效地可以反映電機(jī)的狀況。本系統(tǒng)主要由傳感器,單片機(jī)AT89C51構(gòu)成??梢詫?duì)大范圍轉(zhuǎn)速進(jìn)行測(cè)量,測(cè)量的轉(zhuǎn)速精度高,還可以和PC機(jī)時(shí)時(shí)通信,實(shí)現(xiàn)對(duì)電機(jī)轉(zhuǎn)速的測(cè)量。單片機(jī)的英文名稱是MICROCONTROLLERUNIT,縮寫為MCU,又稱為微控制器,它是一種面向控制的大規(guī)模集成電路芯片。它具有功能強(qiáng)、體積小、可靠性高、應(yīng)用簡單靈活,因而使用非常廣泛,有力地推動(dòng)各行業(yè)的技術(shù)發(fā)展和更新?lián)Q代。本文首先在第二章緒論介紹了此系統(tǒng)的功能、技術(shù)指標(biāo)以及主要內(nèi)容等;在第三章論述了總體設(shè)計(jì)過程,確定了技術(shù)指標(biāo)及器件的選擇;第四章著重描述了系統(tǒng)硬件電路設(shè)計(jì)、硬件設(shè)計(jì)框圖及所使用的各種芯片功能與特性;在第五章中重點(diǎn)剖析了軟件設(shè)計(jì)的過程;最后在第六章中具體論述單片機(jī)、電平轉(zhuǎn)換電路、通信的處理及調(diào)試。由于本人水平有限,加之時(shí)間倉促,論文中難免會(huì)有錯(cuò)誤和不足之外,不夠理想、許多方面還需要繼續(xù)完善和改進(jìn)。在這里懇請(qǐng)指導(dǎo)老師和各位專家老師批評(píng)指正。在此特別感謝我的指導(dǎo)老師郭順京老師的大力指導(dǎo)。2系統(tǒng)功能分析21系統(tǒng)功能概述功能系統(tǒng)主要實(shí)現(xiàn)功能是AT89C51單片機(jī)接收霍爾傳感器傳來的脈沖信號(hào),單片機(jī)根據(jù)外部中斷,以及內(nèi)部定時(shí)器進(jìn)行記數(shù)計(jì)算出電機(jī)轉(zhuǎn)速送到LED顯示,同時(shí)數(shù)據(jù)傳給PC機(jī),并在PC機(jī)屏幕上顯示出來。記錄各時(shí)段的轉(zhuǎn)速,畫出VT坐標(biāo)圖。組成及框圖本系統(tǒng)通信部分是單片機(jī)經(jīng)電平轉(zhuǎn)換電路HIN232CP之后,通過串口RS232發(fā)送數(shù)據(jù),由PC微機(jī)接收,微機(jī)部分用VISUALBASIC軟件編寫的界面作為PC機(jī)部分與單片機(jī)進(jìn)行串口之間通信。傳感器電路、轉(zhuǎn)速測(cè)量、LED顯示、電平轉(zhuǎn)換電路設(shè)計(jì)等將在以下章節(jié)作詳細(xì)地設(shè)計(jì)。圖21系統(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)用。傳感器單片機(jī)AT89C51電平轉(zhuǎn)換電路LED顯示驅(qū)動(dòng)電路送PC機(jī)界面22系統(tǒng)要求及主要內(nèi)容將霍爾傳感器產(chǎn)生的脈沖信號(hào)輸出入到單片機(jī)的外部中斷0口,單片機(jī)工作在內(nèi)部定時(shí)器工作方式0,對(duì)周期信號(hào)進(jìn)行內(nèi)部記數(shù),調(diào)用計(jì)算公式算出轉(zhuǎn)速,調(diào)用顯示程序顯示在LED上,同時(shí)通過串口向上位機(jī)發(fā)送轉(zhuǎn)速數(shù)據(jù)。主要內(nèi)容(1)單片機(jī)部分主要完成電機(jī)轉(zhuǎn)速的測(cè)量(2)LED部分主要是把轉(zhuǎn)速顯示出來,顯示范圍6036000R/MIN(3)發(fā)送部分主要是完成電平轉(zhuǎn)換,送RS232向PC發(fā)送數(shù)據(jù)。(4)PC機(jī)部分主要完成將數(shù)據(jù)顯示在界面并描繪出VT圖23系統(tǒng)技術(shù)指標(biāo)系統(tǒng)主要完成以下功能測(cè)量系統(tǒng)1設(shè)計(jì)并制作單片機(jī)的轉(zhuǎn)速測(cè)量的硬件系統(tǒng);2用匯編語言完成轉(zhuǎn)速測(cè)量的軟件系統(tǒng);3要求把轉(zhuǎn)速顯示在5位LED上,精度為01;4能向上位機(jī)發(fā)送數(shù)據(jù);5用9針RS232即可;通信部分1在微機(jī)部分采用VISUALBASIC編制RS232通信軟件;2通信軟件具有數(shù)據(jù)接受編輯框;3通信軟件要適時(shí)對(duì)數(shù)據(jù)的記錄,用時(shí)間曲線表示;根據(jù)系統(tǒng)要實(shí)現(xiàn)的功能以及要求,要實(shí)現(xiàn)單片機(jī)的轉(zhuǎn)速測(cè)量主要是各個(gè)模塊的設(shè)計(jì),定時(shí)器記數(shù)功能、以及LED驅(qū)動(dòng)、電平轉(zhuǎn)換及PC機(jī)之間的通信。單片機(jī)可通過編程控制外圍部件,能實(shí)現(xiàn)較高的自動(dòng)化程度。以它為系統(tǒng)核心的控制模塊可實(shí)現(xiàn)主從控制,完成預(yù)定的任務(wù)。3系統(tǒng)總體設(shè)計(jì)31硬件電路設(shè)計(jì)思路硬件設(shè)計(jì)的任務(wù)是根據(jù)總體設(shè)計(jì)要求,在選擇的機(jī)型的基礎(chǔ)上,具體確定系統(tǒng)中所要使用的元器件,設(shè)計(jì)出系統(tǒng)的原理框圖、電路原理圖。89C51單片機(jī)通過INT0輸入傳感器的脈沖信號(hào),P0口P2口接LED動(dòng)態(tài)顯示。另由于PC系列微機(jī)串行口為RS232C標(biāo)準(zhǔn)接口,與輸入、輸出均為TTL電平的89C51單片機(jī)在接口規(guī)范上不一致,因此TTL電平到RS232接口電平的轉(zhuǎn)換采用HIN232CP接口芯片,該芯片可以用單電壓(5V)實(shí)現(xiàn)RS232接口邏輯“1”(3V15V)和邏輯“0”(3V15V)的電平轉(zhuǎn)換。轉(zhuǎn)速測(cè)量部分的硬件設(shè)計(jì)思路本次設(shè)計(jì)單片機(jī)部分的硬件框圖如圖21所示。圖31單片機(jī)部分硬件框圖具體詳細(xì)的敘述將在下面的章節(jié)中逐一介紹。32軟件設(shè)計(jì)思路軟件需要解決的是定時(shí)器0的記數(shù)和外部中斷0的設(shè)定、由于測(cè)量復(fù)位電路CPU執(zhí)行單元顯示電路時(shí)鐘電路發(fā)送電路的轉(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)用查表程序送到顯示。PC機(jī)串口和單片機(jī)串行口的工作方式,包括串行口的通訊速率、奇偶校驗(yàn)位、停止位等均由通信部分的軟件部分實(shí)現(xiàn)。軟件工作流程霍爾傳感器利用磁電效應(yīng)產(chǎn)生一周期脈沖向單片機(jī)的外部中斷0(P32)口發(fā)送一個(gè)中斷信號(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)用查表顯示程序,顯示在LED上。(同時(shí)調(diào)用傳送程序向上位機(jī)送數(shù)據(jù),這里不是本文重點(diǎn))轉(zhuǎn)速部分軟件設(shè)計(jì)思路AT89C51單片機(jī)的P32口接收傳感器的信號(hào)。主要編寫一個(gè)外部中斷服務(wù)程序INT_0,讀取記數(shù)值的三個(gè)字節(jié),并再次清0記數(shù)初值以便下次的記數(shù)和計(jì)算。調(diào)用兩字節(jié)二進(jìn)制三字節(jié)十進(jìn)制(BCD)轉(zhuǎn)換子程序BCD,再調(diào)用十進(jìn)制轉(zhuǎn)換成非壓縮BCD程序CBCD、最后調(diào)用查表程序送顯示。為了和PC通信,系統(tǒng)要求單片機(jī)晶振110592MHZ。軟件的具體設(shè)計(jì)我們將在下面的章節(jié)中作詳細(xì)介紹。4硬件電路設(shè)計(jì)硬件的功能由總體設(shè)計(jì)所規(guī)定,硬件設(shè)計(jì)的任務(wù)是根據(jù)總體設(shè)計(jì)要求,在選擇的機(jī)型的基礎(chǔ)上,具體確定系統(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ān)著各自的任務(wù)。設(shè)計(jì)單片機(jī)模塊,考慮到單片機(jī)本身的外圍電路較多,所以在單片機(jī)模塊方面需要極為小心。在整個(gè)電路設(shè)計(jì)時(shí)要考慮電平轉(zhuǎn)換電路,具體每一部分的設(shè)計(jì)將在以下章節(jié)中詳細(xì)分析。41單片機(jī)模塊根據(jù)系統(tǒng)功能要求以及單片機(jī)硬件電路設(shè)計(jì)思路(如圖31)對(duì)單片機(jī)模塊進(jìn)行設(shè)計(jì),要使單片機(jī)準(zhǔn)確的測(cè)量電機(jī)轉(zhuǎn)速,并且使測(cè)出的數(shù)據(jù)能顯示出來,所以整個(gè)單片機(jī)部分分為傳感器電路、時(shí)鐘電路、復(fù)位電路、執(zhí)行元件以及顯示電路五個(gè)部分。411處理執(zhí)行元件單片機(jī)我們采用AT89C51其引腳圖如圖41,相較于INTEL公司的8051它本身帶有一定的優(yōu)點(diǎn)。AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存貯器(FPEROMFALSHPROGRAMMABLEANDERASABLEREADONLYMEMORY)的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。圖41AT89C51引腳圖主要特性與MCS51兼容4K字節(jié)可編程閃爍存儲(chǔ)器壽命1000寫/擦循環(huán)數(shù)據(jù)保留時(shí)間10年全靜態(tài)工作0HZ24HZ三級(jí)程序存儲(chǔ)器鎖定1288位內(nèi)部RAM32可編程I/O線兩個(gè)16位定時(shí)器/計(jì)數(shù)器5個(gè)中斷源可編程串行通道低功耗的閑置和掉電模式片內(nèi)振蕩器和時(shí)鐘電路管腳說明1VCC供電電壓;2GND接地;3P0口P0口為一個(gè)8位漏極開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。4P1口P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。5P2口P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“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)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。6P3口P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下表41所示7RST復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。8ALE/PROG當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。表41P3口的第二功能TAB41THESECONDFEATUREIP3引腳第二功能信號(hào)名稱P30P31P32P33P34P35P36P37RXDTXDINT0INT1T0T1WRRD串行數(shù)據(jù)接收串行數(shù)據(jù)發(fā)送外部中斷0請(qǐng)求外部中斷1請(qǐng)求定時(shí)器/計(jì)數(shù)器0計(jì)數(shù)輸入定時(shí)器/計(jì)數(shù)器1計(jì)數(shù)輸入外部RAM寫選通外部RAM讀選通P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。此時(shí),ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。9/PSEN外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。10/EA/VPP當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000HFFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。11XTAL1反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。12XTAL2來自反向振蕩器的輸出。振蕩器特性XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石英振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。芯片擦除整個(gè)PEROM陣列和三個(gè)鎖定位的電擦除可通過正確的控制信號(hào)組合,并保持ALE管腳處于低電平10MS來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲(chǔ)字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。此外,AT89C51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個(gè)硬件復(fù)位為止。412時(shí)鐘電路時(shí)鐘電路是計(jì)算機(jī)的心臟,它控制著計(jì)算機(jī)的工作節(jié)奏。MCS51單片機(jī)允許的時(shí)鐘頻率是因型號(hào)而異的典型值為12MHZMCS51內(nèi)部都有一個(gè)反相放大器,XTAL1、XTAL2分別為反相放大器輸入和輸出端,外接定時(shí)反饋元件以后就組成振蕩器,產(chǎn)生時(shí)鐘送至單片機(jī)內(nèi)部的各個(gè)部件。AT89C51是屬于CMOS8位微處理器,它的時(shí)鐘電路在結(jié)構(gòu)上有別于NMOS型的單片機(jī)。CMOS型單片機(jī)內(nèi)部(如AT89C51)有一個(gè)可控的負(fù)反饋反相放大器,外接晶振(或陶瓷諧振器)和電容組成振蕩器,圖42為CMOS型單片機(jī)時(shí)鐘電路框圖。振蕩器工作受/PD端控制,由軟件置“1”PD(即特殊功能寄存器PCON1)使/PD0,振蕩器停止工作,整個(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(xiàn)變?。?,其典型值為30PF。圖42CMOS型單片機(jī)時(shí)鐘電路框圖413復(fù)位電路計(jì)算機(jī)在啟動(dòng)運(yùn)行時(shí)都需要復(fù)位,使中央處理器CPU和系統(tǒng)中的其它部件都處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作。MCS51單片機(jī)有一個(gè)復(fù)位引腳RST,它是史密特觸發(fā)輸入對(duì)于CHMOS單片機(jī),RST引腳的內(nèi)部有一個(gè)拉低電阻,當(dāng)振蕩器起振后該引腳上出現(xiàn)2個(gè)機(jī)器周期即24個(gè)時(shí)鐘周期以上的高電平,使器件復(fù)位,只要RST保持高電平,MCS51保持復(fù)位狀態(tài)。此時(shí)ALE、PSEN、P0、P1、P2、P3口都輸出高電平。RST變?yōu)榈碗娖胶螅顺鰪?fù)位,CPU從初始狀態(tài)開始工作。單片機(jī)采用的復(fù)位方式是自動(dòng)復(fù)位方式。對(duì)于MOSAT89C51單片機(jī)只要接一個(gè)電容至VCC即可見圖43。在加電瞬間,電容通過電阻充電,就在RST端出現(xiàn)一定時(shí)間的高電平,只要高電平時(shí)間足夠長,就可以使MCS51有效的復(fù)位。RST端在加電時(shí)應(yīng)保持的高電平時(shí)間包括VCC的上升時(shí)間和振蕩器起振的時(shí)間,VSS上升時(shí)間若為10MS,振蕩器起振的時(shí)間和頻率有關(guān)。10MHZ時(shí)約為1MS,1MHZ時(shí)約為10MS,所以一般為了可靠的復(fù)位,RST在上電應(yīng)保持20MS以上的高電平。RC時(shí)間常數(shù)越大,上電RST端保持高電平的時(shí)間越長。若復(fù)位電路失效,加電后CPU從一個(gè)隨機(jī)的狀態(tài)開始工作,系統(tǒng)就不能正常運(yùn)轉(zhuǎn)。圖43上電復(fù)位電路414顯示電路顯示電路采用LED數(shù)碼管動(dòng)態(tài)顯示,LED(LIGHTEMITTINGDIODE)是一種外加電壓從而渡過電流并發(fā)出可見光的器件。LED是屬于電流控制器件,使用時(shí)必須加限流電阻。LED有單個(gè)LED和八段LED之分,也有共陰和共陽兩種。顯示器結(jié)構(gòu)常用的七段顯示器的結(jié)構(gòu)如圖44所示。發(fā)光二極管的陽極連在一起的稱為共陽極顯示器,陰極連在一起的稱為共陰極顯示器。1位顯示器由八個(gè)發(fā)光二極管組成,其中七個(gè)發(fā)光二極管AG控制七個(gè)筆畫(段)的亮或暗,另一個(gè)控制一個(gè)小數(shù)點(diǎn)的亮和暗,這種筆畫式的七段顯示器能顯示的字符較少,字符的開頭有些失真,但控制簡單,使用方便。此外,要畫出電路圖,首先還要搞清楚他的引腳圖的分布,在了解了正確的引腳圖后才能進(jìn)行正確的字型段碼編碼。才能顯示出正確的數(shù)字來,如圖45所示,為七段數(shù)碼管的管腳圖。圖44七段發(fā)光顯示器的結(jié)構(gòu)圖45七段發(fā)光顯示器管腳的結(jié)構(gòu)驅(qū)動(dòng)方式采用的數(shù)碼管驅(qū)動(dòng)為7407,它的全名為7407TTL集電極開路六正相高壓驅(qū)動(dòng)器,其結(jié)構(gòu)簡單,使用方便,圖46為7407的圖以及各個(gè)引腳的分布功能介紹。圖467407管腳的結(jié)構(gòu)顯示方式為了節(jié)省I/O口線,我們采用的動(dòng)態(tài)顯示方式。所謂動(dòng)態(tài)顯示,就一位一位地輪流點(diǎn)亮各位顯示器(掃描),對(duì)于每一位顯示器來說,每隔一段時(shí)間點(diǎn)亮一次。顯示器的亮度既與導(dǎo)通電流有關(guān),也與點(diǎn)亮?xí)r間和間隔時(shí)間的比例有關(guān)。調(diào)整電流和時(shí)間參數(shù),可實(shí)現(xiàn)亮度較高較穩(wěn)定的顯示。若顯示器的位數(shù)不大于8位,則控制顯示器公共極電位只需8位口(稱為掃描口),控制各位顯示器所顯示的字形也需一個(gè)8位口(稱為段數(shù)據(jù)口)。本次設(shè)計(jì)要求的轉(zhuǎn)速測(cè)量范圍60R/MIN36000R/MIN,所以只需要5位數(shù)碼管即可。5位共陰極顯示器和AT89C51的接口邏輯如圖47所示。AT89C51的P0口作為段數(shù)據(jù)口,接上拉電阻到顯示器的各個(gè)段;P2口作為掃描口,經(jīng)同相驅(qū)動(dòng)器7407接顯示器公共極。對(duì)于圖47中的5位顯示器,在AT89C51RAM存貯器中設(shè)置五個(gè)顯示緩沖器單元30H35H,分別存放5位顯示器的顯示數(shù)據(jù),AT89C51的P2口掃描輸出總是只在一位為低電平,即5位顯示器中僅有一位公共陰極為低電平,其它位為高電平,AT89C51的P0口相應(yīng)位(陰極為低)的顯示數(shù)據(jù)的段數(shù)據(jù),使該位顯示出一個(gè)字符,其它們?yōu)榘?,依次地改變P2口輸出為高的位,P0口輸出對(duì)應(yīng)的段數(shù)據(jù),5位顯示器就顯示出由緩沖器中顯示數(shù)據(jù)所確定的字符。圖47五位動(dòng)態(tài)顯示電路42霍爾傳感器簡介421霍爾器件概述霍爾元件是一種基于霍爾效應(yīng)的磁傳感器,已發(fā)展成一個(gè)品種多樣的磁傳感器產(chǎn)品族,并已得到廣泛應(yīng)用?;魻栐且环N磁傳感器。要他們可以檢測(cè)磁場及其變化,可以在各種與磁場有關(guān)的場合中?;魻柶骷曰魻栃?yīng)為其工作基礎(chǔ)?;魻柶陂g具有許多優(yōu)點(diǎn),他們的結(jié)構(gòu)牢固,體積小,重量輕,壽命長,安裝方便,功耗小,頻率高(可達(dá)1MHZ),耐震動(dòng),不怕灰塵、水汽及煙霧等污染或腐蝕?;魻柧€性器件的精度高、線性度好;霍爾開關(guān)器件無觸點(diǎn)、無磨損、輸出波形清晰、無抖動(dòng)、無回調(diào)、位置重復(fù)精度高(可達(dá)UM級(jí))。采用了各種補(bǔ)償措施的霍爾器件的工作溫度范圍廣,可達(dá)55150度。按照霍爾器件的功能可將他們分為霍爾線性器件和霍爾開關(guān)器件。前者輸出模擬量,后者輸出數(shù)字量。按被檢測(cè)的對(duì)象的性質(zhì)可將它們分為直接應(yīng)用和間接應(yīng)用。前者是直接檢測(cè)出被測(cè)對(duì)象本身的磁場或磁特性,后者是檢測(cè)被檢測(cè)對(duì)象上人為設(shè)置的磁場,用這個(gè)磁場作為被檢測(cè)信息的載體,通過它,將許多非電、非磁的物理量例如力、力矩、壓力、應(yīng)力、位置、位移、加速度、角度、角速度、轉(zhuǎn)速、轉(zhuǎn)數(shù)以及工作狀態(tài)發(fā)生變化的時(shí)間等,轉(zhuǎn)換成電量來進(jìn)行檢測(cè)和控制。集成霍爾傳感器是利用硅集成電路工藝將霍爾元件和測(cè)量線路集成在一起的一種傳感器。它取消了傳感器和測(cè)量電路之間的界限,實(shí)現(xiàn)了材料、元件、電路三位一體。集成霍爾傳感器與分立相比,由于減少了焊點(diǎn),因此顯著地提高了可靠性。此外,它具有體積小、重量輕、功耗低等優(yōu)點(diǎn),正越來越愛到眾的重視。集成霍爾傳感器的輸出是經(jīng)過處理的霍爾輸出信號(hào)。按照輸出信號(hào)的形式,可以分為開關(guān)型集成霍爾傳感器和線性集成霍爾傳感器兩種類型。開關(guān)型集成霍爾傳感器是把霍爾元件的輸出經(jīng)過處理后輸出一個(gè)高電平或低電平的數(shù)字信號(hào)?;魻栭_關(guān)電路又稱霍爾數(shù)字電路,由穩(wěn)壓器、霍爾片、差分放大器,斯密特觸發(fā)器和輸出級(jí)組成。422霍爾傳感器的應(yīng)用使用霍爾器件檢測(cè)磁場的方法極為簡單,將霍爾器件做成各種形式的探頭,放在被測(cè)磁場中,因霍爾器件只對(duì)垂直于霍爾片表面的磁感應(yīng)強(qiáng)度敏感,因而必須令磁力線和器件表面垂直,通電后即可由輸出電壓得到被測(cè)磁場的磁感應(yīng)強(qiáng)度。若不垂直,則應(yīng)求出其垂直分量來計(jì)算被測(cè)磁場的磁感應(yīng)強(qiáng)度值。而且,因霍爾元件的尺寸極小,可以進(jìn)行多點(diǎn)檢測(cè),由計(jì)算機(jī)進(jìn)行數(shù)據(jù)處理,可以得到場的分布狀態(tài),并可對(duì)狹縫,小孔中的磁場進(jìn)行檢測(cè)用磁場作為被傳感物體的運(yùn)動(dòng)和位置信息載體時(shí),一般采用永久磁鋼來產(chǎn)生工作磁場。例如,用一個(gè)5425(MM3)的釹鐵硼號(hào)磁鋼,就可在它的磁極表面上得到約2300高斯的磁感應(yīng)強(qiáng)度。在空氣隙中,磁感應(yīng)強(qiáng)度會(huì)隨距離增加而迅速下降。為保證霍爾器件,尤其是霍爾開關(guān)器件的可靠工作,在應(yīng)用中要考慮有效工作氣隙的長度。在計(jì)算總有效工作氣隙時(shí),應(yīng)從霍爾片表面算起。在封裝好的霍爾電路中,霍爾片的深度在產(chǎn)品手冊(cè)中會(huì)給出。因?yàn)榛魻柶骷枰ぷ麟娫?,在作運(yùn)動(dòng)或位置傳感時(shí),一般令磁體隨被檢測(cè)物體運(yùn)動(dòng),將霍爾器件固定在工作系統(tǒng)的適當(dāng)位置,用它去檢測(cè)工作磁場,再從檢測(cè)結(jié)果中提取被檢信息。423AH41霍爾開關(guān)AH41霍爾開關(guān)電路最適于響應(yīng)變化斜率陡峭的磁場并在磁通密度較弱的場合使用,適用于單極或多對(duì)磁環(huán)工作,它由反向電壓保護(hù)器、電壓調(diào)整器、霍爾電壓發(fā)生器、信號(hào)放大器、史密特觸發(fā)器和集電極開路的輸出級(jí)組成。工作溫度范圍為40150(存儲(chǔ)溫度為150),可適用于各種機(jī)及機(jī)電一體化領(lǐng)域。電參數(shù)參數(shù)符號(hào)測(cè)試條件量值單位最小典型最大電源電壓VCC4524V輸出低電平電壓VOUTIOUT20MABBOP200400MV輸出高電平電流IOFFVOUT24VB電源電流ICCVCC24V輸出端開路10MA輸出上升時(shí)間TRVCC12VRL11KCL20PF012S輸出下降時(shí)間TFVCC12VRL11KCL20PF018S產(chǎn)品特點(diǎn)電源電壓范圍寬可用市售的小磁環(huán)來驅(qū)動(dòng)無可動(dòng)部件、可靠性高尺寸小抗環(huán)境應(yīng)力可直接同雙極和MOS邏輯電路接口應(yīng)用高靈敏的無觸點(diǎn)開關(guān)直流無刷電機(jī)直流無刷風(fēng)機(jī)霍爾開關(guān)元件的電路圖圖48霍爾傳感器的電路圖43發(fā)送模塊根據(jù)系統(tǒng)功能要求,要使單片機(jī)測(cè)量的轉(zhuǎn)速能夠向上位機(jī)發(fā)送數(shù)據(jù),硬件電路中必須要考慮到單片機(jī)的發(fā)送部分,由于單片機(jī)通過串口發(fā)送出來的是TTL邏輯電平(0V和5V),而計(jì)算機(jī)RS232總線上輸入、輸出數(shù)據(jù)和控制信號(hào)為12V左右的電壓,單片機(jī)要和PC的上位機(jī)通信就必須是電平一致,所以發(fā)送部分關(guān)鍵的部分是電平轉(zhuǎn)換和串口發(fā)送,電平轉(zhuǎn)換可以用模擬器件進(jìn)行轉(zhuǎn)換,但是為了方便起見,本次設(shè)計(jì)采用的是集成芯片,一個(gè)芯片加上它的外圍電路即可完成電平的轉(zhuǎn)換的工作。結(jié)構(gòu)簡單、方便容易,精確度高。本次所采用的是HIN232CP,我們要對(duì)其外圍電路進(jìn)行設(shè)計(jì),下面我們將詳細(xì)的敘述。數(shù)據(jù)的傳輸當(dāng)電路工作于發(fā)送數(shù)據(jù)狀態(tài)時(shí),PC機(jī)的RTS端輸出高電平,經(jīng)IC1電平轉(zhuǎn)換打開IC3(74LS08)的與門B1,使PC機(jī)TXD端輸出的數(shù)據(jù)經(jīng)紅外發(fā)射電路發(fā)射出去;RTS信號(hào)IC1反相后作為CTS信號(hào)送入計(jì)算機(jī),同時(shí)還關(guān)閉與門B2;使計(jì)算機(jī)不接收其它數(shù)據(jù)信號(hào)。該必發(fā)器的數(shù)據(jù)傳輸速率最好設(shè)在9600B/S為宜,以確保數(shù)據(jù)傳輸?shù)目煽啃?。器件的介紹1、RS232CRS232C是美國電氣工業(yè)協(xié)會(huì)推廣使用的一種串行通信總路線標(biāo)準(zhǔn),是DCE數(shù)據(jù)通信設(shè)備,如微機(jī)和DTE數(shù)據(jù)終端設(shè)備,如CRT間傳輸串行數(shù)據(jù)的接口總線。RS232C最大傳輸距離為15M,最高傳輸速率約20KBPS,信號(hào)的邏輯0電平為3V15V。邏輯1電平為3V15V。電氣特性EIARS232C對(duì)電器特性、邏輯電平和各種信號(hào)線功能都作了規(guī)定;在TXD和RXD上邏輯1MARK3V15V邏輯0SPACE315V在RTS、CTS、DSR、DTR和DCD等控制線上信號(hào)有效(接通,ON狀態(tài),正電壓)3V15V信號(hào)無效(斷開,OFF狀態(tài),負(fù)電壓)3V15V2、RS232連接器DB9DB9是RS232信號(hào)線的連接器,其連接器的機(jī)械特性見圖49,表41所示RS232信號(hào)線名稱、符號(hào)以及對(duì)應(yīng)在DB9上的針腳號(hào)。圖49連接器的機(jī)械特性表41RS232信號(hào)線和DB9引腳關(guān)系TAB41RS232SIGNALLINESANDDB9PINRELATIONS符號(hào)名稱引腳DCDRXDTXDDTRGNDDSRRTSCTSRI接收信號(hào)載波檢測(cè)數(shù)據(jù)接收線數(shù)據(jù)發(fā)送線DTE裝置數(shù)據(jù)就緒公共地DCE裝置就緒請(qǐng)求發(fā)送清除發(fā)送振鈴指示123456789圖410電平轉(zhuǎn)換電路原理圖3、電平轉(zhuǎn)換器HIN232CPE由于RS232C總線上傳輸?shù)男盘?hào)邏輯電平與TTL邏輯電平差異很大,所以就存在這兩種電平的轉(zhuǎn)換問題,下面就介紹一下電平轉(zhuǎn)換器HIN232CPE。HIN232CPE能將RS232C電平轉(zhuǎn)換成TTL電平,也能將TTL電平轉(zhuǎn)換成RS232C電平,只需單5V供電,由內(nèi)部升高電路產(chǎn)生10V12V。內(nèi)部有兩個(gè)發(fā)送器TTL電平轉(zhuǎn)換為RS232C電平和兩個(gè)接收器RS232電平轉(zhuǎn)換為TTL電平。HIN232CPE芯片引腳排列和外部元件連接線路如圖411所示。圖411HIN232CPE電平轉(zhuǎn)換器及外接元件圖5軟件設(shè)計(jì)本章重點(diǎn)闡述測(cè)量轉(zhuǎn)速的匯編語言。以及軟件設(shè)計(jì)的過程。軟件需要解決的是單片機(jī)中斷服務(wù)程序的設(shè)計(jì)、計(jì)算程序的設(shè)計(jì)、顯示部分的程序設(shè)計(jì)以及在我們這里非重點(diǎn)介紹的通信程序設(shè)計(jì)。51單片機(jī)轉(zhuǎn)速程序設(shè)計(jì)思路及過程單片機(jī)測(cè)量轉(zhuǎn)速可以分為若干模塊,然后在主程序中調(diào)用各個(gè)模塊,流程圖如下圖所示。圖51主程序流程圖511單片機(jī)程序設(shè)計(jì)思路計(jì)算轉(zhuǎn)速公式N60/NTCR/MIN其中,N是內(nèi)部定時(shí)器的計(jì)數(shù)值,為三字節(jié),分別由TH0,TL0,VTT構(gòu)成;TC為時(shí)基,由于采用110592M的晶振,所以TC不在是1UM,而是12M/110592M約為108UM,帶入上面公式,即可得到轉(zhuǎn)速的精確計(jì)算公式N6011059200/12N55296000/N再將55296000化為二進(jìn)制存入單片機(jī)的內(nèi)存單元。下面我們將介紹除數(shù)是如何獲得的開始初始化計(jì)算程序BCD碼轉(zhuǎn)換非壓縮BCD轉(zhuǎn)換顯示程序返回單片機(jī)的轉(zhuǎn)速測(cè)量完成,定時(shí)器T0作為內(nèi)部定時(shí)器,外部中斷來的時(shí)候讀取TH0,TL0,并同時(shí)清零TH0、TL0,使定時(shí)器再次循環(huán)計(jì)內(nèi)部脈沖。此外,對(duì)于低速情況下,我們還要設(shè)定一個(gè)軟件計(jì)數(shù)器VTT,當(dāng)外部中斷還沒來而內(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)速36000R/MIN足夠)的程序。為數(shù)碼管能夠顯示出來,需將二進(jìn)制轉(zhuǎn)換為十進(jìn)制,在將十進(jìn)制轉(zhuǎn)換為非壓縮BCD碼后,才能調(diào)用查表程序,最后送顯示。512單片機(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è)出來??梢哉f是核心部分,流程圖如圖所示被除數(shù)初始化讀取定時(shí)值開始圖52計(jì)算程序流程圖計(jì)算程序中又再次調(diào)用了除法程序,這里的除法為四字節(jié)除三字節(jié)商為兩字節(jié),除法的程序的編程思想可以和手工計(jì)算的除法相似,比較減法的思想,流程圖如圖53所示具體程序見附錄。513二十進(jìn)制轉(zhuǎn)換程序計(jì)算程序計(jì)算出來的數(shù)據(jù)為二進(jìn)制,存到50H、51H單元中以便發(fā)送程序中調(diào)用傳送數(shù)據(jù)到計(jì)算機(jī),計(jì)算機(jī)可識(shí)別二進(jìn)制,然而,我們需要在LED上顯示,查表程序需要拆分的BCD碼,所以二進(jìn)制必須先轉(zhuǎn)換成BCD后才能拆分。這里介紹將(R2R3)中的16位二進(jìn)制數(shù)轉(zhuǎn)換為壓縮BCD碼十進(jìn)制整數(shù)送R4、R5、R6。調(diào)用除法程序返回除法移位次數(shù)計(jì)數(shù)器被除數(shù)左移1位上商1,減去除數(shù)返回YN圖53除法程序流程圖按照數(shù)制轉(zhuǎn)換方法可以畫出流程圖。被除數(shù)除數(shù)上商0計(jì)數(shù)器減1計(jì)數(shù)器0開始0R4、R5、R616R7C(R2R3)左移1位(移出位BI在C中)(R7)1R70圖54雙字節(jié)整數(shù)二翻十程序流程圖單片機(jī)顯示部分可以用來顯示計(jì)算出來的數(shù)據(jù)的。在程序設(shè)計(jì)中,在AT89C51RAM存貯器中的四個(gè)顯示緩沖器單元30H34H,分別存放著由計(jì)算出來的轉(zhuǎn)速的BCD碼進(jìn)行拆分后的非壓縮BCD碼數(shù)據(jù),AT89C51的P1口掃描輸出總是只有一位為低電平、其它位為高電平,AT89C51的P0口相應(yīng)位的顯示數(shù)據(jù)的段數(shù)據(jù),使該位顯示出一個(gè)字符,其它們?yōu)榘?,依次地改變P1口輸出為低高的位,P0口輸出對(duì)應(yīng)的段數(shù)據(jù),5位LED顯示器就顯示出由緩沖器中顯示數(shù)據(jù)所確定的字符。顯示部分程序分為兩部分十進(jìn)制BCD轉(zhuǎn)換成非壓縮BCD碼;查表程序顯示數(shù)據(jù)。雙字節(jié)整數(shù)拆分程序流程圖如圖552(R4R5R6)CR4R5R6(十進(jìn)制運(yùn)算)返回開始高字節(jié)R4送30H圖55雙字節(jié)整數(shù)拆分程序流程圖顯示程序流程圖如圖56所示52程序設(shè)計(jì)根據(jù)以上設(shè)計(jì)思路和各個(gè)模塊的流程圖即可編寫出本次畢業(yè)設(shè)計(jì)的程序,注意其中各個(gè)模塊間的參數(shù)傳遞以及堆棧指針等問題,程序設(shè)計(jì)的任務(wù)即可完成,寫出初始的程序,再進(jìn)行上機(jī)調(diào)試,這些我們將具體在下章中加以詳細(xì)敘述。R5與0F0H相與交換后送31HR5與0FH相與后送32HR6與0F0H相與交換后送33HR6與0FH相與后送34H返回開始30HR0,表首地址DPTR,(R1)0FEH(R0)賦值給AN圖56顯示程序流程圖6系統(tǒng)調(diào)試電路調(diào)試是整個(gè)系統(tǒng)功能否實(shí)現(xiàn)的關(guān)鍵步驟,我們將整個(gè)調(diào)試過程分為三大部分硬件調(diào)試、軟件調(diào)試和綜合調(diào)試。61硬件調(diào)試硬件調(diào)試主要是針對(duì)我的轉(zhuǎn)速測(cè)量系統(tǒng)的單片機(jī)硬件電路分別進(jìn)行調(diào)ADPTR賦值給P0(R1)P1,(R1)A,RLAINCR0,A(R1)(R1)0DFH結(jié)束試。這一部分硬件調(diào)試主要分成兩大塊上電前的調(diào)試和上電后的調(diào)試。上電前的調(diào)試在上電前,我們必須確保電路中不存在斷路或短路情況,這一工作是整個(gè)調(diào)試工作的第一步,也是非常重要的一個(gè)步驟。在這部分調(diào)試中主要使用的工具是萬用表,用來完成檢測(cè)電路中是否存在斷路或者短路情況等。特別是數(shù)碼管的連接部分,有PROTEL制作的PCB確保要和原理圖上的圖一致,有些在電路板上沒法連接的線路,要用短接線把接好,對(duì)照著原理圖部分,一部分一部分地用萬用表測(cè)量,注意焊點(diǎn)之間,確保焊點(diǎn)沒有短接在一起,同時(shí)注意焊點(diǎn)的美觀,確保沒有開路以及短路的現(xiàn)象出現(xiàn)。上電后的調(diào)試在確保硬件電路正常,無異常情況斷路或短路方可上電調(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)換和串口通信部分的硬件調(diào)試。1、單片機(jī)控制部分硬件調(diào)試這一部分調(diào)試主要是檢查時(shí)鐘電路、復(fù)位電路是否接對(duì),單片機(jī)的電源以及地是否接好,以及其他的一些管腳的接法??磫纹瑱C(jī)通電后能否可以正常工作等這一系列問題。2、數(shù)碼管LED電路調(diào)試由于數(shù)碼管采用的是動(dòng)態(tài)掃描的方式點(diǎn)亮的。數(shù)碼管的公共端(COM)接在7407驅(qū)動(dòng)再接到單片機(jī)的P2口作為位選信號(hào),字型是接在P0口。電路上電檢查7407是否接上電源和地讓其正常工作。在這一前提下,查看數(shù)碼管能否點(diǎn)亮。只需要接仿真機(jī)上編寫一個(gè)小程序讓5位LED全亮,或者讓它們其中的某位點(diǎn)亮,也可以顯示不同的數(shù)字,根據(jù)要求給P0口,P2口分別賦值。即可檢查數(shù)碼管的硬件電路是否正確,即可判斷顯示驅(qū)動(dòng)電路整個(gè)完整,首先排除這里的故障。3、發(fā)送部分硬件電路調(diào)試這一部分電路硬件調(diào)試主要完成任務(wù)是使得通過HIN232CPE電平轉(zhuǎn)換器轉(zhuǎn)換前后的電平關(guān)系??梢杂檬静ㄆ骱腿f用表檢查電平轉(zhuǎn)換前后的關(guān)系,這里不在贅述。62軟件調(diào)試單片機(jī)程序調(diào)試思路單片機(jī)部分調(diào)試工作的完成主要應(yīng)用LCA51軟件來完成,這一部分工作首先將轉(zhuǎn)速測(cè)量系統(tǒng)中的各個(gè)模塊計(jì)算程序中的除法程序、雙字節(jié)的二十進(jìn)制數(shù)制轉(zhuǎn)換程序,壓縮BCD碼十進(jìn)制數(shù)轉(zhuǎn)換為非壓縮BCD碼的程序以及顯示部分程序調(diào)試好,不斷調(diào)試,不斷修改直到正確為止。LCA51軟件是一種非常實(shí)用的多窗口編輯、調(diào)試軟件。LCA51軟件全面支持匯編語言,C51語言,PL/M51語言的編譯/連接、調(diào)試。軟件支持單文件方式和工程化管理兩種模式。用戶可自定義各種語言的關(guān)鍵詞軟件完全支持源語句級(jí)在線調(diào)試。高級(jí)語言還支持源文件調(diào)試和匯編語言指令行對(duì)照調(diào)試。用戶可同時(shí)打開多個(gè)窗體編輯、調(diào)試、變量觀察用戶可在線對(duì)原文件直接編輯、編譯、連接、加載和調(diào)試,軟件支持編譯錯(cuò)誤源文件定位。調(diào)試時(shí)用戶可動(dòng)態(tài)觀察、修改設(shè)定變量(包括CPU片內(nèi)寄存器、特殊寄存器及外部寄存器、內(nèi)存)的值。調(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)用源代碼程序中的確切位置,LCA51提供以下方法對(duì)程序的執(zhí)行進(jìn)行跟蹤。跟蹤型單步執(zhí)行一條源語句程序。但是,如果調(diào)用一函數(shù),則進(jìn)入函數(shù)中,再執(zhí)行函數(shù)的第一條源語句行前停止。通過型單步僅執(zhí)行下一條源語句程序,然后又停止。如果是調(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)試程序通過使用斷點(diǎn)中止程序執(zhí)行。注意如果用戶調(diào)試高級(jí)語言,因?yàn)橄到y(tǒng)要占用2個(gè)斷點(diǎn),所以可設(shè)置的斷點(diǎn)數(shù)為最大斷點(diǎn)個(gè)數(shù)減2。LCA51調(diào)試軟件還提供一次性斷點(diǎn)執(zhí)行到光標(biāo)所在行。如果用戶按熱鍵F4,調(diào)試程序繼續(xù)執(zhí)行程序代碼,直到它到達(dá)光標(biāo)行處或調(diào)試程序遇到另一個(gè)斷點(diǎn)。3查看變量顯然,通過一系列指令查看應(yīng)用程序,了解導(dǎo)致某一錯(cuò)誤的執(zhí)行也是一種非常有效的方法。LCA51軟件提供了以下幾種方法對(duì)變量進(jìn)行查看。通過添加觀察項(xiàng)菜單可以將用戶希望觀察的變量添加到觀察窗口中,長期進(jìn)行觀察。用戶程序在單步或斷點(diǎn)停下時(shí),將更新變量的取值。用戶可以直接移動(dòng)鼠標(biāo)到相應(yīng)的變量名上,點(diǎn)擊鼠標(biāo)左鍵,將出現(xiàn)一個(gè)提示窗口,顯示這個(gè)變量的當(dāng)前值。用戶還可以打開程序空間窗口、內(nèi)部數(shù)據(jù)窗口、外部數(shù)據(jù)窗口進(jìn)行數(shù)據(jù)塊觀察。4更改數(shù)值如果用戶在調(diào)試過程中了解到變量的內(nèi)容(超值、未定義等)會(huì)對(duì)程序性能產(chǎn)生影響或引起異常時(shí),立即更改變量的內(nèi)容是很有效的方法,以確保該值在正確范圍內(nèi)不會(huì)產(chǎn)生錯(cuò)誤。LCA51軟件提供一系列更改變量數(shù)值的方法,以便用戶能檢查程序?qū)φ麄€(gè)變量值范圍的反應(yīng),而無需為設(shè)置每個(gè)值而重新加載調(diào)試。在更改對(duì)話框中用戶輸入要更改的取值,點(diǎn)擊確定按鈕。用戶可以在輸入框中輸入十六進(jìn)制或十進(jìn)制數(shù)據(jù)。程序調(diào)試過程整個(gè)程序是一個(gè)主程序調(diào)用各個(gè)子程序?qū)崿F(xiàn)功能的過程,要使主程序和整個(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ì)算出來的結(jié)果和用計(jì)算器算得的結(jié)果是否一致,可以舉例多次數(shù)據(jù),確保程序正確,才能得到想得到的數(shù)據(jù)。其次、二進(jìn)制到十進(jìn)制的轉(zhuǎn)換,我們依然可以利用上述列舉的方法,多次給出數(shù)據(jù),然后運(yùn)行程序,可以設(shè)置觀察變量,觀察出程序轉(zhuǎn)換的結(jié)果。最后、拆分壓縮BCD碼十進(jìn)制以及最后的顯示程序,可以利用上述提到的各種方法,觀察3034H內(nèi)部的數(shù)據(jù),緩沖數(shù)據(jù)的觀察檢查完畢后,調(diào)用顯示程序,觀察數(shù)碼管上顯示的數(shù)據(jù)是否是內(nèi)存緩沖中需要顯示的數(shù)據(jù)。63綜合調(diào)試在硬件和軟件單獨(dú)調(diào)試成功后進(jìn)行軟硬件綜合調(diào)試,它可以分成以下幾個(gè)步驟1使霍爾傳感器有方波信號(hào)輸出;2使單片機(jī)獲得中斷信號(hào),計(jì)算出轉(zhuǎn)速值并存儲(chǔ);3通過LED數(shù)碼管把測(cè)量的數(shù)據(jù)顯示出來。4通過通信使得PC機(jī)與單片機(jī)之間的通信成功。64故障分析與解決方案故障出現(xiàn)情況1、霍爾傳感器不能產(chǎn)生有效的TTL電平,產(chǎn)生波形不穩(wěn)2、單片機(jī)的中斷服務(wù)程序不能執(zhí)行,不管是定時(shí)中斷還是外部中斷;3、中斷執(zhí)行低速情況也就是軟件記數(shù)功能不對(duì);4、測(cè)得的轉(zhuǎn)速不準(zhǔn)確,而且在波形頻率變化下顯示轉(zhuǎn)速卻不變5、單片機(jī)顯示部分無法工作,顯示不穩(wěn)定;6、信號(hào)發(fā)生器模擬轉(zhuǎn)速測(cè)量正確,接電機(jī)不穩(wěn)定7、通信時(shí)單片機(jī)接收顯示數(shù)據(jù)不正常,PC機(jī)接收亂碼;解決方案(針對(duì)上述故障一一對(duì)應(yīng)的解決方案)(1)硬件電路中霍爾傳感器應(yīng)工作在5V電壓,中間引腳接地,數(shù)據(jù)線接單片機(jī)的外部中斷0。在電機(jī)的轉(zhuǎn)軸上還要貼上一粒磁鋼,利用霍爾效應(yīng)產(chǎn)生方波。利用萬用表檢查時(shí)發(fā)現(xiàn)接5V和地的PCB上的線都?jí)牧?,重新用線接在電路板上。當(dāng)波形出來后,顯示的波形不穩(wěn),而且不夠理想,后來在信號(hào)線與地之間接了472的瓷片電容濾波。波形得到了大大改善;(2)首先檢查程序中的開頭,中斷入口地址,發(fā)現(xiàn)中斷定時(shí)0的地址寫成中斷定時(shí)1的入口地址了。外部中斷沒有執(zhí)行跟沒有中斷信號(hào)加入有關(guān)系。在前面還沒有解決的時(shí)候,我們暫時(shí)用信號(hào)發(fā)生器來代替外部中斷9的輸入,由于中斷執(zhí)行與否我們沒法看到,可以用設(shè)置中斷點(diǎn)的方法或者利用示波器,在中斷服務(wù)程序中重新編寫一些程序觀察單片機(jī)的某一輸出口的波形變換或者中斷程序中讓數(shù)碼管點(diǎn)亮等直觀可以看到的方法來檢查中斷的執(zhí)行情況;(3)中斷服務(wù)程序中程序設(shè)計(jì)有問題,要先讀去反映轉(zhuǎn)速的TH0,TL0,再去清0,軟件記數(shù)的高字節(jié)VTT應(yīng)該在定時(shí)中斷0中的服務(wù)程序中自增的同時(shí)清TH0,TL0,在外部中斷程序中要讀取三字節(jié)的記數(shù)值后同時(shí)清三個(gè)記數(shù)器,再從中斷返回;(4)在確定轉(zhuǎn)速計(jì)算程序的正確性的條件下出現(xiàn)了轉(zhuǎn)速不準(zhǔn)確,就是在調(diào)用轉(zhuǎn)換程序時(shí)出現(xiàn)了問題,觀察程序時(shí)發(fā)現(xiàn)調(diào)用子程序是傳送的參數(shù)不對(duì),在用寄存器R的時(shí)候出現(xiàn)了重復(fù)現(xiàn)象,導(dǎo)致轉(zhuǎn)換過程中出現(xiàn)了混亂。在波形頻率改變而轉(zhuǎn)速不改變由于在調(diào)用顯示程序時(shí)候在調(diào)用之后在顯示這里死循環(huán),不能適時(shí)進(jìn)行計(jì)算了。(5)由于顯示部分的程序是動(dòng)態(tài)顯示,是一位一位的顯示,在位選信號(hào)這里出現(xiàn)了問題,在左移的時(shí)候出現(xiàn)問題,以及顯示完一個(gè)字型后調(diào)用的延時(shí)時(shí)間不合理導(dǎo)致顯示不穩(wěn)定,出現(xiàn)閃爍現(xiàn)象,改變時(shí)間到1毫秒左右就差不多對(duì)了。(6)后來在接信號(hào)發(fā)生器時(shí)候要是接正弦波時(shí)候一樣發(fā)生不穩(wěn)定跳轉(zhuǎn)的現(xiàn)象,由此可以推測(cè),在傳感器輸入的信號(hào)不是理想的方波,而且電平值不夠大,所以在霍爾傳感器信號(hào)輸出端接濾波電容以及一個(gè)10K的上拉電阻就可以解決問題了。(7)由于單片機(jī)與PC機(jī)之間的設(shè)置以及電平轉(zhuǎn)換不一致具體參見通信部分的畢業(yè)設(shè)計(jì)。65結(jié)論與經(jīng)驗(yàn)結(jié)論通過各方面努力,本次畢業(yè)設(shè)計(jì)任務(wù)完成,系統(tǒng)各部分功能均已實(shí)現(xiàn),單片機(jī)能夠測(cè)量出電機(jī)的轉(zhuǎn)速并能顯示在LED數(shù)碼管上,并能向上位機(jī)發(fā)送數(shù)據(jù);測(cè)量范圍也是比較寬的60R/MIN36000R/MIN,精度也在01,都達(dá)到了比較理想的狀態(tài)。經(jīng)驗(yàn)1、由于本系統(tǒng)采用5V直流電源供電,霍爾傳感器要選用工作電壓的范圍包含5V電壓的可以省去再用一個(gè)電源的麻煩,單片機(jī)等都是工作在TTL電平的,霍爾傳感器輸出的波形應(yīng)為TTL電平,以便單片機(jī)能夠識(shí)別。2、數(shù)碼管要采用共陰數(shù)碼管,因?yàn)閿?shù)碼管的灌電流可以大些達(dá)到幾十毫安,但是拉電流比較小,采用共陽數(shù)碼管可能因?yàn)殡娏鬟^小而數(shù)碼管不能點(diǎn)亮數(shù)碼管,還有就是接在上拉電阻再接5V上,最好采用1K的排阻。3、在制作印制電路板的過程中,由于經(jīng)驗(yàn)不足,沒有考慮在高頻電路中平行線之間的干擾,導(dǎo)致當(dāng)電路上電工作時(shí)就發(fā)生串?dāng)_的現(xiàn)象,選擇的焊盤過小,布線是線的寬度不夠,稍微大點(diǎn)的電流,就可以把電路燒壞了,還有不穩(wěn)定,發(fā)生干擾等現(xiàn)象,使得連接PC機(jī)的電路工作不穩(wěn)定,在以后的設(shè)計(jì)過程中需要注意。參考文獻(xiàn)1何立民單片機(jī)應(yīng)用技術(shù)選編北京北京航空航天大學(xué)出版社,1997,102張有德單片微機(jī)原理、應(yīng)用與實(shí)驗(yàn)上海復(fù)旦大學(xué)出版社,1997,83李朝青單片機(jī)MAYBEBACKINTHEPAST,TOONESELFTHEPARANOIDWEIRDBELIEFDISILLUSIONMENT,THESEDAYS,MYMINDHASBEENVERYMESSY,INMYMINDCONSTANTLYALWAYSFEELONESELFSHOULDGOTODOSOMETHING,ORWRITESOMETHINGTWENTYYEARSOFLIFETRAJECTORYDEEPLYSHALLOW,SUDDENLYFEELSOMETHING,DOIT一字開頭的年齡已經(jīng)到了尾聲。或許是愧疚于自己似乎把轉(zhuǎn)瞬即逝的很多個(gè)不同的日子過成了同一天的樣子;或許是追溯過去,對(duì)自己那些近乎偏執(zhí)的怪異信念的醒悟,這些天以來,思緒一直很凌亂,在腦海中不斷糾纏。總覺得自己自己似乎應(yīng)該去做點(diǎn)什么,或者寫點(diǎn)什么。二十年的人生軌跡深深淺淺,突然就感覺到有些事情,非做不可了。THEENDOFOURLIFE,ANDCANMEETMANYTHINGSREALLYDO而窮盡我們的一生,又能遇到多少事情是真正地非做不可DURINGMYCHILDHOOD,THINKLUCKYMONEYANDNEWCLOTHESARENECESSARYFORNEWYEAR,BUTASTHEADVANCEOFTHEAGE,WILLBEMOREANDMOREFOUNDTHATTHOSETHINGSAREOPTIONALJUNIORHIGHSCHOOL,THOUGHTTOHAVEACRUSHONJUSTMEANSTHATTHEREALGROWTH,BUTOVERTHEPASTTHREEYEARSLATER,HISWRITINGOFALUMNIINPEACE,SUDDENLYFOUNDTHATISNTREALLYGROWUP,ITSEEMSISNOTSOIMPORTANTTHENINHIGHSCHOOL,THINKDONTWANTTOGIVEVENTTOOUTYOURINNERVOICECANBEINTHEHIGHSCHOOLCHILDRENOFTHEFEELINGSINAPERIOD,BUTWASEVENTUALLYINFARCTIONWHENGRADUATIONPARTYINTHETHROAT,LATERAGAINSTOODONTHEPITCHHEHASSWEATPROFUSELY,LOOKEDATHISTHROWNABASKETBALLHOOPS,SUDDENLYFOUNDHIMSELFHASALREADYCANTREMEMBERHISAPPEARANCE童年時(shí),覺得壓歲錢和新衣服是過年必備,但是隨著年齡的推進(jìn),會(huì)越來越發(fā)現(xiàn),那些東西根本就可有可無;初中時(shí),以為要有一場暗戀才意味著真正的成長,但三年過去后,自己心平氣和的寫同學(xué)錄的時(shí)候,突然就發(fā)現(xiàn)是不是真正的成長了,好像并沒有那么重要了;然后到了高中,覺得非要吐露出自己的心聲才能為高

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論