畢業(yè)設計基于單片機的萬年歷的設計_第1頁
畢業(yè)設計基于單片機的萬年歷的設計_第2頁
畢業(yè)設計基于單片機的萬年歷的設計_第3頁
畢業(yè)設計基于單片機的萬年歷的設計_第4頁
畢業(yè)設計基于單片機的萬年歷的設計_第5頁
已閱讀5頁,還剩77頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、石家莊鐵道大學四方學院畢業(yè)設計自行車里程表的設計the design of bicycle odometer 2013 屆 電氣工程 系專 業(yè) 電子信息工程 學 號 20096388 學生姓名 符士賓 指導教師 孫秀婷 完成日期 2012年 5月5日摘要近年來人們對健康的要求越來越高,自行車作為一種普遍大眾的運動器械開始進入人們的視野。而自行車里程表就是伴隨著自行車運動的興盛而逐漸發(fā)展起來的本系統(tǒng)由單片機stc89c52、霍爾傳感器、lcd1602液晶顯示屏和獨立按鍵組成硬件部分,軟件部分包括主程序模塊、數(shù)據(jù)采集模塊、顯示模塊、鍵盤掃描模塊。霍爾傳感器完成數(shù)據(jù)采集功能并對單片機輸入脈沖信號,通

2、過單片機程序的設置可對霍爾傳感器輸入的脈沖信號進行計數(shù)和處理,精確地得到單位時間內檢測到的脈沖數(shù),計算自行車速度、加速度、里程,并通過lcd顯示出來。本文先對里程表設計當中所需設備作了詳細介紹,對設計中存在的問題進行了說明;而后對硬件和軟件部分的設計和實現(xiàn)作了認真的分析。本里程表的設計具有結構簡單,成本低廉,顯示清晰,穩(wěn)定可靠等優(yōu)點。關鍵詞:stc89c52單片機lcd1602霍爾傳感器abstractwith the developing of peoples for health,bicycle is becoming a very popular sports equipment in

3、our everyday.while the bicycle odometers are becoming more and more popular with bicycles prosperous. the system is composed of scm st8c9c52, hall sensors, lcd1602 lcd module and the keyboard control component. the software part includes the main modules, data acquisition module, display module and

4、keyboard scanning module. hall sensors complete the data acquisition function and single-chip input pulse signal, through the mcu set to hall sensor-based input pulse signal processing, count and that can accurately calculate added to the pins per unit time the number of pulses detected,while can ge

5、t velocity, acceleration,milestones; design mileage and speed by lcd module, mileage to display. this paper first needed to milestones design of equipment in detail, on the problems existing in the design, explained. and then to hardware and software design and implementation of the part made earnes

6、t analysis; and the simulation results are compared. this milestones design has simple structure, low cost, showed clear, stable and reliable. key words : stc89c52scmlcd1602hall sensor 目錄第1章緒論11.1課題研究背景與現(xiàn)狀11.2本課題所做的工作1第2章系統(tǒng)總體設計方案32.1系統(tǒng)實現(xiàn)的功能32.2設計思路32.3總體設計框圖42.4系統(tǒng)設計選擇42.4.1數(shù)據(jù)采集模塊42.4.2主控芯片的選擇52.4.3按

7、鍵電路的選擇62.4.4顯示模塊的選擇6第3章系統(tǒng)硬件設計83.1概述83.2主控模塊83.3顯示模塊103.4按鍵控制模塊113.5數(shù)據(jù)采集模塊11第4章系統(tǒng)軟件設計134.1概述134.2程序流程圖134.3數(shù)據(jù)采集模塊設計154.4顯示模塊設計164.5鍵盤掃描模塊設計16第5章調試與分析18第6章結論與展望226.1結論226.2展望22參考文獻23致謝24附錄24附錄a外文資料24附錄b硬件原理圖35附錄c程序清單36i石家莊鐵道大學四方學院畢業(yè)設計第1章緒論1.1課題研究背景與現(xiàn)狀時間是科學技術中最基本的物理量之一,無論是農業(yè)生產,還是工業(yè)自動控制,都與時間息息相關,尤其是中國的農

8、業(yè)生產,和農歷日期聯(lián)系緊密,準確的農歷日期,為農業(yè)生產、農民生活帶來極大方便。工業(yè)生產中的延時動作,定時動作等對時間的精確度要求較高。小到運動員的百米賽跑,大到一項工程的實施,都和時間密不可分,所以,萬年歷隨處可見。但是,隨著科技的發(fā)展,人們生活水平不斷提高,人們所關心的不僅僅是時間,還有其他一些像室內溫度、農歷日期、星期等和人們生活聯(lián)系緊密的數(shù)據(jù),甚至對數(shù)字萬年歷的外觀也提出新的要求,這就對萬年歷的功能提出新的更高的要求。近年來隨著計算機在社會各領域的滲透, 單片機的應用正在不斷地走向深入,同時帶動傳統(tǒng)控制方式日新月益。控制方式有從模擬控制向數(shù)字控制轉變的發(fā)展趨勢。微控制芯片具有強大的邏輯運

9、算能力,它的出現(xiàn),使得數(shù)字萬年歷不僅能給人們提供時間,而且還能提供很多新的功能,例如:溫度顯示、農歷顯示、節(jié)氣提示、語音提示、日程表、生日提示、星座查詢、錄音放音、風景控制等。現(xiàn)在的好多數(shù)字萬年歷產品都通過控制內置燈光對萬年歷表面裝飾圖片進行掃描,實現(xiàn)動態(tài)風景;通過控制語音芯片發(fā)出各類鳥叫的聲音,使人們生活在自己的房間里,仿佛身處大自然!可見,現(xiàn)在的數(shù)字萬年歷不僅僅是一個智能化的、可以提供多信息的器件,更是室內的一道風景。上海禮品公司生產的多功能萬年歷具有l(wèi)ed燈顯示、年歷、月歷、時間顯示、12小時或24小時制式、選擇四組定時鬧鈴、整點鈴響、按鍵音、小于100小時倒計時、世界16個城市現(xiàn)在時查

