自行車測速系統設計說明_第1頁
自行車測速系統設計說明_第2頁
自行車測速系統設計說明_第3頁
自行車測速系統設計說明_第4頁
自行車測速系統設計說明_第5頁
已閱讀5頁,還剩17頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

./2010級畢業設計〔論文題目:基于單片機自行車測速系統專業:電子工程助學站點:電子科技考籍號:姓名:指導教師:20XX9月基于單片機自行車測速系統學生姓名:考籍號:站點:指導教師:完成日期:20XX9月目錄摘要..........................5前言..........................6第1章系統總方案論證與分析...............71.1課題主要任務及容..................71.2任務分析與實現....................71.3硬件方案設計.....................81.4軟件方案設計.....................10第2章軟件方案設計....................112.1概述.........................112.2系統總電路圖.....................112.3單片機簡介.....................122.4傳感器及其測量系統..................142.5其它器件的介紹....................172.6單片機外圍電路的設計.................19第3章軟件程序設計....................233.1概述.........................233.2總體程序設計.....................233.3中斷子程序設計....................283.4顯示子程序的設.....................29結論..........................31參考文獻........................32致..........................33基于單片機自行車測速系統設計摘要隨著居民生活水平的不斷提高,自行車不再僅僅是普通的運輸、代步的工具,而是成為人們娛樂、休閑、鍛煉的首選。自行車的速度里程表能夠滿足人們最基本的需求,讓人們能清楚地知道當前的速度、里程等物理量。本論文主要闡述一種基于霍爾元件的自行車的速度里程表的設計。以AT89C52單片機為核心,A44E霍爾傳感器測轉數,實現對自行車里程/速度的測量統計,采用24C02實現在系統掉電的時候保存里程信息,并能將自行車的里程數及速度用LED實時顯示。文章詳細介紹了自行車的速度里程表的硬件電路和軟件設計。硬件部分利用霍爾元件將自行車每轉一圈的脈沖數傳入單片機系統,然后單片機系統將信號經過處理送顯示。軟件部分用匯編語言進行編程,采用模塊化設計思想。該系統硬件電路簡單,子程序具有通用性,完全符合設計要求。關鍵詞:里程/速度;霍爾元件;單片機;LED顯示前言自行車被發明及使用到現在已有兩百多年的歷史,這兩百年間人類在不斷的嘗試與研發過程中,將玩具式的木馬車轉換到今日各式新穎休閑運動自行車,自行車發展的目的也從最早的交通代步的工具轉換成休閑娛樂運動的用途。隨著居民生活水平的不斷提高,自行車不再僅僅是普通的運輸、代步的工具,而是成為人們娛樂、休閑、鍛煉的首選。因此,人們希望自行車的功用更強大,能給人們帶來更多的方便。自行車里程速度表作為自行車的一大輔助工具也正是隨著這個要求而迅速發展的,其功能也逐漸從單一的里程顯示發展到速度、時間顯示,甚至有的還具有測量騎車人的心跳、顯示騎車人熱量消耗等功能。本設計采用了MCS-51系列單片機設計一種體積小、操作簡單的便攜式自行車的速度里程表,它能自動地顯示當前自行車行走的距離及運行的速度。系統總方案論證與分析1.1課題主要任務及容本課題主要任務是利用霍爾元件、單片機等部件設計一個可用LED數碼管實時顯示里程和速度的自行車的速度里程表。本文主要介紹了自行車的速度里程表的設計思想、電路原理、方案論證以及元件的選擇等容,整體上分為硬件部分設計和軟件部分設計。本文首先扼要對該課題的任務進行方案論證,包括硬件方案和軟件方案的設計;繼而具體介紹了自行車的速度里程表的硬件設計,包括傳感器的選擇、單片機的選擇、顯示電路的設計;然后闡述了該自行車的速度里程表的軟件設計,包括數據處理子程序的設計、顯示子程序的設計;最后針對仿真過程遇到的問題進行了具體說明與分析,對本次設計進行了系統的總結。具體的硬件電路包括AT89C52單片機的外圍電路以及LED顯示電路等。軟件設計包括:芯片的初始化程序、定時中斷采樣子程序、顯示子程序等,軟件采用匯編語言編寫,軟件設計的思想主要是自頂向下,模塊化設計,各個子模塊逐一設計。1.2任務分析與實現本設計的任務是:以通用MCS-51單片機為處理核心,用傳感器將車輪的轉數轉換為電脈沖,進行處理后送入單片機。里程及速度的測量,是經過MCS-51的定時/計數器測出總的脈沖數和每轉一圈的時間,再經過單片機的計算得出,其結果通過LED顯示器顯示出來。本系統總體思路如下:假定輪圈的周長為L,在輪圈上安裝m個永久磁鐵,則測得的里程值最大誤差為L/m。經綜合分析,本設計中取m=1。當輪子每轉一圈,通過開關型霍爾元件傳感器采集到一個脈沖信號,并從引腳P3.2中斷0端輸入,傳感器每獲取一個脈沖信號即對系統提供一次計數中斷。每次中斷代表車輪轉動一圈,中斷數n輪圈的周長為L的乘積為里程值。計數器T1計算每轉一圈所用的時間t,就可以計算出即時速度v。當里程鍵按下時,里程指示燈亮,LED切換顯示當前里程,與當速度鍵按下時,速度指示燈亮,LED切換顯示當前速度。要求達到的各項指標及實現方法如下:1.利用霍爾傳感器產生里程數的脈沖信號。2.對脈沖信號進行計數。 實現:利用單片機自帶的計數器T1對霍爾傳感器脈沖信號進行計數。3.對數據進行處理,要求用LED顯示里程總數和即時速度。實現:利用軟件編程,對數據進行處理得到需要的數值。最終實現目標:自行車的速度里程表具有里程、速度測試與顯示功能,采用單片機作控制,顯示電路可顯示里程及速度。1.3硬件方案設計測速,首先要解決是采樣的問題。使用單片機進行測速,可以使用簡單的脈沖計數法。只要轉軸每旋轉一周,產生一個或固定的多個脈沖,將脈沖送入單片機中進行計算,即可獲得轉速的信息。常用的測速元件有霍爾傳感器、光電傳感器和光電編碼器。里程測量傳感器的選擇也有以下幾種方案:使用光敏電阻對里程進行測量、利用編碼器對車輪的圈數進行測量、利用霍爾傳感器對里程進行測量、利用干簧管型傳感器測量里程。光敏電阻對光特別敏感,當白天行駛時,外界光源將導致光敏電阻發出錯誤信號;光敏電阻對環境的要求相當高,如果光敏或發光二極管被泥沙或灰塵所覆蓋,光敏電阻就不能再進行準確測量;而編碼器必須安裝在車軸上,安裝較為復雜;霍爾元件或干簧管不但不受天氣的影響,即使被泥沙或灰塵覆蓋也不會有影響,而且安裝方便。所以本設計采用霍爾元件對里程與速度進行測量,既簡單易行,又經濟適用。使用霍爾傳感器獲得脈沖信號,其機械結構也可以做得較為簡單,只要在轉軸的齒輪盤上粘上一粒磁鋼,霍爾元件固定在前叉上,當車子轉動時霍爾元件靠近磁鋼,就有信號輸出,轉軸旋轉時,就會不斷地產生脈沖信號輸出。如果在齒輪盤上粘上多粒磁鋼,可以實現旋轉一周,獲得多個脈沖輸出。在粘磁鋼時要注意,霍爾傳感器對磁場方向敏感,粘之前可以先手動接近一下傳感器,如果沒有信號輸出,可以換一個方向再試。這種傳感器不怕灰塵、油污,在工業現場應用廣泛。霍爾傳感器是對磁敏感的傳感元件,常用于信號采集的有A44E,該傳感器是一個3端器件,外形與三極管相似,只要接上電源、地,即可工作,工作電壓圍寬,使用非常方便。A44E的外形如圖1.1所示。1-Vcc2-GND3-OUT圖1.1A44E外形圖單片機由于將CPU、存和一些必要的接口集成到一個芯片上,并且面向控制功能將結構作了一定的優化,所以它有一般芯片不具有的特點:1.體積小、重量輕;2.電源單一、功耗低;3.功能強、價格低;4.全部集成在一塊芯片上,布線短、合理;5.數據大部分在單片機傳送,運行速度快、抗干擾能力強、可靠性高。目前,單片機被廣泛的應用于測控系統、工業自動化、智能儀表、集成智能傳感器、機電一體化產品、家用電器領域、辦公自動化領域、汽車電子與航空航天器電子系統以及單片機的多機系統等領域。在設計中選用的是AT89C52單片機。外部信號外部信號霍爾傳感器外部存儲器AT89C52單片機里程顯示速度顯示報警部分圖1.2系統的原理框圖1.4軟件方案設計通過軟件控制單片機的功能是單片機的主要特點和優點,程序的設計要考慮合理性和可讀性,遵循模塊化設計的原則,采用自頂向下的設計方法。模塊化設計使程序的可讀性好、修改及完善方便。軟件設計包括主程序、行車過程中里程和速度計算子程序、延時子程序、中斷服務子程序、顯示子程序等等。中斷子程序是將傳感器產生的信號接入外部中斷0,將經過74LS74分頻后的信號接入外部中斷1,利用中斷和定時器對分別對里程進行累加、每轉一周的時間進行測量。數據處理子程序是將進入單片機的脈沖信號與實際要顯示值之間有一定的對應關系,經過軟件編程顯示所需要的值。顯示子程序是將數據處理的結果送顯示器顯示。系統軟件總體流程圖如圖1.3所示。初始化初始化P3.0=1?計算里程顯示里程計算速度顯示速度N開始圖1.3軟件總體流程圖第2章硬件電路設計2.1概述自行車的速度里程表的硬件電路設計是基礎部分,它包括信號的捕獲、放大、整形,單片機的計算處理,數碼管的實時顯示和單片機外圍基本電路的設計,兩大主要器件就是傳感器和單片機。傳感器是獲取自然或生產領域息的關鍵器件,是現代信息系統和各種設備不可缺少的信息采集工具。磁傳感器是一種將磁學量信號轉變為電信號的器件或裝置。隨著信息產業、工業自動化、醫療儀器等的飛速發展和計算機應用的普及,需要大量的傳感器將被測或被控的非電信號轉換成可與計算機兼容的電信號。作為輸入信號,這就給磁傳感器的快速發展提供了機遇,形成了磁傳感器的產業。其中最具代表的磁傳感器就是霍爾傳感器,在自動檢測系統中,利用霍爾傳感器測轉數是一種最基本的測量工作。單片機是本次設計的核心部件,它是信號從采集到輸出的橋梁,而且包括計算、定時、信息處理等功能。2.2系統總電路圖圖2.1系統總電路圖2.3單片機簡介單片機是指集成在一個芯片上的微型計算機,也就是把組成微型計算機的各種功能部件,包括CPU<CentralProcessingUnit>、隨機存儲器RAM<RandomAccessMemory>、只讀存儲器ROM<Read-onlyMemory>、基本輸入/輸出<Input/Output>接口電路。定時器/計數器等部件都制作在一塊集成芯片上,構成一個完整的微型計算機從而實現微型計算機的基本功能。單片機部結構示意圖如圖2.2所示。定時/計數器定時/計數器中斷系統CPU存儲器并行I/O口串口I/O口TXD TXDRXDTINTP0-P3圖2.2單片機部結構示意圖單片機的引腳功能介紹AT89C52是美國ATMEL公司生產的低電壓,高性能CMOS8位單片機,片含8KBytes的可反復擦寫的只讀程序存儲器〔EPROM和256字節的隨機存取數據存儲器〔RAM,器件采用ATMEL公司的高密度、非易失性存儲技術生產,與標準MCS-51指令系統及8052產品引腳兼容,片置通用8位中央處理器〔CPU和Flash存儲單元,功能強大,AT89C52單片機適合于許多較為復雜控制場合應用。圖2.3AT89C52引腳圖AT89C52提供以下標準功能:8K字節Flash閃速存儲器,256字節部RAM,32個I/O口線,3個16位定時/計數器,5個中斷源,一個全雙工串行通信口,片具有振蕩器及時鐘電路。AT89C52管腳圖如圖2.3所示。單片機中斷系統介紹中斷是指當計算機執行正常程序時,系統中出現某些急需處理的事件,CPU暫時中止當前的程序,轉去執行服務程序,以對發生的更緊迫的事件進行處理,待處理結束后,CPU自動返回原來的程序執行AT89C52系列單片機的系統有5個中斷源,2個優先級,可實現二級中斷服務嵌套。由片特殊功能寄存器中的中斷允許寄存器IE控制CPU是否響應中斷請求;由中斷優先級寄存器IP安排各優中斷源的優先級;同一優先級各終端同時提出中斷請求時,由部的查詢邏輯確定其響應次序。采用的外部中斷方式包括外部中斷0和外部中斷1,它們的中斷請求信號分別由單片機引腳/P3.2和/P3.3輸入。外部中斷請求有兩種信號方式:電平觸發方式和脈沖觸發方式。電平觸發方式的中斷請低電平有效。只要在和引腳上出現有效低電平時,就激活外部中斷方式。脈沖觸發方式的中斷請求則是脈沖的負跳變有效。在這種方式下,在兩個相鄰機器周期,和引腳電平發生變化,即在第一個機器周期為高電平,第二個機器周期為低電平,就激活外部中斷。由此可見,在脈沖方式下,中斷請求信號的高電平和低電平狀態都應至少維持一個機器周期,以使CPU采樣到電平狀態的變化,本次設計所采用的觸發方式為脈沖觸發方式。傳感器及其測量系統本次設計信號的捕獲采用的是霍爾傳感器。

