基于單片機的出租車計費器的畢業(yè)設計論文.doc_第1頁
基于單片機的出租車計費器的畢業(yè)設計論文.doc_第2頁
基于單片機的出租車計費器的畢業(yè)設計論文.doc_第3頁
基于單片機的出租車計費器的畢業(yè)設計論文.doc_第4頁
基于單片機的出租車計費器的畢業(yè)設計論文.doc_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

基于單片機出租車計費器的設計 目 錄摘 要2abstract31 課程設計任務書41.1 課程設計任務41.2 課程設計方案42硬件電路設計62.1 振蕩電路62.2 復位電路設計62.3 鍵盤接口電路72.4 顯示電路72.4.1 1602lcd的基本參數及引腳功能72.4.2 顯示模塊采用1602液晶顯示接口電路92.5 單片機各引腳功能說明93 軟件設計113.1 單片機資源使用113.2 單片機軟件模塊設計123.2.1 中斷子函數123.2.2 判鍵子函數123.2.3 顯示子程序133.3 總程序流程框圖14總結15參考文獻16致謝17附錄1 元件件清單18附錄2 原理圖19附錄3 程序清單20摘 要 本設計的是一個基于單片機stc89c52的出租車自動計費設計,附有復位電路,時鐘電路,鍵盤電路等。復位電路是單片機的初始化操作,除了正常的初始化外,為擺脫困境,通過復位電路可以重新開始。時鐘電路采用12mhz的晶振,作為系統(tǒng)的時鐘源,具有較高的準確性。在上電時字符型液晶1602顯示最初的起步價,里程收費,等待時間收費三種收費,通過按鍵可以調整起步價,里程收費,等待時間收費。通過按鍵模擬出租車的運行,暫停,停止。在1602液晶上可以顯示運行的時間,運行時暫停的時間,通過計算可以得出總共的費用和總的路程。在這里主要是以stc89c52單片機為核心控制器,p1口接1602液晶顯示模塊。關鍵字 stc89c52;1602液晶;出租車計費器abstractthe design is based on a monolithic integrated circuit stc89c52 taxi billing design, with reset circuit, clocking circuit, keyboard circuit. reset circuit is initialized, besides the normal operation of the initial dilemma, as a foreigner, through the reset circuit can start again. 12mhz adopts the clock circuit, as a system of crystal oscillator, higher clock source.the characters in the crystal that the initial 1602, charges, fees mileage waiting time, three buttons can be adjusted by charging fees, just waiting time, mileage. through the simulation of the taxi, buttons, stop. suspension in the liquid crystal display can run 1602, operation time, when suspension can be obtained by the computation of the total cost.here is mainly for the core controller, stc89c52 scm p0 mouth after 1602 lcd module, p1 mouth after the keys, through the keystroke.keyword: stc89c52;1602 lcd;taxi devices1 課程設計任務書1.1 課程設計任務 基于單片機出租車模擬計價器,采用at24c02存儲芯片+lcd1602液晶顯示等設計而成。用24c02來存儲單價,通過按鍵來模擬增加里程,模擬出租車向前開。通過液晶顯示器顯示當前的行駛狀態(tài)、行駛公里、行駛時間時間(時、分、秒)、費用、單價、等信息。可以設置每公里單價,以及夜間單價和白天單價的不同模式,設置后掉電無需重新設置,設置有等待/繼續(xù)計時模式。計費分行走的里程*單價+等待的時間*價格。1.2 課程設計方案方案一:采用數字電子技術,利用555定時芯片構成多諧振蕩器,或采用外圍的晶振電路作為時鐘脈沖信號,采用計數芯片對脈沖盡心脈沖的計數和分頻,最后通過譯碼電路對數據進行譯碼,將譯碼所得的數據送給數碼管顯示,一下是該方案的流程框圖,方案一如圖1.1所示:時鐘脈沖等待信號公里脈沖計費脈沖計時計費譯碼數碼管顯示圖1.1方案一 方案二:采用eda技術,根據層次化設計理論,該設計問題自頂向下可分為分頻模塊,控制模塊 計量模塊、譯碼和動態(tài)掃描顯示模塊,其系統(tǒng)框圖如圖1.2所示:時鐘信號等待信號公里脈沖計費/復位分頻器控制器計費計時計程譯碼顯示圖1.2方案二方案三:采用mcu技術,通過單片機作為主控器,利用1602字符液晶作為顯示電路,采用外部晶振作為時鐘脈沖,通過按鍵可以方便調節(jié),一下是方案三的系統(tǒng)流程圖,本方案主要是必須對于數字電路比較熟悉,成本又高。方案圖如圖1.3所示:stc89c521602液晶led燈電源電路按鍵電路復位電路圖1.3方案三方案總結:通過各個方案的比較本次采用方案三,不但控制簡單,而且成本低廉,設計電路簡單。2硬件電路設計2.1 振蕩電路 單片機內部有一個高增益、反相放大器,其輸入端為芯片引腳xtal1,其輸出端為引腳xtal2。通過這兩個引腳在芯片外并接石英晶體振蕩器和兩只電容(電容和一般取20pf)。這樣就構成一個穩(wěn)定的自激振蕩器。 振蕩電路脈沖經過二分頻后作為系統(tǒng)的時鐘信號,再在二分頻的基礎上三分頻產生ale信號,此時得到的信號時機器周期信號。振蕩電路如圖2.1所示:圖2.1振蕩電路2.2 復位電路設計 復位操作有兩種基本形式:一種是上電復位,另一種是按鍵復位。按鍵復位具有上電復位功能外,若要復位,只要按圖中的reset鍵,電源vcc經電阻r1、r2分壓,在reset端產生一個復位高電平。上電復位電路要求接通電源后,通過外部電容充電來實現單片機自動復位操作。上電瞬間reset引腳獲得高電平,隨著電容的充電,rerst引腳的高電平將逐漸下降。rerst引腳的高電平只要能保持足夠的時間(2個機器周期),單片機就可以進行復位操作。按鍵復位電路圖如圖2.2所示。 圖2.2復位電路2.3 鍵盤接口電路 (1) 獨立式鍵盤:獨立式鍵盤中,每個按鍵占用一根i/o口線,每個按鍵電路相對獨立。i/o口通過按鍵與地相連,i/o口有上拉電阻,無鍵按下時,引腳端為高電平,有鍵按下時,引腳電平被拉低。i/o口內部有上拉電阻時,外部可不接上拉電阻。鍵盤接口電路如圖2.3所示: 圖2.3鍵盤接口電路2.4 顯示電路2.4.1 1602lcd的基本參數及引腳功能1602lcd分為帶背光和不帶背光兩種,基控制器大部分為hd44780,帶背光的比不帶背光的厚,是否帶背光在應用中并無差別,兩者尺寸差別如圖10所示。 圖10 lm016l結構圖lcd1602主要技術參數:容量:162個字符芯片工作電壓:4.55.5v工作電流:2.0ma(5.0v)模塊最佳工作電壓:5.0v字符尺寸:2.954.35(wh)mm引腳功能說明:1602lcd采用標準的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表1所示: 表1引腳接口說明表編號符號引腳說明編號符號引腳說明1vss電源地9d2數據2vdd電源正極10d3數據3vl液晶顯示偏壓11d4數據4rs數據/命令選擇12d5數據5r/w讀/寫選擇13d6數據6e使能信號14d7數據7d0數據15bla背光源正極8d1數據16blk背光源負極第1腳:vss為地電源。第2腳:vdd接5v正電源。第3腳:vl為液晶顯示器對比度調整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產生“鬼影”,使用時可以通過一個10k的電位器調整對比度。第4腳:rs為寄存器選擇,高電平時選擇數據寄存器、低電平時選擇指令寄存器。第5腳:r/w為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當rs和r/w共同為低電平時可以寫入指令或者顯示地址,當rs為低電平r/w為高電平時可以讀忙信號,當rs為高電平r/w為低電平時可以寫入數據。第6腳:e端為使能端,當e端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第714腳:d0d7為8位雙向數據線。第15腳:背光源正極。第16腳:背光源負極。 2.4.2 顯示模塊采用1602液晶顯示接口電路 圖2.4顯示電路 2.5 單片機各引腳功能說明 下面對stc89c52各引腳的功能進行較為詳細的介紹:1)電源引腳vcc和vss vcc(40腳):電源端為+5v vss(20腳):接地端。 2)時鐘電路引腳xtal1和xtal2xtal2(18腳):接外部晶體和微調電容的一端。在單片機內部它是振蕩電路反向放大器的輸出端,振蕩電路的頻率就是晶體固有頻率。若需采用外部時針電路時,該引腳輸入外時鐘脈沖。要檢查89c52的振蕩電路是否正常工作,可用示波器查看xtal2端是否有脈沖信號輸出。xtal1(19腳):接外部晶體和微調電容的另一端。在片內,它是振蕩電路反向放大器的輸入端。在采用外部時鐘時,該引腳必須接地。 3)控制信號腳 rst ale psen 和ea。 rst(9腳):rst是復位信號輸入端,高電平有效。在此輸入端保持兩個機器周期(24個時鐘振蕩周期)的高電平時,就可以完成復位操作。ale/prog(30引腳):地址鎖存允許信號端。當stc89c52上電正常工作后,ale引腳不斷向外輸出正脈沖信號。此頻率為振蕩器頻率fosc的1/6,當cpu訪問片外存儲器時,ale輸出信號作為鎖存低8位地址的控制信號。在cpu訪問片外數據存儲時,每取值一次(一個機器周期)會丟失一個脈沖。平時不訪問片外存儲時,ale端也以1/6的振蕩頻率固定輸出正脈沖,因而ale信號可以用作對外輸出時鐘或定時信號。如果你想看一下stc89c52芯片的好壞,可用示波器查看ale端是否有脈沖信號輸出,如有脈沖信號輸出,則stc89c52基本上是好的。ale的負載驅動能力為8個ls型ttl(低功耗高速ttl)。 psen(29腳);程序存儲允許輸出信號引腳,在訪問片外程序存儲器時,此端定時輸出負脈沖作為讀片外存儲器的選通信號。此引腳接errom的oe端。psen端有效,即允許讀出errom/rom中的指令碼。cpu在從外部errom/rom取指令期間,每個周期psen兩次有效。不過,在訪問片外ram時,要少產生兩次psen負脈沖信號。要檢查一個stc89c52小系統(tǒng)上電后cpu能否正常到errom/rom中讀取指令碼,也可用于示波器看psen端有無脈沖輸出。如有,說明基本上工作正常。ea/vpp(31腳):外部程序存儲器地址允許輸入端/固化編程電壓輸入端。當ea引腳接高電平時,cpu只訪問片內errom/rom并執(zhí)行內部程序存儲器中的指令。但在pc(程序計數器)的值超過offfh(對8751/8051為4k)時,將自動轉向執(zhí)行片外存儲器的程序。當出入信號ea引腳接低電平(接地)時,cpu只訪問外部errom/rom并執(zhí)行外部程序存儲器中的指令,而不管是否有片內程序存儲器。對于無芯片內的rom的8031或8032,須外擴errom,此時必須將ea引腳接地。如果使用有片內rom的stc89c52,外擴errom也是可以的,但也要使ea接地。4)i/o(輸入/輸出端口,p0,p1,p2,p3)p0口:p0口是一個漏極開路的8位準雙向i/o端口。p1口:8位準雙向i/o端口。p2口:即可以做地址總線輸出地址高8位,也可以做普通i/o用,(此時為準雙向口)。p3口:雙功能口,即可以做普通i/o口用(此時為準向口,也可以按每位定義實現第二功能操作)。見表1。表1 p3口的第二功能表引腳第二功能p3.0rxd (串行輸入口)p3.1txd (串行輸出口)p3.2int0(外部中斷0)p3.3int1(外部中斷1)p3.4t0(定時器0外部中斷)p3.5t1(定時器1外部中斷)p3.6wr(外部存儲器寫選通)p3.7rd(外部存儲器讀寫通)3 軟件設計3.1 單片機資源使用在本次設計中像電路鍵盤用到了p2口,其中p2.0到p2.5口作為鍵盤的輸入,顯示電路用到了p1和p3口,p1口為液晶的數據口。3.2 單片機軟件模塊設計3.2.1 中斷子函數 對于中斷程序,只要定時器計數滿就會產生中斷50ms中斷一次,共計20次,秒鐘加1,秒鐘計滿再分鐘加,當分鐘加到99時全部清零。以下是中斷子函數的流程圖如圖3.1所示:圖3.1中斷子程序流程圖3.2.2 判鍵子函數 對于獨立式鍵盤判鍵,首先看有鍵按下不,如果有鍵按下則延時一會兒,在判斷是否真的有鍵按下,如果確實有鍵按下,在判鍵釋放,最后執(zhí)行鍵功能程序。判鍵子函數的流程框圖如圖3.2所示: 圖3.2判鍵子程序流程圖3.2.3 顯示子程序 1602液晶是字符型液晶,它的內部自帶字符庫,它可以寫兩行的字符,同時每行可以寫40個字符,在寫顯示程序的時候,我們先寫命令,再設定字符顯示,最后寫數據,在每寫一次命令或數據都需要判斷液晶是否忙。液晶顯示程序流程圖如圖3.3所示: 3.3顯示子程序流程圖3.3 總程序流程框圖整體程序的流程框圖如圖3.4所示:圖3.4整體程序的流程框圖總結出租車計費器系統(tǒng)的設計已經全部完成,能按預期的效果進行模擬汽車啟動,停止,暫停等功能,并能夠通過lcd顯示車費數目。本款出租車計價器包括單價輸出、單價調整、顯示當前的系統(tǒng)時間等功能。另外,多功能出租車計價器還具有性能可靠、電路簡單、成本低、實用性強等特點,加上經過優(yōu)化的程序,使其有很高的智能化水平。幾個月來,經過自己努力,基本上完成了設計要求的內容,在系統(tǒng)可行性分析、原理圖設計等方面都作了許多實際工作,取得了一些成績,同時也遇到了一些問題,存在一些不足。經過這幾個月的學習和工作,我覺得自己不論是在理論知識方面還是在動手能力方面都有了不小的進步,自己從中受益匪淺。這次設計很好的把以前學到的理論知識應用于實踐,使我認識到理論知識與實踐之間有一定的差距,只有通過不斷的努力學習和實踐才能很好的把理論知識應用到實踐當中,也只有通過不斷的實踐才能對理論知識的理解。通過這次設計不僅學會了如何去查找相關資料,更重要的是通過查找資料和翻閱書籍學到了不少知識,擴大了知識面,提高了知識水平。經過單元設計和系統(tǒng)設計鞏固了以前所學的專業(yè)知識,自己真正認識到理論聯(lián)系實際的重要性,為以后的學習和工作提供了很多有價值的經驗。通過這次設計不僅增強了自己的動腦能力和動手能力,也提高了我思考問題、分析問題、解決問題的能力,更重要的是學會用工程化的思想來解決問題。這在以前的學習過程中是不曾學到的。在短短的三個月時間內完成設計內容,在很大程度上得益于老師的幫助。這次設計是我認真認識到完整、嚴謹、科學分析問題、解決問題的思想是多么的重要,只有擁有了科學的態(tài)度才能設計出有用的產品。另外通過本次設計,是我認識到自己理論知識的應用能力有很大的欠缺,需要在以后的學習中進一步提高。參考文獻1 李廣弟,朱月秀,冷祖祁.單片機基礎m.第3版.北京航空航天大學出版社,2007年1月2李華.mcs-51系列單片機實用接口技術m.北京航空航天大學出版社,19963 馬忠梅,張凱,馬巖,單片機的c語言應用程序設計,m,北京:北京航空航天大學出版社,2003.11;4 胡輝,單片機原理及應用設計21世紀高等院校規(guī)劃教材m,水利水電出版社,2005.7;5 劉守義,單片機應用技術m,西安:西安電子科技大學出版社,1996.8;致謝 本論文是在何淑珍老師的悉心指導下完成的,何老師的淵博學識和豐富經驗給我留下了深刻的印象。從何老師那里我學到的不僅是專業(yè)知識與實際問題科學解決的方法,更為重要的是勤奮和嚴謹治學的精神以及對學生的認真負責,老師的諄諄教誨使我受益匪淺,在此向何老師表示衷心的感謝并致以崇高的敬意!感謝家人給予我學業(yè)上和生活上的支持與照顧。同時感謝給予我?guī)椭母魑焕蠋煛⑼瑢W以及朋友們!附錄1 元件件清單 表5.1元器件清單 名稱規(guī)格數量備注 電阻 2001個1k1個10k5個1002個 電容20pf2個10f2個極性電容 發(fā)光二極管3個 按鍵7個直流電機1個 晶振12mhz1個 芯片stc89c521塊1602液晶1塊內帶字符庫附錄2 原理圖附錄3 程序清單#include /調用單片機頭文件#define uchar unsigned char /無符號字符型 宏定義變量范圍0255#define uint unsigned int /無符號整型 宏定義變量范圍065535uchar miao,fen = 0,shi;uchar flag_bai_hei; /白天的晚上的標志位uchar value;uint bai_3l_price = 60; /白天3千米內的單價 6元uint bai_3w_price = 18; /白天3千米外的單價/千米 1.8元uint bai_wait_price = 5; /白天等待時的單價/分鐘 0.5元uint wan_3l_price = 70; /晚上3千米內的單價/千米 7元uint wan_3w_price = 22; /晚上3千米外的單價/千米 2.2元uint wan_wait_price = 10; /晚上等待時的單價/分鐘 1元uint distance = 0; /行使的距離uint zong_jia; /總的價bit flag_300ms = 0;bit flag_1s ;bit flag_time_en = 0;#include lcd1602.h/*1ms延時函數*/void delay_1ms(uint q)uint i,j;for(i=0;iq;i+)for(j=0;j= 5) /按鍵松開松手檢測key_value = 0;key_new = 1;/按鍵松開后進入等待按鍵狀態(tài)else if(key_io & 0x3f) != 0x3f) /按鍵按下key_value +;else key_value =0;if(key_value = 5)/按鍵按下消抖key_value = 0;key_new = 0; /按鍵松開后進入等待松開按鍵狀態(tài)key_can = 20;if(key_new = 0) & (key_old = 1)switch(key_io & 0x3f)case 0x3e: key_can = 1; break; /得到按鍵值 case 0x3d: key_can = 2; break; /得到按鍵值 case 0x3b: key_can = 3; break; /得到按鍵值 case 0x37: key_can = 4; break; /得到按鍵值 case 0x1f: key_can = 5; break; /得到按鍵值 case 0x2f: key_can = 6; break; /得到按鍵值 /write_sfm2(2,0,key_can); /按鍵按下顯示按鍵值 key_old = key_new; #include menu.h/*對應菜單內的處理函數*/void menu_dis()if(menu_1 = 0)if(key_can = 6)distance +;write_sfm4(1,0,distance); if(key_can = 5) /清零 從新計價flag_time_en = 0;shi = 0;fen = 0;miao = 0;zong_jia

溫馨提示

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

評論

0/150

提交評論