10、詢、1900年到2099年月歷查詢、八位數(shù)四則運算、百分比計算 m+、m-和mrc存儲運算功能貨幣換匯計算。可見,多功能智能化數(shù)字萬年歷是以后萬年歷發(fā)展的方向,基于微控制芯片的數(shù)字萬年歷可以滿足人們對萬年歷的多功能、界面友好和智能化的要求,數(shù)字控制技術將引起萬年歷新的重大改變。1.2本課題所做的工作首先,本課題對系統(tǒng)主要功能進行分析,確定該系統(tǒng)的主要功能是:陽歷日期、時間顯示、農歷日期顯示、星期顯示、環(huán)境溫度顯示和定時鬧鈴,并可以修改時間,在修改時間的過程中,可以對月份天數(shù)自動判斷。其次,系統(tǒng)設計要做的工作是電源分析和設計,該設計選用的集成芯片都采用+5v電源供電,所以,要先對常見220v交流

11、電源進行變換,得到較為穩(wěn)定的、可以滿足系統(tǒng)要求的+5v穩(wěn)壓電源。最后,要對選用的芯片進行學習,尤其是其工作時序,這是實現(xiàn)系統(tǒng)的關鍵。溫度檢測采用ds18b20,由于ds18b20是單總線溫度傳感器,所以,對其控制需要較嚴格的時序。通過查閱資料和仿真掌握單總線數(shù)字溫度傳感器的時序要求和工作流程,該系統(tǒng)主要應用了ds18b20的跳過rom匹配、溫度轉換、讀取溫度指令等。時鐘芯片采用ds1302,為三總線時鐘芯片,為了能夠使其正常工作,要學習其中的寄存器格式、寄存器特殊位作用、讀取時間寄存器數(shù)據(jù)、寫入時間寄存器數(shù)據(jù)等。ds1302時鐘芯片內部沒有集成備用電源,所以,要對其掉電保護環(huán)節(jié)進行考慮和設計。

12、顯示器件選用點陣帶字庫型12864液晶模塊,由于液晶模塊在寫入指令或數(shù)據(jù)后,要經過一段時間才能完成內部動作,所以,對其讀寫控制時要有必要的延時,以等待液晶模塊完成內部動作,才能使寫入的數(shù)據(jù)或指令有效。帶字庫型液晶模塊有基本指令集和擴充指令集,本設計不需要顯示圖片,所以,采用基本指令集。在時間設定環(huán)節(jié),要有設定提示,本系統(tǒng)以游標閃爍方式提示用戶當前所修改的數(shù)據(jù),為此,要對游標閃爍控制方式進行學習。第2章數(shù)字萬年歷硬件設計微控制芯片采用atmel公司的at89s52,其內部含有8k字節(jié)flash,支持usbisp編程,十分方便。溫度傳感器選用ds18b20,它支持3v5.5v的電壓范圍,使系統(tǒng)設計

13、更靈活、方便。時鐘芯片選用美國dallas公司推出的具有涓細電流充電能力的低功耗實時時鐘芯片ds1302。顯示部分選用界面友好的ym12864r液晶模塊,其內部采用st7920a控制器,內置8192個中文漢字(16×16),編程方便,可以節(jié)約很多的程序存儲器空間。2.1微控制器選擇今天,微處理器已經無處不在,無論是錄像機、智能洗衣機、移動電話等家電產品,還是汽車引擎控制,以及數(shù)控機床、導彈精確制導等都要嵌入各類不同的微處理器。微處理器不僅是微型計算機的核心部件,也是各種數(shù)字化智能設備的關鍵部件,其芯片管腳如圖所示。 at89s52芯片管腳at89s52是一種低功耗、高性能cmos8位

14、微控制器。at89s52具有8k在線系統(tǒng)可編程flash存儲器。使用atmel公司高密度非易失性存儲器技術制造,與工業(yè)80c51產品指令和引腳完全兼容。片上flash允許程序存儲器在線系統(tǒng)可編程,亦適于常規(guī)編程器。在芯片上,具有靈巧的8 位cpu 和在線系統(tǒng)可編程flash,使得at89s52為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。at89s52具有以下標準功能:8k字節(jié)flash,256字節(jié)ram,32位i/o口線,看門狗定時器,2個數(shù)據(jù)指針,三個16 位定時器/計數(shù)器,一個6向量2級中斷結構,全雙工串行口,片內晶振及時鐘電路。另外,at89s52可降至0hz 靜態(tài)邏輯操作,支

15、持2種軟件可選擇節(jié)電模式。空閑模式下,cpu停止工作,允許ram、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,ram內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。p0口:p0口是一個8位漏極開路的雙向i/o口。作為輸出口,每位能驅動8個ttl邏輯電平。對p0端口寫“1”時,引腳用作高阻抗輸入。當訪問外部程序和數(shù)據(jù)存儲器時,p0口也被作為低8位地址/數(shù)據(jù)復用口,在這種模式下,p0口具有內部上拉電阻。在flash編程時,p0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。 p1口:p1口是一個具有內部上拉電阻的8 位雙向i/o