霍爾器件具有許多優點,它們的結構牢固、體積小、重量輕、壽命長、安裝方便、功耗小、頻率高〔可達1MHz、耐震動、不怕灰塵、油污、水汽及煙霧等的污染或腐蝕。霍爾線性器件的精度高、線性度好;霍爾開關器件無觸點、無磨損、輸出波形清晰、無抖動、無回跳、位置重復精度高。取用各種補償和保護措施的霍爾器件工作溫度圍寬,可達-55℃~150℃。按照霍爾器件的功能可將它們分為:霍爾線性器件和霍爾開關器件,前者輸出模擬量,后者輸出數字量。按被檢測對象的性質可將它們的應用分為:直接應用和間接應用。前者是直接檢測出受檢測對象本身的磁場或磁特性,后者是檢測受檢對象上人為設置的磁場,用這個磁場來作被檢測的信息的載體。通過它,將許多非電、非磁的物理量例如力、力矩、位置、位移、速度、加速度、角度、角速度、轉數、轉速以及工作狀態發生變化的時間等,轉變成電量來進行檢測和控制。霍爾傳感器的測溫原理霍爾傳感器是利用霍爾效應制成的一種磁敏傳感器。在置于磁場中的導體或半導體通入電流I,若電流垂直磁場B,則在與磁場和電流都垂直的方向上會出現一個電勢差Uh,這種現象稱為霍爾效應。利用霍爾效應制成的元件稱為霍爾元件。因為它具有結構簡單、頻率響應寬、靈敏度高、測量線性圍大、抗干擾能力強以及體積小、使用壽命長等一系列特點,因此被廣泛應用于測量、自動控制及信息處理等領域。霍爾效應原理圖如圖2.4所示。圖2.4霍爾效應原理圖集成開關型霍爾傳感器A44E集成霍爾開關由穩壓器A、霍爾電勢發生器<即硅霍爾片>B、差分放大器C、施密特觸發器D和OC門輸出E五個基本部分組成,如圖2.5〔a所示。<1>、<2>、<3>代表集成霍爾開關的三個引出端點。在電源端加電壓Vcc,經穩壓器穩壓后加在霍爾電勢發生器的兩端,根據霍爾效應原理,當霍爾片處在磁場中時,在垂直于磁場的方向通以電流,則與這二者相垂直的方向上將會產生霍爾電勢差VH輸出,該VH信號經放大器放大后送至施密特觸發器整形,使其成為方波輸送到OC門輸出。當施加的磁場達到工作點時,觸發器輸出高電壓<相對于地電位>,使三極管導通,此時OC門輸出端輸出低電壓,通常稱這種狀態為開。當施加的磁場達到釋放點時,觸發器輸出低電壓,三極管截止,使OC門輸出高電壓,這種狀態為關。這樣兩次電壓變換,使霍爾開關完成了一次開關動作。工作點與釋放點的差值一定,此差值稱為磁滯,在此差值,V0保持不變,因而使開關輸出穩定可靠,這也就是集電成霍爾開關傳感器優良特性之一。傳感器主要特性是它的輸出特性,即輸入磁感應強度B與輸出電壓V0之間的關系。A44E集成霍爾開關是單穩態型,由測量數據作出的輸出特性曲線如圖2.5<b>所示。測量時,在1、2兩端加5V直流電壓,在輸出端3與1之間接一個2k的負載電阻,如圖2.6所示。圖2.5集成開關型霍爾傳感器圖2.6集成霍爾開關接線圖其它器件的介紹儲存器的介紹AT24C02是一個2K位串行CMOSE2PROM。部含有256個8位字節,ATMEL公司的先進CMOS技術實質上減少了器件的功耗。AT24C02有一個16字節頁寫緩沖器,該器件通過I2C總線接口進行操作有一個專門的寫保護功能。AT24C02支持I2C總線數據傳送協議。數據傳送是由產生串行時鐘和所有起始停止信號的主器件控制的。主器件和從器件都可以作為發送器或接收器,但由主器件控制傳送數據〔發送或接收的模式,通過器件地址輸入端A0、A1和A2可以實現將最多8個24C02器件連接到總線上。管腳圖如2.7所示。圖2.724C02管腳圖SCL串行時鐘:AT24C02串行時鐘輸入管腳用于產生器件所有數據發送或接收的時鐘。SDA串行數據/地址:CAT24WC02雙向串行數據/地址管腳用于器件所有數據的發送或接收,是一個開漏輸出管腳可與其它開漏輸出或集電極開路輸出進行線或〔wire-OR。WP寫保護:如果WP管腳連接到Vcc所有的容都被寫保護,只能讀。當WP管腳連接到Vss或懸空,允許器件進行正常的讀/寫操作。本次設計采用的24C02是為了防止掉電時里程數據的丟失,由于24C02的數據線和地址線是復用的,采用串口的方式傳輸數據,所以只用兩根線SCL和SDA與單片機傳輸數據。在軟件編程時采用程序包來控制24C02發送或接受數據。74LS74芯片的介紹74LS74是D觸發器的一種,它是一個具有記憶功能的二進制信息存儲器件,是構成多種時序電路的最基本邏輯單元。觸發器具有兩個穩定狀態,即"0”和"1”,在一定的外界信號作用下,可以從一個穩定狀態翻轉到另一個穩定狀態。由于其狀態的更新發生在CP脈沖的邊沿故又稱之為上升沿觸發的邊沿觸發器,D觸發器的狀態只取決于時針到來前D端的狀態。引腳圖如圖2.8所示。圖2.874LS74引腳圖在本題目中74LS74芯片起分頻的作用。當車輪每轉一圈,霍爾傳感器輸出一個低電平脈沖,通過74LS74進行二分頻后,定時器T1的開啟時間為車輪轉1圈的時間,這樣就可以算出自行車的速度。分頻前后對比圖如圖2.9所示。ttt00vv霍爾輸出圈脈沖二分頻后的波形圖2.9分頻前后對比圖由圖可見,二分頻后的波形的高或地電平的時間正好是霍爾傳感器開關的一個周期,霍爾傳感器輸出脈沖到,即P3.2口接收到對圈數計數的脈沖。經74LS74二分頻后的信號輸入到,部定時計數器測得每轉一圈所用的時間,通過計算即可得里程值和即時速度。74LS244芯片的介紹本次設計中的采用驅動數碼管的芯片為74LS244,74LS244為三態輸出的八位緩沖器和線驅動器,若單片機輸出口直接接顯示部分電路,則電流太小,會導致顯示部分不能正常工作。所以在單片機輸出口先接入驅動芯片74LS244,增大電流,使LED能夠正常工作。其邏輯圖如圖2.10所示,可以看出74LS244由2組組成、每組由四路輸入、輸出構成。每組有一個控制端高或低電平決定該組數據被接通還是斷開。圖2.1074LS244邏輯圖單片機外圍電路的設計時鐘電路的設計時鐘是單片機的心臟,單片機各功能部件的運行都是以時鐘頻率為基準,有條不紊地一拍一拍地工作。因此,時鐘頻率直接影響單片機的速度,時鐘電路的質量也直接影響單片機系統的穩定性。AT89C52片由一個反相放大器構成振蕩器,可以由它產生時鐘。常用的時鐘電路有兩種方式,一種是部時鐘方式,另一種為外部時鐘方式。本設計采用前者。單片機部有一個用于構成振蕩器的高增益反相放大器,該高增益反相放大器的輸入為芯片引腳XTAL1,輸出端為引腳XTAL2。這兩個引腳跨接石英晶體振蕩器和電容,就構成一個穩定的自激振蕩器。單片機部時鐘方式的振蕩電路如圖2.11所示。圖2.11單片機片振蕩電路電路中的電容C1和C2常選擇為30P左右。對外接電容的值雖然沒有嚴格的要求,但電容的大小會影響振蕩器的高低、振蕩器的穩定性、起振的快速性和溫度的穩定性。而外接晶體的振蕩頻率的大小,主要取決于單片機的工作頻率圍,每一種單片機都有自己的最大工作頻率,外接的晶體振蕩頻率不大于單片機的最大工作頻率即可。此外,如果單片機有串行通信,則應該選擇振蕩頻率除以串行通信頻率可以除盡的晶體。本設計晶振采用12MHz,則計數周期為S復位電路的設計AT89C52單片機的復位輸入引腳RET為AT89C52提供了初始化的手段。有了它可以使程序從指定處開始執行,即從程序存儲器中的0000H地址單元開始執行程序。在89C52的時鐘電路工作后,只要在RET引腳上出現兩個機器周期以上的高電平時,單片機部則初始復位。只要RET保持高電平,則89C52循環復位。只有當RET由高電平變成低電平以后,89C52才從0000H地址開始執行程序。本系統的復位電路是采用按鍵復位的電路,如圖2.12所示,是常用復位電路之一。單片機復位通過按動按鈕產生高電平復位稱手動復位。上電時,剛接通電源,電容C相當于瞬間短路,+5V立即加到RET/VPD端,該高電平使89C52全機自動復位,這就是上電復位;若運行過程中需要程序從頭執行,只需按動按鈕即可。按下按鈕,則直接把+5V加到了RET/VPD端從而復位稱為手動復位。復位后,P0到P3并行I/O口全為高電平,其它寄存器全部清零,只有SBUF寄存器狀態不確定。圖2.12按鍵復位電路工作原理:通電瞬間,RC電路充電,RST引腳出現高電平,只要RST端保持10ms以上高電平,就能使單片機有效地復位。顯示電路的設計本設計中采用LED數碼管顯示。在單片機系統中,通常用LED數碼顯示器來顯示各種數字或符號。由于它具有顯示清晰、亮度高、使用電壓低、壽命長的特點,因此使用非常廣泛。八段LED顯示器由8個發光二極管組成。其中7個發光二極管構成字型"8"的各個筆畫段,另一個小數點為dp發光二極管。LED顯示器有兩種不同的形式:一種是發光二極管的陽極都連在一起的,稱之為共陽極LED顯示器;另一種是發光二極管的陰極都連在一起的,稱之為共陰極LED顯示器。如圖2.13所示。本次設計采用共陰極接法。LED顯示方式有動態顯示和靜態顯示兩種方式。本系統采用動態掃描顯示接口電路,動態顯示接口電路是把所有顯示器的8個筆劃段a-h同名端連在一起,而每一個顯示器的公共極COM各自獨立地受I/O線控制。CPU向字段輸出口送出字型碼時,所有顯示器接收到相同的字型碼,但究竟是哪個顯示器亮,則取決于COM端。也就是說我們可以采用分時的方法,輪流控制各個顯示器的COM端,使各個顯示器輪流點亮。在輪流點亮掃描過程中,每位顯示器的點亮時間是極為短暫的〔約1ms,由于人的視覺暫留現象及發光二極管的余輝效應,盡管實際上各位顯示器并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩定的顯示數據,不會有閃爍感。圖2.13七<八>段LED顯示器本設計P2.0、P2.1、P2.2、P2.3信號一起組成位選通的位選信號,P0.0~P0.7信號一起組成段碼選通的段選信號,通過軟件編程,先把所要顯示的數據放入存儲單元,然后把數據送入段選通對應的地址,再選通某一個LED,逐步完成四個LED的顯示。第3章軟件程序設計3.1概述在硬件設計完畢之后,接下來就是設計中最核心和最為主要的軟件部分設計。所謂軟件設計就是把軟件需求變換成軟件的具體設計方案〔即模塊結構的過程。模塊化結構設計即是根據要求和硬件設計的結構,將整個系統的功能分成許多小的功能模塊,再根據這些小的功能模塊進行程序編寫的過程。這樣的設計方法,使得系統的整個功能和各部分的功能趨于明朗化。當系統出現問題,就可以根據功能設置找出問題的根源,從而更快地解決問題。所以說,在整個設計過程中,軟件設計必須與硬件設計緊密地結合在一起。基于霍爾傳感器自行車的速度里程表的軟件設計包括上電初始化程序、中斷子程序、速度調用子程序、里程調用子程序、LED顯示子程序、延時子程序等幾大部分。由于要實現很多功能,所以采用模塊化設計,下面就其主要部分分別加以分析。總體程序設計在主程序模塊中,需要完成對各接口芯片的初始化、自行車里程和速度的初始化、中斷向量的設計以及開中斷、循環等待等工作。另外,在主程序模塊中還需要設置啟動/清除標志寄存器、里程寄存器、速度寄存器,并對它們進行初始化。然后主程序將根據各標志寄存器的容,分別完成啟動、清除、計程和計速等不同的操作。P1.0和P1.1口分別用于顯示里程狀態和速度狀態。P1.2、P1.3、P1.6和P1.7口分別用于設置輪圈的大小,低電平有效。P3.0是用于里程和速度切換的,低電平為顯示速度,高電平為顯示里程。中斷0用于對輪子圈數的計數輸入,輪子每轉一圈,霍爾傳感器輸出一個低電平脈沖。將根據里程寄存器中的容計算和判斷出行駛里程數。中斷1用于控制定時器T1的啟/停,當輸入為0時關閉定時器。此控制信號是將輪子圈數的計數經二分頻后形成。這樣,每次定時器T1的開啟時間剛好為轉一圈的時間,根據輪子的周長就可以計算出自行車的速度。其程序流程如圖3.1所示。開始開始初始化P1.2=1?NP1.3=1?P1.6=1?P1.7=1?出錯提示將車圈周長調入21H開中斷,啟動定時器P3.0=1?調用里程處理子程序調用速度處理子程序NNNYYYYNY圖3.1主程序流程圖系統程序設計如下:$INCLUDE<REG52.INC>

