




已閱讀5頁,還剩42頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
摘 要在工程實(shí)踐中,經(jīng)常會遇到各種需要測量轉(zhuǎn)速的場合,測量轉(zhuǎn)速的方法分為模擬式和數(shù)字式兩種。模擬式采用測速發(fā)電機(jī)為檢測元件,得到的信號是模擬量。數(shù)字式通常采用光電編碼器,霍爾元件等為檢測元件,得到的信號是脈沖信號。隨著微型計算機(jī)的廣泛應(yīng)用,特別是高性能價格比的單片機(jī)的出現(xiàn),轉(zhuǎn)速測量普遍采用以單片機(jī)為核心的數(shù)字式測量方法。本文便是運(yùn)用at89c51單片機(jī)控制的智能化轉(zhuǎn)速測量儀。電機(jī)在運(yùn)行過程中,需要對其進(jìn)行監(jiān)控,轉(zhuǎn)速是一個必不可少的一個參數(shù)。本系統(tǒng)就是對電機(jī)轉(zhuǎn)速進(jìn)行測量,并可以和pc機(jī)進(jìn)行通信,顯示電機(jī)的轉(zhuǎn)速,并觀察電機(jī)運(yùn)行的基本狀況。本設(shè)計主要用at89c51作為控制核心,由霍爾傳感器、led數(shù)碼顯像管、hin232cpe電平轉(zhuǎn)換、及rs232構(gòu)成。詳細(xì)介紹了單片機(jī)的測量轉(zhuǎn)速系統(tǒng)及pc機(jī)與單片機(jī)之間的串行通訊。充分發(fā)揮了單片機(jī)的性能。本文重點(diǎn)是測量速度并顯示在5位led數(shù)碼管上。其優(yōu)點(diǎn)硬件是電路簡單,軟件功能完善,測量速度快、精度高、控制系統(tǒng)可靠,性價比較高等特點(diǎn)。關(guān)鍵字:msc-51(單片機(jī)); 轉(zhuǎn)速; 傳感器目 錄摘 要1abstract21 序 言12 系統(tǒng)功能分析22.1 系統(tǒng)功能概述22.2 系統(tǒng)要求及主要內(nèi)容23 系統(tǒng)總體設(shè)計43.1 硬件電路設(shè)計思路43.2 軟件設(shè)計思路44 硬件電路設(shè)計64.1 單片機(jī)模塊64.1.1 處理執(zhí)行元件64.1.2 時鐘電路104.1.3 復(fù)位電路114.1.4 顯示電路124.2 霍爾傳感器簡介154.2.1 霍爾器件概述154.2.2 霍爾傳感器的應(yīng)用164.2.3 ah41霍爾開關(guān)174.3 發(fā)送模塊185 軟件設(shè)計225.1 單片機(jī)轉(zhuǎn)速程序設(shè)計思路及過程225.1.1 單片機(jī)程序設(shè)計思路225.1.2 單片機(jī)轉(zhuǎn)速計算程序235.1.3 二-十進(jìn)制轉(zhuǎn)換程序245.2 程序設(shè)計276 系統(tǒng)調(diào)試296.1 硬件調(diào)試296.2 軟件調(diào)試306.3 綜合調(diào)試326.4 故障分析與解決方案336.5 結(jié)論與經(jīng)驗(yàn)34參考文獻(xiàn)36致 謝37附 錄38附錄1 電路原理圖38附錄2 元器件清單39441 序 言智能化轉(zhuǎn)速測量可以對電機(jī)的轉(zhuǎn)速進(jìn)行測量,電機(jī)在運(yùn)行的過程中,需要對其平穩(wěn)性進(jìn)行監(jiān)測,適時對轉(zhuǎn)速的測量有效地可以反映電機(jī)的狀況。本系統(tǒng)主要由傳感器,單片機(jī)at89c51構(gòu)成??梢詫Υ蠓秶D(zhuǎn)速進(jìn)行測量,測量的轉(zhuǎn)速精度高,還可以和pc機(jī)時時通信,實(shí)現(xiàn)對電機(jī)轉(zhuǎn)速的測量。單片機(jī)的英文名稱是micro controller unit,縮寫為mcu,又稱為微控制器,它是一種面向控制的大規(guī)模集成電路芯片。它具有功能強(qiáng)、體積小、可靠性高、應(yīng)用簡單靈活,因而使用非常廣泛,有力地推動各行業(yè)的技術(shù)發(fā)展和更新?lián)Q代。 本文首先在第二章緒論介紹了此系統(tǒng)的功能、技術(shù)指標(biāo)以及主要內(nèi)容等;在第三章論述了總體設(shè)計過程,確定了技術(shù)指標(biāo)及器件的選擇;第四章著重描述了系統(tǒng)硬件電路設(shè)計、硬件設(shè)計框圖及所使用的各種芯片功能與特性;在第五章中重點(diǎn)剖析了軟件設(shè)計的過程;最后在第六章中具體論述單片機(jī)、電平轉(zhuǎn)換電路、通信的處理及調(diào)試。由于本人水平有限,加之時間倉促,論文中難免會有錯誤和不足之外,不夠理想、許多方面還需要繼續(xù)完善和改進(jìn)。在這里懇請指導(dǎo)老師和各位專家老師批評指正。在此特別感謝我的指導(dǎo)老師郭順京老師的大力指導(dǎo)。2 系統(tǒng)功能分析2.1 系統(tǒng)功能概述功能:系統(tǒng)主要實(shí)現(xiàn)功能是:at89c51單片機(jī)接收霍爾傳感器傳來的脈沖信號,單片機(jī)根據(jù)外部中斷,以及內(nèi)部定時器進(jìn)行記數(shù)計算出電機(jī)轉(zhuǎn)速送到led顯示,同時數(shù)據(jù)傳給pc機(jī),并在pc機(jī)屏幕上顯示出來。記錄各時段的轉(zhuǎn)速,畫出v-t坐標(biāo)圖。組成及框圖:本系統(tǒng)通信部分是單片機(jī)經(jīng)電平轉(zhuǎn)換電路hin232cp之后,通過串口rs-232發(fā)送數(shù)據(jù),由pc微機(jī)接收,微機(jī)部分用visual basic軟件編寫的界面作為pc機(jī)部分與單片機(jī)進(jìn)行串口之間通信。傳感器電路、轉(zhuǎn)速測量、led顯示、電平轉(zhuǎn)換電路設(shè)計等將在以下章節(jié)作詳細(xì)地設(shè)計。傳感器電 平 轉(zhuǎn) 換電 路單 片 機(jī) at89c51 送pc機(jī)界面驅(qū)動電路led顯示 圖2-1 系統(tǒng)硬件電路應(yīng)用:從實(shí)用的角度看,評價一個系統(tǒng)實(shí)用價值的重要標(biāo)準(zhǔn),就是這個系統(tǒng)對社會生活和科技觀念有多大的貢獻(xiàn)。轉(zhuǎn)速測量系統(tǒng)具有大范圍、高精度等優(yōu)點(diǎn)、測量速度快,這種系統(tǒng)將會有良好的應(yīng)用。2.2 系統(tǒng)要求及主要內(nèi)容將霍爾傳感器產(chǎn)生的脈沖信號輸出入到單片機(jī)的外部中斷0口,單片機(jī)工作在內(nèi)部定時器工作方式0,對周期信號進(jìn)行內(nèi)部記數(shù),調(diào)用計算公式算出轉(zhuǎn)速,調(diào)用顯示程序顯示在led上,同時通過串口向上位機(jī)發(fā)送轉(zhuǎn)速數(shù)據(jù)。主要內(nèi)容:(1)單片機(jī)部分主要完成電機(jī)轉(zhuǎn)速的測量(2)led部分主要是把轉(zhuǎn)速顯示出來,顯示范圍60-36000r/min(3) 發(fā)送部分主要是完成電平轉(zhuǎn)換,送rs232向pc發(fā)送數(shù)據(jù)。(4) pc機(jī)部分主要完成將數(shù)據(jù)顯示在界面并描繪出v-t圖2.3 系統(tǒng)技術(shù)指標(biāo)系統(tǒng)主要完成以下功能:測量系統(tǒng):1.設(shè)計并制作單片機(jī)的轉(zhuǎn)速測量的硬件系統(tǒng);2.用匯編語言完成轉(zhuǎn)速測量的軟件系統(tǒng);3.要求把轉(zhuǎn)速顯示在5位led上,精度為0.1%;4.能向上位機(jī)發(fā)送數(shù)據(jù);5.用9針rs-232即可;通信部分:1.在微機(jī)部分采用visual basic編制rs232通信軟件;2.通信軟件具有數(shù)據(jù)接受編輯框;3.通信軟件要適時對數(shù)據(jù)的記錄,用時間曲線表示;根據(jù)系統(tǒng)要實(shí)現(xiàn)的功能以及要求,要實(shí)現(xiàn)單片機(jī)的轉(zhuǎn)速測量主要是各個模塊的設(shè)計,定時器記數(shù)功能、以及l(fā)ed驅(qū)動、電平轉(zhuǎn)換及pc機(jī)之間的通信。單片機(jī)可通過編程控制外圍部件,能實(shí)現(xiàn)較高的自動化程度。以它為系統(tǒng)核心的控制模塊可實(shí)現(xiàn)主從控制,完成預(yù)定的任務(wù)。3 系統(tǒng)總體設(shè)計3.1 硬件電路設(shè)計思路硬件設(shè)計的任務(wù)是根據(jù)總體設(shè)計要求,在選擇的機(jī)型的基礎(chǔ)上,具體確定系統(tǒng)中所要使用的元器件,設(shè)計出系統(tǒng)的原理框圖、電路原理圖。89c51單片機(jī)通過int0輸入傳感器的脈沖信號,p0口p2口接led動態(tài)顯示。另由于pc系列微機(jī)串行口為rs232c標(biāo)準(zhǔn)接口,與輸入、輸出均為ttl電平的89c51單片機(jī)在接口規(guī)范上不一致,因此ttl 電平到rs232接口電平的轉(zhuǎn)換采用hin232cp接口芯片,該芯片可以用單電壓(+5v)實(shí)現(xiàn)rs232接口邏輯“1”(-3v-15v)和邏輯“0”(+3v+15v)的電平轉(zhuǎn)換。轉(zhuǎn)速測量部分的硬件設(shè)計思路:本次設(shè)計單片機(jī)部分的硬件框圖如 圖21所示。cpu執(zhí)行單元顯示電路復(fù)位電路 發(fā)送電路時鐘電路 圖3-1 單片機(jī)部分硬件框圖具體詳細(xì)的敘述將在下面的章節(jié)中逐一介紹。3.2 軟件設(shè)計思路軟件需要解決的是定時器0的記數(shù)和外部中斷0的設(shè)定、由于測量的轉(zhuǎn)速范圍大,所以低速和高速都要考慮在內(nèi),關(guān)鍵在于一個四字節(jié)除三字節(jié)程序的實(shí)現(xiàn)。顯示部分、需要有一個二進(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(p3.2)口發(fā)送一個中斷信號,定時器工作在內(nèi)部定時,th0、tl0設(shè)定初值為0,作為除數(shù)的低兩字節(jié),利用軟件記數(shù)器、定時器0中斷的次數(shù)作為除數(shù)高字節(jié)。中斷完畢讀取內(nèi)部記數(shù)值作為除數(shù),調(diào)用除法程序計算轉(zhuǎn)速,再對二進(jìn)制數(shù)進(jìn)行一系列變換后調(diào)用查表顯示程序,顯示在led上。(同時調(diào)用傳送程序向上位機(jī)送數(shù)據(jù),這里不是本文重點(diǎn))轉(zhuǎn)速部分軟件設(shè)計思路: at89c51單片機(jī)的p3.2口接收傳感器的信號。主要編寫一個外部中斷服務(wù)程序int_0,讀取記數(shù)值的三個字節(jié),并再次清0記數(shù)初值以便下次的記數(shù)和計算。調(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ī)晶振11.0592mhz。軟件的具體設(shè)計我們將在下面的章節(jié)中作詳細(xì)介紹。4 硬件電路設(shè)計硬件的功能由總體設(shè)計所規(guī)定,硬件設(shè)計的任務(wù)是根據(jù)總體設(shè)計要求,在選擇的機(jī)型的基礎(chǔ)上,具體確定系統(tǒng)中所要使用的元器件,設(shè)計出系統(tǒng)的電路原理圖,必要時做一些部件實(shí)驗(yàn),以確定電路圖的正確性,以及工藝結(jié)構(gòu)的設(shè)計加工、印制板的制作、樣機(jī)的組裝等。整個單片機(jī)測量轉(zhuǎn)速系統(tǒng)為單片機(jī)控制模塊、霍爾傳感器模塊、發(fā)送模塊,各個模塊都承擔(dān)著各自的任務(wù)。設(shè)計單片機(jī)模塊,考慮到單片機(jī)本身的外圍電路較多,所以在單片機(jī)模塊方面需要極為小心。在整個電路設(shè)計時要考慮電平轉(zhuǎn)換電路,具體每一部分的設(shè)計將在以下章節(jié)中詳細(xì)分析。4.1 單片機(jī)模塊根據(jù)系統(tǒng)功能要求以及單片機(jī)硬件電路設(shè)計思路(如圖31)對單片機(jī)模塊進(jìn)行設(shè)計,要使單片機(jī)準(zhǔn)確的測量電機(jī)轉(zhuǎn)速,并且使測出的數(shù)據(jù)能顯示出來,所以整個單片機(jī)部分分為傳感器電路、時鐘電路、復(fù)位電路、執(zhí)行元件以及顯示電路五個部分。4.1.1 處理執(zhí)行元件單片機(jī)我們采用at89c51(其引腳圖如圖41),相較于intel公司的8051它本身帶有一定的優(yōu)點(diǎn)。at89c51是一種帶4k字節(jié)閃爍可編程可擦除只讀存貯器(fperomfalsh programmable and erasable read only memory)的低電壓,高性能cmos 8位微處理器,俗稱單片機(jī)。該器件采用atmel高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的mcs-51指令集和輸出管腳相兼容。由于將多功能8位cpu和閃爍存儲器組合在單個芯片中,atmel的at89c51是一種高效微控制器, at89c單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。圖4-1 at89c51引腳圖主要特性:與mcs-51 兼容4k字節(jié)可編程閃爍存儲器 壽命:1000寫/擦循環(huán) 數(shù)據(jù)保留時間:10年全靜態(tài)工作:0hz-24hz三級程序存儲器鎖定128*8位內(nèi)部ram32可編程i/o線兩個16位定時器/計數(shù)器5個中斷源 可編程串行通道低功耗的閑置和掉電模式片內(nèi)振蕩器和時鐘電路管腳說明:1.vcc:供電電壓;2.gnd:接地;3.p0口:p0口為一個8位漏極開路雙向i/o口,每腳可吸收8ttl門電流。當(dāng)p1口的管腳第一次寫1時,被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時,p0 口作為原碼輸入口,當(dāng)fiash進(jìn)行校驗(yàn)時,p0輸出原碼,此時p0外部必須被拉高。4.p1口:p1口是一個內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗(yàn)時,p1口作為第八位地址接收。5.p2口:p2口為一個內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個ttl門電流,當(dāng)p2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,p2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗(yàn)時接收高八位地址信號和控制信號。6.p3口:p3口管腳是8個帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個ttl門電流。當(dāng)p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。p3口也可作為at89c51的一些特殊功能口,如下表41所示:7.rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持rst腳兩個機(jī)器周期的高電平時間。8.ale/prog:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時,ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。表4-1 p3口的第二功能tab.4-1 the second feature i p3引 腳第二功能信 號 名 稱p3.0p3.1p3.2p3.3p3.4p3.5p3.6p3.7rxdtxdint0int1t0t1wrrd串行數(shù)據(jù)接收串行數(shù)據(jù)發(fā)送外部中斷0請求外部中斷1請求定時器/計數(shù)器0計數(shù)輸入定時器/計數(shù)器1計數(shù)輸入外部ram寫選通外部ram讀選通p3口同時為閃爍編程和編程校驗(yàn)接收一些控制信號。此時, ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效。 9./psen:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機(jī)器周期兩次/psen有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/psen信號將不出現(xiàn)。 10./ea/vpp:當(dāng)/ea保持低電平時,則在此期間外部程序存儲器(0000h-ffffh),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/ea將內(nèi)部鎖定為reset;當(dāng)/ea端保持高電平時,此間內(nèi)部程序存儲器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。 11.xtal1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。 12.xtal2:來自反向振蕩器的輸出。振蕩器特性:xtal1和xtal2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石英振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅(qū)動器件,xtal2應(yīng)不接。有余輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。芯片擦除:整個perom陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ale管腳處于低電平10ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。此外,at89c51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,cpu停止工作。但ram,定時器,計數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存ram的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個硬件復(fù)位為止。4.1.2 時鐘電路時鐘電路是計算機(jī)的心臟,它控制著計算機(jī)的工作節(jié)奏。mcs-51單片機(jī)允許的時鐘頻率是因型號而異的典型值為12mhzmcs-51內(nèi)部都有一個反相放大器,xtal1、xtal2分別為反相放大器輸入和輸出端,外接定時反饋元件以后就組成振蕩器,產(chǎn)生時鐘送至單片機(jī)內(nèi)部的各個部件。at89c51是屬于cmos8位微處理器,它的時鐘電路在結(jié)構(gòu)上有別于nmos型的單片機(jī)。cmos型單片機(jī)內(nèi)部(如at89c51)有一個可控的負(fù)反饋反相放大器,外接晶振(或陶瓷諧振器)和電容組成振蕩器,圖42為cmos型單片機(jī)時鐘電路框圖。振蕩器工作受/pd端控制,由軟件置“1”pd(即特殊功能寄存器pcon.1)使/pd0,振蕩器停止工作,整個單片機(jī)也就停止工作,以達(dá)到節(jié)電目的。清“0”pd,使振蕩器工作產(chǎn)生時鐘,單片機(jī)便正常運(yùn)行。圖中sys為晶振或陶瓷諧振器,振蕩器產(chǎn)生的時鐘頻率主要由sys參數(shù)確定(晶振上標(biāo)明的頻率)。電容c1和c2的作用有兩個:其一是使振蕩器起振,其二是對振蕩器的頻率f起微調(diào)作用(c1、c2大,f變小),其典型值為30pf。圖4-2 cmos型單片機(jī)時鐘電路框圖4.1.3 復(fù)位電路計算機(jī)在啟動運(yùn)行時都需要復(fù)位,使中央處理器cpu和系統(tǒng)中的其它部件都處于一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。mcs-51單片機(jī)有一個復(fù)位引腳rst,它是史密特觸發(fā)輸入(對于chmos單片機(jī),rst引腳的內(nèi)部有一個拉低電阻),當(dāng)振蕩器起振后該引腳上出現(xiàn)2個機(jī)器周期(即24個時鐘周期)以上的高電平,使器件復(fù)位,只要rst保持高電平,mcs-51保持復(fù)位狀態(tài)。此時ale、psen、p0、p1、p2、p3口都 輸出高電平。rst變?yōu)榈碗娖胶?,退出?fù)位,cpu從初始狀態(tài)開始工作。單片機(jī)采用的復(fù)位方式是自動復(fù)位方式。對于mos(at89c51)單片機(jī)只要接一個電容至vcc即可(見圖43)。在加電瞬間,電容通過電阻充電,就在rst端出現(xiàn)一定時間的高電平,只要高電平時間足夠長,就可以使mcs-51有效的復(fù)位。rst端在加電時應(yīng)保持的高電平時間包括vcc的上升時間和振蕩器起振的時間,vss上升時間若為10ms,振蕩器起振的時間和頻率有關(guān)。10mhz時約為1ms,1mhz時約為10ms,所以一般為了可靠的復(fù)位,rst在上電應(yīng)保持20ms以上的高電平。rc時間常數(shù)越大,上電rst端保持高電平的時間越長。若復(fù)位電路失效,加電后cpu從一個隨機(jī)的狀態(tài)開始工作,系統(tǒng)就不能正常運(yùn)轉(zhuǎn)。圖4-3 上電復(fù)位電路4.1.4 顯示電路顯示電路采用led數(shù)碼管動態(tài)顯示,led(light-emitting diode)是一種外加電壓從而渡過電流并發(fā)出可見光的器件。led是屬于電流控制器件,使用時必須加限流電阻。led有單個led和八段led之分,也有共陰和共陽兩種。顯示器結(jié)構(gòu):常用的七段顯示器的結(jié)構(gòu)如圖44所示。發(fā)光二極管的陽極連在一起的稱為共陽極顯示器,陰極連在一起的稱為共陰極顯示器。1位顯示器由八個發(fā)光二極管組成,其中七個發(fā)光二極管ag控制七個筆畫(段)的亮或暗,另一個控制一個小數(shù)點(diǎn)的亮和暗,這種筆畫式的七段顯示器能顯示的字符較少,字符的開頭有些失真,但控制簡單,使用方便。此外,要畫出電路圖,首先還要搞清楚他的引腳圖的分布,在了解了正確的引腳圖后才能進(jìn)行正確的字型段碼編碼。才能顯示出正確的數(shù)字來,如圖4-5所示,為七段數(shù)碼管的管腳圖。圖4-4 七段發(fā)光顯示器的結(jié)構(gòu)圖4-5 七段發(fā)光顯示器管腳的結(jié)構(gòu)驅(qū)動方式:采用的數(shù)碼管驅(qū)動為7407,它的全名為7407 ttl 集電極開路六正相高壓驅(qū)動器,其結(jié)構(gòu)簡單,使用方便,圖4-6為7407的圖以及各個引腳的分布功能介紹。圖4-6 7407管腳的結(jié)構(gòu)顯示方式:為了節(jié)省i/o口線,我們采用的動態(tài)顯示方式。所謂動態(tài)顯示,就一位一位地輪流點(diǎn)亮各位顯示器(掃描),對于每一位顯示器來說,每隔一段時間點(diǎn)亮一次。顯示器的亮度既與導(dǎo)通電流有關(guān),也與點(diǎn)亮?xí)r間和間隔時間的比例有關(guān)。調(diào)整電流和時間參數(shù),可實(shí)現(xiàn)亮度較高較穩(wěn)定的顯示。若顯示器的位數(shù)不大于8位,則控制顯示器公共極電位只需8位口(稱為掃描口),控制各位顯示器所顯示的字形也需一個8位口(稱為段數(shù)據(jù)口)。本次設(shè)計要求的轉(zhuǎn)速測量范圍60r/min-36000r/min,所以只需要5位數(shù)碼管即可。5位共陰極顯示器和at89c51的接口邏輯如圖4-7所示。at89c51的p0口作為段數(shù)據(jù)口,接上拉電阻到顯示器的各個段;p2口作為掃描口,經(jīng)同相驅(qū)動器7407接顯示器公共極。對于圖4-7中的5位顯示器,在at89c51ram存貯器中設(shè)置五個顯示緩沖器單元30h35h,分別存放5位顯示器的顯示數(shù)據(jù),at89c51的p2口掃描輸出總是只在一位為低電平,即5位顯示器中僅有一位公共陰極為低電平,其它位為高電平,at89c51的p0口相應(yīng)位(陰極為低)的顯示數(shù)據(jù)的段數(shù)據(jù),使該位顯示出一個字符,其它們?yōu)榘担来蔚馗淖僷2口輸出為高的位,p0口輸出對應(yīng)的段數(shù)據(jù),5位顯示器就顯示出由緩沖器中顯示數(shù)據(jù)所確定的字符。圖4-7 五位動態(tài)顯示電路4.2 霍爾傳感器簡介4.2.1 霍爾器件概述霍爾元件是一種基于霍爾效應(yīng)的磁傳感器,已發(fā)展成一個品種多樣的磁傳感器產(chǎn)品族,并已得到廣泛應(yīng)用。霍爾元件是一種磁傳感器。要他們可以檢測磁場及其變化,可以在各種與磁場有關(guān)的場合中?;魻柶骷曰魻栃?yīng)為其工作基礎(chǔ)?;魻柶陂g具有許多優(yōu)點(diǎn),他們的結(jié)構(gòu)牢固,體積小,重量輕,壽命長,安裝方便,功耗小,頻率高(可達(dá)1mhz),耐震動,不怕灰塵、水汽及煙霧等污染或腐蝕。霍爾線性器件的精度高、線性度好;霍爾開關(guān)器件無觸點(diǎn)、無磨損、輸出波形清晰、無抖動、無回調(diào)、位置重復(fù)精度高(可達(dá)um級)。采用了各種補(bǔ)償措施的霍爾器件的工作溫度范圍廣,可達(dá)55-150度。按照霍爾器件的功能可將他們分為:霍爾線性器件和霍爾開關(guān)器件。前者輸出模擬量,后者輸出數(shù)字量。按被檢測的對象的性質(zhì)可將它們分為:直接應(yīng)用和間接應(yīng)用。前者是直接檢測出被測對象本身的磁場或磁特性,后者是檢測被檢測對象上人為設(shè)置的磁場,用這個磁場作為被檢測信息的載體,通過它,將許多非電、非磁的物理量例如力、力矩、壓力、應(yīng)力、位置、位移、加速度、角度、角速度、轉(zhuǎn)速、轉(zhuǎn)數(shù)以及工作狀態(tài)發(fā)生變化的時間等,轉(zhuǎn)換成電量來進(jìn)行檢測和控制。集成霍爾傳感器是利用硅集成電路工藝將霍爾元件和測量線路集成在一起的一種傳感器。它取消了傳感器和測量電路之間的界限,實(shí)現(xiàn)了材料、元件、電路三位一體。集成霍爾傳感器與分立相比,由于減少了焊點(diǎn),因此顯著地提高了可靠性。此外,它具有體積小、重量輕、功耗低等優(yōu)點(diǎn),正越來越愛到眾的重視。集成霍爾傳感器的輸出是經(jīng)過處理的霍爾輸出信號。按照輸出信號的形式,可以分為開關(guān)型集成霍爾傳感器和線性集成霍爾傳感器兩種類型。開關(guān)型集成霍爾傳感器是把霍爾元件的輸出經(jīng)過處理后輸出一個高電平或低電平的數(shù)字信號。霍爾開關(guān)電路又稱霍爾數(shù)字電路,由穩(wěn)壓器、霍爾片、差分放大器,斯密特觸發(fā)器和輸出級組成。4.2.2 霍爾傳感器的應(yīng)用使用霍爾器件檢測磁場的方法極為簡單,將霍爾器件做成各種形式的探頭,放在被測磁場中,因霍爾器件只對垂直于霍爾片表面的磁感應(yīng)強(qiáng)度敏感,因而必須令磁力線和器件表面垂直,通電后即可由輸出電壓得到被測磁場的磁感應(yīng)強(qiáng)度。若不垂直,則應(yīng)求出其垂直分量來計算被測磁場的磁感應(yīng)強(qiáng)度值。而且,因霍爾元件的尺寸極小,可以進(jìn)行多點(diǎn)檢測,由計算機(jī)進(jìn)行數(shù)據(jù)處理,可以得到場的分布狀態(tài),并可對狹縫,小孔中的磁場進(jìn)行檢測用磁場作為被傳感物體的運(yùn)動和位置信息載體時,一般采用永久磁鋼來產(chǎn)生工作磁場。例如,用一個542.5(mm3)的釹鐵硼號磁鋼,就可在它的磁極表面上得到約2300高斯的磁感應(yīng)強(qiáng)度。在空氣隙中,磁感應(yīng)強(qiáng)度會隨距離增加而迅速下降。為保證霍爾器件,尤其是霍爾開關(guān)器件的可靠工作,在應(yīng)用中要考慮有效工作氣隙的長度。在計算總有效工作氣隙時,應(yīng)從霍爾片表面算起。在封裝好的霍爾電路中,霍爾片的深度在產(chǎn)品手冊中會給出。 因?yàn)榛魻柶骷枰ぷ麟娫?,在作運(yùn)動或位置傳感時,一般令磁體隨被檢測物體運(yùn)動,將霍爾器件固定在工作系統(tǒng)的適當(dāng)位置,用它去檢測工作磁場,再從檢測結(jié)果中提取被檢信息。4.2.3 ah41霍爾開關(guān)ah41霍爾開關(guān)電路最適于響應(yīng)變化斜率陡峭的磁場并在磁通密度較弱的場合使用,適用于單極或多對磁環(huán)工作,它由反向電壓保護(hù)器、電壓調(diào)整器、霍爾電壓發(fā)生器、信號放大器、史密特觸發(fā)器和集電極開路的輸出級組成。工作溫度范圍為-40 150(存儲溫度為150),可適用于各種機(jī)及機(jī)電一體化領(lǐng)域。 電參數(shù): 參數(shù) 符號 測試條件 量值 單位 最小 典型 最大電源電壓vcc4.5-24v輸出低電平電壓 vout iout=20ma bbop-200-400mv輸出高電平電流 ioff vout=24v b 電源電流iccvcc=24v 輸出端開路 10 ma輸出上升時間trvcc=12v rl=1.1k cl=20pf-0.12s輸出下降時間tfvcc=12v rl=1.1k cl=20pf-0.18s 產(chǎn)品特點(diǎn):.電源電壓范圍寬.可用市售的小磁環(huán)來驅(qū)動.無可動部件、可靠性高.尺寸小.抗環(huán)境應(yīng)力.可直接同雙極和mos邏輯電路接口應(yīng)用:.高靈敏的無觸點(diǎn)開關(guān).直流無刷電機(jī).直流無刷風(fēng)機(jī). 霍爾開關(guān)元件的電路圖:圖4-8 霍爾傳感器的電路圖4.3 發(fā)送模塊根據(jù)系統(tǒng)功能要求,要使單片機(jī)測量的轉(zhuǎn)速能夠向上位機(jī)發(fā)送數(shù)據(jù),硬件電路中必須要考慮到單片機(jī)的發(fā)送部分,由于單片機(jī)通過串口發(fā)送出來的是ttl邏輯電平(0v和5v),而計算機(jī)rs-232總線上輸入、輸出數(shù)據(jù)和控制信號為+12v左右的電壓,單片機(jī)要和pc的上位機(jī)通信就必須是電平一致,所以發(fā)送部分關(guān)鍵的部分是電平轉(zhuǎn)換和串口發(fā)送,電平轉(zhuǎn)換可以用模擬器件進(jìn)行轉(zhuǎn)換,但是為了方便起見,本次設(shè)計采用的是集成芯片,一個芯片加上它的外圍電路即可完成電平的轉(zhuǎn)換的工作。結(jié)構(gòu)簡單、方便容易,精確度高。本次所采用的是hin232cp,我們要對其外圍電路進(jìn)行設(shè)計,下面我們將詳細(xì)的敘述。數(shù)據(jù)的傳輸:當(dāng)電路工作于發(fā)送數(shù)據(jù)狀態(tài)時,pc機(jī)的rts端輸出高電平,經(jīng)ic1電平轉(zhuǎn)換打開ic3(74ls08)的與門b1,使pc機(jī)txd端輸出的數(shù)據(jù)經(jīng)紅外發(fā)射電路發(fā)射出去;rts信號ic1反相后作為cts信號送入計算機(jī),同時還關(guān)閉與門b2;使計算機(jī)不接收其它數(shù)據(jù)信號。該必發(fā)器的數(shù)據(jù)傳輸速率最好設(shè)在9600b/s為宜,以確保數(shù)據(jù)傳輸?shù)目煽啃?。器件的介紹:1、rs-232crs-232c是美國電氣工業(yè)協(xié)會推廣使用的一種串行通信總路線標(biāo)準(zhǔn),是dce(數(shù)據(jù)通信設(shè)備,如微機(jī))和dte(數(shù)據(jù)終端設(shè)備,如crt)間傳輸串行數(shù)據(jù)的接口總線。rs-232c最大傳輸距離為15m,最高傳輸速率約20kbps,信號的邏輯0電平為+3v+15v。邏輯1電平為-3v-15v。電氣特性:eia-rs-232c對電器特性、邏輯電平和各種信號線功能都作了規(guī)定;在txd和rxd上:邏輯1(mark) =-3v-15v 邏輯0(space)=+315v在rts、cts、dsr、dtr和dcd等控制線上:信號有效(接通,on狀態(tài),正電壓)+3v+15v信號無效(斷開,off狀態(tài),負(fù)電壓)-3v-15v2、rs-232連接器db-9db-9是rs-232信號線的連接器,其連接器的機(jī)械特性見圖(49),表 4-1所示rs-232信號線名稱、符號以及對應(yīng)在db-9上的針腳號。圖4-9 連接器的機(jī)械特性表4-1 rs-232信號線和db-9引腳關(guān)系tab.4-1 rs-232 signal lines and db-9-pin relations符 號名 稱引 腳dcdrxdtxddtrgnddsr rtsctsri接收信號載波檢測數(shù)據(jù)接收線數(shù)據(jù)發(fā)送線dte裝置數(shù)據(jù)就緒公共地dce裝置就緒請求發(fā)送清除發(fā)送振鈴指示123456789圖410電平轉(zhuǎn)換電路原理圖3、電平轉(zhuǎn)換器hin232cpe由于rs-232c總線上傳輸?shù)男盘栠壿嬰娖脚cttl邏輯電平差異很大,所以就存在這兩種電平的轉(zhuǎn)換問題,下面就介紹一下電平轉(zhuǎn)換器hin232cpe。hin232cpe能將rs-232c電平轉(zhuǎn)換成ttl電平,也能將ttl電平轉(zhuǎn)換成rs-232c電平,只需單+5v供電,由內(nèi)部升高電路產(chǎn)生10v+12v。內(nèi)部有兩個發(fā)送器(ttl電平轉(zhuǎn)換為rs-232c電平)和兩個接收器(rs-232電平轉(zhuǎn)換為ttl電平)。hin232cpe芯片引腳排列和外部元件連接線路如圖411所示。圖 411hin232cpe 電平轉(zhuǎn)換器及外接元件圖5 軟件設(shè)計本章重點(diǎn)闡述測量轉(zhuǎn)速的匯編語言。以及軟件設(shè)計的過程。軟件需要解決的是單片機(jī)中斷服務(wù)程序的設(shè)計、計算程序的設(shè)計、顯示部分的程序設(shè)計以及在我們這里非重點(diǎn)介紹的通信程序設(shè)計。5.1 單片機(jī)轉(zhuǎn)速程序設(shè)計思路及過程單片機(jī)測量轉(zhuǎn)速可以分為若干模塊,然后在主程序中調(diào)用各個模塊, 流程圖如下圖所示。開始初 始 化計算程序bcd碼轉(zhuǎn)換非壓縮bcd轉(zhuǎn)換顯 示 程 序返 回圖 51主程序流程圖5.1.1 單片機(jī)程序設(shè)計思路計算轉(zhuǎn)速公式: n=60/ntc (r/min)其中,n是內(nèi)部定時器的計數(shù)值,為三字節(jié),分別由th0,tl0,vtt構(gòu)成;tc為時基,由于采用11.0592m的晶振,所以tc不在是1um,而是12m/11.0592m約為1.08um,帶入上面公式,即可得到轉(zhuǎn)速的精確計算公式: n=60*11059200/12n=55296000/n再將55296000化為二進(jìn)制存入單片機(jī)的內(nèi)存單元。下面我們將介紹除數(shù)是如何獲得的:單片機(jī)的轉(zhuǎn)速測量完成,定時器t0作為內(nèi)部定時器,外部中斷來的時候讀取th0,tl0,并同時清零th0、tl0,使定時器再次循環(huán)計內(nèi)部脈沖。此外,對于低速情況下,我們還要設(shè)定一個軟件計數(shù)器vtt,當(dāng)外部中斷還沒來而內(nèi)部定時器已經(jīng)溢出,產(chǎn)生定時器0中斷時,增加vtt,作為三字節(jié)中的高字節(jié)。三字節(jié)組成除數(shù),上面的常數(shù)為四字節(jié),所以計算程序?qū)嶋H上就是調(diào)用一個四字節(jié)除三字節(jié)商為兩字節(jié)(最高轉(zhuǎn)速36000r/min足夠)的程序。為數(shù)碼管能夠顯示出來,需將二進(jìn)制轉(zhuǎn)換為十進(jìn)制,在將十進(jìn)制轉(zhuǎn)換為非壓縮bcd碼后,才能調(diào)用查表程序,最后送顯示。5.1.2 單片機(jī)轉(zhuǎn)速計算程序由于本次設(shè)計的系統(tǒng)要實(shí)現(xiàn)的功能是將霍爾傳感器的信號送到單片機(jī)的外部中斷口,再對周期方波進(jìn)行內(nèi)部計數(shù),調(diào)用計算程序把轉(zhuǎn)速測出來??梢哉f是核心部分,流程圖如圖所示:開 始被除數(shù)初始化讀取定時值調(diào)用除法程序返 回圖52 計算程序流程圖計算程序中又再次調(diào)用了除法程序,這里的除法為四字節(jié)除三字節(jié)商為兩字節(jié),除法的程序的編程思想可以和手工計算的除法相似,比較減法的思想,流程圖如圖5-3所示具體程序見附錄。5.1.3 二-十進(jìn)制轉(zhuǎn)換程序計算程序計算出來的數(shù)據(jù)為二進(jìn)制,存到50h、51h單元中以便發(fā)送程序中調(diào)用傳送數(shù)據(jù)到計算機(jī),計算機(jī)可識別二進(jìn)制,然而,我們需要在led上顯示,查表程序需要拆分的bcd碼,所以二進(jìn)制必須先轉(zhuǎn)換成bcd后才能拆分。這里介紹將(r2r3)中的16位二進(jìn)制數(shù)轉(zhuǎn)換為壓縮bcd碼十進(jìn)制整數(shù)送r4、r5、r6。除 法移位次數(shù) 計數(shù)器上商1,減去除數(shù)返回被除數(shù)左移1位被除數(shù) 除數(shù)上商0 y n計數(shù)器減1計數(shù)器=0?圖53除法程序流程圖開始c(r2r3)左移1位(移出位bi在c中)(r7)-1r7=0?按照數(shù)制轉(zhuǎn)換方法可以畫出流程圖。0-r4、r5、r616-r72*(r4r5r6)+c - r4r5r6(十進(jìn)制運(yùn)算)返 回圖 54雙字節(jié)整數(shù)二翻十程序流程圖單片機(jī)顯示部分可以用來顯示計算出來的數(shù)據(jù)的。在程序設(shè)計中,在at89c51ram存貯器中的四個顯示緩沖器單元30h34h,分別存放著由計算出來的轉(zhuǎn)速的bcd碼進(jìn)行拆分后的非壓縮bcd碼數(shù)據(jù),at89c51的p1口掃描輸出總是只有一位為低電平、其它位為高電平,at89c51的p0口相應(yīng)位的顯示數(shù)據(jù)的段數(shù)據(jù),使該位顯示出一個字符,其它們?yōu)榘?,依次地改變p1口輸出為低高的位,p0口輸出對應(yīng)的段數(shù)據(jù),5位led顯示器就顯示出由緩沖器中顯示數(shù)據(jù)所確定的字符。顯示部分程序分為兩部分:十進(jìn)制bcd轉(zhuǎn)換成非壓縮bcd碼;查表程序顯示數(shù)據(jù)。雙字節(jié)整數(shù)拆分程序流程圖如圖5-5開 始高字節(jié)r4送30hr5與 0f0h相與交換后送31hr5與0fh相與后送32hr6與 0f0h相與交換后送33hr6與0fh相與后送34h返 回圖 55雙字節(jié)整數(shù)拆分程序流程圖顯示程序流程圖如圖5-6所示:5.2 程序設(shè)計根據(jù)以上設(shè)計思路和各個模塊的流程圖即可編寫出本次畢業(yè)設(shè)計的程序,注意其中各個模塊間的參數(shù)傳遞以及堆棧指針等問題,程序設(shè)計的任務(wù)即可完成,寫出初始的程序,再進(jìn)行上機(jī)調(diào)試,這些我們將具體在下章中加以詳細(xì)敘述。開始30h-r0,表首地址-dptr,(r1)=0feh(r0)賦值給a(r1)=0dfh?a+dptr賦值給p0(r1)=p1,(r1)=a,rl ainc r0 ,a=(r1)n 結(jié)束圖 56顯示程序流程圖6 系統(tǒng)調(diào)試電路調(diào)試是整個系統(tǒng)功能否實(shí)現(xiàn)的關(guān)鍵步驟,我們將整個調(diào)試過程分為三大部分:硬件調(diào)試、軟件調(diào)試和綜合調(diào)試。6.1 硬件調(diào)試硬件調(diào)試主要是針對我的轉(zhuǎn)速測量系統(tǒng)的單片機(jī)硬件電路分別進(jìn)行調(diào)試。這一部分硬件調(diào)試主要分成兩大塊:上電前的調(diào)試和上電后的調(diào)試。上電前的調(diào)試在上電前,我們必須確保電路中不存在斷路或短路情況,這一工作是整個調(diào)試工作的第一步,也是非常重要的一個步驟。在這部分調(diào)試中主要使用的工具是萬用表,用來完成檢測電路中是否存在斷路或者短路情況等。特別是數(shù)碼管的連接部分,有protel制作的pcb確保要和原理圖上的圖一致,有些在電路板上沒法連接的線路,要用短接線把接好,對照著原理圖部分,一部分一部分地用萬用表測量,注意焊點(diǎn)之間,確保焊點(diǎn)沒有短接在一起,同時注意焊點(diǎn)的美觀,確保沒有開路以及短路的現(xiàn)象出現(xiàn)。上電后的調(diào)試在確保硬件電路正常,無異常情況(斷路或短路)方可上電調(diào)試,上電調(diào)試的目的是檢驗(yàn)電路是否接錯,同時還要檢驗(yàn)原理是否正確,在本次課程設(shè)計中,上電調(diào)試主要只轉(zhuǎn)速測量系統(tǒng)的單片機(jī)控制部分、數(shù)碼管點(diǎn)亮部分、和上位機(jī)通信是的電平轉(zhuǎn)換和串口通信部分的硬件調(diào)試。1、單片機(jī)控制部分硬件調(diào)試:這一部分調(diào)試主要是檢查時鐘電路、復(fù)位電路是否接對,單片機(jī)的電源以及地是否接好,以及其他的一些管腳的接法??磫纹瑱C(jī)通電后能否可以正常工作等這一系列問題。2、數(shù)碼管led電路調(diào)試:由于數(shù)碼管采用的是動態(tài)掃描的方式點(diǎn)亮的。數(shù)碼管的公共端(com)接在7407驅(qū)動再接到單片機(jī)的p2口作為位選信號,字型是接在p0口。電路上電檢查7407是否接上電源和地讓其正常工作。在這一前提下,查看數(shù)碼管能否點(diǎn)亮。只需要接仿真機(jī)上編寫一個小程序讓5位led全亮,或者讓它們其中的某位點(diǎn)亮,也可以顯示不同的數(shù)字,根據(jù)要求給p0口,p2口分別賦值。即可檢查數(shù)碼管的硬件電路是否正確,即可判斷顯示驅(qū)動電路整個完整,首先排除這里的故障。3、發(fā)送部分硬件電路調(diào)試:這一部分電路硬件調(diào)試主要完成任務(wù)是使得通過hin232cpe電平轉(zhuǎn)換器轉(zhuǎn)換前后的電平關(guān)系??梢杂檬静ㄆ骱腿f用表檢查電平轉(zhuǎn)換前后的關(guān)系,這里不在贅述。6.2 軟件調(diào)試單片機(jī)程序調(diào)試思路:單片機(jī)部分調(diào)試工作的完成主要應(yīng)用lca51軟件來完成,這一部分工作首先將轉(zhuǎn)速測量系統(tǒng)中的各個模塊計算程序中的除法程序、雙字節(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)鍵詞.軟件完全支持源語句級在線調(diào)試。高級語言還支持源文件調(diào)試和匯編語言指令行對照調(diào)試。用戶可同時打開多個窗體編輯、調(diào)試、變量觀察.用戶可在線對原文件直接編輯、編譯、連接、加載和調(diào)試,軟件支持編譯錯誤源文件定位。調(diào)試時用戶可動態(tài)觀察、修改設(shè)定變量(包括cpu片內(nèi)寄存器、特殊寄存器及外部寄存器、內(nèi)存)的值。調(diào)試主要方法和技巧: 通常一個調(diào)試程序應(yīng)該具備至少四種性能:跟蹤、斷點(diǎn)、查看變量、更改數(shù)值。1.跟蹤調(diào)試 調(diào)試應(yīng)用程序所提供的重要性能也許就是跟蹤應(yīng)用程序。跟蹤應(yīng)用程序使用戶能夠在運(yùn)行應(yīng)用程序時,看到pc指針在應(yīng)用源代碼程序中的確切位置,lca51提供以下方法對程序的執(zhí)行進(jìn)行跟蹤。 跟蹤型單步執(zhí)行一條源語句程序。但是,如果調(diào)用一函數(shù),則進(jìn)入函數(shù)中,再執(zhí)行函數(shù)的第一條源語句行前停止。 通過型單步僅執(zhí)行下一條源語句程序,然后又停止。如果是調(diào)用一函數(shù),運(yùn)行完整個函數(shù)并停止在函數(shù)返回處。2.斷點(diǎn)調(diào)試 如果已知程序中某塊代碼實(shí)際運(yùn)行正常的情況下,仍用跟蹤調(diào)試方法,將大大浪費(fèi)時間,而且很枯燥,因此調(diào)試中第二個重要工具是在源代碼中預(yù)定處設(shè)置斷點(diǎn),大多數(shù)調(diào)試程序通過使用斷點(diǎn)中止程序執(zhí)行。注意:如果用戶調(diào)試高級語言,因?yàn)橄到y(tǒng)要占用2個斷點(diǎn),所以可設(shè)置的斷點(diǎn)數(shù)為最大斷點(diǎn)個數(shù)減2。 lca51調(diào)試軟件還提供一次性斷點(diǎn):執(zhí)行到光標(biāo)所在行。如果用戶按熱鍵f4,調(diào)試程序繼續(xù)執(zhí)行程序代碼,直到它到達(dá)光標(biāo)行處或調(diào)試程序遇到另一個斷點(diǎn)。3.查看變量 顯然,通過一系列指令查看應(yīng)用程序,了解導(dǎo)致某一錯誤的執(zhí)行也是一種非常有效的方法。lca51軟件提供了以下幾種方法對變量進(jìn)行查看。 通過添加觀察項(xiàng)菜單可以將用戶希望觀察的變量添加到觀察窗口中,長期進(jìn)行觀察。用戶程序在單步或斷點(diǎn)停下時,將更新變量的取值。 用戶可以直接移動鼠標(biāo)到相應(yīng)的變量名上,點(diǎn)擊鼠標(biāo)左鍵,將出現(xiàn)一個提示窗口,顯示這個變量的當(dāng)前值。 用戶還可以打開程序空間窗口、內(nèi)部數(shù)據(jù)窗口、外部數(shù)據(jù)窗口進(jìn)行數(shù)據(jù)塊觀察。4.更改數(shù)值 如果用戶在調(diào)試過程中了解到變量的內(nèi)容(超值、未定義等)會對程序性能產(chǎn)生影響或引起異常時,立即更改變量的內(nèi)容是很有效的方法,以確保該值在正確范圍內(nèi)不會產(chǎn)生錯誤。lca51軟件提供一系列更改變量數(shù)值的方法,以便用戶能檢查程序?qū)φ麄€變量值范圍的反應(yīng),而無需為設(shè)置每個值而重新加載調(diào)試。在更改對話框中用戶輸入要更改的取值,點(diǎn)擊確定按鈕。用戶可以在輸入框中輸入十六進(jìn)制或十進(jìn)制數(shù)據(jù)。程序調(diào)試過程: 整個程序是一個主程序調(diào)用各個子程序?qū)崿F(xiàn)功能的過程,要使主程序和整個程序都能平穩(wěn)運(yùn)行,各個模塊的子程序的正確與平穩(wěn)運(yùn)行必不可少,所以在軟件調(diào)試的最初階段就是把各個子程序模塊進(jìn)行分別調(diào)試。首先要對計算程序進(jìn)行調(diào)試,其中關(guān)鍵就是那個四字節(jié)除三字節(jié)的程序顯得尤為重要,在整個程序中,四字節(jié)的被除數(shù)是確定的常數(shù),而除數(shù)是測量記數(shù)的值,當(dāng)各個模塊調(diào)試時,我們可以先對除數(shù)先賦不同的值,利用查看內(nèi)部數(shù)據(jù)的數(shù)據(jù)窗口觀察出計算出來的結(jié)果和用計算器算得的結(jié)果是否一致,可以舉例多次數(shù)據(jù),確保程序正確,才能得到想得到的數(shù)據(jù)。其次、二進(jìn)制到十進(jìn)制的轉(zhuǎn)換,我們依然可以利用上述列舉的方法,多次給出數(shù)據(jù),然后運(yùn)行程序,可以設(shè)置觀察變量,觀察出程序轉(zhuǎn)換的結(jié)果。最后、拆分壓縮bcd碼十進(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)試,它可以分成以下幾個步驟:1.使霍爾傳感器有方波信號輸出;2.使單片機(jī)獲得中斷信號,計算出轉(zhuǎn)速值并存儲;3.通過led數(shù)碼管把測量的數(shù)據(jù)顯示出來。4.通過通信使得pc機(jī)與單片機(jī)之間的通信成功。6.4 故障分析與解決方案故障出現(xiàn)情況:1、霍爾傳感器不能產(chǎn)生有效的ttl電平,產(chǎn)生波形不穩(wěn)2、單片機(jī)的中斷服務(wù)程序不能執(zhí)行,不管是定時中斷還是外部中斷;3、中斷執(zhí)行低速情況也就是軟件記數(shù)功能不對;4、測得的轉(zhuǎn)速不準(zhǔn)確,而且在波形頻率變化下顯示轉(zhuǎn)速卻不變5、單片機(jī)顯示部分無法工作,顯示不穩(wěn)定;6、信號發(fā)生器模擬轉(zhuǎn)速測量正確,接電機(jī)不穩(wěn)定7、通信時單片機(jī)接收顯示數(shù)據(jù)不正常,pc機(jī)接收亂碼;解決方案(針對上述故障一一對應(yīng)的解決方案):(1)硬件電路中霍爾傳感器應(yīng)工作在5v電壓,中間引腳接地,數(shù)據(jù)線接單片機(jī)的外部中斷0。在電機(jī)的轉(zhuǎn)軸上還要貼上一粒磁鋼,利用霍爾效應(yīng)產(chǎn)生方波。利用萬用表檢查時發(fā)現(xiàn)接5v和地的pcb上的線都壞了,重新用線接在電路板上。當(dāng)波形出來后,顯示的波形不穩(wěn),而且不夠理想,后來在信號線與地之間接了472的瓷片電容濾波。波形得到了大大改善;(2)首先檢查程序中的開頭,中斷入口地址,發(fā)現(xiàn)中斷定時0的地址寫成中斷定時1的入口地址了。外部中斷沒有執(zhí)行跟沒有中斷信號加入有關(guān)系。在前面還沒有解決的時候,我們暫時用信號發(fā)生器來代替外部中斷9的輸入,由于中斷執(zhí)行與否我們沒法看到,可以用設(shè)置中斷點(diǎn)的方法或者利用示波器,在
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 校園電子閱覽室建設(shè)合作合同(2篇)
- 2025商場店鋪設(shè)計與裝修合同
- 浙江省臺州市十校聯(lián)盟2024-2025學(xué)年高一下學(xué)期4月期中聯(lián)考數(shù)學(xué)試題(含答案)
- 2025年人工智能設(shè)備采購合同
- 化學(xué)性眼外傷的臨床護(hù)理
- 2025汽車銷售合同標(biāo)準(zhǔn)版范本
- 2025年二級建造師之二建建設(shè)工程法規(guī)及相關(guān)知識能力檢測試卷A卷附答案
- 2025年健康管理師之健康管理師三級通關(guān)提分題庫及完整答案
- 民航新質(zhì)生產(chǎn)力
- 2025年二級建造師建筑工程施工合同
- 高壓帶電顯示器說明書全解
- 數(shù)據(jù)中心基礎(chǔ)設(shè)施管理系統(tǒng)DCIM技術(shù)方案
- 企業(yè)網(wǎng)絡(luò)安全與數(shù)據(jù)保護(hù)策略
- 2024屆高考英語語法填空專項(xiàng)課件
- 小水滴的訴說省公開課一等獎新名師優(yōu)質(zhì)課比賽一等獎?wù)n件
- 第五課滴答滴答下雨了課件
- 新教師崗前培訓(xùn)講座中小學(xué)教學(xué)常規(guī)PPT
- 李子奈《計量經(jīng)濟(jì)學(xué)》(第5版)筆記和典型題(含考研真題)詳解
- 現(xiàn)澆梁鋼管柱+貝雷片支架驗(yàn)收表
- 制作自然發(fā)酵酸奶的方法
- 《肖申克的救贖》中英雙語劇本
評論
0/150
提交評論