16、口,p1 輸出緩沖器能驅動4個ttl 邏輯電平。對p1 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入口使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流。 引腳號第二功能:p1.0 t2(定時器/計數(shù)器t2的外部計數(shù)輸入),時鐘輸出 p1.1 t2ex(定時器/計數(shù)器t2的捕捉/重載觸發(fā)信號和方向控制) p1.5 mosi(系統(tǒng)編程用) p1.6 miso(系統(tǒng)編程用) p1.7 sck(系統(tǒng)編程用) p2口:p2口是一個具有內部上拉電阻的8 位雙向i/o 口,p2 輸出緩沖器能驅動4個ttl 邏輯電平。對p2端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為

17、輸入口使用。作為輸入口使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流。 在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行movx dptr)時,p2口送出高八位地址。在這種應用中,p2口使用很強的內部上拉發(fā)送1。在使用8位地址(如movx ri)訪問外部數(shù)據(jù)存儲器時,p2口輸出p2鎖存器的內容。在flash編程和校驗時,p2口也接收高8位地址字節(jié)和一些控制信號。 p3口:p3口是一個具有內部上拉電阻的8位雙向i/o口,p2輸出緩沖器能驅動4個ttl邏輯電平。對p3端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入口使用時,被外部拉低的引腳由于內部電阻

18、的原因,將輸出電流。 p3口亦作為at89s52特殊功能(第二功能)使用,如下所示。 在flash編程和校驗時,p3口也接收一些控制信號。 p3.0 rxd(串行輸入口)p3.1 txd(串行輸出口)p3.2 into(外中斷0)p3.3 int1(外中斷1)p3.4 to(定時/計數(shù)器0)p3.5 t1(定時/計數(shù)器1)p3.6 wr(外部數(shù)據(jù)存儲器寫選通)p3.7 rd(外部數(shù)據(jù)存儲器讀選通)此外,p3口還接收一些用于flash閃存編程和程序校驗的控制信號。rst復位輸入。當振蕩器工作時,rst引腳出現(xiàn)兩個機器周期以上高電平將使單片機復位,其上電復位硬件原理如圖所示。上電復位硬件原理ale