DISPBUF

EQU

59H

;顯示緩沖區從5AH開始

SecCoun

EQU

58H

SpCoun

EQU

56H

;速度計時器單元57H和58H,高位在前〔57H單元中

Count

EQU

55H;

顯示時的計數器

SpCalc

bit

00h

;要求計算速度的標志,該位為1則主程序進行速度計算,然后清該位

Hidden

EQU

16

;消隱碼

ORG

0000H

AJMP

START

ORG

1BH

JMP

TIMER1

;定時中斷1入口

ORG

30H

START:

MOV

SP,#5FH

;設置堆棧

MOV

P1,#0FFH

MOV

P0,#0FFH

MOV

P2,#0FFH

;初始化,所有顯示器、LED滅

MOV

TMOD,#00010101B

;定時器T1工作于方式1,定時器0工作方式1,計數器

MOV

TH1,#HIGH<65536-3686>

MOV

TL1,#LOW<65536-3686>

SETB

TR1

SETB

ET1

;開定時器1中斷

SETB

EALOOP:

JNB

SpCalc,LOOP

;如果未要求計算,轉本身循環;標號:MULD

功能:雙字節二進制無符號數乘法

;入口條件:被乘數在R2、R3中,乘數在R6、R7中。

;出口信息:乘積在R2、R3、R4、R5中。

