版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 本科畢業(yè)論文</b></p><p> 題 目: 電動車?yán)锍瘫肀O(jiān)控軟件設(shè)計</p><p> 院 系: </p><p> 專 業(yè): </p><p> 班 級:
2、 </p><p> 學(xué)生姓名: </p><p> 指導(dǎo)教師: </p><p> 論文提交日期:年 月 日</p><p> 論文答辯日期:年 月 日</p><p> 畢業(yè)設(shè)計(論文)任務(wù)書
3、</p><p><b> 摘 要</b></p><p> 里程表應(yīng)用廣泛,機(jī)械式里程表有其不足之處。本文以設(shè)計電動車?yán)锍瘫頌槟康?,提出了電動車?yán)锍瘫淼脑O(shè)計方案。設(shè)計智能自動化的里程表,利用霍爾效應(yīng)原理,引入霍爾傳感器,采用脈沖檢測的方法測量行駛速度與里程。并設(shè)計了用戶界面,可以實現(xiàn)超速報警及用戶自設(shè)定參數(shù)值,既可以實現(xiàn)測速也實現(xiàn)了自動化和智能化。通過實驗驗證,
4、此方案可行。</p><p> 本文介紹了電動車?yán)锍瘫淼墓ぷ髟?、結(jié)構(gòu)和以AT89C52單片機(jī)為核心的脈沖檢測系統(tǒng)硬件設(shè)計及軟件設(shè)計的相關(guān)內(nèi)容。設(shè)計以AT89C52 單片機(jī)為主控芯片,用定時器T2的捕獲功能捕獲脈沖,并測出脈沖的頻率,利用HD7279實現(xiàn)按鍵及顯示的功能,X5045存儲用戶參數(shù),由鍵盤控制里程與速度的切換顯示。</p><p> 軟件設(shè)計部分,采用了模塊化的設(shè)計,編程選
5、用了匯編語言,程序由采用程序和各功能子程序組成。主要有監(jiān)控系統(tǒng)主程序,頻率測量子程序,人機(jī)接口子程序,報警子程序組成,通過使用星研仿真器對程序進(jìn)行調(diào)試。</p><p> 本文側(cè)重軟件的實現(xiàn),硬件部分描述了硬件接口電路框圖及各芯片功能,最后進(jìn)行了計算機(jī)輔助線路設(shè)計。此次設(shè)計的里程表結(jié)構(gòu)簡單,穩(wěn)定性較好,實用性強(qiáng),易實現(xiàn),達(dá)到了設(shè)計目的。</p><p> 關(guān)鍵字:單片機(jī); 測頻;霍爾傳
6、感器;里程表</p><p><b> Abstract</b></p><p> Odometer is widely used in our daily life, and mechanical odometer has its disadvantages. For the purpose of designing the electric vehicle o
7、dometer, I put forward the design scheme of electric vehicle odometer in this paper. In order to design the intelligent automatic odometer, according to HALL principle, I use a HALL sensor, measure the speed and mileage
8、by using the pulse testing method, and improve the measuring accuracy of the system. Designing the user interface can achieve the over spee</p><p> This paper introduces the working principle and structure
9、of the electric vehicle odometer and related content about hardware design and software design of the pulse detection system which uses AT89C52 single-chip computer as the core. The design uses AT89C52 single chip microc
10、omputer as main control chip, uses timer T2 to capture the pulse, and measures the frequency of pulse. The chip HD7279 can achieve the button and display function and the chip X5045 can store user parameters. The switchi
11、ng</p><p> The part of software design adopts the modular design, uses the assembly language programming. The whole program consists of the using program and each function subroutine, mainly including the m
12、onitoring and controlling program, frequency measuring subroutine, man-machine cut program and alarming subroutine. And the Xing Yan emulator is used to debug the program.</p><p> This paper emphasizes on t
13、he implementation of the software. The part of hardware design describes the hardware interface circuit diagram and the chip functions. The design of the odometer uses simple structure has good stability and strong pract
14、icability. It is easy to implement and reaches the design purpose.</p><p> Keyword:microcomputer; Frequency measurement; Hall sensor; odometer</p><p><b> 目錄</b></p><p&g
15、t;<b> 第一章 緒論1</b></p><p><b> 1.1課題背景1</b></p><p> 1.2國內(nèi)外研究現(xiàn)狀1</p><p> 1.3課題研究意義2</p><p> 1.4本課題研究內(nèi)容2</p><p> 第二章 整體方案設(shè)計
16、4</p><p> 2.1系統(tǒng)設(shè)計方案4</p><p> 2.2系統(tǒng)工作原理4</p><p> 2.3系統(tǒng)技術(shù)指標(biāo)5</p><p> 第三章 系統(tǒng)硬件設(shè)計6</p><p> 3.1傳感器選型6</p><p> 3.1.1信號轉(zhuǎn)換電路設(shè)計8</p>
17、<p> 3.2人機(jī)接口電路設(shè)計9</p><p> 3.3存儲電路設(shè)計11</p><p> 3.4報警電路設(shè)計12</p><p> 第四章 系統(tǒng)軟件設(shè)計13</p><p> 4.1主程序設(shè)計13</p><p> 4.2中斷程序設(shè)計16</p><p>
18、; 4.3鍵處理程序設(shè)計19</p><p> 4.3.1設(shè)定鍵子程序設(shè)計21</p><p> 4.3.2增加鍵子程序設(shè)計22</p><p> 4.3.3左移鍵子程序設(shè)計22</p><p> 4.3.4確認(rèn)鍵子程序設(shè)計23</p><p> 4.4顯示程序設(shè)計24</p>&
19、lt;p> 4.5報警程序設(shè)計26</p><p> 第五章 電動車?yán)锍瘫淼臏y試28</p><p> 5.1測試方法28</p><p> 5.2誤差分析28</p><p> 第六章 硬件和軟件調(diào)試30</p><p> 6.1硬件調(diào)試30</p><p>
20、6.2軟件調(diào)試30</p><p> 6.2.1 調(diào)試方法及優(yōu)點30</p><p> 6.2.2 調(diào)試出現(xiàn)的問題及解決方法31</p><p> 第七章 設(shè)計總結(jié)33</p><p><b> 參考文獻(xiàn)34</b></p><p><b> 致 謝36<
21、;/b></p><p> 附錄1主板原理圖I</p><p> 附錄2主板PCB圖I</p><p> 附錄3 主板PCB圖II</p><p> 附錄4 副板PCB圖II</p><p> 附錄5 元件列表III</p><p><b> 第一章 緒論&
22、lt;/b></p><p><b> 1.1課題背景</b></p><p> 里程表的原理很簡單,因為車輪的直徑已知,車輪的圓周長便是恒定不變的。由此可以計算出每走一里路車輪要轉(zhuǎn)多少圈,這個數(shù)也是恒定不變的。因此只要能夠自動把車輪的轉(zhuǎn)數(shù)積累下來,然后除以每一里路對應(yīng)的轉(zhuǎn)數(shù)就可以得到行駛的里程了[1]。</p><p> 電動車被
23、發(fā)明及使用到現(xiàn)在已有兩百多年的歷史,這兩百年間人類在不斷的嘗試與研發(fā)過程中,將玩具式的木馬車轉(zhuǎn)換到今日各式新穎休閑運動電動車。我國是電動車大國,隨著人們生活水平的不斷提高,電動車已經(jīng)不僅僅是運輸、代步的工具,其輔助功能也變得越來越重要。因此,人們希望電動車的娛樂、休閑、鍛煉的功能越來越多,能帶來大家更多的健康與快樂。在這個背景下,電動車?yán)锍瘫碜鳛殡妱榆嚨囊淮筝o助工具迅速發(fā)展起來,其功能也逐漸從單一的里程顯示發(fā)展到速度、時間顯示,甚至有的
24、還具有測量騎車人的心跳、顯示騎車人熱量消耗等功能,讓人能清楚地知道當(dāng)前的速度、時間、里程等物理量[2]。 </p><p> 電動車?yán)锍瘫硪话阌砂惭b于前車圈鋼條上的感應(yīng)磁鐵、前叉上的傳感器、單片機(jī)及顯示模塊構(gòu)成。當(dāng)車圈旋轉(zhuǎn)時傳感器捕捉到感應(yīng)磁鐵帶來的信息,通過連接線傳輸至單片機(jī),單片機(jī)對此進(jìn)行處理后計算出時速、里程等信息并顯示。它能夠讓我們比較精確的知道自己的當(dāng)前速度、騎行時間、單次里程、總里程、平均
25、速度、瞬時速度等。如佛山高明華勁電子公司的電動車?yán)锍瘫鞰S-601,能動態(tài)顯示行駛里程、騎車時間、實時車速等[3]。</p><p> 1.2國內(nèi)外研究現(xiàn)狀</p><p> 從保護(hù)環(huán)境及經(jīng)濟(jì)條件許可等綜合因素來看,電動車?yán)锍瘫砟壳澳酥廖磥矶加兄鴱V闊的發(fā)展前景。目前市面上電動電動車的速度表和里程表都是機(jī)械的,看起來不夠直觀與方便。如果能用LED直接顯示出來里程數(shù)或速度值,就可節(jié)省用戶的
26、時間及精力處理電動車行進(jìn)過程中的突發(fā)事件[4]。國內(nèi)外現(xiàn)在生產(chǎn)銷售的很多種電動車速度里程表,某些產(chǎn)品的性能與結(jié)構(gòu)功能簡單,只有測速與里程顯示的功能,比較高端的一些產(chǎn)品除了測量速度和里程顯示功能外,還加入了GPS全球定位,單次行車?yán)锍?,時間,運動時間,平均速度,累計里程,車輪轉(zhuǎn)數(shù)。以后的發(fā)展趨勢可能會加入mp3和短信收發(fā)功能、心率測量、視頻播放,使電動車速度里程表更具有人性化,相信也會受到各個年齡段人的喜歡[5]。隨著電動車的里程表的發(fā)展
27、,它的功能也越來越完善,從以前老式的機(jī)械指針表盤,演變成現(xiàn)在利用數(shù)碼技術(shù)直接利用LED或者LCD顯示,上面清楚的顯示電動車的速度,行駛里程,時間,電池電壓等等,用戶可以隨時了解電動車的行駛現(xiàn)狀,更加便捷。其中的核心部件單片機(jī)體積小,智能化,把它做到產(chǎn)品的內(nèi)部,取代了老式機(jī)械零件,縮小產(chǎn)品的體積,增加功能[6]。</p><p> 隨著電子技術(shù)的迅速發(fā)展和提高,行車記錄儀也不僅僅是里程表,上面會集成更多的功能,路
28、況攝像監(jiān)測,人體疲勞測試程度,智能提醒車的狀況,而不僅僅是顯示,另外新增的語音提醒更加人性化,進(jìn)一步的通訊技術(shù),可以與互聯(lián)網(wǎng)通信,對接收的信息進(jìn)行處理,有利于交通管理。</p><p><b> 1.3課題研究意義</b></p><p> 電動車已成為人們?nèi)粘I钪谐鲂羞\動必不可少的工具,廣泛用于個人家庭娛樂休閑及比賽等方面,給人們的娛樂運動、出行及生活帶來了極
29、大的改變與快捷。電動車速度里程表電子集成電路的發(fā)展多采用了先進(jìn)的智能傳感技術(shù),使電動車速度里程表有測量準(zhǔn)確、工作時性能穩(wěn)定、容易攜帶等優(yōu)勢,它被廣泛用于多個領(lǐng)域的發(fā)展,比如:測速,里程計算及自動控制。由于電動車的里程表基本組成包含:單片機(jī)的自動檢測及控制電路、信號處理電路、顯示電路、報警電路幾部分,因此進(jìn)行電動車速度里程表的研究是非常必要的,研究電動車速度里程表及擴(kuò)展其應(yīng)用鄰域,有著非常現(xiàn)實的意義[7]。</p><
30、p> 1.4本課題研究內(nèi)容</p><p> 在對電動車?yán)锍瘫硪延械难芯康幕A(chǔ)上,本課題設(shè)計了基于AT89C52單片機(jī)的智能里程表硬件系統(tǒng)和軟件系統(tǒng),并對硬件部分和軟件部分進(jìn)行了測試。設(shè)計目標(biāo)也是在力求結(jié)構(gòu)簡單、易于實現(xiàn)、可行性較強(qiáng)的前提下,盡量完善增加其輔助功能。硬件部分設(shè)計了主機(jī)電路、人機(jī)接口電路、存儲電路、報警電路。軟件部分采用了模塊化程序設(shè)計思想,將軟件分為主程序模塊、鍵處理模塊、顯示模塊、數(shù)據(jù)
31、采集處理模塊和報警模塊。對軟件的模塊化處理使軟件設(shè)計結(jié)構(gòu)清晰明了,易于調(diào)試與修改,避免了很多錯誤。此外,對設(shè)計中存在的問題,出現(xiàn)的現(xiàn)象進(jìn)行了進(jìn)一步的分析與改正,完成了設(shè)計任務(wù)。</p><p> 第二章 整體方案設(shè)計</p><p><b> 2.1系統(tǒng)設(shè)計方案</b></p><p> 系統(tǒng)硬件由單片機(jī)AT89C52、霍爾傳感器及信號轉(zhuǎn)
32、換電路、X5045、HD7279鍵盤顯示器、報警電路組成。單片機(jī)采集霍爾傳感器輸出的脈沖信號,其中信號轉(zhuǎn)換電路包含信號放大、波形變換和波形整形,對被測信號進(jìn)行放大的目的是降低對待測信號的幅度要求,波形變換和波形整形電路則用來將放大的信號轉(zhuǎn)換成可與單片機(jī)相連的信號。X5045存儲報警參數(shù),鍵盤顯示器電路根據(jù)按鍵不同控制里程表的顯示,最后用6 位的L E D 能直觀的將速度與里程顯示給用戶,并且在速度高于一定的值時可自動向用戶報警,從而達(dá)到
33、智能速度里程表設(shè)計目的。系統(tǒng)設(shè)計方案圖如圖2-1所示,</p><p> 圖2-1 整體方案設(shè)計框圖</p><p> 本次設(shè)計是以單片機(jī)為核心設(shè)計的里程表系統(tǒng),僅用了較少的硬件和軟件結(jié)合就實現(xiàn)了設(shè)計要求,且性能好,穩(wěn)定性強(qiáng),測速誤差小,還通過軟件編程新增加了一些附加功能,達(dá)到了創(chuàng)新的目的。</p><p><b> 2.2系統(tǒng)工作原理</b&
34、gt;</p><p> 該設(shè)計能實時地將所測的速度與累計里程數(shù)顯示出來,主要是將傳感器輸入到單片機(jī)的脈沖信號的頻率(傳感器將不同車速轉(zhuǎn)變成不同頻率的脈沖信號)實時地測量出來,考慮到信號的衰減、干擾等影響,在信號送入單片機(jī)前應(yīng)對其進(jìn)行放大整形,然后通過單片機(jī)計算出速度和里程,再將所得的數(shù)據(jù)存儲到串口數(shù)據(jù)存儲器,并由按鍵選擇LED顯示模塊顯示所測的速度與里程。同時若檢測到電動車超速,系統(tǒng)將發(fā)出報警提示信號,LED
35、指示燈閃爍。</p><p><b> 2.3系統(tǒng)技術(shù)指標(biāo)</b></p><p> 傳感器對電動車的狀態(tài)進(jìn)行實時檢測,里程表對采樣數(shù)據(jù)進(jìn)行處理,然后轉(zhuǎn)換成標(biāo)準(zhǔn)數(shù)據(jù)輸出。顯示里程和速度,并設(shè)定量程上下限,速度上下限,報警上下限等參數(shù)值。里程表設(shè)計中增加了看門狗定時器功能,因此系統(tǒng)無需每次開機(jī)重新設(shè)定參數(shù)值。里程表的主要技術(shù)指標(biāo)如下:</p><
36、p> 電源供電:5V直流電壓</p><p> 測速范圍:0~20Km/h</p><p> 輸入信號:脈沖方波信號</p><p> 頻率測量范圍:0~10Hz</p><p> 工作濕度:15%~85%RH</p><p> 工作溫度:0~55℃</p><p> 第三章
37、 系統(tǒng)硬件設(shè)計</p><p> 本次的硬件電路設(shè)計主要包括以下幾部分:傳感器選型、人機(jī)接口電路設(shè)計、存儲電路設(shè)計、報警電路設(shè)計。</p><p><b> 3.1傳感器選型</b></p><p> 里程表的需要通過傳感器檢測信號,經(jīng)信號轉(zhuǎn)換電路轉(zhuǎn)換后送到主機(jī)單元進(jìn)行計算,在這里對傳感器進(jìn)行簡單的介紹。</p><p
38、> 電動車?yán)锍瘫碛脗鞲衅魇请妱榆嚴(yán)锍瘫淼闹匾考?,傳感器的?zhǔn)確性直接影響里程表的里程精度,是里程表日常修理中遇到的最多的問題。它的功能是將轉(zhuǎn)動的機(jī)械信號變成電脈沖信號,傳輸給里程表接口,根據(jù)輸入的脈沖數(shù)來計算電動車行駛的里程[9]。</p><p> 目前電動車?yán)锍瘫硭x配的主流傳感器是霍爾式傳感器,它可以檢測轉(zhuǎn)速與轉(zhuǎn)數(shù),而霍爾傳感器尺寸較小,性能穩(wěn)定可靠,工作電路簡單,價格便宜,在里程表設(shè)計中使用廣泛
39、?;魻栐窃诎雽?dǎo)體薄片的兩端控制電流,若在薄片的垂直方向上施加一個磁場,垂直于電流和磁場方向上將產(chǎn)生一個電壓,這個電壓稱為霍爾電壓,這一現(xiàn)象就是霍爾效應(yīng)。根據(jù)霍爾效應(yīng)制造的元件就是霍爾元件。目前里程表用傳感器均為開關(guān)型霍爾傳感器。其特性曲線如圖3-1所示。</p><p> 圖3-1開關(guān)型霍爾傳感器特性曲線圖</p><p> 開關(guān)型霍爾傳感器大小適中 ,性能可靠,價格合適,工作時的
40、電壓范圍較寬,它只需配合一塊小的永久磁鐵就可以做成電動車?yán)锍瘫淼膫鞲衅?。根?jù)產(chǎn)生的脈沖計算出行車?yán)锍蘙12]。</p><p> 目前,大部分傳感器廠家多使用Honeywell公司生產(chǎn)的SS443A開關(guān)型霍爾傳感器。本次畢業(yè)設(shè)計就選用此傳感器。其示意圖如圖3-2。特點:</p><p> (1)(3. 8~24)VDC供電</p><p> ?。?)磁特性溫度補(bǔ)
41、償 </p><p> ?。?)數(shù)字電流沉輸出 </p><p> ?。?)可消除機(jī)械壓力產(chǎn)生的作用</p><p> ?。?)絕對最高電流50mA </p><p> (6)可定制特殊動功釋放點 圖3-2開關(guān)型霍爾傳感
42、器示意圖</p><p> (7)工作溫度范圍( - 40~150) ℃ </p><p> 當(dāng)車輪上的磁條轉(zhuǎn)動到接近霍爾傳感器的位置時,SS443A將接受到磁感應(yīng),此時傳感器輸出一個無抖動的低電平,此低電平使得AT89S52接受到信號,據(jù)此計算出里程數(shù)、實時速度等。其原理如圖3-3所示</p><p> 圖3-3傳感器測距示意圖</p>
43、;<p> 電動車輪子一般為16寸,周長S大概為1330mm,即約為1.33m。兩次相鄰信號直間的時間間隔為t秒,瞬時速度: </p><p><b> Vs=S/t </b></p><p> 單位為m/s。此時記為一個單位的距離。用這個測量的實時速度與設(shè)定的報警速度上限比較,若大于報警上限,則報警。當(dāng)脈沖個數(shù)為N個,初始里
44、程數(shù)為L c時,總里程長度:</p><p> L n=N*L+L c </p><p> 單位為m,用數(shù)字頻率計計數(shù),起動標(biāo)準(zhǔn)轉(zhuǎn)速發(fā)生裝置,使其帶動傳感器在額定轉(zhuǎn)速范圍內(nèi)轉(zhuǎn)動,讀取不同轉(zhuǎn)速時標(biāo)準(zhǔn)轉(zhuǎn)速發(fā)生裝置轉(zhuǎn)動次數(shù)K2與數(shù)字頻率計的計數(shù)值K1。</p><p> 3.1.1信號轉(zhuǎn)換電路設(shè)計</p><p> 如圖3-4所示,系統(tǒng)的信
45、號處理電路由二級電路構(gòu)成,第一級是由開關(guān)三極管組成的零偏置放大器,采用開關(guān)三極管可以保證放大器具有良好的高頻響應(yīng)。當(dāng)輸入信號為零或負(fù)電壓時,三極管截止,電路輸出高電平;而當(dāng)輸入信號為正電壓時,三極管導(dǎo)通,此時輸出電壓隨著輸入電壓的上升而下降,這使得速度里程表既可以測量任意方波信號的頻率,也可以測量正弦波信號的頻率。由于放大器的放大功能降低了對待測信號的幅度要求,因此,系統(tǒng)能對任意大于0.5V 的正弦波和脈沖信號進(jìn)行測量。預(yù)處理電路的第二
46、級采用帶施密特觸發(fā)器的反相器DM74LS14 來把放大器生成的單相脈沖轉(zhuǎn)換成與COMS 電平相兼容的方波信號[9],如圖3-5所示,同時將輸出信號加到單片機(jī)的P1.1 口上。</p><p> 利用施密特觸發(fā)器狀態(tài)轉(zhuǎn)換過程中的正反饋作用,可以把邊沿變化緩慢的周期性信號變換為邊沿很陡的矩形脈沖信號。輸入的信號只要幅度大于VT+,即可在施密特觸發(fā)器的輸出端得到同等頻率的矩形脈沖信號[9],信號轉(zhuǎn)換電路原理框圖如圖3
47、-6所示。</p><p> 圖3-4 信號轉(zhuǎn)換電路圖 圖3-5 信號轉(zhuǎn)換示意圖</p><p> 圖3-6 信號轉(zhuǎn)換電路原理框圖</p><p> 3.2人機(jī)接口電路設(shè)計</p><p> 在本系統(tǒng)中我們采用五個按鍵和八個LED顯示數(shù)碼管,選用的是鍵盤顯示器的專用智能控制芯片HD7
48、279。</p><p> HD7279是管理鍵盤和LED顯示器的專用智能控制芯片,該芯片采用串行接口方式,可同時驅(qū)動8位共陰極LED數(shù)碼管或64位獨立LED發(fā)光二極管,同時能對多達(dá)8×8的鍵盤矩陣進(jìn)行監(jiān)控,具有自動消除鍵抖動并識別按鍵代碼的功能。從而可以提高CPU的工作效率,同時其串行接口方式又可簡化CPU接口電路的設(shè)計[10]。</p><p> HD7279的主要特點:
49、</p><p> (1)CPU間采用串行接口方式,僅占用4根端口線;</p><p> (2)內(nèi)部含有譯碼器,可直接接受BCD碼或16進(jìn)制碼,同時具有2種譯碼方式,實現(xiàn)LED數(shù)碼管位尋址和段尋址,消隱和閃爍屬性等多種控制指令,編程靈活;</p><p> (3)循環(huán)左移和循環(huán)右移指令;</p><p> (4)內(nèi)部含有驅(qū)動器,無需外
50、圍元件可直接驅(qū)動LED;</p><p> (5)具有級聯(lián)功能,可方便的實現(xiàn)多于8位顯示或多于64鍵的鍵盤接口;</p><p> (6)具有自動消除抖動并識別按鍵的功能。</p><p> HD7279 與 AT89C52 僅需4條口線,其中CS為片選信號。當(dāng)AT89C52訪問HD7279時,應(yīng)將片選端置為低電平。DATA為串行數(shù)據(jù)/輸出端,當(dāng)不向HD727
51、9發(fā)送數(shù)據(jù)時,DATA為輸入端;當(dāng)HD7279輸出鍵盤代碼時,DATA為輸出端。CLK為數(shù)據(jù)串行傳送的同步時鐘輸入端,時鐘的上升沿表示數(shù)據(jù)有效。KEY為按鍵信號輸出端,在無鍵按下時為高電平;而有鍵按下時此引腳變?yōu)榈碗娖讲⑶乙恢北3值芥I釋放為止。</p><p> RC引腳用于連接HD7279的外接振蕩元件,其典型值為R=1.5KΩ,C=15Pf。</p><p> RESET為復(fù)位端。
52、該端由低電平變成高電平并且保持25ms即復(fù)位結(jié)束。通常,該端接+5V即可。</p><p> 實際應(yīng)用電路中,8只下拉電阻和8只鍵盤連接位選線DIG1~DIG7的8只位選電阻的阻值應(yīng)遵從一定比例關(guān)系,下拉電阻應(yīng)大于位選電阻的5倍而小于其50倍,典型值是10倍。在本系統(tǒng)中,我們選用了100K的下拉電阻和10K的位選電阻。AT89C52和HD7279連接圖如圖3-7所示,</p><p>
53、 圖3-7 HD7279與AT89C52接口電路</p><p> AT89C52與HD7279引角的連接和相關(guān)的地址分配如下:</p><p> CS:片選,低電平有效,與P1.4相連;</p><p> CLK:串行時鐘輸入端,與P1.5相連;</p><p> DATA:串行數(shù)據(jù)輸入/輸出端,與P1.6相連;</p>
54、;<p> KEY:按鍵有效信號端,與P1.7相連。</p><p> 在本次設(shè)計中利用7279實現(xiàn)鍵盤和顯示器的人機(jī)交互。鍵盤和顯示器由HD7279管理,實現(xiàn)5個按鍵的功能:設(shè)置鍵 清零鍵、增鍵、左移鍵、確認(rèn)鍵。以及顯示器的顯示功能:由LED數(shù)碼管組成,前4位顯示提示號,后4位顯示具體測量值。</p><p> LED顯示如圖3-8所示:</p><
55、;p> 圖3-8 LED顯示圖</p><p><b> 3.3存儲電路設(shè)計</b></p><p> X5045作為單片機(jī)系統(tǒng)電路的一個輔助芯片,它將復(fù)位、電壓檢測 、看門狗定時器和快鎖存保護(hù)的串行 PROM功能集合在一個芯片內(nèi);采用SPI總線串行外設(shè)接口方式,降低了系統(tǒng)成本并減少了對電路板空間的要求,提高了系統(tǒng)的可靠性;適合于需要現(xiàn)場修改數(shù)據(jù)的場合,廣
56、泛應(yīng)用與儀器儀表和工業(yè)自動控制等領(lǐng)域[13]。</p><p> X5045有4種功能:上電復(fù)位、低電平檢測、看門狗定時器和SPI串行 PROM。</p><p> ?。?)上電復(fù)位:當(dāng)器件通電并超過VCC門限電壓時,X5045內(nèi)部的復(fù)位電路將會提供一個約為200ms的復(fù)位脈沖讓微處理器能正常復(fù)位。</p><p> ?。?)低電壓檢測:工作過程中X5045監(jiān)測電
57、源電壓下降并且在電源電壓跌落到VCC門限電壓以下時,產(chǎn)生復(fù)位脈沖并保持有效直到電源電壓1V以下。如果電源電壓在降落到門限電壓后上升,復(fù)位信號消失,微處理器可以繼續(xù)工作。</p><p> (3)看門狗定時器:看門狗定時器對微處理器提供了一個因外界干擾而引起程序陷入死循環(huán)或“跑飛”狀態(tài)的保護(hù)功能。</p><p> (4)串行 PROM存儲器:X5045的存儲器部分是具有塊鎖保護(hù)CMOS
58、 4KB串行 PROM。它被組織成8位的結(jié)構(gòu),由一個四線構(gòu)成的SPI總線方式進(jìn)行操作,一次最多可寫16B。</p><p> 在本次設(shè)計中主要利用X5045串行 PROM存儲測和報警上限值,和通過具看門狗定時器功能保證AT89C52出現(xiàn)死循環(huán)或“跑飛”狀態(tài)的情況下能回到正常狀態(tài)下繼續(xù)工作[13]。AT89C52與X5045 之間的接線圖如圖3-7所示。</p><p> 圖3-7 AT
59、89C52與X5045的接線圖</p><p><b> 3.4報警電路設(shè)計</b></p><p> 報警電路硬件部分主要由蜂鳴器和發(fā)光二極管組成,當(dāng)超過設(shè)定的報警上限時(根據(jù)相關(guān)法規(guī)電動車最高時速不得超過20Km/h),發(fā)出信號使得發(fā)光二極管發(fā)光,蜂鳴器工作,發(fā)出蜂鳴聲。當(dāng)?shù)陀趫缶舷迺r,燈熄滅,蜂鳴器停止發(fā)聲。蜂鳴器電路連接圖如圖3-8所示。</p&g
60、t;<p> 圖3-8 蜂鳴器報警電路連接圖</p><p> 第四章 系統(tǒng)軟件設(shè)計</p><p> 我認(rèn)為軟件是整個畢業(yè)設(shè)計的最核心部分,一切的硬件設(shè)計都是通過軟件來實現(xiàn)的,軟件的成功與否是關(guān)系到整個系統(tǒng)的最后運行,單片機(jī)所具有的智能功能要由軟件來完成,因此要實現(xiàn)單片機(jī)的智能化,是離不開軟件的。因此,我把軟件設(shè)計作為我的工作重點。這里通過程序框圖來介紹本人的軟件設(shè)計
61、思想。</p><p> 本次畢業(yè)設(shè)計軟件部分主要包括:主程序設(shè)計、中斷程序設(shè)計、鍵處理程序設(shè)計、顯示程序設(shè)計、報警程序設(shè)計。</p><p><b> 4.1主程序設(shè)計</b></p><p> 程序設(shè)計采用模塊化設(shè)計,主程序僅完成對電路中各個接口芯片的初始化及定時器初始化、中斷向量初始化以及中斷處理,然后進(jìn)入休眠狀態(tài)。</p&g
62、t;<p> 主程序流程圖如4-1所示</p><p> 圖4-1 主程序流程圖</p><p> 主程序流程圖如4-1所示,完成初始化功能,然后進(jìn)入休眠狀態(tài),由溢出中斷喚醒后,在執(zhí)行完T2的中斷程序后,會重新進(jìn)入休眠狀態(tài),可減少功耗和提高抗干擾能力。</p><p> (1) 內(nèi)存變量初始化是對內(nèi)存變量單元中從20H~FFH的RAM地址進(jìn)行清
63、零處理,因為在偽指令中定義了大量變量,若不對內(nèi)存變量清零將會使程序執(zhí)行不穩(wěn)定,顯示器上也會出現(xiàn)亂碼。定時器T2初始化是因為設(shè)置了T2為捕獲方式 ,實時監(jiān)測P1.1管腳輸入的方波信號。</p><p> (2) X5045初始化主要是對其狀態(tài)寄存器進(jìn)行設(shè)置,本次設(shè)計中X5045的所有單元地址均可進(jìn)行寫入操作,看門狗定時器的喂狗周期設(shè)置為200ms,寫入狀態(tài)寄存器常數(shù)STTAUS-REG=20,所以寫入的命令字為2
64、0H。</p><p> (3) HD7279的初始化是對I/O進(jìn)行高低電平的初始化,同時向HD7279發(fā)送復(fù)位指令(A4H),所有的顯示、設(shè)置的字符、閃爍等屬性也將被一起清除。</p><p> (4) 判斷定時器T2溢出中斷的標(biāo)志位TF_FIG是否為1,當(dāng)為1時,表示是溢出中斷,才會從休眠中喚醒AT89C52,如果沒有判斷,T2的溢出和沿中斷都會喚醒休眠,這樣是為了保持時序的準(zhǔn)確,
65、不會混亂,。</p><p> (5) 判斷SYS_STA是否為0,以及更新采樣值是為了可以實時顯示采樣值,提高系統(tǒng)的實時性,如果少了判斷及更新,顯示需要經(jīng)過設(shè)置鍵的一輪過程才會更新,不會實時顯示出采樣值。</p><p> (6) 鍵處理模塊主要是對按鍵進(jìn)行處理,對是否有按鍵進(jìn)行判斷,若有按鍵則根據(jù)鍵值進(jìn)行相應(yīng)的處理,否則返回。包括在對鍵值進(jìn)行確定后就可使用按鍵對各參數(shù)進(jìn)行修改。&l
66、t;/p><p> (7) 顯示及閃爍模塊主要是對當(dāng)前測量值或各個設(shè)定狀態(tài)值進(jìn)行顯示,對LED顯示器進(jìn)行管理,夠有效的對設(shè)定參數(shù),采樣數(shù)據(jù)進(jìn)行顯示,可改參數(shù)位呈現(xiàn)閃爍狀態(tài),數(shù)據(jù)顯示一目了然,可以對被控對象有直觀的了解。從而使使用者的操作更加方便、簡潔。</p><p> (8) 報警:提取采樣值,與X5045內(nèi)報警上下限進(jìn)行比較,如超出范圍調(diào)用報警程序,拉低蜂鳴器,否則返回。</p&
67、gt;<p> (9) 看門狗定時器進(jìn)行“喂狗”處理,方法很簡單,通過對其片選端CS進(jìn)行置低再置高操作既可,以防止一種因外界干擾而引起程序陷入死循環(huán)或“跑飛”的狀態(tài),起到一個保護(hù)的功能。</p><p> 相關(guān)的主要變量和常量及地址分配偽指令表,一般安排在主程序開始時采用偽指令方式說明,設(shè)計中的變量和常量用表格分類說明,如表4-1,4-2, 4-3所示。</p><p>
68、 表4-1 片內(nèi)RAM主要變量分配偽指令表</p><p> 表4-2 HD7279地址分配偽指令</p><p> 表4-3 X5045主要變量分配偽指令表</p><p><b> 4.2中斷程序設(shè)計</b></p><p> 此次設(shè)計要采樣脈沖信號,因此選用了16位的定時器T2,利用它的捕獲方式捕獲
69、脈沖測出頻率。在程序設(shè)計時,發(fā)現(xiàn)測頻時,定時器T2與T0中斷程序互相干擾,嘗試設(shè)置T0中斷優(yōu)先級,仍然干擾。然后在**指導(dǎo)下,直接從主程序中刪除定時器T0的初始化程序以及T0的中斷服務(wù)程序,只留T2的初始化及中斷采樣程序。將鍵處理模塊、顯示模塊的程序放在主程序的休眠程序中,由定時器T2的溢出中斷喚醒休眠。然后設(shè)置了標(biāo)志位TF_FIG判斷是溢出中斷還是沿中斷,選擇是否喚醒休眠。</p><p> 編寫T2采樣程序
70、,考慮到數(shù)據(jù)的范圍,采用了三字節(jié)浮點數(shù)表示法表示數(shù)據(jù),將數(shù)據(jù)轉(zhuǎn)化為浮點數(shù),調(diào)用了浮點數(shù)的規(guī)格化、加減及乘除子程序處理數(shù)據(jù)。調(diào)試程序后,發(fā)現(xiàn)系統(tǒng)可以測出脈沖的頻率,但數(shù)據(jù)顯示并不穩(wěn)定,經(jīng)過老師提示,在T2采樣程序中加入堆棧指針,用來保護(hù)采樣數(shù)據(jù)。加入堆棧后,系統(tǒng)可以準(zhǔn)確測出脈沖頻率,并且數(shù)據(jù)顯示穩(wěn)定。</p><p> 編寫里程、速度計算程序,再次校對了各個地址變量的地址分配,00H~1FH為工作區(qū)寄存器,20H
71、~2FH為位尋址區(qū),30H~7FH是通用RAM區(qū),將各個地址變量分配在通用RAM區(qū),防止地址定義混亂。經(jīng)過多次修改與調(diào)試,程序調(diào)試成功,可以準(zhǔn)確測出電動車當(dāng)前行駛里程與速度,并能穩(wěn)定顯示。</p><p> 以下介紹定時器T2捕獲方式工作原理及測頻原理圖。</p><p> T2捕獲方式測頻原理示意圖,如圖4-2所示,</p><p> 圖4-2測頻原理示意圖
72、</p><p> T2捕獲方式工作原理:在捕捉方式中,沿中斷和溢出中斷的觸發(fā)方式由T2的控制位EXEN2來選擇。當(dāng)EXEN2=0時,T2是一個16位定時器,計數(shù)溢出時,溢出標(biāo)志位TF2置位,同時激活中斷。當(dāng)EXEN2=1時,T2完成相同的操作,而且當(dāng)T2EX引腳外部輸入信號發(fā)生“1”至“0”負(fù)跳變時, TH2和TL2中的值被捕獲到寄存器RCAP2H和RCAP2L中。另外,T2EX引腳信號的負(fù)跳變使得T2CON
73、中的EXF2置位,與TF2相仿,EXF2也會激活中斷[10]。定時器T2的捕獲方式如圖4-3所示,</p><p> 圖4-3定時器T2的捕獲方式</p><p> 本設(shè)計采用 T2定時中斷測頻,中斷源包括溢出中斷和沿中斷。溢出中斷判斷是否來過沿中斷,計算溢出次數(shù);沿中斷則是響應(yīng)后,捕獲此時T2中的TH2,TL2存到RCAP2H,RCAP2L 兩個寄存器中。</p>&l
74、t;p> 中斷程序種用到了二個標(biāo)志位分別是:FF_FIG和TF_FIG.</p><p> ?。?)FF_FIG:設(shè)FF_FIG=1,初始化中將FF_FIG置1,表示從沒來過沿中斷,當(dāng)?shù)谝粋€沿來時,將FF_FIG置零,此時將計算中需要用到的變量初始化,然后中斷返回。</p><p> ?。?)TF_FIG: 為溢出標(biāo)志位,當(dāng)溢出中斷時,將其清零,使休眠只有在溢出時才會被喚醒,防止時
75、序發(fā)生混亂。</p><p> 圖4-4 T2中斷程序流程圖</p><p> T2中斷程序流程圖如圖4-4所示,進(jìn)入中斷程序時,首先,根據(jù)的EXF2,TF2的值判斷是溢出中斷還是沿中斷,當(dāng)TF2的值為1時,是溢出中斷,執(zhí)行溢出子程序。再判斷FF_FIG值,F(xiàn)F_FIG=0時,表示來過沿中斷,執(zhí)行程序,溢出次數(shù)加1返回;FF_FIG=1表示沒來沿中斷,返回。然后判斷EXF2值,EXF2
76、=1時,表示是沿中斷,執(zhí)行沿中斷子程序,若FF_FIG=1,則是第一次沿,捕獲TH2,TL2,后返回;若FF_FIG=0,則是第二次沿,捕獲后,壓入堆棧,進(jìn)行數(shù)據(jù)處理,彈出返回。 </p><p> 兩次響應(yīng)后,由頻率的計算公式:</p><p> T=65536*F_CYC2+F_H2; (式4.1)</p>
77、<p> f=1/T。 (式4.2)</p><p> 其中F_CYC2表示溢出中斷次數(shù),F(xiàn)_H2表示兩次捕獲值之差,T表示一個周期的寬度,f表示1秒鐘的頻率數(shù)。</p><p> S=3600* f* L (Km/h)
78、 (式4.3)</p><p> V= 3600*f * S (式 4.4)</p><p> 其中S表示里程,V表示當(dāng)前行駛速度,L表示電動車車輪周長。</p><p> 再由式4.3、4.4計算出電動車當(dāng)前行駛速度與里程值。</p><
79、p> 4.3鍵處理程序設(shè)計</p><p> 鍵處理程序主要用來管理鍵盤,判斷并讀取鍵值,和主機(jī)芯片共同管理按鍵。此次設(shè)計的5個按鍵包括:設(shè)定鍵、清零鍵、增加鍵、左移鍵和確定鍵。</p><p> 鍵處理程序中用到了三個變量標(biāo)志位:KEY_OK、KB_FIG和KEY_IN。</p><p> (1)KEY_OK:表示按鍵按下的標(biāo)志位。當(dāng)KEY_OK=1
80、時,無鍵按下,鍵處理程序結(jié)束;當(dāng)KEY_OK=0時,證明有鍵按下,鍵處理程序繼續(xù)執(zhí)行。AT89C52的P1.7與HD7279的KEY按鍵信號輸出端相連。</p><p> ?。?)KB_FIG:表示按鍵處理標(biāo)志位,判斷按鍵是否處理過,因為有這個變量可以避免當(dāng)同一鍵被一直按下時進(jìn)行多次處理。當(dāng)KB_FIG=1時,鍵已經(jīng)處理過,因此不再處理,鍵處理程序結(jié)束;當(dāng)KB_FIG=0時,鍵未被處理過,鍵處理程序繼續(xù)執(zhí)行。&l
81、t;/p><p> ?。?)KEY_IN::表示按鍵的鍵值,每次讀到的鍵值放入KEY_IN中,再通過比較判斷具體是哪個鍵按下,因為有這個變量使程序的可讀性加強(qiáng)。</p><p> 按鍵程序設(shè)計分配在每個時間片內(nèi)完成一次,間隔50ms,通過設(shè)置按鍵標(biāo)志位,保證按一次鍵響應(yīng)一次,按鍵模塊流程如圖4-5所示。</p><p> 圖4-5鍵處理程序流程圖</p>
82、<p> 進(jìn)入鍵處理程序時,首先,根據(jù)KEY_OK的值判斷有無按鍵,若KEY_OK=1,說明無鍵按下,鍵處理程序結(jié)束;若KEY_OK=0,說明有鍵按下,鍵處理程序繼續(xù)執(zhí)行。再根據(jù)KB_FIG的值判斷此按鍵是否處理過,若KB_FIG=1,說明按鍵已經(jīng)處理過,因此不再處理,鍵處理程序結(jié)束;若KB_FIG=0,說明鍵未被處理過,鍵處理程序繼續(xù)執(zhí)行,進(jìn)行鍵值的判斷,當(dāng)讀取完鍵值后,進(jìn)入對應(yīng)的鍵程序,執(zhí)行相應(yīng)的鍵功能。當(dāng)執(zhí)行完鍵處
83、理程序后,將KEY_OK,KB_FIG清零,否則,將不會再進(jìn)入鍵處理模塊。</p><p> 本次設(shè)計的5個按鍵分別是:設(shè)定鍵(20H)、清零鍵(18H)、增加鍵(10H)、左移鍵(08H)、確認(rèn)鍵(00H)。對應(yīng)的鍵碼和功能如表4-4所示。</p><p> 表4-4 按鍵功能及鍵碼表</p><p> 4.3.1設(shè)定鍵子程序設(shè)計</p>&
84、lt;p> 設(shè)定鍵的程序流程如圖4-6所示。</p><p> 圖4-6設(shè)定鍵子程序流程圖</p><p> 設(shè)定鍵標(biāo)志位“STATE”初始值賦為“0”,每按下一次設(shè)定鍵時,“STATE”中的值當(dāng)自加一次,當(dāng)“STATE”為“3”時重新被賦值為“0”。當(dāng)“STATE”為“0”時對應(yīng)顯示當(dāng)前里程值,而“STATE”為“1”時對應(yīng)顯示當(dāng)前速度值,當(dāng)“STATE”中值為“2”時對應(yīng)報
85、警上限參數(shù),參數(shù)值從X5045中讀取。減小、增加、左移、閃爍功能,只有在設(shè)置參數(shù)時才啟用。</p><p> 4.3.2增加鍵子程序設(shè)計</p><p> 增加鍵的程序流程如圖4-7所示</p><p> 圖4-7增加鍵子程序流程圖</p><p> 字位閃爍時,按下增加鍵,數(shù)字將會自動加1,當(dāng)數(shù)字加到9時,再按一次增加鍵數(shù)字會變成0
86、。同樣,增加鍵可以改的數(shù)據(jù)有里程參數(shù)和時間,其它的實時采樣值是不允許改的。在進(jìn)入增鍵程序之前也要對SET_STA進(jìn)行判斷。</p><p> 4.3.3左移鍵子程序設(shè)計</p><p> 左移鍵用于修改閃爍的位置,左移鍵的程序流程如圖4-8所示。</p><p> 圖4-8左移鍵子程序流程圖</p><p> 左移功能是在按下左移鍵時
87、,閃爍位會對應(yīng)的左移一位,相應(yīng)的參數(shù)也就可以修改。本次設(shè)計中的閃爍位只有四位,從右數(shù)第一位到第四位,因此,當(dāng)閃爍位移動到第四位時,再按一下左移鍵,閃爍位會回到右數(shù)第一位進(jìn)行閃爍,如此形成循環(huán)。</p><p> 4.3.4確認(rèn)鍵子程序設(shè)計</p><p> 確認(rèn)鍵的流程圖如4-9所示。</p><p> 圖4-9確認(rèn)鍵子程序流程圖</p><
88、;p> 確認(rèn)鍵將主機(jī)芯片與存儲芯片聯(lián)系起來,用戶參數(shù)經(jīng)過修改后,按下確認(rèn)鍵,參數(shù)將會保存在對應(yīng)的存儲單元中。當(dāng)按下確認(rèn)鍵時,程序會判斷先SET_STA值,若為0、1則不進(jìn)行鍵處理,若為其它值則執(zhí)行確認(rèn)鍵的功能。確認(rèn)鍵主要將報警的上限值存入X5045中,因為X5045有掉電保護(hù)功能,將會保留存儲的數(shù)據(jù),因此,當(dāng)儀表再次上電時,設(shè)定的參數(shù)不用再次設(shè)定,可以直接使用。在設(shè)定完當(dāng)前參數(shù)時,再按一下確認(rèn)鍵,顯示器將切換到下一個設(shè)定參數(shù),操
89、作簡單易行。</p><p><b> 4.4顯示程序設(shè)計</b></p><p> 顯示模塊中,所有LED都采用HD7279的方式0進(jìn)行譯碼,而每個LED的BCD碼在單片機(jī)中都有一個固定的存儲單元,為顯示緩沖區(qū)DR0--DR7,譯碼方式選擇好以后,便開始調(diào)用HD7279程序,將DR0--DR7中的數(shù)值顯示。顯示時第一到第四個LED顯示的是電動車行駛里程與速度值,
90、第五個到第八個顯示的是當(dāng)前狀態(tài)提示符。</p><p><b> 具體的表示符號為:</b></p><p> 1.LP--表示瞬時里程采樣 2.PP--表示里程累積 3.LH--表示速度值 </p><p> 4.EH--表示報警上限 </p><p> 圖4-10顯示程序流程圖</p&g
91、t;<p> 顯示程序流程圖如圖4-10所示,顯示程序主要將主機(jī)芯片AT89C52與HD7279聯(lián)系起來,用來顯示采樣值,修改設(shè)定參數(shù)顯示。在顯示采樣值時,除設(shè)定鍵以外,其余鍵均不動作、同時不執(zhí)行閃爍命令,只有在顯示設(shè)定參數(shù)時,才執(zhí)行其它命令。顯示模塊中包括對LED發(fā)送命令字及閃爍處理,在設(shè)定報警上限參數(shù)值時,需要對LED的3個可修改位(LED3,LED2,LED1)進(jìn)行閃爍處理,結(jié)合左移鍵、確認(rèn)鍵實現(xiàn)對X5045的讀和
92、寫。</p><p> 閃爍程序流程圖如圖4-11所示,</p><p> 圖4-11閃爍程序流程圖</p><p><b> 4.5報警程序設(shè)計</b></p><p> 采樣程序結(jié)束后,將采樣值轉(zhuǎn)換成BCD碼按位存儲到地址單元中,然后在X5045中找到存儲報警上限參數(shù)的的地址單元,按位讀取,由于存入X5045
93、中的參數(shù)值也是以BCD碼的形式存儲的,所以可以將報警上限值與采樣的BCD碼值直接從低位到高位依次相減,然后判斷進(jìn)位位是否為一,若為1,說明電動車當(dāng)前行駛速度值大于報警上限值,超速,則對應(yīng)的上限標(biāo)志位FLAG置1,發(fā)光二極管亮。若進(jìn)位位為0,表示電動車當(dāng)前行駛速度小于報警上限,未超速[17]。</p><p> 程序流程圖如圖4-12所示,</p><p> 圖4-12報警程序流程圖&l
94、t;/p><p> 第五章 電動車?yán)锍瘫淼臏y試</p><p><b> 5.1測試方法</b></p><p> 測試中我們主要通過顯示和按鍵兩種模式測試電動車的各項功能。在實際檢測中,采用信號發(fā)生器來模擬霍爾傳感器的脈沖輸出,信號發(fā)生器輸出接單片機(jī)的脈沖輸入口P1.1。通過模擬過程測出脈沖頻率,并計算累計出當(dāng)前行駛里程和速度。車輪的周長為
95、L米,單片機(jī)每接收到一個脈沖信號就代表車輪轉(zhuǎn)動一周,系統(tǒng)會自動將當(dāng)前的里程進(jìn)行累加。</p><p> 設(shè)定輪圈的周長為L米,在電動車車輪上安裝了n個永久磁鐵,分計算后的里程值最大誤差約為L/n。經(jīng)分析計算,此次設(shè)計中取了n=1。</p><p><b> 5.2誤差分析</b></p><p> 分析系統(tǒng)可知,通過測脈沖頻率計算行駛里程
96、和速度,計算及程序運行過程中產(chǎn)生誤差較小。實驗測試時,采用信號發(fā)生器模擬脈沖輸入,信號發(fā)生器本身存在誤差。分析時,沒有考慮到器械誤差,后來誤把產(chǎn)生的誤差當(dāng)作系統(tǒng)誤差分析,后在老師指導(dǎo)下,考慮到下降沿捕獲過程中產(chǎn)生的誤差,這個誤差才是整個系統(tǒng)的最大誤差。</p><p> 如圖5-1所示,由于溢出周期同一個鐘表一樣,每65536us溢出一次,溢出率=1/65536*106=15Hz,但此時可能從沒有來過脈沖,也沒
97、有下降沿到來,因此會產(chǎn)生一個誤差。</p><p> 圖5-1 溢出周期示意圖</p><p> 晶振頻率為12MHz時,一個機(jī)器周期Tcy為1us,在一個溢出周期內(nèi),對兩次的捕獲結(jié)果作差,最大可能產(chǎn)生2Tcy的誤差。由于相關(guān)的法律法規(guī)規(guī)定電動車最高速度不能超過20Km/h,故速度測量范圍20Km/h,而與此對應(yīng)的脈沖頻率f約為4Hz,周期T約為0.25s=250000us。</
98、p><p> 計算系統(tǒng)相對誤差u為:</p><p> u=±2/250000 *100% =± 0.0008%</p><p> 由計算結(jié)果可知誤差數(shù)據(jù)較小,在儀表精度要求范圍內(nèi),滿足設(shè)計要求。</p><p> 第六章 硬件和軟件調(diào)試</p><p><b> 6.1硬件調(diào)試&l
99、t;/b></p><p> 將萬用表跳到歐姆檔(短路測試),對照電路原理圖依次測量各個觸點是否正常通電導(dǎo)通(如萬用表發(fā)出“嘀嘀”聲,說明電路正常)。按照電路原理圖將各個元器件焊接在印刷電路板上,檢查各焊點有無虛焊、短接等情況,保證焊接質(zhì)量較好。接電源,按鍵顯示正常,用萬用表檢驗輸出數(shù)據(jù)真實性,基本吻合。</p><p><b> 6.2軟件調(diào)試</b>&l
100、t;/p><p> 6.2.1 調(diào)試方法及優(yōu)點</p><p> 此次設(shè)計采用了模塊化思想編寫程序,調(diào)試程序也是分塊調(diào)試,首先將編寫好的模塊程序利用星研單片機(jī)仿真技術(shù)進(jìn)行調(diào)試,檢查語法錯誤,在確定無語法錯誤后,將仿真頭和硬件電路相接,在線調(diào)試該模塊,檢查邏輯錯誤,若程序能實現(xiàn)所需的功能后,用SUPERPR2000編程器將.hex文件寫入芯片中,然后將芯片與實驗設(shè)備連接,調(diào)試程序看是否能顯示
101、預(yù)設(shè)值,該模塊調(diào)試通過后,繼續(xù)進(jìn)行下一模塊的添加,重復(fù)上述步驟。</p><p> 采用模塊化調(diào)試程序的優(yōu)點:使調(diào)試更具目標(biāo)性,降低盲目性,且提高了調(diào)試速率。在調(diào)試通過在模塊基礎(chǔ)上添加另一模塊程序,繼續(xù)調(diào)試,避免了整體程序一起調(diào)試出現(xiàn)的問題。</p><p> 軟件調(diào)試主要是利用星研軟件,用星研仿真器調(diào)試過程中遇到的問題及注意事項:</p><p> ?。?)注
102、意程序中英輸入的區(qū)別(仿真器僅僅識別英文輸入字體)。</p><p> ?。?)程序中的偽指令之間不能相互占用地址或空間。</p><p> (3)仿真器的設(shè)置與操作一定要嚴(yán)格遵循仿真器說明書,并了解仿真頭的規(guī)格。</p><p> ?。?)應(yīng)仔細(xì)檢查子程序中是否有死循環(huán)。</p><p> ?。?)注意仿真器具有自我保護(hù)功能(即X5045
103、的復(fù)位功能對仿真頭沒有作用,仿真器具有自我保護(hù)功能)。</p><p> ?。?)安裝仿真軟件時,應(yīng)該安裝Kiel文件到安裝盤符,否則無法運行仿真軟件。</p><p> ?。?)通過仿真器調(diào)試的程序,并不代表最后的程序,一定要考慮X5045的復(fù)位程序是否存在。</p><p> ?。?)程序調(diào)試應(yīng)該先單步運行,然后單步連續(xù)運行、最后到全速運行,應(yīng)該遵循循序漸進(jìn)的規(guī)
104、律。</p><p> 6.2.2 調(diào)試出現(xiàn)的問題及解決方法</p><p> (1)語法錯誤:編寫程序的初期階段由于經(jīng)驗不足,經(jīng)KEIL軟件進(jìn)行調(diào)試總會發(fā)現(xiàn)一些語法錯誤。如:</p><p> 錯誤1:CJNE LEFT,#00H,SJ 改正: MOV A,LEFT CJNE A,#00H,SJ</p><p> 錯誤2
105、:CJNE A,#00H,KEY_LEFT 原因 KEY_LEFT程序距離太遠(yuǎn),超出范圍。</p><p> 錯誤3:未定義KEY_OK 改正:在偽指令中定義 KEY_OK BIT 10H</p><p> 諸如此類錯誤還有很多,在此就不一一列舉了,但是隨著程序編寫,更加熟練,此類錯誤漸漸減少,后期主要解決的是邏輯錯誤。</p><p>
106、; (2)邏輯錯誤:確定編寫完成的程序無語法錯誤后,將程序用SUPERPR2000編程器將.HEX文件寫入芯片中,然后將芯片與實驗設(shè)備連接,調(diào)試程序看是否能顯示預(yù)設(shè)值。調(diào)試時,發(fā)現(xiàn)的問題主要有:</p><p><b> 一、鍵處理方面</b></p><p> (1)在編寫設(shè)定鍵時,將程序?qū)懭胄酒?,發(fā)現(xiàn)不能切換按鍵</p><p>
107、 原因:1、處理按鍵后,未將處理按鍵標(biāo)志位置1,以表示按鍵已處理。</p><p> 2、改變設(shè)定鍵的狀態(tài)(SET_STA)時,未將改變后的值存入SET_STA.</p><p> (2)上電后,發(fā)現(xiàn)LED不顯示</p><p> 原因:程序運行陷入死循環(huán)。</p><p> (3)閃爍位置不對,與要改變位不符</p>
108、<p> 原因:編增增減時四位與后四位顛倒</p><p> (4)增減循環(huán)時,按-,E,H,L,P,0-9的順序循環(huán)。</p><p> 原因:后四位的顯示方式都是按照方式0的譯碼顯示的。恰好LED的顯示9以后顯示的時-,E,H,L,P,所以控制LED的循環(huán)方式時應(yīng)先減1,再判斷顯示字是否與00H相等。</p><p> (5)按鍵與所讀鍵值不符
109、</p><p> 原因:HD7279子程序中讀取按鍵代碼子程序RECE多移了一位。</p><p> 二、X5045的讀寫</p><p> (1)X5045讀寫進(jìn)不去</p><p> 原因:1、輸入的字符命令如 WRER 前應(yīng)加 #</p><p> 2、子程序從X5045中讀出8位數(shù)據(jù)和向X5045中
110、寫入8位數(shù)據(jù)子程序INBYTE,OUTBYTE時序不對。</p><p> 3、將數(shù)據(jù)寫入指定的E²PROM地址開始的單元子程序漏掉一條OUTBYTE指令。</p><p> (2)報警上下限、量程上下限顯示三個小數(shù)點</p><p> 原因:偽指令將SI與SCK定義錯誤。</p><p> (3) X5045能讀出數(shù),但是
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電動車?yán)锍瘫肀O(jiān)控軟件設(shè)計
- 自行車?yán)锍瘫碓O(shè)計【畢業(yè)論文】
- 畢業(yè)論文--自行車?yán)锍瘫淼脑O(shè)計
- 基于89c51單片機(jī)的電動車?yán)锍瘫懋厴I(yè)設(shè)計
- 基于89c51單片機(jī)的電動車?yán)锍瘫懋厴I(yè)設(shè)計
- 自行車?yán)锍瘫碓O(shè)計【畢業(yè)論文+文獻(xiàn)綜述+開題報告】
- 畢業(yè)設(shè)計--計程車?yán)锍瘫硐到y(tǒng)設(shè)計
- 畢業(yè)論文——電子式里程表
- 電動車?yán)锍趟俣葴y量系統(tǒng)的設(shè)計
- 里程表畢業(yè)設(shè)計論文
- 畢業(yè)論文--單片機(jī)速度里程表設(shè)計
- 自行車?yán)锍瘫淼脑O(shè)計【文獻(xiàn)綜述】
- 自行車?yán)锍瘫淼脑O(shè)計【開題報告】
- 基于單片機(jī)的多功能自行車?yán)锍瘫淼脑O(shè)計_畢業(yè)設(shè)計論文
- 畢業(yè)論文基于單片機(jī)的電子車速里程表的設(shè)計
- 里程表專題
- 自行車?yán)锍趟俣扔嫷脑O(shè)計畢業(yè)論文
評論
0/150
提交評論