19、/prog當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ale(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ale仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數(shù)據(jù)存儲器時將跳過一個ale脈沖。對flash存儲器編程期間,該引腳還用于輸入編程脈沖(prog)。如有必要,可通過對特殊功能寄存器(sfr)區(qū)中的8eh單元的d0位置位禁止ale操作。該位置位后,只有一條movx和movc指令才能將ale激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應設置ale禁止位無效。psen程序存儲器允許(psen)輸出,是外部程序存儲器的

20、讀選通信號,當at89s52由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次psen有效,即輸出兩個脈沖,在此期間,當訪問外部數(shù)據(jù)存儲器,將跳過兩次psen信號。ea/vpp外部訪問允許,欲使cpu僅訪問外部程序存儲器(地址為0000h-ffffh),ea端必須保持低電平(接地)。需注意的是:如果加密位lb1被編程,復位時內部會鎖存ea端狀態(tài)。如ea端為高電平(接vcc端),cpu則執(zhí)行內部程序存儲器的指令。flash存儲器編程時,該引腳加上+12v的編程允許電源vpp,當然這必須是該器件是使用12v編程電壓vpp。該系統(tǒng)主控制電路硬件原理如圖所示。系統(tǒng)主控制電路硬件原理2.2溫度測量環(huán)節(jié)

21、設計如今,溫度傳感器的總類可謂五花八門,各溫度傳感器的精度和控制方式都有所不同,價格也相差很大。如何選擇滿足該系統(tǒng)測量室溫的精度要求,并且價格低廉的溫度傳感器,是一個重要問題。dallas半導體公司的數(shù)字化溫度傳感器ds18b20是一線總線接口的溫度傳感器,一線總線具有獨特而經濟的特點,性能價格比非常出色。該系統(tǒng)需要測量室溫,精度要求不是太高,所以,該系統(tǒng)選用ds18b20作為溫度傳感器,其管腳排列如圖所ds18b201 2 3gndi/ovddds18b20管腳微控制器控制ds18b20完成溫度轉換必須經過三個步驟:每一次讀寫之前要對ds18b20進行復位,復位成功后發(fā)送一條rom指令,最后

22、發(fā)送ram指令,這樣才能對ds18b20進行預定的操作。復位要求微控制器將數(shù)據(jù)線下拉500微秒,然后釋放,ds18b20收到信號后等待1660微秒左右,然后發(fā)出60240微秒的存在低脈沖,微控制器收到此信號表示復位成功,如果沒有收到復位成功信號,則表示ds18b20出現(xiàn)問題,可以用來作為系統(tǒng)設計時的故障提示、判斷信號。ds18b20的單總線數(shù)據(jù)傳輸特點,決定了它嚴格的控制時序。微控制器寫1時,數(shù)據(jù)線必須先被拉至低電平,然后就被釋放,使數(shù)據(jù)線在寫時間片開始之后的15微秒之內拉至高電平。微控制器寫0時,數(shù)據(jù)線必須先被拉至低電平且至少保持邏輯低電平60微秒。微控制器把數(shù)據(jù)線從高電平拉至低電平時,產生

23、讀時間片,數(shù)據(jù)線必須保持在邏輯低電平至少1微秒;來自ds18b20的輸出數(shù)據(jù)在讀時間片下降沿之后15微秒有效。因此,為了讀取從時間片開始算起15微秒的數(shù)據(jù)線狀態(tài),微控制器必須停止把數(shù)據(jù)線驅動至低電平。在讀時間片結束時,數(shù)據(jù)線經過外部的上拉電阻拉回至高電平。所有讀時間片的最短持續(xù)期限為60微秒,各個讀時間片之間必須有最短為1微秒的恢復時間。其讀寫時序如圖所示。讀數(shù)據(jù)寫060微秒15微秒45微秒15微秒45微秒15微秒ds18b20寫時間間隙ds18b20讀時間間隙寫1ds18b20讀寫時間間隙該系統(tǒng)對ds18b20進行操作用到的指令為:跳過rom匹配,命令字為0cch;溫度轉換指令,命令字為44

24、h;讀溫度指令,命令字為0beh。系統(tǒng)溫度檢測部分硬件原理如圖所示。系統(tǒng)溫度檢測部分硬件電路2.3 時鐘芯片環(huán)節(jié)ds1302 是美國dallas公司推出的一種高性能、低功耗、帶ram的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補償功能,采用三線接口與cpu進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或ram數(shù)據(jù)。ds1302內部有一個31×8的用于臨時存放數(shù)據(jù)的ram寄存器。ds1302采用主電源/后備電源雙電源引腳,同時提供了對后備電源進行涓細電流充電的能力。ds1302電路的接口簡單、價格低廉、工作電壓為2.5v5.5v,使用方便,被廣泛地采

25、用,所以,該系統(tǒng)選用ds1302。ds1302管腳ds1302的引腳排列,其中vcc1為后備電源,vcc2為主電源,在主電源關閉的情況下,也能保持時鐘的連續(xù)運行。ds1302由vcc1或vcc2兩者中的較大者供電。當vcc2大于vcc10.2v時,vcc2給ds1302供電。當vcc2小于vcc1時,ds1302由vcc1供電。x1和x2是振蕩源,外接32.768khz晶振。rst是復位/片選線,通過把rst輸入驅動至高電平來啟動所有的數(shù)據(jù)傳送。rst輸入有兩種功能:首先,rst接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,rst提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當rst為高電平時

26、,所有的數(shù)據(jù)傳送被初始化,允許對ds1302進行操作。如果在傳送過程中rst置為低電平,則會終止此次數(shù)據(jù)傳送。i/o引腳變?yōu)楦咦钁B(tài)。上電運行時,在vcc2.5v之前,rst必須保持低電平,只有在sclk為低電平時,才能將rst置為高電平。i/o為串行數(shù)據(jù)輸入輸出端(雙向),sclk始終是輸入端。在對ds1302進行讀寫操作時,要首先了解它的控制字。ds1302 的控制字如圖2-10所示。控制字節(jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入ds1302中,位6如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取ram數(shù)據(jù);位5至位1表示操作單元的地址;最低有效位(位0)如為0表示要進

27、行寫操作,為1表示進行讀操作,控制字節(jié)總是從最低位開始輸出。在控制指令字輸入后的下一個sclk時鐘的上升沿,數(shù)據(jù)被寫入ds1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位控制指令字后的下一個sclk脈沖的下降沿讀出ds1302的數(shù)據(jù),讀出數(shù)據(jù)時從1ramcka4a3a2a1a0ramk低位0到高位7。ds1302控制字該系統(tǒng)需要對時間進行讀取和設定,所以,在掌握控制字之后,還必須熟悉ds1302內部各寄存器的地址和特殊狀態(tài)位,其內部各寄存器的地址和特殊狀態(tài)位如表2-1所示。2.4系統(tǒng)設計選擇2.4.1數(shù)據(jù)采集模塊數(shù)據(jù)采集是本次畢設中的數(shù)據(jù)來源部分,數(shù)據(jù)采集的穩(wěn)定性和準確性能夠直接后續(xù)設計過

28、程中的穩(wěn)定性和準確性。數(shù)據(jù)采集模塊由霍爾傳感器利用霍爾原理來對自行車行駛過程中的數(shù)據(jù)進行采集(包括脈沖次數(shù)和變化快慢),且輸出為數(shù)字量可直接輸出到單片機的某一接口。霍爾效應:一塊半導體薄片,其長度為l,寬度為b,厚度為d,置于磁感應強度為b的磁場中,如果在其相對的兩邊通入電流i,且電流與磁場垂直,則在半導體的另兩邊將會產生一個電勢差uh,即uh=(rhib)/d=khib(其中rh為霍爾元件的霍爾系數(shù),kh為霍爾元件的靈敏度),其中該半導體薄片就是霍爾傳感器。半導體長度方向上的兩個金屬電極稱為控制電極(或輸入電極),沿該方向流動的電流i稱為控制電流;寬度方向上的兩個電極稱為霍爾電極(或輸出電極

29、)4。 霍爾傳感器是一種基于霍爾效應的磁轉換器。利用霍爾傳感器可以檢測磁場及其變化,可在各種與磁場有關的場合中獲得廣泛的應用。霍爾傳感器具有許多的優(yōu)點,其結構牢固,體積小,質量輕,壽命長,安裝方便,功耗小,頻率高(可達1mhz),耐震動,不怕灰塵、油污、水汽及煙霧等的污染和腐蝕。本次設計中使用的是開關型傳感器(輸出為數(shù)字量),開關型集成霍爾傳感器具有使用壽命長、無觸點磨損、無火花干擾、無轉換抖動、工作頻率搞、溫度特性好、能適應惡劣環(huán)境等優(yōu)點,主要應用在汽車點火系統(tǒng)、保安系統(tǒng)、轉換/里程測定、機械設備的限位開關、按鈕、電流的測定與控制、位置及角度的檢測等。霍爾傳感器在未來的發(fā)展趨勢將是高靈敏度、

30、高精度和高穩(wěn)定度,它將在微電子技術發(fā)展的基礎上更加飛速的發(fā)展5。2.4.2主控芯片的選擇主控芯片是一個系統(tǒng)最核心的部分,它是整個系統(tǒng)的心臟,負責控制所有模塊的工作。在主控芯片的選擇上更要綜合各方面的條件、資源,下面我總結了兩種方案并比較優(yōu)劣,從而選擇一種更適合的方案。方案一:at89c51是美國atmel公司生產的低電壓,高性能cmos型8位單片機,器件采用atmel公司的高密度、非易失性存儲技術生產,兼容標準mcs-51指令系統(tǒng),片內置通用8位中央處理器(cpu)和flash存儲單元,功能強大。其片內的4k程序存儲器是flash工藝的,這種工藝的存儲器用戶可以瞬間擦除、改寫,一般專為atme

31、l at89xx做的編程器均帶有這些功能。顯而易見,這種單片機對開發(fā)設備的要求很低,開發(fā)時間也大大縮短。寫入單片機內的程序還可以進行加密,這又可以很好地保護我們的勞動成果。再者,at89c51目前的售價比8031還低,市場供應也很充足。at89c51可構成真正的單片機最小應用系統(tǒng),縮小系統(tǒng)體積,增加系統(tǒng)的可靠性,降低系統(tǒng)的成本。只要程序長度小于4k,四個i/o口全部提供給用戶。可用5v電壓編程,而且擦寫時間僅需l0ms。at89c51芯片提供三級程序存儲器加密,提供了方便靈活而可靠的硬加密手段,能完全保證程序或系統(tǒng)不被仿制。po口是三態(tài)雙向口,通稱數(shù)據(jù)總線口,因為只有該口能直接用于對外部存儲器

32、的讀/寫操作。方案二:stc89c52單片機的指令系統(tǒng)和at89c51系列的完全兼容,但實際操作起來卻存在很大不同:1、at89c51不帶isp下載,要用下載器才行,stc89c52可以用自己的usb轉串口下載,下載軟件可以到stc廠家網站上下載。2、stc單片機執(zhí)行指令的速度很快,大約是at的3-30倍(盡管快是好事,但這樣一來,在at上好使的程序在stc上不一定好用,最典型的例子就是那些對時序有嚴格要求的模塊,比如i2c、ds18b20等的時序)。再者,既然執(zhí)行速度快了,那么那些非定時器控制的精確延時肯定要受影響,用stc時注意得加長延時,大約是at的10-30倍,這一點在程序調試的過程中

33、可以切身感受到。 3、stc單片機對工作環(huán)境的要求比較低,電壓低于5伏時仍然正常工作,甚至3到4伏之間都還可以工作,然而這樣的環(huán)境下at肯定不行了,所以當一個系統(tǒng)用stc單片機好用,但用at單片機不工作時,直接查最小系統(tǒng),看單片機的供電是否正常即可6。比較這兩種方案,由于在學校期間學過數(shù)字電路、單片機原理、c語言程序設計,綜合考慮單片機各部分資源和作為學生能夠獲得的資源,我選擇用stc系列芯片完成,且學校也提供了相應的硬件操作平臺,操作起來比較方便,故stc為更合理的選擇。2.4.3按鍵電路的選擇在過程控制和智能化儀表中,通常是用主控芯片進行實時控制和數(shù)據(jù)處理的,為實現(xiàn)人機對話,鍵盤控制是必不

34、可少的部分。利用按鍵可以實現(xiàn)向單片機輸入數(shù)據(jù)、傳送命令、功能切換等,是人工干預單片機系統(tǒng)的主要手段。本次畢設顯示內容較多,而lcd1602是16*2進行顯示的,不能將全部的計算結果進行一次性的全部顯示,所以添加了鍵盤控制部分控制在顯示過程中隨時切換,顯示不同的即時數(shù)據(jù)。鍵盤有兩種類型:編碼鍵盤和非編碼鍵盤。編碼鍵盤必須具有必要的硬件,鍵按下后便產生對應的代碼,在新鍵按下之后一直保持該碼。鍵的數(shù)目增多時,硬件變得復雜。單片機常用機械觸點式按鍵組成非編碼矩陣鍵盤。單片機應用系統(tǒng)用得較多的是非編碼鍵盤。非編碼鍵盤只有兩個動作狀態(tài):斷開或閉合,由1或0來表示。單片機常用機械觸點按鍵組成非編碼矩陣鍵盤7

35、。此次畢設課題中,學校單片機開發(fā)板提供的是矩陣式鍵盤(4*4鍵盤)。對按鍵是否按下,需采用軟件消抖的辦法,以消除按鍵在閉合和斷開瞬間所伴隨有一連串抖動所帶來的不利影響,實現(xiàn)準確操作。2.4.4顯示模塊的選擇本次畢設中的顯示模塊部分選擇的是lcd1602液晶顯示屏(選擇12864也可以,但是考慮實際情況,采用12864器件有些浪費)。與led顯示系統(tǒng)相比,lcd1602具有以下優(yōu)點:1、使用者僅僅直接送入數(shù)據(jù)和指令可實現(xiàn)所需的顯示,使用方便快捷。每當有一個字符需要顯示時,每個led數(shù)碼管就要有七段連接線與主控芯片stc89c52進行連接,使外部電路連接情況變的復雜,而lcd1602卻可以通過內部

36、結構避免這一情況的出現(xiàn)。2、具有低功耗,容易控制,占用cpu資源少的優(yōu)點。用led數(shù)碼管顯示信息所需電流比較大,這對用電池供電的系統(tǒng)來說是不堪負重的,而lcd液晶顯示屏所需的電流較低,完成本次畢業(yè)設計時具有更大的可行性。3、顯示效果相對較好,液晶顯示器顯示不僅直觀,而且界面具有人機交互美觀的特點,用led數(shù)碼管顯示信息,利用8個數(shù)碼管顯示數(shù)字信息,并用發(fā)光二極管分別指示顯示量得內容和單位,例如數(shù)碼管顯示7.3,并且指示速度的發(fā)光二極管亮,它表示當前的速度為7.3千米/小時;用lcd液晶顯示屏顯示信息,在一屏上同時顯示內容、數(shù)字、單位等,例如液晶屏顯示:v =7.3km/h,它表示當前的平均速度

37、為7.3千米/小時,顯示更加美觀8。所以,綜合比較兩者的優(yōu)缺點,最終選擇了lcd1602完成顯示功能 。第3章系統(tǒng)硬件設計3.1概述此次的畢業(yè)設計主要由4個大的模塊構成,分別是數(shù)據(jù)采集模塊、主控模塊、lcd1602顯示模塊、鍵盤控制模塊,其中主控模塊是此次畢業(yè)設計的核心模塊,主要是指stc89c52芯片,它控制整個系統(tǒng)的運行,利用其各個接口與其他部件的連接分別控制其他模塊,使各部分能夠成為一個整體,實現(xiàn)功能的需要;數(shù)據(jù)采集模塊主要是指a3144霍爾傳感器,用來采集自行車騎行過程中的脈沖信號和變化快慢;而顯示模塊是系統(tǒng)的輔助模塊,利用lcd1602用來顯示速度、里程、加速度、秒表;按鍵控制模塊則

38、是用按鍵來控制實現(xiàn)顯示內容,可分別對應顯示平均速度+加速度+總里程顯示或平均速度+加速度+秒表計時+秒表計時里程顯示或秒表計時+秒表計時里程+總里程顯示或平均速度+加速度+瞬時速度顯示或平均速度+加速度顯示或瞬時速度+加速度。3.2主控模塊本文的主控模塊是通過應用stc89c52單片機芯片的計算功能來實現(xiàn)的。stc89c52是一種帶8k字節(jié)閃爍可編程可擦除只讀存儲器(fperom-flash programable and erasable read only memory)的低電壓,高性能comos8的微處理器,俗稱單片機。該器件采用atmel高密度非易失存儲器制造技術制造,與工業(yè)標準的mc

39、s-51指令集和輸出管腳相兼容。芯片內集成了通用8位中央處理器和flash存儲單元,功能強大的微型計算機的stc89c52可為許多嵌入式控制應用系統(tǒng)提供高性價比的解決方案。stc89c52具有如下特點:40個引腳,8k bytes flash片內程序存儲器,256 bytes的隨機存取數(shù)據(jù)存儲器(ram),32個外部雙向輸入/輸出(i/o)口,6個中斷優(yōu)先級,2個具有3級加密位的讀寫中斷口線,3個16位可編程定時/計數(shù)器, 2個可編程uart串行通道,內部和外部時鐘電路,復位電路等,以下我們對其引腳功能進行簡介,其芯片引腳圖如圖3-1所示:vcc:電源輸入,接+3+5v電源。gnd:接地線。x

40、tal1:片內振蕩電路的輸入端。xtal2:片內振蕩電路的輸出端。rst/vpp:復位引腳,引腳上出現(xiàn)2個機器周期的高電平將使單片機復位。ale/prog:地址鎖存允許信號。psen:外部存儲器讀選通信號。ea/vpp:程序存儲器的內外部選通,接低電平從外部程序存儲器讀指令,如果接高電平則從內部程序存儲器讀指令。stc89c52單片機有4組8位的可編程i/o口,分別為p0、p1、p2、p3口,每個口有8位(8根引腳),共32根。p0口:8位漏極開路型雙向i/o口線,名稱為p0.0p0.7。p1口:帶內部上拉電阻的8位準雙向i/o口線,名稱為p1.0p1.7 。p2口:帶有內部上拉電阻的8位準雙

41、向i/o口線,名稱為p2.0p2.7 。p3口:帶有內部上拉電阻的8位準雙向i/o口線,名稱為p3.0p3.7,p3口是一個多用途的端口:可以作為一個準雙向i/o口,也可以按位獨立定義。此外,stc89c52可通過軟件設置省電模式。空閑模式下,cpu暫停工作,而ram定時計數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作;掉電模式下,凍結振蕩器而保存ram的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復位。同時該芯片還具有pdip、tqfp和plcc三種封裝形式,以適應不同產品的需求9。7805為提供單片機工作的電源并連接開發(fā)板usb接口。 圖3-1stc89c52芯片原理圖3.3顯示模塊本設計中的顯示模塊為

42、lcd1602液晶顯示屏,能夠同時顯示16*2即32個字符(16列2行)。注:為了表示的方便,后文皆以1表示高電平,0表示低電平。1602采用標準的16引腳接口,引腳連接如圖3-2所示: 第1腳:vss為電源地;第2腳:vdd接5v電源正極。 第3腳:v0為液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會產生“鬼影”,可以通過一個10k的電位器調整對比度)。第4腳:rs為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器,低電平0時選擇指令寄存器。 第5腳:rw為讀寫信號線,高電平1時進行讀操作,低電平0時進行寫操作。第6腳:e(或en)端為使能(enable)端。第714