;影響資源:PSW、A、B、R2~R7

堆棧需求:

2字節

MOV

R2,SpCoun

MOV

R3,SpCoun+1

MOV

R6,#0

MOV

R7,#5

;測得的數值是每秒計數值,轉為分〔每一轉測12次,故乘5而非60

CALL

MULDSEND:

MOV

SBUF,R2

SLP1:

JBC

TI,SN1

;是否送完?

AJMP

SLP1

SN1:

MOV

SBUF,R3

SLP2:

JBC

TI,SN2

AJMP

SLP2

SN2:

MOV

SBUF,R4

SLP3:

JBC

TI,SN3

AJMP

SLP3

SN3:

MOV

SBUF,R5

SLP4:

JBC

TI,SN4

AJMP

SLP4

SN4:

;標號:HB2

功能:雙字節十六進制整數轉換成雙字節BCD碼整數

;入口條件:待轉換的雙字節十六進制整數在R6、R7中。

;出口信息:轉換后的三字節BCD碼整數在R3、R4、R5中。

;影響資源:PSW、A、R2~R7

堆棧需求:

2字節

MOV

A,R4

MOV

R6,A

MOV

A,R5

MOV

R7,A

;將乘得的結果送R6R7準備轉換,這里結果不可能超過2字節

CALL

