




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
畢業(yè)設(shè)計(jì)(論文)-PAGEIII-學(xué)號(hào)畢業(yè)設(shè)計(jì)(論文)題目:非接觸式IC卡停車場(chǎng)收費(fèi)系統(tǒng)設(shè)計(jì)獨(dú)創(chuàng)聲明本人鄭重聲明:所呈交的畢業(yè)設(shè)計(jì)(論文),是本人在指導(dǎo)老師的指導(dǎo)下,獨(dú)立進(jìn)行研究工作所取得的成果,成果不存在知識(shí)產(chǎn)權(quán)爭(zhēng)議。盡我所知,除文中已經(jīng)注明引用的內(nèi)容外,本設(shè)計(jì)(論文)不含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫過的作品成果。對(duì)本文的研究做出重要貢獻(xiàn)的個(gè)人和集體均已在文中以明確方式標(biāo)明。本聲明的法律后果由本人承擔(dān)。
作者簽名:二〇一〇年九月二十日
畢業(yè)設(shè)計(jì)(論文)使用授權(quán)聲明本人完全了解濱州學(xué)院關(guān)于收集、保存、使用畢業(yè)設(shè)計(jì)(論文)的規(guī)定。本人愿意按照學(xué)校要求提交學(xué)位論文的印刷本和電子版,同意學(xué)校保存學(xué)位論文的印刷本和電子版,或采用影印、數(shù)字化或其它復(fù)制手段保存設(shè)計(jì)(論文);同意學(xué)校在不以營利為目的的前提下,建立目錄檢索與閱覽服務(wù)系統(tǒng),公布設(shè)計(jì)(論文)的部分或全部內(nèi)容,允許他人依法合理使用。(保密論文在解密后遵守此規(guī)定)
作者簽名:二〇一〇年九月二十日
摘要隨著國民經(jīng)濟(jì)飛速發(fā)展,城市汽車數(shù)量劇增,停車難問題愈來愈凸現(xiàn),在增加停車場(chǎng)數(shù)量的同時(shí),提高停車場(chǎng)的智能化管理是解決這個(gè)問題的關(guān)鍵.本文提出的自動(dòng)計(jì)時(shí)收費(fèi)系統(tǒng),是一種基于AT89C51單片機(jī)的非接觸式IC卡的停車場(chǎng)收費(fèi)系統(tǒng).該系統(tǒng)采用比傳統(tǒng)停車計(jì)費(fèi)方式更優(yōu)越的自動(dòng)計(jì)時(shí)計(jì)費(fèi)方式,系統(tǒng)硬件設(shè)備由入口設(shè)備和出口設(shè)備組成,論述了它們的硬件電路設(shè)計(jì)和軟件設(shè)計(jì),畫出其軟件設(shè)計(jì)的程序流程圖.該系統(tǒng)操作簡單,價(jià)格低廉,安裝調(diào)試方便,很好地解決了停車場(chǎng)的收費(fèi)問題.關(guān)鍵詞:非接觸式;IC卡;AT89C51單片機(jī);自動(dòng)收費(fèi)停車ABSTRACTWiththerapiddevelopmentofnationaleconomy,thequantityofcarsincityincreases.Parkingproblemsbecomemoreandmoreevident.Inadditiontoincreasingthenumberofparkinglots,improvingofintelligentparkingmanagementisthekeytosolvethisproblem.Thearticlediscussesakindofautomatictimingandchargingsystem.It’sakindofchargingsystemthatbasedonAT89C51microcontrollerandnon-contactICcard.Thesystemusesakindofautomaticchargingmodewhichismoresuperiorthantradition.Thewholesystemiscomposedofentrance-machineandexit-machine.Wediscusstheirhardwarecircuitdesignandsoftwaredesignanddrawitssoftwaredesignprocessflowdiagram.Thesystemissimple,cheap,convenientinstallationanddebugging,nicelysolvingthechargecollectquestionofparkinglot.Keywords:Non-contact;ICcard;AT89C51microcontroller;Automaticchargingforparking目錄摘要 IABSTRACT II1引言 11.1背景 11.2非接觸式IC卡停車場(chǎng)收費(fèi)系統(tǒng)的意義 22總體方案設(shè)計(jì) 32.1方案設(shè)計(jì) 32.2方案論證與選擇 32.3工作原理 63系統(tǒng)硬件電路設(shè)計(jì) 73.1單片機(jī)及其外圍電路設(shè)計(jì) 73.2鍵盤電路的設(shè)計(jì) 83.3顯示電路的設(shè)計(jì) 93.4存儲(chǔ)器電路的設(shè)計(jì) 103.5串行通信接口電路的設(shè)計(jì) 113.6時(shí)鐘電路設(shè)計(jì) 123.7讀寫模塊 134系統(tǒng)軟件程序設(shè)計(jì) 174.1主程序 174.2鍵盤處理子程序 184.3液晶顯示子程序 184.4串口通信子程序 194.5時(shí)鐘子程序 194.6讀寫模塊 205結(jié)論 22參考文獻(xiàn) 23致謝 24附錄 25-PAGE38-1引言1.1背景停車場(chǎng)收費(fèi)系統(tǒng)在國外的發(fā)展最初可以追溯到上世紀(jì)60年代,以自動(dòng)發(fā)票機(jī)的面世為標(biāo)志。60年代初,德國、瑞士、荷蘭的一些企業(yè)開始使用自動(dòng)化停車場(chǎng)管理系統(tǒng),在出入口安裝發(fā)票機(jī)、自動(dòng)的收費(fèi)系統(tǒng),最初的系統(tǒng)以打孔票為主。隨著技術(shù)的提高,停車票的介質(zhì)逐漸多元化,出現(xiàn)了包括遠(yuǎn)距離微波卡、條碼票、晶片硬幣、信用卡、手機(jī)、智能卡等。目前,國內(nèi)部分停車場(chǎng)仍然停留在人工收費(fèi)的管理水平,遠(yuǎn)遠(yuǎn)落后于西方國家。隨著社會(huì)經(jīng)濟(jì)的發(fā)展和人民生活水平的日益提高,擁有私人車輛已不再是高不可及的夢(mèng)想,目前已經(jīng)有越來越多的家庭或個(gè)人擁有車輛,在出行變得方便的同時(shí),停車卻成了開車人要面臨的棘手問題,因此解決停車難就成了所有開發(fā)商首先要考慮的一個(gè)問題。不論是新建住宅小區(qū)還是新建公共建筑都要考慮建設(shè)一定規(guī)模的停車場(chǎng),相應(yīng)的停車場(chǎng)收費(fèi)管理系統(tǒng)就得到了越來越廣泛的應(yīng)用,不僅能幫助業(yè)主為其用戶提供方便、快捷的服務(wù),且還能獲得更多的投資回報(bào)。當(dāng)前,單片機(jī)被廣泛地應(yīng)用于人們生活的各個(gè)領(lǐng)域。單片機(jī)是一種集成電路芯片,采用超大規(guī)模技術(shù)把具有數(shù)字處理能力(如算術(shù)運(yùn)算,邏輯運(yùn)算,數(shù)據(jù)傳送,中斷處理)的微處理器(CPU),隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),只讀程序存儲(chǔ)器(ROM),輸入輸出電路(I/O口),可能還包括定時(shí)計(jì)數(shù)器,串行通信口(SCI),顯示驅(qū)動(dòng)電路(LCD或LED驅(qū)動(dòng)電路),脈寬調(diào)制電路(PWM),模擬多路轉(zhuǎn)換器及A/D轉(zhuǎn)換器等電路集成到一塊單塊芯片上,構(gòu)成一個(gè)最小然而完善的計(jì)算機(jī)系統(tǒng)[1]。由于單片機(jī)體積小巧、功能強(qiáng)大、應(yīng)用靈活、價(jià)格便宜,所以應(yīng)用十分廣泛。隨著科學(xué)技術(shù)的不斷發(fā)展,特別是IC卡技術(shù)的日新月異,接觸式IC卡應(yīng)用系統(tǒng)已從其輝煌頂峰逐步走了下來,取而代之是非接觸式IC卡應(yīng)用系統(tǒng)。非接觸式IC卡(又稱射頻卡)是近幾年發(fā)展起來的新技術(shù),它成功地結(jié)合了射頻識(shí)別技術(shù)和IC卡技術(shù),解決了卡中無源和免接觸讀寫這一難題,是電子領(lǐng)域的一大突破。非接觸式IC卡由IC芯片、感應(yīng)天線組成,封裝在一個(gè)標(biāo)準(zhǔn)的PVC卡片內(nèi),芯片及天線無任何外露部分??ㄆ谝欢ň嚯x范圍(通常為5—10mm)靠近讀寫器表面,通過無線電波的傳遞來完成數(shù)據(jù)的讀寫操作。非接觸式IC卡應(yīng)用產(chǎn)品與接觸式IC卡比較具有防水、防塵、無外露讀寫器件、無機(jī)械磨損、防偽性能強(qiáng)、使用壽命長等諸多優(yōu)勢(shì)[2]。采用非接觸式儲(chǔ)值IC卡收費(fèi)系統(tǒng),不但極大地減輕結(jié)算的難度,統(tǒng)計(jì)及時(shí)準(zhǔn)確,而且有外形美觀、攜帶方便、可重復(fù)充值和能記名掛失的優(yōu)點(diǎn),是消費(fèi)管理現(xiàn)代化的標(biāo)志。1.2非接觸式IC卡停車場(chǎng)收費(fèi)系統(tǒng)的意義非接觸式IC卡停車場(chǎng)收費(fèi)管理系統(tǒng)是一種高效快捷、公正準(zhǔn)確及科學(xué)經(jīng)濟(jì)的停車場(chǎng)管理手段,是停車場(chǎng)對(duì)車輛實(shí)行動(dòng)態(tài)和靜態(tài)管理的綜合;從用戶的角度看,其服務(wù)高效,收費(fèi)透明度高,準(zhǔn)確無誤;從管理者的角度看,其易于操作維護(hù),自動(dòng)化程度高,大大減輕管理者的勞動(dòng)強(qiáng)度,從根本上杜絕票款流失的現(xiàn)象,對(duì)加速解決我國目前面臨的停車難問題有著非常積極的意義。文中論述了以非接觸式IC卡為收費(fèi)介質(zhì)的停車場(chǎng)管理系統(tǒng)軟件的設(shè)計(jì)。該系統(tǒng)采用了目前已經(jīng)非常成熟的非接觸式IC卡讀寫技術(shù)、計(jì)算機(jī)控制技術(shù),能夠大幅度提高停車場(chǎng)車輛通行的流暢性,減少車輛停滯時(shí)間,簡化駕駛?cè)藛T操作過程,從而實(shí)現(xiàn)停車場(chǎng)進(jìn)出車輛的計(jì)算機(jī)化智能管理,有效降低停車場(chǎng)管理系統(tǒng)的運(yùn)營成本和管理人員勞動(dòng)強(qiáng)度。本文設(shè)計(jì)的非接觸式IC卡停車場(chǎng)收費(fèi)系統(tǒng),由單片機(jī)、讀卡器以及時(shí)鐘顯示等模塊組成。通過本次設(shè)計(jì),培養(yǎng)了我分析問題和解決問題的能力,同時(shí)也提高了我文獻(xiàn)檢索和自學(xué)能力。2總體方案設(shè)計(jì)2.1方案設(shè)計(jì)整個(gè)系統(tǒng)硬件設(shè)備由停車場(chǎng)入口設(shè)備、停車場(chǎng)出口設(shè)備兩部分組成。入口設(shè)備和出口設(shè)備位于停車場(chǎng)入口和出口處。在整個(gè)系統(tǒng)中,非接觸IC卡是兩部分硬件設(shè)備相互聯(lián)系的橋梁,非接觸IC卡的讀寫程序設(shè)計(jì)是系統(tǒng)實(shí)現(xiàn)的關(guān)鍵。該總體電路設(shè)計(jì)含有七個(gè)部分電路:1、單片機(jī)及外圍電路,2、鍵盤電路,3、顯示電路,4、存儲(chǔ)器電路,5、串口通信電路,6、非接觸式IC卡,7、讀寫模塊。本設(shè)計(jì)以ATMEL公司的AT89C51單片機(jī)作為微控制器,采用MF-RC500讀卡器,因?yàn)樾枰斎氲臄?shù)字量比較多,所以鍵盤采用4X4矩陣鍵盤,以DS1302作為系統(tǒng)時(shí)鐘,以AT24C02作為不掉電存儲(chǔ)器,采用LCD顯示,并以RS232接口和計(jì)算機(jī)通信,組成一套功能齊全的非接觸IC卡讀寫系統(tǒng)。當(dāng)IC卡在天線區(qū)域經(jīng)過時(shí),單片機(jī)自動(dòng)需求對(duì)IC卡進(jìn)行讀寫,再把讀/寫卡的時(shí)間一起存到存儲(chǔ)器中,計(jì)算機(jī)可以通過串口把相關(guān)讀/寫卡信息讀到計(jì)算機(jī)上。系統(tǒng)電路組成框圖,如圖2-1所示。鍵盤鍵盤電路存儲(chǔ)器電路串口通信電路電路顯示電路單片機(jī)非接觸式IC卡讀寫模塊圖2-1系統(tǒng)組成框圖2.2方案論證與選擇1、控制器的選擇方案一、用可編程邏輯器件設(shè)計(jì)。設(shè)計(jì)起來結(jié)構(gòu)清晰,各個(gè)模塊從硬件上設(shè)計(jì)起來相對(duì)簡單,控制與顯示的模塊間的連接也會(huì)比較方便。但從成本上來講,用可編程邏輯器件來設(shè)計(jì)沒有什么優(yōu)勢(shì)。方案二:用單片機(jī)設(shè)計(jì)。單片機(jī)有豐富的中斷源,方便本實(shí)驗(yàn)的設(shè)計(jì)。它的準(zhǔn)確度相當(dāng)高,并且C語言和匯編兼容的編程環(huán)境也很方便來實(shí)現(xiàn)一些調(diào)用。I/O口功能也比較強(qiáng)大,方便使用。成本也相對(duì)低一些,雖然在控制與顯示的結(jié)合上有些復(fù)雜,但和前者相比用單片機(jī)設(shè)計(jì)還是比較可行的。2、鍵盤模塊的選擇方案一:采用直接式獨(dú)立按鍵操作。這種方案的操作過程,就是直接從單片機(jī)I/O口引出通上拉電阻,接一按鍵,當(dāng)按鍵按下時(shí),單片機(jī)該端口為“0”,單片機(jī)通過對(duì)此端口邏輯“0”判斷,來完成按鍵的識(shí)別,達(dá)到數(shù)據(jù)的輸入,功能的實(shí)現(xiàn)。從這一過程可知,完成任務(wù)需要單片機(jī)很多I/O口,花費(fèi)了很多CPU資源,此種方案不可取。方案二:矩陣鍵盤。矩陣鍵盤,這里采用4X4矩陣鍵盤,一共有16組情況,實(shí)現(xiàn)的方法也是利用單片機(jī)的I/O口,4X4正好用到了單片機(jī)一個(gè)端口。采用這種方案既節(jié)約資源又方便,而且能夠滿足本設(shè)計(jì)的需要。綜上所述,在本設(shè)計(jì)中我們采用方案二。3、顯示電路模塊的選擇顯示電路的主要任務(wù)是反應(yīng)出操作結(jié)果和相關(guān)停車時(shí)間與價(jià)格的信息。根據(jù)此,有四種方案可完成這一工作。方案一:可用七段共陽極LED數(shù)碼顯示,將停車時(shí)間、金額等顯示出來。采用動(dòng)態(tài)掃描顯示方式,將多個(gè)LED數(shù)碼管的段選線并聯(lián)在一起,由一個(gè)8位I/O口控制,而各位的共陽極或共陰極分別由相應(yīng)的I/O口線控制,實(shí)現(xiàn)各位的分時(shí)選通。當(dāng)然,其發(fā)光數(shù)碼管價(jià)格較便宜,可節(jié)約成本,但在停車場(chǎng)中應(yīng)用,所需數(shù)碼管較多,操作麻煩,并且不直觀,更無商業(yè)優(yōu)勢(shì)可言。方案二:用LED數(shù)碼管矩陣方式顯示。這種方案的原理和方案一都差不多,用16X16點(diǎn)陣排列,將字型分成上下兩個(gè)半部,上下半部皆為16列,每列用一個(gè)字節(jié)表示(8個(gè)點(diǎn)),因此,每個(gè)字需要32個(gè)字節(jié)來表示。當(dāng)然這樣就可以顯示漢字,但是和單片機(jī)相連比較復(fù)雜,本系統(tǒng)要許多塊這樣的16X16點(diǎn)陣,同時(shí)這種LED點(diǎn)陣方式顯示,造價(jià)較高,作為本電路,也是不可取。方案三:采用帶中文字庫的LCD液晶顯示器來完成顯示,這種顯示器作為本系統(tǒng)設(shè)計(jì),固然最好,但考慮到系統(tǒng)成本的問題,帶中文字庫的LCD一般都比較貴,采用這種方案,勢(shì)必會(huì)增加設(shè)計(jì)成本。方案四:采用兩行字符型顯示器[3]。這種顯示器,用英文顯示相關(guān)信息,價(jià)格適中,操作也方便,作為本設(shè)計(jì)是最合適不過。因此,結(jié)合上述方案,在本設(shè)計(jì)中,我們采用兩行字符型1602顯示器。4、存儲(chǔ)器電路模塊的選擇存儲(chǔ)器的作用在本設(shè)計(jì)中主要起到用戶信息的存儲(chǔ),和最后車輛的出入信息的存貯。完成這一項(xiàng)工作方案也是多種多樣的,下面將一一介紹。方案一:用紫外線存儲(chǔ)器ROM,這個(gè)操作不太方便,由于本系統(tǒng)中的數(shù)據(jù)是不斷變化的,因此這種方案不可取。方案二:用海量存貯器來完成,掉電后信息不會(huì)掉失。它具有低功耗、大容量、擦寫速度快、可整片或分扇區(qū)在系統(tǒng)中編程、擦除等特點(diǎn)。但是,同時(shí)和本系統(tǒng)中的單片機(jī)不容易實(shí)現(xiàn)接口,數(shù)據(jù)線和地址較復(fù)雜,價(jià)格也比較貴。方案三:選用美國Microchip公司生產(chǎn)的AT24C02芯片,體積小巧并且采用特殊的工作時(shí)序,絕不會(huì)誤寫成功,具有高度的可靠性。其掉電可保存數(shù)據(jù),用I2C總線進(jìn)行操作,因此需用的單片機(jī)端口較少,占用CPU根據(jù)上述三種方案,我們兼顧容量、價(jià)格和可操作性,選用第三種方案。5、IC卡的選擇目前經(jīng)常接觸到的IC卡有兩種:接觸式的和非接觸式的IC卡。方案一:接觸式的IC卡。它通過機(jī)械觸點(diǎn)從讀寫器獲取能量和交換數(shù)據(jù)。目前在社會(huì)上常見的是接觸式IC卡。它具有保密功能強(qiáng),存儲(chǔ)量大,可實(shí)現(xiàn)一卡多用。但是,這類卡的讀寫操作速度較慢,操作也不方便,每次讀寫時(shí)必須把卡正確地插入到讀寫器的日槽才能完成數(shù)據(jù)交換,如此,在公交、考勤等需要頻繁讀寫卡的場(chǎng)合就不很方便,而且讀寫器的觸點(diǎn)和卡片上IC卡的觸腳暴露在外,容易損壞和搞臟而造成接觸不良[4]。方案二:非接觸式IC卡。非接觸式IC卡通過線圈射頻感應(yīng)從讀寫器獲取能量和交換數(shù)據(jù),所以又稱射頻卡。以下敘述非接觸式IC卡的主要特點(diǎn):可靠性高、使用壽命長、維護(hù)成本低。非接觸式IC卡與讀寫器之間無機(jī)械接觸,避免了由于接觸讀寫而產(chǎn)生的各種故障。此外,非接觸式卡表面無裸露芯片,無須擔(dān)心靜電擊穿,芯片脫落,彎曲損壞等問題,適應(yīng)各種惡劣環(huán)境,大大增加卡片的使用壽命。高抗擾能力、防沖突。非接觸式卡中有快速防沖突機(jī)制,能防止卡片之間出現(xiàn)數(shù)據(jù)干擾,讀寫器可以同時(shí)處理多張卡,提高了應(yīng)用的并行性,無形中提高系統(tǒng)工作速度。加密性能好、安全可靠。非接觸式卡的每張卡都具有全球唯一的序列號(hào),制造廠家在產(chǎn)品出廠前已將此序列號(hào)固化,不可再更改,可為第一用戶設(shè)置卡與讀寫設(shè)備相對(duì)應(yīng)的唯一的密鑰,卡與讀寫器之間采用雙向驗(yàn)證機(jī)制,同時(shí)IC卡也驗(yàn)證讀寫器的合法性[5]。應(yīng)用極廣泛。接觸式卡的存儲(chǔ)器結(jié)構(gòu)特點(diǎn)使它可以一卡多用,可應(yīng)用于不同的場(chǎng)合、不同的系統(tǒng)。用戶可根據(jù)不同的應(yīng)用設(shè)定不同的密碼和訪問條件。同一張卡片經(jīng)個(gè)性化處理后,既可作為工作證、巡更卡、胸卡、門禁鑰匙卡,也可作為企業(yè)內(nèi)部食堂、咖啡廳和其它消費(fèi)用的電子錢包,并可進(jìn)行企業(yè)內(nèi)部醫(yī)療管理、停車管理等諸多功能,真正實(shí)現(xiàn)一卡通管理。目前我國引進(jìn)的射頻IC卡主要有PHILIPS公司的Mifare和ATMEL公司的Temic卡。根據(jù)課題要求,本系統(tǒng)選擇非接觸式IC卡。6、時(shí)鐘芯片的選擇方案和論證方案一:直接采用單片機(jī)定時(shí)計(jì)數(shù)器提供秒信號(hào),采用此種方案雖然減少芯片的使用,節(jié)約成本,用起來比較方便,但其缺點(diǎn)是精度不高,設(shè)置時(shí)間間隔不當(dāng)、CPU掉電等都會(huì)影響時(shí)鐘的正常運(yùn)行。方案二:采用DS1302時(shí)鐘芯片實(shí)現(xiàn)時(shí)鐘,DS1302芯片是一種高性能的時(shí)鐘芯片,可自動(dòng)對(duì)秒、分、時(shí)、日、周、月、年進(jìn)行計(jì)數(shù),工作電壓2.5V~5.5V范圍內(nèi),2.5V時(shí)耗電小于300nA[6]。會(huì)增加硬件開支,但是精度高。本設(shè)計(jì)對(duì)時(shí)間精度要求較高,刷卡時(shí)要記錄刷卡的時(shí)間,在此選用體積小、接口簡單的實(shí)時(shí)時(shí)鐘芯片DS1302。2.3工作原理本系統(tǒng)的工作原理是利用非接觸式IC卡,在車輛進(jìn)入和外出時(shí)記錄時(shí)間差值,計(jì)算出停車費(fèi)用,費(fèi)用計(jì)算公式:(外出時(shí)間—進(jìn)入時(shí)間)×價(jià)格=應(yīng)收費(fèi)用。在入口處,對(duì)于持卡的車輛,需將卡插入讀寫機(jī),確認(rèn)有效后,才允許進(jìn)入,并且記錄進(jìn)入時(shí)的時(shí)間。在出口處,持卡的車輛,將卡插入讀寫器,出口管理處同樣啟動(dòng)計(jì)價(jià)程序,同時(shí)在顯示屏上給予顯示本次停車的時(shí)間,停車的收費(fèi)標(biāo)準(zhǔn),以及本次應(yīng)繳納的費(fèi)用,系統(tǒng)自動(dòng)扣減停車費(fèi)用,并予以放行[7]。系統(tǒng)各模塊的作用如下:非接觸式IC卡:相當(dāng)于門的鑰匙,它是通過磁力線圈產(chǎn)生感應(yīng)電流向讀卡器發(fā)射卡內(nèi)信息,完成讀卡操作的。讀卡器:它與單片機(jī)相連,通過單片機(jī)對(duì)讀出的卡內(nèi)信息進(jìn)行處理,只要有非接觸式IC卡進(jìn)入讀卡器射頻能量范圍,讀卡器便通過射頻信號(hào)與IC卡通信,讀取卡中數(shù)據(jù),并將其送給單片機(jī)處理。DS1302:記錄進(jìn)出停車場(chǎng)的時(shí)間,由此記錄出停車的時(shí)間。1602:對(duì)時(shí)間和金額進(jìn)行顯示。存儲(chǔ)器芯片:用以存儲(chǔ)消費(fèi)金額、消費(fèi)時(shí)間等用戶信息。3系統(tǒng)硬件電路設(shè)計(jì)本系統(tǒng)由七部分組成:單片機(jī)、鍵盤處理電路、顯示器電路、存儲(chǔ)器電路、讀卡器和時(shí)鐘電路,并通過RS232接口與中心管理計(jì)算機(jī)相連接。下面將討論這幾部分電路的設(shè)計(jì)過程。3.1單片機(jī)及其外圍電路設(shè)計(jì)微處理電路采用ATMEL公司的AT89C51單片機(jī),功能齊全、價(jià)格便宜、可靠性高、使用普遍。該單片機(jī)是ATMEL公司8位單片機(jī)系列產(chǎn)品之一,是一種40引腳雙列直插式芯片。AT89C51有4KFLASH,128字節(jié)RAM,2個(gè)16位定時(shí)器/計(jì)數(shù)器,一個(gè)5向量2級(jí)中斷結(jié)構(gòu),32條I/O引線,一個(gè)全雙工串行口,一個(gè)片內(nèi)震蕩器和時(shí)鐘電路。此外,AT89C51是用可降到0頻率的靜態(tài)邏輯操作設(shè)計(jì)的,并支持兩種可選的軟件節(jié)能工作方式??臻e方式停止CPU工作,但允許RAM、串行口、定時(shí)器/計(jì)數(shù)器、和中斷系統(tǒng)繼續(xù)工作。掉電方式保持RAM內(nèi)容,但振蕩器停止工作,并禁止所有其他部件的工作直到下一個(gè)硬件復(fù)位。選用它作為核心控制新片,可使電路極大地簡化,而且程序的編寫及固化也相當(dāng)靈活、方便[8]。本系統(tǒng)設(shè)計(jì)電路圖3-1所示。圖3-1單片機(jī)電路圖如圖3-1所示,P0口為LCD的八根數(shù)據(jù)總線,P1.0、P1.1、P1.2三根線為LCD的讀寫控制線與使能端。P1.5、P3.6為存貯器的兩根總線,主要用于數(shù)據(jù)的讀取與存貯。P1口為矩陣鍵盤列線與行線的接口,實(shí)現(xiàn)4×4鍵盤,完成相關(guān)的工能操作。P3.0、P3.1口接串行端口,分別作串行數(shù)據(jù)的接收端和發(fā)送端。XTAL1和XTAL2口接外部晶體振蕩器,保證單片機(jī)內(nèi)部各部分有序的工作。RST與Vss之間連接一個(gè)下拉電阻,與Vcc之間連接一個(gè)電容,目的是為了保證可靠的復(fù)位。3.2鍵盤電路的設(shè)計(jì)這里采用的是矩陣鍵盤,如圖3-2所示:圖3-2矩陣鍵盤實(shí)物圖矩陣鍵盤的實(shí)現(xiàn)可采用中斷的辦法,也可以采用查詢的方法。4×4的意思即為:4根列線,4根行線,列線通上拉電阻接到電源上,因此若無按鍵按下時(shí),各列線均為高電平。當(dāng)行線分別輸出低電平時(shí),有按鍵按下,相應(yīng)的列線上會(huì)出現(xiàn)低電平。根據(jù)此原理,CPU對(duì)整個(gè)鍵盤進(jìn)行掃描,即CPU不斷輪流對(duì)行線置低電平,再檢查列線輸入狀態(tài),確定按鍵情況。鍵盤電路如圖3-3所示:圖3-3矩陣鍵盤圖鍵盤接口電路用P1口接成4×4結(jié)構(gòu),共16個(gè)鍵。功能鍵有查詢和通信兩種。由于讀寫器的存儲(chǔ)量有限,因此讀寫器每售卡一段時(shí)間,應(yīng)將讀寫器中的數(shù)據(jù)通過RS232串行接口與PC機(jī)通信,用以回放和清空讀寫器中的數(shù)據(jù)。數(shù)據(jù)回放到PC機(jī)中后,通過分析處理,便于停車場(chǎng)工作人員及時(shí)掌握情況。3.3顯示電路的設(shè)計(jì)本設(shè)計(jì)顯示電路采用1602液晶顯示模塊芯片。該芯片可顯示16×2個(gè)字符,比以前的七段數(shù)碼管LED顯示器在顯示字符的數(shù)量上要多得多。另外,由于l602芯片編程比較簡單,界面直觀,因此更加易于使用者操作和觀測(cè)。下面介紹1602及其使用。1602采用標(biāo)準(zhǔn)的16腳接口,如表3-1所示。其中VDD接5V正電源,VSS為地電源,VL為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,對(duì)比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K的電位器調(diào)整對(duì)比度。RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。RW為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和RW共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平RW為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平RW為低電平時(shí)可以寫入數(shù)據(jù)。D0-D7為8位雙向數(shù)據(jù)線。E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。表3-1LCD1602引腳說明表編號(hào)符號(hào)引腳說明編號(hào)符號(hào)引腳說明1VSS電源地9D2DataI/O2VDD電源正極10D3DataI/O3VL液晶顯示偏壓信號(hào)11D4DataI/O4RS數(shù)據(jù)/命令選擇端12D5DataI/O5R/W讀/寫選擇端(H/L)13D6DataI/O6E使能信號(hào)14D7DataI/O7D0DataI/O15BLA背光源正極8D1DataI/O16BLK背光源負(fù)極本設(shè)計(jì)電路如圖3-4所示,有八根數(shù)據(jù)線與單片機(jī)的P0口相連。圖3-4LCD1602電路連接圖3.4存儲(chǔ)器電路的設(shè)計(jì)在此讀寫系統(tǒng)中,單片機(jī)必須擴(kuò)展片外E2PROM用來存儲(chǔ)關(guān)鍵信息。工程上常用的E2PROM的28系列的芯片具有編程簡單、使用方便的特點(diǎn),但是在此讀寫系統(tǒng)中其容量比實(shí)際要求的要大,若選用此系列的芯片不但能浪費(fèi)絕大部分的存儲(chǔ)單元,而且占用外部的存儲(chǔ)空間,增加了譯碼線路,并且增加了線路板的面積。因此,本系統(tǒng)選用美國Microchip公司生產(chǎn)的AT24C02芯片,不但能最大限度地利用其容量,且不用地址譯碼,不占用外存空間。該芯片存儲(chǔ)容量為256字節(jié),采用低功耗CMOS工藝制造,可以在無電源狀態(tài)下長期可靠存儲(chǔ)系統(tǒng)內(nèi)重要數(shù)據(jù),工作壽命可達(dá)106次。該芯片還采用I2C串行總線協(xié)議與單片機(jī)通信,在軟件操作時(shí),就得用I2C總線方式進(jìn)行讀寫。I2C總線是由PHILIPS公司發(fā)明的一種高性能芯片間串行同步傳輸總線。與SPI、MicroWire接口不同,它僅僅需要兩根信號(hào)線(串行數(shù)據(jù)線SDA和串行時(shí)鐘線SCL),就實(shí)現(xiàn)了完善的雙工同步數(shù)據(jù)傳送,能夠極其方便地構(gòu)成多機(jī)系統(tǒng)和外圍器件擴(kuò)展系統(tǒng)。當(dāng)IC卡插入系統(tǒng)時(shí),卡內(nèi)的關(guān)鍵數(shù)據(jù)將存儲(chǔ)在AT24C02芯片中,從而實(shí)現(xiàn)了重要數(shù)據(jù)的備份,提高了讀寫器的可靠性與穩(wěn)定性。AT24C02芯片還具有體積小巧的特點(diǎn),并且采用特殊的工作時(shí)序,絕不會(huì)誤寫成功,具有高度的可靠性。如圖3-5所示為AT24C02的管腳圖。圖3-5AT24C02管腳圖SCL:串行時(shí)鐘輸入線。數(shù)據(jù)發(fā)送或接收的時(shí)鐘從該引腳輸入。SDA:串行數(shù)據(jù)/地址線。用于傳送地址和發(fā)送與接收數(shù)據(jù),為雙向傳輸。A0、A1、A2:器件地址輸入端。WP:寫保護(hù)端。WP=1為寫保護(hù),只能讀出不能寫入,WP=0時(shí)器件允許進(jìn)行正常的讀寫操作。存儲(chǔ)器連接電路如圖3-6:圖3-6存儲(chǔ)器電路圖3.5串行通信接口電路的設(shè)計(jì)本設(shè)計(jì)采用RS232標(biāo)準(zhǔn)來實(shí)現(xiàn)讀卡器和上位機(jī)之間的通信,能實(shí)現(xiàn)RS232通信協(xié)議的芯片很多,其中MAXIM公司生產(chǎn)的MAX232是一款比較優(yōu)良的RS232通信芯片[9]。選取它的主要依據(jù)在于:單5V電源供電,與讀卡器里其它芯片的工作電壓相同,符合所有EIA/232E標(biāo)準(zhǔn),多路輸入輸出。MAX232其引腳功能說明如表3-2所示。表3-2MAX232引腳說明引腳名引腳說明引腳名引腳說明T2outRS232輸出R1RS232輸入R2RS232輸入T1outRS232輸出R2outTTL/CMOS輸出GND地T2TTL/CMOS輸入VCC電源T1TTL/CMOS輸入R1outTTL/CMOS輸出在硬件電路連接上采用三線制(RXD、TXD、GND)軟握手的零MODEM方式,即將PC機(jī)和單片機(jī)的發(fā)送數(shù)據(jù)線(TXD)與接收數(shù)據(jù)(RXD)交叉連接,二者的地線(GND)直接相連,而其它信號(hào)線、如握手信號(hào)均不用,而采用軟件握手,這樣既可以實(shí)現(xiàn)預(yù)定的任務(wù)又可以簡化電路設(shè)計(jì)、節(jié)約成本。MAX232的電路連接如圖3-7所示。圖3-7串行通信口連接圖如圖所示,MAX232中電平轉(zhuǎn)換芯片,將差分電平,轉(zhuǎn)換成單片機(jī)等可識(shí)別的TTL電平,電路中RXD、TXD兩根線分別和單片機(jī)相連P3口的串行通訊口相連,TXD為數(shù)據(jù)發(fā)送端口,主要向PC等設(shè)備發(fā)送信號(hào)。RXD為數(shù)據(jù)接收端,單片機(jī)通過這個(gè)端口讀取PC機(jī)等送來的信號(hào)。圖右邊有一9針串行通信口,主要和PC機(jī)相連。3.6時(shí)鐘電路設(shè)計(jì)本設(shè)計(jì)的實(shí)時(shí)時(shí)鐘電路用DS1302,其引腳圖如圖3-8所示,它的工作電壓一般為2.5-5.5V,它的主要特點(diǎn)是采用串行數(shù)據(jù)傳輸,同時(shí)增加了主電源/后背電源雙電源引腳,可以為掉電保護(hù)電源提供可編程的充電功能。采用32kHz的晶振,電容一般用10PF就可以起到穩(wěn)定振蕩頻率和快速起振的作用了。圖3-8DS1302引腳圖DS1302是一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式,其日歷、時(shí)間寄存器及其控制字。此外,DS1302還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及與RAM相關(guān)的寄存器等。時(shí)鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。DS1302芯片連接圖如下所示。圖3-9時(shí)鐘電路3.7讀寫模塊系統(tǒng)用PHILIPS公司的MF-RC500芯片。MF-RC500是與射頻IC卡實(shí)現(xiàn)無線通信的核心部件,也是讀寫器讀寫卡的關(guān)鍵接口芯片,該芯片為目前用于13.56MHz頻段非接觸通信的主流讀卡IC。MF-RC500芯片采用先進(jìn)的調(diào)制和解調(diào)技術(shù),支持13.56MHz頻段所有被動(dòng)非接觸式通信方式和協(xié)議,并支持ISO14443A中所有的層[10]。其內(nèi)部的發(fā)送器部分不需要增加有源電路就能夠直接驅(qū)動(dòng)近操作距離的天線(100mm)。接收器部分提供一個(gè)堅(jiān)固而有效的解調(diào)和解碼電路,用于ISO14443A兼容的應(yīng)答器信號(hào)。數(shù)字部分處理ISO14443A幀和錯(cuò)誤檢測(cè)(奇偶&CRC)。此外,它還支持快速CRYPTO1加密算法用于驗(yàn)證MIFARE系列產(chǎn)品。方便的并行接口可直接連接到任何8位微處理器,這樣給讀卡器/終端的設(shè)計(jì)提供了極大的方便。MF-RC500內(nèi)部包括并行微控制器接口、雙向FIFO緩沖區(qū)、中斷、數(shù)據(jù)處理單元、狀態(tài)控制單元、安全和密碼控制單元、模擬電路接口及天線接口。MF-RC500外部接口包括數(shù)據(jù)總線、地址總線、控制總線、電源等。MF-RC500的并行微控制器接口自動(dòng)檢測(cè)連接的8位并行接口的類型。它包含了一個(gè)雙向FIFO緩沖區(qū)和一個(gè)可配置的中斷輸出,這樣就為連接各種MCU提供了很大的靈活性,即使使用非常低成本的器件也能滿足高速非接觸式通信的要求。數(shù)據(jù)處理部分執(zhí)行數(shù)據(jù)的并行-串行轉(zhuǎn)換;狀態(tài)和控制部分允許對(duì)器件進(jìn)行配置以使性能調(diào)節(jié)到最佳狀態(tài)。模擬電路包含一個(gè)具有非常低阻抗橋驅(qū)動(dòng)器輸出的發(fā)送部分,這使得最大操作距離可達(dá)100mm,接收器可以檢測(cè)到非常弱的應(yīng)答信號(hào)。MF-RC500管腳如圖3-10所示。圖3-10MF-RC500管腳圖天線電路:為了同非接觸式智能卡通信,讀卡器內(nèi)必須有能發(fā)射和接收射頻信號(hào)的天線。天線用于產(chǎn)生磁通量,而磁通量用于向應(yīng)答器提供電源并在閱讀器和應(yīng)答器之間傳送信息[11]。由于MF-RC500是低功耗設(shè)計(jì),因此卡和天線之間的耦合系數(shù)必須符合一定的值,卡和天線之間的耦合系數(shù)不能低于0.3。天線一般設(shè)計(jì)為三圈,可以設(shè)計(jì)為圓形或者方形天線。天線的直徑必須介于0.5-1.5mm之間。天線電路圖如圖3-11所示。EMC電路:射頻識(shí)別系統(tǒng)以13.56MHz的操作頻率為基礎(chǔ),該頻率由石英晶振產(chǎn)生,與此同時(shí)還會(huì)產(chǎn)生高階諧波。為了符合內(nèi)部電磁兼容性規(guī)則,13.56MHz的三次、五次及五次以上的高階諧波必須適當(dāng)?shù)囊种梗枧渲靡坏屯V波器。見圖3-12所示。圖3-11天線電路圖接收電路:MFRC500的內(nèi)部接收單元采用新的接收概念,它使用卡回應(yīng)的子載波引導(dǎo)調(diào)制生成的雙邊帶寬。使用內(nèi)部產(chǎn)生的VMID電位作為RX管腳的輸入電位。為減少擾動(dòng),需用電容將VMID接地。讀卡器的輸入單元需要在RX和VMID管腳間增加電壓驅(qū)動(dòng)。此外,應(yīng)當(dāng)在天線線圈和電壓驅(qū)動(dòng)之間使用串聯(lián)電容[12]。接收電路的電路原理圖如圖3-12所示。圖3-12EMC及接收電路MF-RC500的電路連接圖如圖3-13所示,圖中單片機(jī)AT89C51作為控制核心,主要完成數(shù)據(jù)采集、處理、存儲(chǔ)及控制電路工作;MF-RC500根據(jù)系統(tǒng)的需要,可以采用查詢方式或者中斷方式對(duì)MF-RC500進(jìn)行操作。由圖可以看出,本系統(tǒng)采用中斷(INT0)工作模式,即MCU利用MF-RC500提供中斷信息對(duì)其進(jìn)行控制。圖3-13讀卡器電路圖4系統(tǒng)軟件程序設(shè)計(jì)本設(shè)計(jì)程序共分成七個(gè)部分:主程序、鍵盤處理程序、LCD顯示程序、存儲(chǔ)器存儲(chǔ)程序、時(shí)鐘程序、串口和PC機(jī)通信程序以及讀寫器讀寫模塊。4.1主程序當(dāng)插上電源后,單片機(jī)先對(duì)系統(tǒng)進(jìn)行一系列的初始化,并做出相應(yīng)的處理。本設(shè)計(jì)的主程序包括進(jìn)停車場(chǎng)和出停車場(chǎng)兩個(gè)部分,當(dāng)進(jìn)場(chǎng)處有卡靠近時(shí),讀卡器讀出IC卡里面的用戶信息,經(jīng)過時(shí)鐘芯片得出時(shí)間,隨后將所有的數(shù)據(jù)通過串口送往計(jì)算機(jī)。出場(chǎng)時(shí),讀卡器同樣讀出信息,通過從計(jì)算機(jī)調(diào)出用戶數(shù)據(jù),再由停車時(shí)間和單價(jià),得出停車費(fèi)用,最后再將所有數(shù)據(jù)存儲(chǔ)。其流程圖分別如圖4-1和圖4-2所示:開始讀卡器讀卡驗(yàn)證開始讀卡器讀卡驗(yàn)證調(diào)用用戶信息計(jì)算停車時(shí)間和費(fèi)用顯示時(shí)間和費(fèi)用將信息存儲(chǔ)至PC機(jī)結(jié)束讀取當(dāng)前時(shí)間YN結(jié)束開始初始化顯示數(shù)據(jù)和時(shí)間讀取時(shí)間和卡中數(shù)據(jù)判斷是否有卡信息存儲(chǔ)圖4-1進(jìn)場(chǎng)流程圖圖4-2出場(chǎng)流程圖4.2鍵盤處理子程序鍵盤處理程序,該模塊的主要作用就是通過用戶的按鍵識(shí)別,由此判斷當(dāng)前的系統(tǒng)任務(wù),通過前面的硬件分析,采用4×4矩陣,一共十六組狀態(tài)。一方面的是一系列的功能操作,另一方面是數(shù)字的輸入輸出。經(jīng)過鍵盤掃描程序掃描是否有按鍵按下,如若有,再判斷是數(shù)字鍵還是功能鍵,并做出相應(yīng)的處理,若是數(shù)字鍵,則確定具體數(shù)字,并進(jìn)行顯示、存儲(chǔ)等處理,若是功能鍵,則確定具體功能,執(zhí)行此功能。如若沒有鍵按下,則返回繼續(xù)檢查是否有按鍵按下。鍵盤處理程序流程圖如圖4-3所示。確定數(shù)字確定數(shù)字顯示、存儲(chǔ)等處理判斷是功能鍵?還是數(shù)字鍵?檢測(cè)按鍵?確定功能執(zhí)行并處理結(jié)束開始NNYY功能功能數(shù)字?jǐn)?shù)字圖4-3鍵盤處理程序流程圖4.3液晶顯示子程序LCD的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實(shí)現(xiàn)的。1602液晶是字符型液晶,它的內(nèi)部自帶字符庫,它可以寫兩行的字符,同時(shí)每行可以寫40個(gè)字符,本系統(tǒng)液晶處理程序,完成信息的顯示,包括車輛號(hào)碼,單價(jià),時(shí)間,總計(jì)金額等這些資料。流程圖如圖4-4所示,其中包括檢測(cè)忙信息,一系列的寫命令和寫數(shù)據(jù),隨后設(shè)置光標(biāo)、閃爍設(shè)置等,最后清顯示。4.4串口通信子程序RS232串口通信協(xié)議是我們熟悉和常用的通信協(xié)議,其通信協(xié)議的設(shè)計(jì)思想是基于幀傳輸方式,即在向串口發(fā)送命令信號(hào)、應(yīng)答信號(hào)及數(shù)據(jù)信號(hào)時(shí)是按照幀的格式發(fā)送的。為了使數(shù)據(jù)快速可靠地傳輸,將每一幀數(shù)據(jù)對(duì)應(yīng)一個(gè)命令幀,傳輸數(shù)據(jù)即執(zhí)行命令。串口通信程序,將完成交易的數(shù)量,以及總金額,出入的車輛告知PC機(jī)等完成匯總。系統(tǒng)先對(duì)RS232進(jìn)行初始化,然后判斷是發(fā)送命令還是接收命令,如若是接收命令,則接收數(shù)據(jù),反之,則發(fā)送數(shù)據(jù),其流程圖如圖4-5所示。檢測(cè)忙信號(hào)檢測(cè)忙信號(hào)寫命令寫數(shù)據(jù)顯示設(shè)置點(diǎn)陣開始顯示器、光標(biāo)、閃爍設(shè)置光標(biāo)移動(dòng)設(shè)置清顯示結(jié)束發(fā)送發(fā)送數(shù)據(jù)發(fā)送接收結(jié)束接收數(shù)據(jù)開始初始化判斷是否是發(fā)送或接收命令圖4-4LCD顯示流程圖圖4-5串口通信流程圖4.5時(shí)鐘子程序DS1302芯片是一種高性能的時(shí)鐘芯片,可自動(dòng)對(duì)秒、分、時(shí)、日、周、月、年進(jìn)行計(jì)數(shù),具有閏年補(bǔ)償功能,工作電壓為2.5V~5.5V,而且精度高。它采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。本系統(tǒng)的時(shí)鐘模塊,將完成停車場(chǎng)停車時(shí)間的計(jì)算,綜合出入場(chǎng)的時(shí)間與出場(chǎng)的時(shí)間,計(jì)算出停車時(shí)間,再乘以單價(jià),就是本次停車場(chǎng)應(yīng)該收取的金額。時(shí)鐘模塊的流程圖如下所示。NNY顯示數(shù)據(jù)數(shù)據(jù)讀完否地址增加延時(shí)一段時(shí)間將該地址的數(shù)據(jù)讀出復(fù)位產(chǎn)生一個(gè)高電平寫1302地址Y開始變量初始化使DS1302不具備寫保護(hù)向該地址寫數(shù)據(jù)寫1302地址延時(shí)一段時(shí)間地址增加數(shù)據(jù)寫完否復(fù)位產(chǎn)生一個(gè)高電平N圖4-6時(shí)鐘流程圖4.6讀寫模塊MF-RC500復(fù)位操作。初始化MF-RC500內(nèi)部寄存器。判斷是否有碰撞,若有,則執(zhí)行反碰撞操作。對(duì)非接觸式IC卡進(jìn)行操作,在經(jīng)過請(qǐng)求等一系列操作之后就可以具體地對(duì)卡片進(jìn)行相應(yīng)的讀、寫、增值、減值、存儲(chǔ)和傳送等操作。讀/寫卡程序流程圖如圖4-7所示[13]。無無否是開機(jī)復(fù)位初始化MF-RC500請(qǐng)求操作有碰撞?反碰撞操作選擇卡通過驗(yàn)證?卡的數(shù)據(jù)操作有圖4-7讀/寫卡程序流程圖5結(jié)論本文論述了以非接觸式IC卡為收費(fèi)介質(zhì)的停車場(chǎng)管理系統(tǒng)軟件的設(shè)計(jì),該系統(tǒng)采用了目前已經(jīng)非常成熟的非接觸式IC卡讀寫技術(shù)、計(jì)算機(jī)控制技術(shù),能夠大幅度提高停車場(chǎng)車輛通行的流暢性,減少車輛停滯時(shí)間,簡化駕駛?cè)藛T操作過程,從而進(jìn)行停車場(chǎng)進(jìn)出車輛的計(jì)算機(jī)化智能管理,有效降低停車場(chǎng)管理系統(tǒng)的運(yùn)營成本和管理人員勞動(dòng)強(qiáng)度。從用戶的角度看,其服務(wù)高效,收費(fèi)透明度高,準(zhǔn)確無誤;從管理者的角度看,其易于操作維護(hù),自動(dòng)化程度高,大大減輕管理者的勞動(dòng)強(qiáng)度,從根本上杜絕票款流失的現(xiàn)象,對(duì)加速解決我國目前面臨的停車難問題有著非常積極的意義。本文所設(shè)計(jì)的非接觸式IC卡停車場(chǎng)收費(fèi)系統(tǒng),能夠滿足一個(gè)停車場(chǎng)收費(fèi)所能需要的基本功能,其操作簡單,可實(shí)現(xiàn)性強(qiáng)。本設(shè)計(jì)完成了七個(gè)部分電路的設(shè)計(jì):1、單片機(jī)及外圍電路,2、鍵盤電路,3、顯示電路,4、存儲(chǔ)器電路,5、串口通信電路,6、讀寫模塊,7、時(shí)鐘模塊。以ATMEL公司的AT89C51單片機(jī)作為微控制器,采用MFRC500讀寫模塊,鍵盤采用4×4矩陣鍵盤,以DS1302作為系統(tǒng)時(shí)鐘,以AT24C02作為不掉電存儲(chǔ)器,采用LCD顯示,并以RS232接口和計(jì)算機(jī)通信,組成一套功能齊全的非接觸IC卡讀寫系統(tǒng)。當(dāng)IC卡在天線區(qū)域經(jīng)過時(shí),單片機(jī)自動(dòng)需求對(duì)IC卡進(jìn)行讀寫,再把讀/寫卡的時(shí)間一起存到存儲(chǔ)器中,計(jì)算機(jī)可以通過串口把相關(guān)讀/寫卡信息讀到計(jì)算機(jī)上。本設(shè)計(jì)從原理上進(jìn)行設(shè)計(jì)計(jì)算,畫出了程序流程圖,寫出了程序代碼,并繪制了相應(yīng)的電路圖。但由于作者的經(jīng)驗(yàn)限制,在設(shè)計(jì)的過程中,走了不少彎路,過程可謂相當(dāng)糾結(jié)痛苦,所幸,經(jīng)過多次努力以及同學(xué)老師的幫助,終于使得設(shè)計(jì)初級(jí)雛形。但由于時(shí)間和個(gè)人能力問題,本設(shè)計(jì)還存在明顯不足和可待優(yōu)化功能,需要進(jìn)行多方面的后續(xù)開發(fā),使其功能更加完善:1、可添加“車類型”判斷,由此區(qū)分是屬于大型車,還是小型車,因?yàn)檐囆筒煌加玫耐\嚳臻g不同,所以收費(fèi)應(yīng)該也有所不同。2、添加“不收費(fèi)時(shí)間”判斷:有一些停車場(chǎng)可能希望如果車主只是停了幾分鐘,就不想收費(fèi)的話,可以進(jìn)行相關(guān)設(shè)置,如果想取消此功能可以去掉。3、可以添加語言提示,這樣系統(tǒng)就更實(shí)用話一些。4、車位滿提示燈,如若停車場(chǎng)車位已滿,則提示,這樣效果更直觀。本設(shè)計(jì)能夠完成停車場(chǎng)收費(fèi)系統(tǒng)的基本功能,但若將以上的幾個(gè)功能引進(jìn),則效果非常可觀。本設(shè)計(jì)還可以簡單修改后以應(yīng)用于其他電子消費(fèi)場(chǎng)合,如食堂售飯、公交、圖書館等場(chǎng)合,還可以用于公司的門禁考勤系統(tǒng),具有很好的市場(chǎng)推廣價(jià)值。參考文獻(xiàn)[1]何立民.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,1995.[2]沈宇超.射頻識(shí)別技術(shù)及其發(fā)展現(xiàn)狀[J].電子技術(shù)應(yīng)用,2007(1):8-9.[3]李宏,張家田.液晶顯示器件應(yīng)用技術(shù)[M].北京:機(jī)械工業(yè)出版社,2003.[4]王卓人,鄧晉鈞,劉宗祥.IC卡的技術(shù)與應(yīng)用.北京:電子工業(yè)出版社,1999:49-52.[5]劉錚.非接觸式IC卡射頻識(shí)別技術(shù)[J].信息技術(shù),2006,3(4):8-12.[6]范久臣.實(shí)時(shí)時(shí)鐘芯片在單片機(jī)系統(tǒng)中的應(yīng)用[J].沈陽教育學(xué)院學(xué)報(bào),2005,7(4):132-134.[7]張文.自動(dòng)售貨機(jī)IC卡收費(fèi)模塊的設(shè)計(jì)與應(yīng)用[J]微計(jì)算機(jī)信息,2006,2-2:201-203.[8]張洪潤,藍(lán)清華.單片機(jī)應(yīng)用技術(shù)教程[M].北京:清華大學(xué)出版社,1997.[9]李戰(zhàn)明.基于串行接口芯片的單片機(jī)智能控制器的設(shè)計(jì)與實(shí)現(xiàn).電子技術(shù)應(yīng)用,1999,(12):66-67.[10]張俊杰,喬誼正.非接觸式IC卡讀寫模塊的應(yīng)用開發(fā).世界電子元器件,2004,2:44-46.[11]MFRC500HighlyIntegratedISO14443AReaderICDesignDataSheet.PhilipsSemiconductor,2002.[12]MicoreReaderICfamilyDirectlyMatchedAntennaDesign.Philipssemiconductors,2002.[13]李淑琴,范蟠果.射頻識(shí)別非接觸式IC卡讀卡器的設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2007(3):378-380.[14]譚浩強(qiáng).C程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2003.[15]張齊,杜群貴.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)技術(shù)--基于C語言編程[M].北京:電子工業(yè)出版社,2004.致謝首先我要感謝我的導(dǎo)師萬忠民老師,老師的教誨是我一生中最寶貴的財(cái)富。本文就是在萬老師的悉心指導(dǎo)下完成的,從論文的選題、項(xiàng)目的研究開發(fā)到論文的撰寫和修改,無不滲透著老師的心血和他對(duì)學(xué)生的一片盛情,尤其是萬老師獨(dú)特的培養(yǎng)方式和開放的現(xiàn)代思維,令學(xué)生不僅在學(xué)術(shù)上緊跟世界的前沿?zé)狳c(diǎn),也開闊了視野,在思想上得到了升華,同時(shí)萬老師為人誠懇、舉重若輕的人格魅力和言傳身教、誨人不倦的授業(yè)精神使我深深佩服并獲益匪淺,萬老師給予了我們一個(gè)良好的成才空間,在此,我謹(jǐn)向辛勤培育我們的萬老師致以崇高的敬意和誠摯的感謝!還要感謝那些曾經(jīng)給我?guī)椭槲沂谡n、予我知識(shí)、助我成才的老師們,他們?cè)趯?shí)驗(yàn)條件的建立、前沿知識(shí)的傳授以及人生道路問題的探討上同樣使我收益頗多,謝謝你們的幫助、關(guān)心和鼓勵(lì)!最后還要感謝在百忙之中評(píng)閱我論文的各位老師,謝謝!在本論文的寫作和相關(guān)研究工作中,我同班同學(xué)都給予了我很多熱心的幫助和熱情的鼓勵(lì),使我順利走過了這段充實(shí)的生活。我要向他們中的每一個(gè)人表示由衷的感謝,我會(huì)永遠(yuǎn)記住這段美好時(shí)光。在我完成這次畢業(yè)設(shè)計(jì)的過程中,當(dāng)看到自己將專業(yè)知識(shí)用于解決實(shí)際的問題時(shí),那份成就感和喜悅感是難以形容的。但是,在實(shí)際的編程以及調(diào)試程序過程中,我發(fā)現(xiàn)自己所應(yīng)該學(xué)的太多太多。光靠自己在書本上所學(xué)過的這點(diǎn)知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,我由此真正地認(rèn)識(shí)到了工作就是學(xué)習(xí)的道理。再次向所有幫助過我的人表示衷心的感謝!謝謝你們!
附錄附錄1:總電路圖附錄2部分程序清單#include<reg52.h>#include<intrins.h>#include<math.h>sbitE=P1^2; //1602使能引腳sbitRW=P1^1; //1602讀寫引腳 sbitRS=P1^0; //1602數(shù)據(jù)/命令選擇引腳sbitACC0=ACC^0;sbitACC7=ACC^7;sbitP3_2=P3^2;sbitP3_5=P3^4;sbitT_CLK=P1^6;/*實(shí)時(shí)時(shí)鐘時(shí)鐘線引腳*/sbitT_IO=P3^5;/*實(shí)時(shí)時(shí)鐘數(shù)據(jù)線引腳*/sbitT_RST=P1^7;/*實(shí)時(shí)時(shí)鐘復(fù)位線引腳*/sbitscl=P1^5;//24c02SCLsbitsda=P3^6;//24c02SDAucharcodetable[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};uintwrite;//寫標(biāo)志位ucharsec,min,hour,day,month,year;ucharsec1,min1,hour1,day1,month1,year1;ucharpay;//總費(fèi)用#defineprice0.5;//定義停車單價(jià),按分鐘 /********************************************************************/讀卡器主程序*********************************************************************#define__SRC#include"main.h"#undef__SRC#include<string.h>#include<m500a.h>#include<p89c51rx.h>#defineMIS_CHK_OK(0)#defineMIS_CHK_FAILED(-1)#defineMIS_CHK_COMPERR(-2)//Function:mifs_request#defineIDLE0x00#defineALL0x01sbitRC500RST =P3^5;sbitRC500_CS =P2^7;//ReleaseNumberoftheFirmwareucharcodeSW_Rel[]="\n\rMFRC500V1.022.06.02\n\r";//SerialNumberoftheMFRC500ucharSnr_RC500[4];ucharSnr1_RC500[4];staticuintCrc;//LocalPrototypesvoidinit(void);codeNkey_a[6]={0xA0,0xA1,0xA2,0xA3,0xA4,0xA5};codeNkey_b[6]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};/********************************************************************voidread_rc500(void){unsignedcharcounter,counter2;unsignedcharmfout=2;//readbuf[16];unsignedchartt1[2];unsignedcharstatus1;unsignedcharcardserialno[4];unsignedchar*sak1;unsignedcharblockdata[16];init();M500PcdConfig(); //InitialisetheRC500 //mustbecallintheinitialisationPcdReadE2(8,4,Snr_RC500);//ReadouttheMFRC500serialnumberandstoreitM500PcdMfOutSelect(mfout);for(counter=0;counter<20;counter++){ status1=M500PiccRequest(PICC_REQALL,tt1); if(status1==MI_OK) status1=M500PiccAnticoll(0,cardserialno); if(status1==MI_OK) status1=M500PiccSelect(cardserialno,sak1); if(status1==MI_OK) status1=M500PiccAuth(PICC_AUTHENT1A,cardserialno,1,4); if(status1==MI_OK) status1=M500PiccRead(4,blockdata); for(counter2=0;counter2<16;counter2++) blockdata[counter2]=counter; if(status1==MI_OK) status1=M500PiccWrite(4,blockdata);}}/********************************************************************void init(void){RC500RST=FALSE;RC500_CS=TRUE; //EnabletheCSforRC500CmdReceived=FALSE;CmdValid=FALSE;Quit=FALSE;LLfReady=TRUE;SendReady=TRUE;Idle=TRUE;RepCnt=0;RecvState=RECV_STX;EnableTransferCmd=FALSE;CheckByteCnt=BCC_CHECKBYTECNT;#ifdefAUTODELAYDelayRate=0;DelayRateLocked=TRUE;#endifPCON=0x80; //SMOD=1;SCON=0x50; //Mode1,8-bitUART,enablereceiptionAutoBaud=TRUE;TMOD=0x20; //Timer1,mode2,8-bitautoreload, //Timer0,mode0,13-bitcounterCapt_L=0;Capt_H=0;LED=OFF;delay_10ms(50);LED=ON;IT0=1; //Configext0asedgetriggerforRC500EX0=1; //Enableext0interruptforRC500EA=TRUE; //Enableallinterrupts}#ifdefNOP_DELAY/********************************************************************void delay_50us_NOP(void){uchari;for(i=0;i<81;i++)_nop_(); }#endif/********************************************************************void delay_8us_NOP(void){uchari;for(i=0;i<14;i++)_nop_(); }#pragmaaregs/********************************************************************uchar xtoa_h(uchar_byte){ucharnibble=_byte>>4;return((nibble>9)?nibble+'A'-10:nibble+'0');}/********************************************************************uchar xtoa_l(uchar_byte){ucharnibble=_byte&0x0F;return((nibble>9)?nibble+'A'-10:nibble+'0');}void isr_timer0(void)interrupt1using2{if(Timer0Cnt){ --Timer0Cnt;}else{ STOP_T0();#ifdefAUTODELAY if(DelayRate<MAXDELAYRATE&&CmdCnt>0) { DelayRate++; DelayRateLocked=FALSE; }#endif RecvState=RECV_STX; if(!SendReady&&LLfReady) { if(RepCnt<MAXREPCNT) { RepCnt++; CALL_isr_UART(); } else { RepCnt=0; Quit=FALSE; SendReady=TRUE; } }}}/*********************************************************************功能:串口初始化,晶振11.0592,波特率9600,使能了串口中斷***********************************************************************/voidCom_Init(void){TMOD=0x20;//定時(shí)器工作在定時(shí)器1的方式2PCON=0x00;//不倍頻SCON=0x50; //串口工作在方式1,并且啟動(dòng)串行接收 TH1=0xFd;//設(shè)置波特率9600TL1=0xFd;TR1=1; //啟動(dòng)定時(shí)器1 ES=1; //開串口中斷 EA=1; //開總中斷 }/*********************************************************************功能:串口接收子函數(shù)***********************************************************************/voidCom_Int(void)interrupt4{ EA=0; if(RI==1)//當(dāng)硬件接收到一個(gè)數(shù)據(jù)時(shí),RI會(huì)置位 { LED_Buffer[com_dat]=SBUF; //把從串口讀出的數(shù)存到數(shù)組 RI=0; com_dat++; if(com_dat==16)com_dat=0; //當(dāng)com_dat=16時(shí),清0,防止數(shù)組溢出 } EA=1;}/*********************************************************************功能:串口發(fā)送子函數(shù)***********************************************************************/voidSendData(uchar*q)interrupt4{uchari;for(i=0;*q!='\0';i++){SBUF=*q;while(!TI);TI=0;q++;}q=0;}/*********************************************************************名稱:delay1()*功能:短暫延時(shí)*輸入:x*輸出:無***********************************************************************/voiddelay1(ucharx){ uinti; for(i=0;i<x;i++) ;}/*********************************************************************名稱:flash()*功能:延時(shí),時(shí)間為2個(gè)NOP,大概為2US*輸入:無*輸出:無***********************************************************************/voidflash(void){ _nop_(); _nop_();}/*********************************************************************名稱:x24c02_init()*功能:24c02初始化子程序*輸入:無*輸出:無***********************************************************************/voidx24c02_init(void){ scl=1; flash(); sda=1; flash();}/*********************************************************************名稱:start(void)*功能:啟動(dòng)I2C*輸入:無*輸出:無***********************************************************************/voidstart(void){ sda=1; flash(); scl=1; flash(); sda=0; flash(); scl=0; flash();}/*********************************************************************名稱:stop()*功能:停止I2C*輸入:無*輸出:無***********************************************************************/voidstop(){ sda=0; flash(); scl=1; flash(); sda=1; flash();}/*********************************************************************名稱:writex()*功能:寫一個(gè)字節(jié)*輸入:j(需要寫入的值)*輸出:無***********************************************************************/voidwritex(ucharj){ uchari,temp; temp=j; for(i=0;i<8;i++) { temp=temp<<1; scl=0; flash(); sda=CY; flash(); scl=1; flash(); } scl=0; flash(); sda=1; flash();}/*********************************************************************名稱:readx()*功能:讀一個(gè)字節(jié)*輸入:無*輸出:讀出的值***********************************************************************/ucharreadx(void){ uchari,j,k=0; scl=0; flash(); sda=1; for(i=0;i<8;i++) { flash(); scl=1; flash(); if(sda==1) { j=1; } elsej=0; k=(k<<1)|j; scl=0; } flash(); return(k);}/*********************************************************************名稱:clock()*功能:I2C*輸入:無*輸出:無***********************************************************************/voidclock(void){ uchari=0; scl=1; flash(); while((sda==1)&&(i<255)) { i++; } scl=0; flash();}/*********************************************************************名稱:x24c02_read()*功能:從24c02中讀出值*輸入:address(要在這個(gè)地址讀取值)*輸出:從24c02中讀出的值***********************************************************************/ucharx24c02_read(ucharaddress){ uchari; start(); writex(0xa0); clock(); writex(address); clock(); start(); writex(0xa1); clock(); i=readx(); stop(); delay1(10); return(i);}/*********************************************************************名稱:x24c02_write()*功能:想24c02中寫入數(shù)據(jù)*輸入:address(地址),info(值)*輸出:無***********************************************************************/voidx24c02_write(ucharaddress,ucharinfo){ EA=0; start(); writex(0xa0); clock(); writex(address); clock(); writex(info); clock(); stop(); EA=1; delay1(50);}/*********************************************************************名稱:Delay_10ms()*功能:延時(shí),延時(shí)時(shí)間為1ms*i*輸入:i(延時(shí)1ms的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 鄭州城市職業(yè)學(xué)院《影視攝像基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 漯河食品職業(yè)學(xué)院《會(huì)展項(xiàng)目綜合運(yùn)營二》2023-2024學(xué)年第二學(xué)期期末試卷
- 武昌工學(xué)院《測(cè)試自動(dòng)化》2023-2024學(xué)年第二學(xué)期期末試卷
- 沈陽理工大學(xué)《酒店財(cái)務(wù)管理實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 中國地質(zhì)大學(xué)(北京)《電力電子變流技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年氣體檢測(cè)監(jiān)控系統(tǒng)合作協(xié)議書
- 浙江建設(shè)職業(yè)技術(shù)學(xué)院《畫法幾何及陰影透視》2023-2024學(xué)年第二學(xué)期期末試卷
- 寧泌泰膠囊項(xiàng)目效益評(píng)估報(bào)告
- 河南2025年河南鄭州大學(xué)第一附屬醫(yī)院招聘819人筆試歷年參考題庫附帶答案詳解
- 大連軟件職業(yè)學(xué)院《食品營養(yǎng)》2023-2024學(xué)年第二學(xué)期期末試卷
- LY/T 3400-2024荒漠與荒漠化防治術(shù)語
- 2024-2025學(xué)年第二學(xué)期英語教研組工作計(jì)劃
- 2025年往年教師職稱考試試題
- 幼兒園開學(xué)前的廚房人員培訓(xùn)
- 《幼兒教育政策與法規(guī)》教案-單元6 幼兒園的工作人員
- 虛擬制片技術(shù)在VRAR應(yīng)用中的角色建模與渲染-洞察分析
- GB/T 45167-2024熔模鑄鋼件、鎳合金鑄件和鈷合金鑄件表面質(zhì)量目視檢測(cè)方法
- 2023年東北公司加油站賬務(wù)人員考試題庫
- 2024年四川綿陽初中學(xué)業(yè)水平考試英語試卷真題(含答案詳解)
- 2024至2030年中國數(shù)字壓力表行業(yè)投資前景及策略咨詢研究報(bào)告
- 《SPIN顧問式銷售》課件
評(píng)論
0/150
提交評(píng)論