43、腳:d0d7為8位雙向數(shù)據(jù)端。第1516腳:空腳或背燈電源;15腳背光正極,16腳背光負極10。 圖3-2lcd1602引腳圖3.4按鍵控制模塊矩陣式結構的鍵盤法要復雜一些,識別也要復雜一些,列線通過電阻接正電源,并將行線所接的單片機的i/o口作為輸出端,而列線所接的i/o口則作為輸入。這樣,當按鍵沒有按下時,所有的輸入端都是高電平,代表無鍵按下。行線輸出是低電平,一旦有鍵按下,則輸入線就會被拉低,這樣,通過讀入輸入線的狀態(tài)就可得知是否有鍵按下,這種確定矩陣式鍵盤上何鍵被按下的方法稱為“高低電平翻轉法”。首先讓p3口高四位為1,低四位為0,若有按鍵按下,則高四位中會有一個1翻轉為0,低四位不會

44、變,此時即可確定被按下的鍵的行位置,然后讓p3口高四位為0,低四位為1,若有按鍵按下,則低四位中會有一個1翻轉為0,高四位不會變,即可確定被按下鍵的列位置。綜合行與列,即可確定按鍵的具體位置。鍵盤排列如圖3-3所示:圖3-3矩陣鍵盤排列圖3.5數(shù)據(jù)采集模塊霍爾傳感器具有一致性好、性能穩(wěn)定、可靠性高、響應速度高的優(yōu)點,可和各種邏輯電路直接進行接口連接的特點。應用霍爾傳感器可以實現(xiàn)無觸點開關、位置/速度檢測與控制、流量檢測的功能,可廣泛應用于紡織機械、縫紉設備、家用電器、安全報警裝置、汽車電子、直流無刷電機等場合。a3144霍爾開關集成電路應用霍爾效應原理,采用半導體集成技術制造的磁敏電路,輸入為

