版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、基于單片機(jī)出租車計(jì)費(fèi)器的設(shè)計(jì)題 目 基于單片機(jī)的出租車計(jì)價(jià)器 學(xué) 生 指導(dǎo)教師 王旭輝年 級(jí) 2012級(jí)專 業(yè) 電子信息工程二級(jí)學(xué)院 信息工程學(xué)院邯鄲學(xué)院信息工程學(xué)院2015年1月目 錄摘 要2ABSTRACT31 課程設(shè)計(jì)任務(wù)書41.1 課程設(shè)計(jì)任務(wù)41.2 課程設(shè)計(jì)方案42硬件電路設(shè)計(jì)62.1 振蕩電路62.2 復(fù)位電路設(shè)計(jì)62.3 鍵盤接口電路72.4 顯示電路72.4.1 1602LCD的基本參數(shù)及引腳功能72.4.2 顯示模塊采用1602液晶顯示接口電路92.5 單片機(jī)各引腳功能說明93 軟件設(shè)計(jì)113.1 單片機(jī)資源使用113.2 單片機(jī)軟件模塊設(shè)計(jì)123.2.1 中斷子函數(shù)123
2、.2.2 判鍵子函數(shù)123.2.3 顯示子程序133.3 總程序流程框圖14總結(jié)15參考文獻(xiàn)16致謝17附錄1 元件件清單18附錄2 原理圖19附錄3 程序清單20基于單片機(jī)的出租車計(jì)價(jià)器1 引言隨著現(xiàn)代經(jīng)濟(jì)飛速的發(fā)展,人民生活水平的提高,越來越多的居民為了方便的出行,大都會(huì)選擇乘坐出租車出行,而且隨著科學(xué)技術(shù)的前進(jìn),各種各樣的打車軟件相繼出現(xiàn),例如滴滴打車軟件等,都更加方便了生活,人們?yōu)榱烁咝实幕顒?dòng)也更傾向于打車,于是了解出租車必備設(shè)備計(jì)價(jià)器成了人們的興趣,這可以使我們了解其原理,避免出現(xiàn)被多要費(fèi)用等情況的出現(xiàn)。本課題采用STC89C52單片機(jī)進(jìn)行設(shè)計(jì),其中用按鍵來實(shí)現(xiàn)輪胎轉(zhuǎn)圈行駛的里程數(shù)
3、、顯示模式的切換、時(shí)鐘的調(diào)整、等待時(shí)間的增加等功能,使用DS1302進(jìn)行計(jì)時(shí),LCD1602液晶顯示屏顯示,使用芯片at24C02進(jìn)行內(nèi)容存儲(chǔ),使用Keil編程軟件編寫程序,實(shí)現(xiàn)了路程清零、里程數(shù)增加及路程和費(fèi)用的顯示、時(shí)間的加減調(diào)整、顯示內(nèi)容的切換等功能。主要研究步驟如下:(1)熟悉STC89C52rc單片機(jī)及其最小系統(tǒng)與開發(fā)環(huán)境;(2)將所需器件按照原理圖進(jìn)行焊接(3)在Keil中編寫程序(4)將程序下載到單片機(jī)中,進(jìn)行測試和調(diào)試。2 背景2.1 選題背景我國在70年代開始出現(xiàn)出租車,但那時(shí)的計(jì)費(fèi)系統(tǒng)大都是國外進(jìn)口,不但不準(zhǔn)確,而且價(jià)格還十分昂貴。隨著改革開放日益深入,出租車行業(yè)的發(fā)展勢頭
4、已經(jīng)十分突出,國內(nèi)各機(jī)械廠家紛紛推出國產(chǎn)計(jì)價(jià)器。出租車計(jì)價(jià)器的功能從剛開始的只顯示路程(需要司機(jī)自己定價(jià),計(jì)算后四舍五入),到能夠自主計(jì)費(fèi)。隨著城市旅游業(yè)的發(fā)展,出租車行業(yè)已成為城市的窗口,象征著一個(gè)城市的文明程度?,F(xiàn)在各大中城市出租車行業(yè)都已經(jīng)普及自動(dòng)計(jì)價(jià)器,所以計(jì)價(jià)器技術(shù)的發(fā)展已成定局。隨著城市建設(shè)日益加快,象征著城市面貌的出租車行業(yè)也將加速發(fā)展,而計(jì)價(jià)器的普及也是毫無疑問,所以未來汽車計(jì)價(jià)器的市場十分有潛力。 2.2 選題目的及意義出租車時(shí)城市交通的重要組成部分,行業(yè)健康和發(fā)展也獲得越來越多的關(guān)注。出租車計(jì)價(jià)器是乘客與司機(jī)雙方的交易準(zhǔn)則,它是出租車行業(yè)發(fā)展的重要標(biāo)志,是出租車中最重要的工
5、具。它關(guān)系著交易雙方的利益。具有良好性能的計(jì)價(jià)器無論是對廣大出租車司機(jī)朋友還是乘客來說都是很必要的。因此,出租車計(jì)價(jià)器的研究的研究也是十分有應(yīng)用價(jià)值的。3 設(shè)計(jì)要求基于單片機(jī)出租車模擬計(jì)價(jià)器,采用at24c02存儲(chǔ)芯片+LCD1602液晶顯示等設(shè)計(jì)而成。用24c02來存儲(chǔ)單價(jià),通過按鍵來模擬增加里程,模擬出租車向前開。通過液晶顯示器顯示當(dāng)前的行駛狀態(tài)、行駛公里、行駛時(shí)間時(shí)間(時(shí)、分、秒)、費(fèi)用、單價(jià)、等信息??梢栽O(shè)置每公里單價(jià),以及夜間單價(jià)和白天單價(jià)的不同模式,設(shè)置后掉電無需重新設(shè)置,設(shè)置有等待/繼續(xù)計(jì)時(shí)模式。計(jì)費(fèi)分行走的里程*單價(jià)+等待的時(shí)間*價(jià)格。3.1 系統(tǒng)功能(1) k1:開啟顯示屏,
6、模式選擇。模式一:無人狀態(tài)下,顯示時(shí)間和單價(jià);模式二:等待時(shí)間顯示,模式三:顯示時(shí)分秒和年月日。(2) k2:調(diào)整時(shí)鐘(3) k3:在模式二中表示等待時(shí)間開始和暫停;在模式三中表示調(diào)整位的自減。(4) k4:在模式三中表示調(diào)整位的自加。(5) k5:在模式一中表示里程自加,每按下一次表示里程加0.1K。(6) k6:乘客下車后里程清零。4 課程方案論證4.1 方案一:采用數(shù)字電子技術(shù),利用555定時(shí)芯片構(gòu)成多諧振蕩器,或采用外圍的晶振電路作為時(shí)鐘脈沖信號(hào),采用計(jì)數(shù)芯片對脈沖盡心脈沖的計(jì)數(shù)和分頻,最后通過譯碼電路對數(shù)據(jù)進(jìn)行譯碼,將譯碼所得的數(shù)據(jù)送給數(shù)碼管顯示,一下是該方案的流程框圖,方案一如圖4
7、.1所示:時(shí)鐘脈沖等待信號(hào)公里脈沖計(jì)費(fèi)脈沖計(jì)時(shí)計(jì)費(fèi)譯碼數(shù)碼管顯示圖4.1方案一4.2 方案二 采用EDA技術(shù),根據(jù)層次化設(shè)計(jì)理論,該設(shè)計(jì)問題自頂向下可分為分頻模塊,控制模塊 計(jì)量模塊、譯碼和動(dòng)態(tài)掃描顯示模塊,其系統(tǒng)框圖如圖4.2所示:時(shí)鐘信號(hào)等待信號(hào)公里脈沖計(jì)費(fèi)/復(fù)位分頻器控制器計(jì)費(fèi)計(jì)時(shí)計(jì)程譯碼顯示圖4.2方案二4.3 方案三采用MCU技術(shù),通過單片機(jī)作為主控器,利用1602字符液晶作為顯示電路,采用外部晶振作為時(shí)鐘脈沖,通過按鍵可以方便調(diào)節(jié),一下是方案三的系統(tǒng)流程圖,本方案主要是必須對于數(shù)字電路比較熟悉,成本又高。方案圖如圖4.3所示:STC89C521602液晶LED燈電源電路按鍵電路復(fù)位
8、電路圖4.3方案三 圖4.3方案三4.4 方案選擇通過各個(gè)方案的比較本次采用方案三,不但控制簡單,而且成本低廉,設(shè)計(jì)電路簡單。5 硬件電路設(shè)計(jì)5.1 振蕩電路單片機(jī)內(nèi)部有一個(gè)高增益、反相放大器,其輸入端為芯片引腳XTAL1,其輸出端為引腳XTAL2。通過這兩個(gè)引腳在芯片外并接石英晶體振蕩器和兩只電容(電容和一般取30pF)。這樣就構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。 振蕩電路脈沖經(jīng)過二分頻后作為系統(tǒng)的時(shí)鐘信號(hào),再在二分頻的基礎(chǔ)上三分頻產(chǎn)生ALE信號(hào),此時(shí)得到的信號(hào)時(shí)機(jī)器周期信號(hào)。振蕩電路如圖5.1所示:圖5.1振蕩電路5.2 復(fù)位電路設(shè)計(jì) 復(fù)位操作有兩種基本形式:一種是上電復(fù)位,另一種是按鍵復(fù)位。按鍵復(fù)
9、位具有上電復(fù)位功能外,若要復(fù)位,只要按圖中的RESET鍵,電源VCC經(jīng)電阻R1、R2分壓,在RESET端產(chǎn)生一個(gè)復(fù)位高電平。上電復(fù)位電路要求接通電源后,通過外部電容充電來實(shí)現(xiàn)單片機(jī)自動(dòng)復(fù)位操作。上電瞬間RESET引腳獲得高電平,隨著電容的充電,RERST引腳的高電平將逐漸下降。RERST引腳的高電平只要能保持足夠的時(shí)間(2個(gè)機(jī)器周期),單片機(jī)就可以進(jìn)行復(fù)位操作。按鍵復(fù)位電路圖如圖2.2所示。 圖5.2復(fù)位電路5.3 鍵盤接口電路 (1)獨(dú)立式鍵盤:獨(dú)立式鍵盤中,每個(gè)按鍵占用一根I/O口線,每個(gè)按鍵電路相對獨(dú)立。I/O口通過按鍵與地相連,I/O口有上拉電阻,無鍵按下時(shí),引腳端為高電平,有鍵按下時(shí)
10、,引腳電平被拉低。I/O口內(nèi)部有上拉電阻時(shí),外部可不接上拉電阻。鍵盤接口電路如圖2.3所示: 圖5.3鍵盤接口電路5.4 顯示電路5.4.1 1602LCD的基本參數(shù)及引腳功能1602LCD分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應(yīng)用中并無差別,兩者尺寸差別如圖10所示。 圖10 LM016L結(jié)構(gòu)圖LCD1602主要技術(shù)參數(shù): 容量:16×2個(gè)字符芯片工作電壓:4.55.5V工作電流:2.0mA(5.0V)模塊最佳工作電壓:5.0V字符尺寸:2.95×4.35(W×H)mm引腳功能說明:1602LCD
11、采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表1所示: 表1引腳接口說明表編號(hào)符號(hào)引腳說明編號(hào)符號(hào)引腳說明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號(hào)14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時(shí)對比度最弱,接地時(shí)對比度最高,對比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K的電位器調(diào)整對比度。第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)
12、寄存器、低電平時(shí)選擇指令寄存器。第5腳:R/W為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和R/W共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平R/W為低電平時(shí)可以寫入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。第714腳:D0D7為8位雙向數(shù)據(jù)線。第15腳:背光源正極。第16腳:背光源負(fù)極。 5.4.2 顯示模塊采用1602液晶顯示接口電路 圖5.4顯示電路 5.5 單片機(jī)各引腳功能說明 下面對STC89C52各引腳的功能進(jìn)行較為詳細(xì)的介紹:1)電源引腳Vcc和Vss Vcc(40腳):電源端
13、為+5V Vss(20腳):接地端。 2)時(shí)鐘電路引腳XTAL1和XTAL2XTAL2(18腳):接外部晶體和微調(diào)電容的一端。在單片機(jī)內(nèi)部它是振蕩電路反向放大器的輸出端,振蕩電路的頻率就是晶體固有頻率。若需采用外部時(shí)針電路時(shí),該引腳輸入外時(shí)鐘脈沖。要檢查89C52的振蕩電路是否正常工作,可用示波器查看XTAL2端是否有脈沖信號(hào)輸出。XTAL1(19腳):接外部晶體和微調(diào)電容的另一端。在片內(nèi),它是振蕩電路反向放大器的輸入端。在采用外部時(shí)鐘時(shí),該引腳必須接地。 3)控制信號(hào)腳 RST ALE PSEN 和EA。RST(9腳):RST是復(fù)位信號(hào)輸入端,高電平有效。在此輸入端保持兩個(gè)機(jī)器周期(24個(gè)時(shí)
14、鐘振蕩周期)的高電平時(shí),就可以完成復(fù)位操作。ALE/PROG(30引腳):地址鎖存允許信號(hào)端。當(dāng)STC89C52上電正常工作后,ALE引腳不斷向外輸出正脈沖信號(hào)。此頻率為振蕩器頻率fosc的1/6,當(dāng)CPU訪問片外存儲(chǔ)器時(shí),ALE輸出信號(hào)作為鎖存低8位地址的控制信號(hào)。在CPU訪問片外數(shù)據(jù)存儲(chǔ)時(shí),每取值一次(一個(gè)機(jī)器周期)會(huì)丟失一個(gè)脈沖。平時(shí)不訪問片外存儲(chǔ)時(shí),ALE端也以1/6的振蕩頻率固定輸出正脈沖,因而ALE信號(hào)可以用作對外輸出時(shí)鐘或定時(shí)信號(hào)。如果你想看一下STC89C52芯片的好壞,可用示波器查看ALE端是否有脈沖信號(hào)輸出,如有脈沖信號(hào)輸出,則STC89C52基本上是好的。ALE的負(fù)載驅(qū)動(dòng)
15、能力為8個(gè)LS型TTL(低功耗高速TTL)。 PSEN(29腳);程序存儲(chǔ)允許輸出信號(hào)引腳,在訪問片外程序存儲(chǔ)器時(shí),此端定時(shí)輸出負(fù)脈沖作為讀片外存儲(chǔ)器的選通信號(hào)。此引腳接ERROM的OE端。PSEN端有效,即允許讀出ERROM/ROM中的指令碼。CPU在從外部ERROM/ROM取指令期間,每個(gè)周期PSEN兩次有效。不過,在訪問片外RAM時(shí),要少產(chǎn)生兩次PSEN負(fù)脈沖信號(hào)。要檢查一個(gè)STC89C52小系統(tǒng)上電后CPU能否正常到ERROM/ROM中讀取指令碼,也可用于示波器看PSEN端有無脈沖輸出。如有,說明基本上工作正常。EA/VPP(31腳):外部程序存儲(chǔ)器地址允許輸入端/固化編程電壓輸入端。
16、當(dāng)EA引腳接高電平時(shí),CPU只訪問片內(nèi)ERROM/ROM并執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令。但在PC(程序計(jì)數(shù)器)的值超過OFFFH(對8751/8051為4k)時(shí),將自動(dòng)轉(zhuǎn)向執(zhí)行片外存儲(chǔ)器的程序。當(dāng)出入信號(hào)EA引腳接低電平(接地)時(shí),CPU只訪問外部ERROM/ROM并執(zhí)行外部程序存儲(chǔ)器中的指令,而不管是否有片內(nèi)程序存儲(chǔ)器。對于無芯片內(nèi)的ROM的8031或8032,須外擴(kuò)ERROM,此時(shí)必須將EA引腳接地。如果使用有片內(nèi)ROM的STC89C52,外擴(kuò)ERROM也是可以的,但也要使EA接地。4)I/O(輸入/輸出端口,P0,P1,P2,P3)P0口:P0口是一個(gè)漏極開路的8位準(zhǔn)雙向I/O端口。P1口
17、:8位準(zhǔn)雙向I/O端口。P2口:即可以做地址總線輸出地址高8位,也可以做普通I/O用,(此時(shí)為準(zhǔn)雙向口)。P3口:雙功能口,即可以做普通I/O口用(此時(shí)為準(zhǔn)向口,也可以按每位定義實(shí)現(xiàn)第二功能操作)。見表1。引腳第二功能P3.0RXD (串行輸入口)P3.1TXD (串行輸出口)P3.2INT0(外部中斷0)P3.3INT1(外部中斷1)P3.4T0(定時(shí)器0外部中斷)P3.5T1(定時(shí)器1外部中斷)P3.6WR(外部存儲(chǔ)器寫選通)P3.7RD(外部存儲(chǔ)器讀寫通)表1 P3口的第二功能表6 軟件設(shè)計(jì)6.1 單片機(jī)資源使用在本次設(shè)計(jì)中像電路鍵盤用到了P2口,其中P2.0到P2.5口作為鍵盤的輸入,
18、顯示電路用到了P1和P3口,P1口為液晶的數(shù)據(jù)口。6.2 單片機(jī)軟件模塊設(shè)計(jì)6.2.1 中斷子函數(shù) 對于中斷程序,只要定時(shí)器計(jì)數(shù)滿就會(huì)產(chǎn)生中斷50ms中斷一次,共計(jì)20次,秒鐘加1,秒鐘計(jì)滿再分鐘加,當(dāng)分鐘加到99時(shí)全部清零。以下是中斷子函數(shù)的流程圖如圖6.1所示:圖3.1中斷子程序流程圖 圖6.16.2.2 判鍵子函數(shù) 對于獨(dú)立式鍵盤判鍵,首先看有鍵按下不,如果有鍵按下則延時(shí)一會(huì)兒,在判斷是否真的有鍵按下,如果確實(shí)有鍵按下,在判鍵釋放,最后執(zhí)行鍵功能程序。判鍵子函數(shù)的流程框圖如圖6.2所示: 圖6.2判鍵子程序流程圖6.2.3 顯示子程序 1602液晶是字符型液晶,它的內(nèi)部自帶字符庫,它可以
19、寫兩行的字符,同時(shí)每行可以寫40個(gè)字符,在寫顯示程序的時(shí)候,我們先寫命令,再設(shè)定字符顯示,最后寫數(shù)據(jù),在每寫一次命令或數(shù)據(jù)都需要判斷液晶是否忙。液晶顯示程序流程圖如圖6.3所示: 3.3顯示子程序流程圖 圖6.36.3 總程序流程框圖整體程序的流程框圖如圖6.4所示:圖3.4整體程序的流程框圖總結(jié) 圖6.47 測試8 結(jié)論出租車計(jì)費(fèi)器系統(tǒng)的設(shè)計(jì)已經(jīng)全部完成,能按預(yù)期的效果進(jìn)行模擬汽車啟動(dòng),停止,暫停等功能,并能夠通過LCD顯示車費(fèi)數(shù)目。本款出租車計(jì)價(jià)器包括單價(jià)輸出、單價(jià)調(diào)整、顯示當(dāng)前的系統(tǒng)時(shí)間等功能。另外,多功能出租車計(jì)價(jià)器還具有性能可靠、電路簡單、成本低、實(shí)用性強(qiáng)等特點(diǎn),加上經(jīng)過優(yōu)化的程序,
20、使其有很高的智能化水平。幾個(gè)月來,經(jīng)過自己努力,基本上完成了設(shè)計(jì)要求的內(nèi)容,在系統(tǒng)可行性分析、原理圖設(shè)計(jì)等方面都作了許多實(shí)際工作,取得了一些成績,同時(shí)也遇到了一些問題,存在一些不足。經(jīng)過這幾個(gè)月的學(xué)習(xí)和工作,我覺得自己不論是在理論知識(shí)方面還是在動(dòng)手能力方面都有了不小的進(jìn)步,自己從中受益匪淺。這次設(shè)計(jì)很好的把以前學(xué)到的理論知識(shí)應(yīng)用于實(shí)踐,使我認(rèn)識(shí)到理論知識(shí)與實(shí)踐之間有一定的差距,只有通過不斷的努力學(xué)習(xí)和實(shí)踐才能很好的把理論知識(shí)應(yīng)用到實(shí)踐當(dāng)中,也只有通過不斷的實(shí)踐才能對理論知識(shí)的理解。通過這次設(shè)計(jì)不僅學(xué)會(huì)了如何去查找相關(guān)資料,更重要的是通過查找資料和翻閱書籍學(xué)到了不少知識(shí),擴(kuò)大了知識(shí)面,提高了知識(shí)
21、水平。經(jīng)過單元設(shè)計(jì)和系統(tǒng)設(shè)計(jì)鞏固了以前所學(xué)的專業(yè)知識(shí),自己真正認(rèn)識(shí)到理論聯(lián)系實(shí)際的重要性,為以后的學(xué)習(xí)和工作提供了很多有價(jià)值的經(jīng)驗(yàn)。通過這次設(shè)計(jì)不僅增強(qiáng)了自己的動(dòng)腦能力和動(dòng)手能力,也提高了我思考問題、分析問題、解決問題的能力,更重要的是學(xué)會(huì)用工程化的思想來解決問題。這在以前的學(xué)習(xí)過程中是不曾學(xué)到的。在短短的三個(gè)月時(shí)間內(nèi)完成設(shè)計(jì)內(nèi)容,在很大程度上得益于老師的幫助。這次設(shè)計(jì)是我認(rèn)真認(rèn)識(shí)到完整、嚴(yán)謹(jǐn)、科學(xué)分析問題、解決問題的思想是多么的重要,只有擁有了科學(xué)的態(tài)度才能設(shè)計(jì)出有用的產(chǎn)品。另外通過本次設(shè)計(jì),是我認(rèn)識(shí)到自己理論知識(shí)的應(yīng)用能力有很大的欠缺,需要在以后的學(xué)習(xí)中進(jìn)一步提高。參考文獻(xiàn)1 李廣弟,朱月
22、秀,冷祖祁.單片機(jī)基礎(chǔ)M.第3版.北京航空航天大學(xué)出版社,2007年1月2李華.MCS-51系列單片機(jī)實(shí)用接口技術(shù)M.北京航空航天大學(xué)出版社,19963 馬忠梅,張凱,馬巖,單片機(jī)的C語言應(yīng)用程序設(shè)計(jì),M,北京:北京航空航天大學(xué)出版社,2003.11;4 胡輝,單片機(jī)原理及應(yīng)用設(shè)計(jì)21世紀(jì)高等院校規(guī)劃教材M,水利水電出版社,2005.7;5 劉守義,單片機(jī)應(yīng)用技術(shù)M,西安:西安電子科技大學(xué)出版社,1996.8;附錄:致謝 本論文是在何淑珍老師的悉心指導(dǎo)下完成的,何老師的淵博學(xué)識(shí)和豐富經(jīng)驗(yàn)給我留下了深刻的印象。從何老師那里我學(xué)到的不僅是專業(yè)知識(shí)與實(shí)際問題科學(xué)解決的方法,更為重要的是勤奮和嚴(yán)謹(jǐn)治學(xué)
23、的精神以及對學(xué)生的認(rèn)真負(fù)責(zé),老師的諄諄教誨使我受益匪淺,在此向何老師表示衷心的感謝并致以崇高的敬意!感謝家人給予我學(xué)業(yè)上和生活上的支持與照顧。同時(shí)感謝給予我?guī)椭母魑焕蠋?、同學(xué)以及朋友們!附錄1 元件件清單 表5.1元器件清單 名稱規(guī)格數(shù)量備注 電阻 2001個(gè)1K1個(gè)10K5個(gè)1002個(gè) 電容20pF2個(gè)10F2個(gè)極性電容 發(fā)光二極管3個(gè) 按鍵7個(gè)直流電機(jī)1個(gè) 晶振12MHz1個(gè) 芯片STC89C521塊1602液晶1塊內(nèi)帶字符庫附錄2 原理圖附錄3 程序清單#include <reg52.h> /調(diào)用單片機(jī)頭文件#define uchar unsigned char /無符號(hào)字
24、符型 宏定義變量范圍0255#define uint unsigned int /無符號(hào)整型 宏定義變量范圍065535uchar miao,fen = 0,shi;uchar flag_bai_hei; /白天的晚上的標(biāo)志位uchar value;uint bai_3l_price = 60; /白天3千米內(nèi)的單價(jià) 6元uint bai_3w_price = 18; /白天3千米外的單價(jià)/千米 1.8元uint bai_wait_price = 5; /白天等待時(shí)的單價(jià)/分鐘 0.5元uint wan_3l_price = 70; /晚上3千米內(nèi)的單價(jià)/千米 7元uint wan_3w_pr
25、ice = 22; /晚上3千米外的單價(jià)/千米 2.2元uint wan_wait_price = 10; /晚上等待時(shí)的單價(jià)/分鐘 1元uint distance = 0; /行使的距離uint zong_jia; /總的價(jià)bit flag_300ms = 0;bit flag_1s ;bit flag_time_en = 0;#include "lcd1602.h"/*1ms延時(shí)函數(shù)*/void delay_1ms(uint q)uint i,j;for(i=0;i<q;i+)for(j=0;j<120;j+);#include "iic.h&qu
26、ot;void write_iic_data()write_24c02(0,flag_bai_hei);write_24c02(1,bai_3l_price % 256); /保存數(shù)據(jù)write_24c02(2,bai_3l_price / 256); /保存數(shù)據(jù)write_24c02(3,bai_3w_price % 256); /保存數(shù)據(jù) write_24c02(4,bai_3w_price / 256); /保存數(shù)據(jù) write_24c02(5,bai_wait_price % 256); /保存數(shù)據(jù) write_24c02(6,bai_wait_price / 256); /保存數(shù)據(jù)
27、write_24c02(7,wan_3l_price % 256); /保存數(shù)據(jù)write_24c02(8,wan_3l_price / 256); /保存數(shù)據(jù)write_24c02(9,wan_3w_price % 256); /保存數(shù)據(jù) write_24c02(10,wan_3w_price / 256); /保存數(shù)據(jù) write_24c02(11,wan_wait_price % 256); /保存數(shù)據(jù) write_24c02(12,wan_wait_price / 256); /保存數(shù)據(jù) /*自動(dòng)初始化保存的數(shù)據(jù)*/ void zidong_chushifa_iic()value =
28、read_24c02(200);value = read_24c02(200);if(value != 0x91)/新的單片機(jī)初始單片機(jī)內(nèi)問EEPOMvalue = 0x91;write_iic_data();write_24c02(200,value); /保存數(shù)據(jù)delay_1ms(300);/*讀出來保存的數(shù)據(jù)*/ void read_iic_data()flag_bai_hei = read_24c02(0);bai_3l_price = read_24c02(2);bai_3l_price = bai_3l_price * 256 + read_24c02(1);bai_3w_pri
29、ce = read_24c02(4);bai_3w_price = bai_3w_price * 256 + read_24c02(3);bai_wait_price = read_24c02(6);bai_wait_price = bai_wait_price * 256 + read_24c02(5);wan_3l_price = read_24c02(8);wan_3l_price = wan_3l_price * 256 + read_24c02(7);wan_3w_price = read_24c02(10);wan_3w_price = wan_3w_price * 256 + r
30、ead_24c02(9);wan_wait_price = read_24c02(12);wan_wait_price = wan_wait_price * 256 + read_24c02(11);/*獨(dú)立按鍵處理函數(shù)*/ #define key_io P2uchar key_can;void key()static uchar key_new = 0,key_old = 0,key_value = 0;key_io |= 0x3f;if(key_new = 0) /按鍵松開if(key_io & 0x3f) = 0x3f)key_value +;else key_value = 0
31、;if(key_value >= 5) /按鍵松開松手檢測key_value = 0;key_new = 1;/按鍵松開后進(jìn)入等待按鍵狀態(tài)else if(key_io & 0x3f) != 0x3f) /按鍵按下key_value +;else key_value =0;if(key_value >= 5)/按鍵按下消抖key_value = 0;key_new = 0; /按鍵松開后進(jìn)入等待松開按鍵狀態(tài)key_can = 20;if(key_new = 0) && (key_old = 1)switch(key_io & 0x3f)case 0x3
32、e: 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&qu
33、ot;/*對應(yīng)菜單內(nèi)的處理函數(shù)*/void menu_dis()if(menu_1 = 0)if(key_can = 6)distance +;write_sfm4(1,0,distance); if(key_can = 5) /清零 從新計(jì)價(jià)flag_time_en = 0;shi = 0;fen = 0;miao = 0;zong_jia = 0;distance = 0;if(key_can = 2)flag_time_en = flag_time_en;if(flag_300ms = 1)flag_300ms = 0;if(distance <= 30)/3公里內(nèi)的價(jià)格if(fl
34、ag_bai_hei = 0)if(fen <= 3)zong_jia = bai_3l_price;else zong_jia = bai_3l_price + (shi * 60 + fen - 3) * bai_wait_price;else if(fen <= 3)zong_jia = wan_3l_price; else zong_jia = wan_3l_price + (shi * 60 + fen - 3) * bai_wait_price;else /3公里外的價(jià)格if(flag_bai_hei = 0)if(fen <= 3)zong_jia = bai_3l_price + bai_3w_price * (distance - 30) / 10 ;else zong_jia = bai_3l_price + bai_3w_p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2021高考化學(xué)(廣東專用)二輪考點(diǎn)突破-第五部分-化學(xué)實(shí)驗(yàn)-專題二十三-實(shí)驗(yàn)方案的設(shè)計(jì)與評價(jià)-
- 2020采購員個(gè)人工作計(jì)劃范文
- 2025年人教版八年級(jí)數(shù)學(xué)寒假預(yù)習(xí) 第12講 菱形的性質(zhì)與判定(2個(gè)知識(shí)點(diǎn)+6大考點(diǎn)舉一反三+過關(guān)測試)
- 學(xué)?;瘜W(xué)教師個(gè)人工作總結(jié)
- 2020年小學(xué)教學(xué)論文開題報(bào)告范文
- 【導(dǎo)與練】2021屆高三物理大一輪復(fù)習(xí)(人教版適用)訓(xùn)練題:章末定時(shí)練3
- 陜西省渭南市尚德中學(xué)2024-2025學(xué)年高一上學(xué)期第二次階段性物理試卷(含答案)
- 遼寧省沈陽市名校2024-2025學(xué)年七年級(jí)上學(xué)期期末考試地理試題(含答案)
- 吉林省松原市前郭五中2024~2025學(xué)年高二上期末考試 生物(含答題卡、答案)
- 【名師金典】2022新課標(biāo)高考生物總復(fù)習(xí)限時(shí)檢測15孟德爾的豌豆雜交實(shí)驗(yàn)(二)-
- 初二年級(jí)勞動(dòng)課教案6篇
- 箱變遷移工程施工方案
- 北師大版九年級(jí)數(shù)學(xué)下冊《圓的對稱性》評課稿
- 《遙感原理與應(yīng)用》期末考試試卷附答案
- 物流無人機(jī)垂直起降場選址與建設(shè)規(guī)范(征求意見稿)
- 工程分包管理制度
- 2023年湖南成人學(xué)位英語考試真題
- GB/T 9452-2023熱處理爐有效加熱區(qū)測定方法
- 肺炎支原體肺炎診治專家共識(shí)
- 藥物化學(xué)(第七版)(全套課件1364P)
- 能源中國(上海電力大學(xué))超星爾雅學(xué)習(xí)通網(wǎng)課章節(jié)測試答案
評論
0/150
提交評論