HB2

MOV

DISPBUF,R3

;最高位

MOV

A,R4

;

ANL

A,#0F0H

;去掉低4位

SWAP

A

;將高4位切換到低4位

MOV

DISPBUF+1,A

MOV

A,R4

ANL

A,#0FH

MOV

DISPBUF+2,A

MOV

A,R5

ANL

A,#0F0H

SWAP

A

MOV

DISPBUF+3,A

MOV

A,R5

ANL

A,#0FH

MOV

DISPBUF+4,A

CLR

SpCalc

;清計算標志

JMP

LOOP中斷子程序設計定時中斷是為滿足定時或計數的需要而設置的。在單片機部有兩個定時/計數器,以對其中的計數結構進行計數的方法,來實現定時或計數功能。當結構發生計數溢出時,即表明定時時間或計數值已滿,這時就以計數溢出信號作為中斷請求,去置位一個溢出標志,作為單片機接受中斷請求的標志。這種中斷請在單片機芯片部發生的,因此無須在芯片上設置引入端。關中斷關中斷開始現場保護開中斷中斷處理關中斷現場恢復開中斷中斷返回圖3.2中斷子程序流程圖定時/計數器控制寄存器TCON是8位寄存器,地址為88H,可以位尋址。其高4位用于定時/計數器中斷控制,低4位借給外部中斷,用做中斷標志和觸發方式選擇位。本設計采用定時中斷,對自行車的里程和速度進行計數。中斷子程序流程圖如圖3.2所示。顯示子程序的設計采用動態掃描顯示接口電路,動態顯示接口電路是把所有顯示器的8個筆劃段a-h同名端連在一起,而每一個顯示器的公共極COM各自獨立地受I/O線

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論