45、磁感應強度,輸出為數(shù)字電壓訊號11。霍爾傳感器連接方式如圖3-4a、3-4b所示:極限參數(shù):(ta=25) 電源電壓vcc········4.5-28v 輸出負載電io······25ma 貯存溫度范圍ts ········-65150工作溫度范圍ta········-4085 圖3-4霍爾傳感器連

46、接方式第4章系統(tǒng)軟件設計4.1概述軟件部分設計是畢業(yè)設計中最集中難點所在,所謂軟件設計就是把硬件具體功能需求變換成軟件的具體設計方案(即模塊結構)的過程。模塊化結構設計就是根據(jù)要求和硬件設計的結構,將整個系統(tǒng)的功能劃分為許多小的功能模塊,再根據(jù)這些小的功能模塊進行程序編寫的過程。這樣的設計方法,使得系統(tǒng)的整體功能和各部分的具體功能趨于明朗化。當系統(tǒng)出現(xiàn)問題,就可以根據(jù)功能設置找出問題的根源,從而更快地解決問題12。另外,在整個設計過程中,軟件設計必須與硬件設計緊密地結合在一起。本設計是在keil c環(huán)境下開發(fā)的,keil c軟件支持c語言的編程及調試,程序編寫運用方便,是做c語言畢業(yè)設計者的首

47、選。設計的首要任務是安裝和學習使用keil c軟件。在簡單的學習和了解keil c后,我們便可在此環(huán)境下開始對自行車里程表的設計工作。自行車里程表的軟件設計包括脈沖接收子程序、速度子程序、里程子程序、lcd顯示子程序、秒表計時子程序、按鍵子程序等幾大部分。由于要實現(xiàn)很多功能,所以采用模塊化設計,下面就其主要部分分別加以分析。4.2程序流程圖在對所要設計的課題有了整體的了解之后,需要先建立程序框架的流程圖,對整個設計劃分模塊,逐個模塊依次實現(xiàn)其各自功能(在某個功能出現(xiàn)問題時只要查找該模塊進行修改即可,省去了整體查找時所帶來的麻煩)最終把各個子模塊合理的連接起來,構成總的程序完成計劃書的功能要求。

48、主程序首先要對整個系統(tǒng)進行初始化,設置stc89c52的開發(fā)模式,中斷設置為邊沿觸發(fā)模式(本程序設置為下降沿有效),lcd進行清零處理(總里程的清零、平均速度的清零、瞬時速度的清零、加速度清零、秒表時間清零),設定每個鍵盤的功能即顯示內容的相互切換。主控芯片stc89c52和lcd1602之間通信的設計是一個較為繁瑣的步驟,在我們所使用的開發(fā)板上主控芯片stc89c52與lcd1602通過單片機自身的p2口連接,獨立鍵盤與矩陣鍵盤的切換通過跳線連接來實現(xiàn)其lcd1602顯示內容的切換。主程序流程圖如圖4-1所示:ynny脈沖接收?調用脈沖接收子程序調用里程子程序調用瞬時速度子程序鍵盤掃描秒表計

49、時?調用秒表計時子程序顯示信息鍵盤輸入?調用顯示子程序結束lcd、定時器初始化開中斷開始ny 圖4-1總體流程圖4.3數(shù)據(jù)采集模塊設計本設計中數(shù)據(jù)準確性最重要的部分就是當周圍磁場變化時13 , 脈沖接收子程序的設計,即信息采集部分的設計。具體的設計思路是:待測信息經開關型霍爾傳感器處理后輸入到單片機的p1.0引腳,單片機通過檢測p1.0引腳電平并對脈沖信號進行計數(shù)。當p1.0引腳為低電平的時候,即ir的值為0時脈沖接收指示燈亮,脈沖接收參數(shù)sj1加1,持續(xù)接收脈沖的話則不計數(shù);當引腳p1.0為高電平的時候,即ir的值為1時脈沖接收指示燈滅,無脈沖接收參數(shù)sj2加1,持續(xù)不接收脈沖的話則不計數(shù)。

50、經過10次脈沖的接收和不接收則表示自行車車輪轉了一圈,圈數(shù)變量y(用于計算總里程)和sp2(用于計算瞬時速度)加1,然后判斷秒表是否開始計時,開始計時即z的值為1,圈數(shù)變量sp2(用于計算平均速度)和count1(用于計算計時里程)加1,相反則置sp2、count1為0。采集模塊流程圖如圖4-2所示:p1.0=0?10次脈沖接收無脈沖接收判斷參數(shù)sj1加1判斷參數(shù)sj2加1 sj1=11? sj2=2?sj1=0sj2=0sj1&sj2=1?sj1、sj2置零圈數(shù)變量加1開始返回ynnnyyny圖4-2采集模塊流程圖4.4顯示模塊設計主控模塊開始時已對rs、rw、e進行了初始化,開始時

51、將顯示的內容進行清零處理。開始騎行后,在不間斷的對脈沖信號進行采樣并利用單片機內部的結構完成計算功能后,通過單片機與液晶顯示屏的連接將即時騎行數(shù)據(jù)送入lcd進行顯示。在停止騎行時,將此時的數(shù)據(jù)存放入e2prom進行保存,在下次騎行時進行調用繼續(xù)顯示。顯示模塊流程圖如圖4-3所示:調用寫入字節(jié)函數(shù)調用命令函數(shù)調用寫入數(shù)據(jù)函數(shù)顯示信息開始返回圖4-3顯示子程序流程圖4.5鍵盤掃描模塊設計鍵盤是實現(xiàn)人機對話的必要設備,用戶可用鍵盤向計算機輸入數(shù)據(jù)或命令。本系統(tǒng)采用獨立鍵盤接口,獨立式按鍵是指直接用i/o口線構成單個的按鍵電路。每一個獨立式按鍵單獨占用一根i/o口線。其接口電路如圖3-3所示。獨立式按

52、鍵接口電路配置靈活,軟件結構簡單。但每個按鍵要占用一根i/o口線,適用于按鍵數(shù)量少的鍵盤。電路中,按鍵輸入低電平有效。按鍵未按時有上拉電阻保證此時輸入為高電平。鍵盤掃描函數(shù),使用行列反轉掃描法。通過分別確定行數(shù)和列數(shù)確定具體的鍵盤位置,從而確定具體顯示內容。鍵盤掃描流程圖如圖4-4所示:按鍵按下?確定按鍵鍵值使用行列反轉法進行掃描顯示信息?顯示子程序開始返回nyyn圖4-4鍵盤掃描模塊流程圖第5章調試與分析本設計軟件的調試與編譯是在uv2的環(huán)境下進行的,uv2支持c語言的編程,我們需要在其uv2環(huán)境下先新建一個工程new project,然后在新工程的file菜單下選擇new file,在新的

53、file中寫入編寫的程序,進行調試和編譯,如圖5-1所示:圖5-1uv2界面圖在新建file時,出現(xiàn)的對話框data base下點擊stc89c51rc series選項,選擇stc89c52rc,即選擇了主控芯片為stc89c52,如圖5-2所示:圖5-2主控芯片選擇圖在新建的file對話框中輸入程序,保存在新建的project中,格式為.c文件,并將其添加到source group 1中,同時建立hex文件,然后進行編譯,當顯示沒有錯誤后,我們便可以進行燒錄。在新的file中寫入程序并編譯的對話框的頁面顯示如圖5-3所示:圖5-3程序運行圖從添加選項中找出剛剛保存文件的地址,選中該文件的.

54、c文件并將其添加到新建立的source group 1中,以下為添加剛建立的.c文件到source group 1中的對話框,如圖5-4所示:在建立目標文件時,需要同時建立hex文件(這是在燒錄的時候所需要用到的格式)當出現(xiàn)以下對話框時選擇output選項, 選擇create hex fi,點擊確定即可建立hex文件,從而在最終燒錄時找到.c文件。以下為建立hex文件時的對話框,如圖5-5所示:圖5-4添加.c文件圖 圖5-5建立hex文件圖在編譯完成后,運用stc_isp_v480軟件將此程序燒錄到開發(fā)板上,實現(xiàn)實物與程序之間的數(shù)據(jù)聯(lián)通。在燒錄前要對stc_isp_v480進行一些必要的設置

55、。第一步:設置mcu type為stc89c52rc;第二步:打開編寫好并編譯的程序文件,它是以.hex為后綴的文件;第三步:選擇對應的com端口,(可在“我的電腦”的“設備管理”處查看com選項);第四步:點擊download下載,等提示請給mcu上電時,打開開發(fā)板上的開關,程序便自動進行燒錄了。燒錄程序的對話框如圖5-6所示:圖5-6燒錄圖在完成對程序的調試及燒錄之后,還需要對其進行演示,把開發(fā)板與電腦連上,設置好對應的接口,完成供電及下載。當完成自行車里程表的調試工作后,便可利用其完成功能測試:初始時,液晶屏顯示器顯示數(shù)據(jù)為0,若霍爾傳感器周圍的磁場始終不變,則液晶顯示屏始終顯示數(shù)據(jù)為0;當霍爾傳感器周圍的磁場開始發(fā)生時,液晶顯示屏的內容發(fā)生變化。當磁場變化速度快時,顯示速度相對比較大;當磁場變化速度慢時,顯示速度相對比較小,但總里程總是進行增加的。當進行按鍵控制時,可以通過按鍵功能完成顯示內容的切換,如可顯示總里程、平均速度和瞬時速度,總里程、秒表和秒表計時里程等。第6章結論與展望6.1結論畢業(yè)設計期間我所設計的自行車里程表,經過多次調試和實驗,基本上可以滿足設計的要求。可以實現(xiàn)騎行過程中對即時的平均速度、瞬時速度、加速度等的顯示,而且可以根據(jù)需要增加模塊實現(xiàn)新的顯示功能,增加方便快捷,不會影響到主程序的結構。本文對自行車里程表作了細致、全面、規(guī)范的分

溫馨提示

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

評論

0/150

提交評論