613352361畢業(yè)設(shè)計(論文)基于射頻卡的收費系統(tǒng)研究_第1頁
613352361畢業(yè)設(shè)計(論文)基于射頻卡的收費系統(tǒng)研究_第2頁
613352361畢業(yè)設(shè)計(論文)基于射頻卡的收費系統(tǒng)研究_第3頁
613352361畢業(yè)設(shè)計(論文)基于射頻卡的收費系統(tǒng)研究_第4頁
613352361畢業(yè)設(shè)計(論文)基于射頻卡的收費系統(tǒng)研究_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 本科畢業(yè)論文(設(shè)計)題 目: 基于射頻卡的收費系統(tǒng)研究 學(xué) 院: 自動化工程學(xué)院 專 業(yè): 電子信息科學(xué)與技術(shù) 班 級: 2006級1班 姓 名: # 指導(dǎo)教師: # 2010年 6 月 8日the research of a fare system based on rf card青島大學(xué)本科生畢業(yè)論文(設(shè)計)摘 要射頻卡又叫做非接觸式ic卡,成功地解決了無源(卡中無電源)和免接觸這兩個問題,是電子器件領(lǐng)域的一大突破。主要用于公交、地鐵、輪渡等的自動收費系統(tǒng),也應(yīng)用在身份證明、門禁管理和電子錢包等。本設(shè)計為基于射頻卡的收費系統(tǒng)研究,設(shè)計一套方便快捷的收費系統(tǒng),該系統(tǒng)可廣泛應(yīng)用于各種收費場合

2、,代替繁瑣的人工收費,節(jié)約人力物力。設(shè)計的硬件部分主要包括單片機(stc89c52)、射頻卡讀寫模塊,配合鍵盤輸入、數(shù)碼顯示等幾部分。其中,單片機主要起控制作用,以完成對射頻卡讀寫模塊的配置以及對按鍵的處理從而實現(xiàn)對射頻卡的操作以及顯示等控制;多功能數(shù)字鍵盤作為輸入設(shè)備,使扣費方便快捷完成;顯示部分通過hd7279控制數(shù)碼管來實現(xiàn)。關(guān)鍵詞 讀卡器 zlg522s mifare1卡 stc89c52abstractradio frequency card is also called non-contact ic card.it successfully resolved problem wit

3、hout source and contact. rf card is mainly used for charging system of bus、subway or the ferry. it is also used in access management, proof of identity and electronic purse. this design is research of a fare system based on rf card.the hardware design is mainly composed of stc89c52,reader,keyboard c

4、ircuit,digital tube display circuit. stc89c52 is the main control in order to finish reading modules for rf card to the configuration and the key of rf card with the operation and display control. digital keyboard the input device, can be convenient for the input buckle expense. hd7279a controls dig

5、ital tube to realize display section. keywords reader zlg522s mifare one card stc89c52目 錄前 言1第1章 概述21.1 論文背景21.2 方案概述2第2章 硬件組成描述52.1 mifare1卡簡介52.1.1 主要指標52.1.2 存儲結(jié)構(gòu)62.2 zlg522s模塊簡介72.1.1 功能特點72.1.2 技術(shù)參數(shù)72.3 stc89c52單片機簡介82.4 hd7279a簡介102.4.1 特點102.4.2 引腳說明112.4.3 串行接口11第3章 開發(fā)環(huán)境keil介紹133.1 系統(tǒng)概述133.2

6、 keil工程的建立14第4章 系統(tǒng)電路的設(shè)計及原理184.1 原理框圖184.2 各模塊具體實現(xiàn)原理分析和說明184.2.1 讀寫模塊184.2.2 按鍵模塊214.2.3 數(shù)碼管顯示模塊21第5章 軟件實現(xiàn)245.1 讀寫模塊通信設(shè)計245.1.1 數(shù)據(jù)通信格式245.1.2 應(yīng)用命令詳述265.1.3 函數(shù)庫的使用275.2 射頻扣費設(shè)計295.3 鍵盤和顯示功能325.4 扣費記錄存儲34總 結(jié)36謝 辭37參 考 文 獻39青島大學(xué)本科生畢業(yè)論文(設(shè)計)前 言當今的信息技術(shù)又到了一個關(guān)鍵的十字路口。單獨的pc甚至局域網(wǎng)的時代已為“全球化網(wǎng)絡(luò)”時代所代替?;ヂ?lián)網(wǎng)internet的產(chǎn)生和

7、今天的飛速發(fā)展和廣泛滲透就是典范。非接觸ic卡以其高度的信息集成化,高度的安全性,正在并已經(jīng)融入到當今信息技術(shù)的主流,正日漸其輝煌和燦爛。隨著金融行業(yè)的不斷發(fā)展,社會經(jīng)濟的日新月異,特別是公共交通行業(yè),無線通信領(lǐng)域,封閉式場所管理,衛(wèi)生保健行業(yè),身份識別,電話通信,大樓保安系統(tǒng)等等,人們已愈來愈多地開始接受和使用非接觸ic卡。當今世界上非接觸式ic射頻卡中的主流是已經(jīng)被制定為國際標準:iso/iec 14443 type a標準的philips公司的mifare技術(shù)。歐洲一些較大的ic卡片制造商以及ic卡片讀寫器制造商大都以mifare技術(shù)為標準,而發(fā)展和推進ic卡行業(yè)。國外對ic卡的研究已有

8、多年,但真正在非接觸ic卡方面的研究僅有12年的成熟期。非接觸ic卡代表了整個“刷卡”領(lǐng)域的發(fā)展方向,前景光明,應(yīng)用領(lǐng)域非常廣泛,例如,門禁控制系統(tǒng)(door access system),停車場收費管理系統(tǒng),高速公路不停車收費系統(tǒng),地鐵非接觸ic卡的“刷卡”讀寫器,機關(guān)/企業(yè)內(nèi)部考勤管理系統(tǒng),公共交通收費管理系統(tǒng),醫(yī)療保險管理系統(tǒng),出租車收費管理系統(tǒng),銀行服務(wù)“一卡通”等等。目前,國內(nèi)已有幾家公司正在引進國外的先進技術(shù),開發(fā)自己的射頻識別系統(tǒng)?,F(xiàn)在,在錦山的一條高速公路上已實現(xiàn)使用非接觸射頻卡自動收費,上海的公共汽車已經(jīng)使用電子月票,北京的機場高速公路上、深圳的皇崗口岸等也使用了射頻識別系統(tǒng)

9、收費。本課題主要研究基于zlg522s讀寫模塊的卡識別、增值、扣費、卡掛失等功能的實現(xiàn)。第1章 概述1.1 論文背景射頻卡(radio frquency card,簡稱rf卡)又叫做非接觸式ic卡,誕生于90年代初,是一種以無線方式傳送數(shù)據(jù)的集成電路卡片,它具有數(shù)據(jù)處理及安全認證功能等特有的優(yōu)點。射頻卡是最近幾年發(fā)展起來的一項新技術(shù),它成功地將射頻識技術(shù)和ic卡技術(shù)結(jié)合起來,解決了無源(卡中無電源)和免接觸這兩個問題,是電子器件領(lǐng)域的一大突破。它存在著磁卡和接觸式ic卡不可比擬的優(yōu)點,所以一經(jīng)問世,便立即引起廣泛的關(guān)注, 并以驚人的速度得到推廣和應(yīng)用。 1994年射頻卡(rfid)進入中國,引

10、發(fā)了中國rfid卡的應(yīng)用革命,在國內(nèi),其應(yīng)用領(lǐng)域越來越廣,涉及各行各業(yè)。先后歷經(jīng)了磁卡、tm卡、接觸式ic卡、非接觸式id卡、非接觸式可讀寫ic卡。其中為了適應(yīng)小區(qū)、智能大廈的防范系統(tǒng)要求,門禁系統(tǒng)由單一的門禁功能發(fā)展到門禁、考勤、消費、巡更、三表抄送等綜合性一卡通系統(tǒng);為適應(yīng)遠距離感應(yīng)的要求,國內(nèi)出現(xiàn)了有源卡、微波卡遠距離感應(yīng)系統(tǒng)。另外,rfid技術(shù)在高速公路自動收費、會員制收費卡、員工就餐卡、商店收費、電話卡、儲蓄卡等等中比較有發(fā)展前景。當然在這里僅僅羅列了rfid技術(shù)應(yīng)用的一部分,但都是可行的且十分重大。rfid將是未來一個新的經(jīng)濟增長點。射頻識別技術(shù)在中國處于一個剛剛起步的階段,但是它

11、的發(fā)展?jié)摿κ蔷薮蟮?,它的前景非常誘人。在信息社會,對于各種信息的獲取及處理要求快速、準確,在不久的將來rfid技術(shù)就將同其它識別技術(shù)一樣深入和改善我們的生活。對于這樣一個新技術(shù),我們應(yīng)該增強宣傳力度,爭取能夠盡早普及它,利用它,提高我們的工作效率和經(jīng)濟效益。1.2 方案概述隨著居民生活水平提高,居民在各項日常支出及支出種類上也相應(yīng)增加。例如,某地居民日常需要繳納水電費、煤氣費、電話費、有線電視費;出行乘坐交通工具的費用;超市購物、就餐、自動售販機以及各種商店的消費支出。支出項目眾多,種類復(fù)雜,造成了很多不便與麻煩:1、身上時常攜帶小額現(xiàn)金、硬幣沉重不方便;有些消費場合收費數(shù)目較小但是卻為此需要

12、特別準備零錢以完成收費,比如乘坐公交車,時常是1元、2元的小額支出,沒有零錢卻難以乘坐,非常不方便;還有些場合如自動飲料售販機可能只支持硬幣,想喝杯飲料卻因為沒有硬幣而掃興而歸時有發(fā)生。2、水電費、煤氣費、電話費等繳納可能需要在不同收費點完成繳費,居民為了繳齊各種費用要跑去很多地方,雖然也有銀行代為辦理,但是由于銀行上班時間的限制,很多人無法抽空前去繳費,并且,排隊繳納人數(shù)眾多,銀行專用窗口少、人工收費效率低,居民常常需要等待很長時間,而且,占用銀行窗口空間資源,許多銀行都不愿做代收水電費等業(yè)務(wù)。atm機繳費方式雖然可以不受時間限制,但步驟也較為復(fù)雜,老年人難以操作。3、超市等地方收銀需要大量

13、現(xiàn)金交換、找零、刷卡也會占用相當一部分時間,在節(jié)假日購物人多的情況下,許多人難以忍受。為解決以上諸多不便,本設(shè)計提出一套基于射頻卡的收費系統(tǒng),他的特點是方便快捷,適用于多種應(yīng)用場合,甚至可以將水電費、有線電視費、電話費等集成在一臺收費機完成,省去跑各個收費點的不便,而且操作簡單,整個過程只需刷卡或按12鍵完成,老年人也能輕松上手;充分解放錢包空間,出門只需攜帶一張射頻卡即可完成大部分日常支出;由于其特性定位于小額支出,又加入了單筆最高限額,全天消費限額等設(shè)置,當超過這些限定需要輸入密碼。建立這樣一個收費系統(tǒng),首先有個發(fā)卡機構(gòu)(如銀行)它同時負責對金錢的管理,企業(yè)和個人向該機構(gòu)申請賬戶,個人用戶

14、向申請的賬戶中存入若干錢。當用戶在收費機上刷卡扣費,收費機根據(jù)收費項目將從用戶卡中扣除的金額分類存儲,卡發(fā)行機構(gòu)最終會將扣費金額根據(jù)收費項目轉(zhuǎn)入相應(yīng)企業(yè)賬戶。該系統(tǒng)使用時,首先確定它的應(yīng)用場合及收費類型??梢酝ㄟ^程序設(shè)定它為多應(yīng)用場合還是單一應(yīng)用場合,扣費又可以分為人工扣費和自動扣費,人工扣費下(如超市收銀),收銀員通過與控制器連接的鍵盤輸入需要扣費的金額,扣費的金額在收費機的數(shù)碼顯示管上顯示供顧客確認,確認無誤后,顧客將卡至于扣費區(qū),收費機根據(jù)金額在顧客的射頻卡上減去相應(yīng)金額。自動扣費下(如水電費等繳納)消費者選擇扣費項目,然后將卡置于刷卡有效范圍,讀寫模塊讀取卡的序列號,該序列號相當于該卡

15、的身份認證且其號碼為全球唯一,控制器得到這個序列號后查詢數(shù)據(jù)庫相應(yīng)收費條目,從卡中減去相應(yīng)金額,并將數(shù)據(jù)庫條目標記為已扣費,避免重復(fù)收?。蝗绻菃我粦?yīng)用場合則直接刷卡扣費。該系統(tǒng)也可通過設(shè)定一個固定的金額以自動扣費,實現(xiàn)定額消費。當單筆扣費額或全天消費總額超過一定限度,收費機會提示輸入密碼,以免卡丟失情況下被拾到者不法利用,最大限度保證持卡人資金安全。圖1.1即為基于射頻卡收費系統(tǒng)的原理框圖。系統(tǒng)的核心是單片機控制下的射頻卡讀寫模塊以及讀寫模塊支持的射頻卡(本系統(tǒng)采用mifare1 s50卡)。在硬件組成上采用了stc89c52單片機作為控制芯片,周立功zlg522s模塊完成射頻卡的讀寫過程,

16、鍵盤輸入扣費項目或扣費金額,數(shù)碼管用于顯示扣費額以及各種提示信息, hd7279智能驅(qū)動芯片同時驅(qū)動數(shù)碼管顯示和鍵盤,它能將顯示信息以及按鍵輸入進行處理,與控制器配合共同完成相應(yīng)功能;用戶持mifare1卡靠近讀寫模塊驅(qū)動下的感應(yīng)天線區(qū),當進入刷卡有效范圍即完成相應(yīng)操作。圖1.1 系統(tǒng)硬件框圖 第2章 硬件組成描述2.1 mifare1卡簡介mifare1卡(簡稱m1卡)的卡片的電氣部分是由一個天線和asic組成。其中,天線是只有幾組繞線組成的線圈,很適合封裝到is0卡片中??ㄆ腶sic由一個高速(106kb波特率)的rf接口,一個控制單元和一個8k位eeprom組成。射頻卡的內(nèi)部結(jié)構(gòu)如圖2

17、.1所示:圖2.1 射頻卡內(nèi)部結(jié)構(gòu)工作原理:讀寫模塊向m1卡發(fā)一組固定頻率(13.56mhz)的電磁波,卡片內(nèi)有一個lc串聯(lián)諧振電路,其頻率與讀寫模塊發(fā)射的頻率相同,在電磁波的激勵下,lc諧振電路產(chǎn)生共振,從而使電容內(nèi)有了電荷,在這個電容的另一端,接有一個單向?qū)ǖ碾娮颖?,將電容?nèi)的電荷送到另一個電容內(nèi)儲存,當所積累的電荷達到2v時,此電容可作為電源為其它電路提供工作電壓,將卡內(nèi)數(shù)據(jù)發(fā)射出去或接收讀寫器的數(shù)據(jù)。2.1.1 主要指標l 容量為8k位eeprom。l 分為16個扇區(qū),每個扇區(qū)分為4塊,每塊16個字節(jié),以塊為存取單位。l 每個扇區(qū)有獨立的一組密碼及訪問控制。l 每張卡有唯一的序列號,

18、為32位。l 具有防沖突機制,支持多卡操作。l 無電源,自帶天線,內(nèi)含加密控制邏輯和通訊邏輯電路。l 數(shù)據(jù)保存期為10年,可改寫10萬次,讀無限次。l 工作溫度:-2050(溫度為90%)。l 工作頻率:13.56mhz。l 通信速率:106kbps。l 讀寫距離:10cm以內(nèi)(與讀寫器有關(guān))。2.1.2 存儲結(jié)構(gòu)1、m1卡分為16個扇區(qū),每個扇區(qū)由4塊(塊0、塊1、塊2、塊3)組成,我們也將16個扇區(qū)的64個塊按絕對地址編號為063,存儲結(jié)構(gòu)如圖2.2所示:圖2.2 射頻卡存儲結(jié)構(gòu)2、第0扇區(qū)的塊0(即絕對地址0塊),用于存放廠商代碼,已經(jīng)固化,不可更改。3、每個扇區(qū)的塊0、塊1、塊2為數(shù)據(jù)

19、塊,可以用來存儲數(shù)據(jù);每個扇區(qū)的塊3為控制塊包括了密碼a(6字節(jié))、存取控制(4字節(jié))和密碼b(6字節(jié))。4、每個扇區(qū)的密碼和存取控制都是相互獨立的,可以根據(jù)實際需要設(shè)定各自的密碼及存取控制。存取控制為4個字節(jié),共32位,扇區(qū)中的每個塊(包括數(shù)據(jù)塊和控制塊)的存取條件是由密碼和存取控制共同決定的。2.2 zlg522s模塊簡介本設(shè)計的讀寫模塊采用周立功zlg522s模塊,它基于飛利浦rc522芯片,具有體積小、支持mifare1系列射頻卡等特點;模塊接上天線讀卡有效范圍達到50100mm;采用iic接口通信,使用單片機上任意兩條i/o口即可。2.1.1 功能特點l 采用超小型封裝讀卡芯片;l

20、符合iso14443-3標準;l 可選擇5v或者3.3v供電;l 能接雙天線,能識別是哪一個天線上有卡;l 有iic從機接口,也有uart接口或rs-232接口;l 可主動檢測卡進入,檢測到卡時可產(chǎn)生中斷輸出或通過uart輸出數(shù)據(jù);l 符合iso14443-4標準,可支持mifare pro、mifare desfire等cpu卡。2.1.2 技術(shù)參數(shù)表2.1 zlg522s模塊的技術(shù)參數(shù)產(chǎn)品型號zlg522s系列功率消耗平均電流:60毫安/直流5v;50毫安/直流3v峰值電流:小于160毫安工作頻率13.56mhz讀卡距離50100毫米(mifare1卡)接口iic、uart、rs-232數(shù)

21、據(jù)傳輸速率iic:80kuart/rs-232:9600230400bit/s支持卡類型mifare1 s50、mifare1 s70、mifare ultralight、mifare pro、mifare desfire物理特性尺寸:分體式25mm*16mm*6mm;天線一體化54mm*34.5mm*6mm環(huán)境工作溫度:攝氏-2080度儲存溫度:攝氏-4085度濕度:相對濕度5%95%2.3 stc89c52單片機簡介stc89c52是一個低功耗,高性能cmos 8位單片機,片內(nèi)含8 bytes isp(in-system programmable)的可反復(fù)擦寫的flash只讀程序存儲器,器

22、件采用stc公司的高密度、非易失性存儲技術(shù)制造,兼容標準mcs-51指令系統(tǒng)及80c51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和isp flash存儲單元,功能強大的微型計算機的stc89c52可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價比的解決方案。stc89c52具有如下特點:40個引腳,8k bytes flash片內(nèi)程序存儲器,512 bytes的隨機存取數(shù)據(jù)存儲器(ram),32個外部雙向輸入/輸出(i/o)口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,看門狗(wdt)電路,片內(nèi)時鐘振蕩器。 此外,stc89c52設(shè)計和配置了振蕩頻率可為0hz并可通

23、過軟件設(shè)置省電模式??臻e模式下,cpu暫停工作,而ram定時計數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存ram的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時該芯片還具有pdip、tqfp和plcc等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。1主要特性: 8位字長cpu; 振蕩器和時鐘電路,全靜態(tài)操作:033mhz; 8kb系統(tǒng)內(nèi)可編程flash存儲器; 256kb內(nèi)部ram; 4個i/o端口共32線; 3個16位定時/計數(shù)器; 全雙工(uart)串行口通道; isp端口; 定時監(jiān)視器(看門狗); 雙數(shù)據(jù)指針(dptr); 20多個特殊功能寄存器; 電源下降標志。2管腳說明:

24、vcc:供電電壓。gnd:接地。p0口:p0口為一個8位漏級開路雙向i/o口,每腳可吸收8ttl門電流。當p1口的管腳第一次寫1時,被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時,p0 口作為原碼輸入口,當fiash進行校驗時,p0輸出原碼,此時p0外部必須被拉高。p1口:p1口是一個內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗時,p1口作為第八位地址接收。p2口:p2口為一個

25、內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個ttl門電流,當p2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,p2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗時接收高八位地址信號和控制信號。p3口:p3口管腳是8個帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個ttl門電流。當p3口寫入“1”后,它們被內(nèi)部上拉為高電平,

26、并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。p3.0 rxd(串行輸入口)p3.1 txd(串行輸出口)p3.2 /int0(外部中斷0)p3.3 /int1(外部中斷1)p3.4 t0(記時器0外部輸入)p3.5 t1(記時器1外部輸入)p3.6 /wr(外部數(shù)據(jù)存儲器寫選通)p3.7 /rd(外部數(shù)據(jù)存儲器讀選通)p3口同時為閃爍編程和編程校驗接收一些控制信號。管腳圖如圖2.4所示:圖2.4 stc89c52引腳圖2.4 hd7279a簡介hd7279a是一片具有串行接口的,可同時驅(qū)動8位共陰式數(shù)碼管或64只獨立led的智能顯示驅(qū)動芯片,該芯片

27、同時還可連接多達64鍵的鍵盤矩陣,單片即可完成led顯示,鍵盤接口的全部功能。hd7279a內(nèi)部含有譯碼器,可直接接受bcd碼或16進制碼,并同時具有2種譯碼方式,此外,還具有多種控制指令,如消隱、閃爍、左移、右移、段尋址等。hd7279a具有片選信號,可方便地實現(xiàn)多于8位的顯示或多于64鍵的鍵盤接口。2.4.1 特點l 串行接口,無需外圍元件可直接驅(qū)動ledl 各位獨立控制譯碼/不譯碼及消隱和閃爍屬性l (循環(huán))左移/(循環(huán))右移指令l 具有段尋址指令,方便控制獨立ledl 64鍵鍵盤控制器,內(nèi)含去抖動電路l 有dip和soic兩種封裝形式供選擇2.4.2 引腳說明表2.2 hd7279a的

28、引腳說明引腳名稱說明1,2vdd正電源3,5nc無連接,必須懸空4vss接地6cs片選輸入端,此引腳為低電平時,可向芯片發(fā)送指令及讀取鍵盤數(shù)據(jù)7clk同步時鐘輸入端,向芯片發(fā)送數(shù)據(jù)及讀取鍵盤數(shù)據(jù)時,此引腳電平上升沿表示數(shù)據(jù)有效。8data串行數(shù)據(jù)輸入/輸出端,當芯片接收指令時,此引腳為輸入端;當讀取鍵盤數(shù)據(jù)時,此引腳在“讀”指令最后一個時鐘的下降沿變?yōu)檩敵龆恕?key按鍵有效輸出端,平時為高電平,當檢測到有效按鍵時,此引腳變?yōu)榈碗娖健?016sgsa端g端a驅(qū)動輸出。17dp小數(shù)點驅(qū)動輸出。1825dig0dig7數(shù)字0數(shù)字7驅(qū)動輸出。26clk0振蕩輸出端。27rcrc振蕩器連接端。28re

29、set復(fù)位端。2.4.3 串行接口hd7279a采用串行方式與微處理器通信,串行數(shù)據(jù)從data引腳送入芯片,并由clk端同步,當片選信號變?yōu)榈碗娖胶?,data引腳上的數(shù)據(jù)在clk引腳的上升沿被寫入hd7279a的緩沖寄存器。hd7279a的指令結(jié)構(gòu)有三種類型:1、不帶數(shù)據(jù)的純指令,指令的寬度為8個bit,即微處理器需發(fā)送8個clk脈沖。2、帶有數(shù)據(jù)的指令,寬度為16個bit,即微處理器需發(fā)送16個clk脈沖。3、讀取鍵盤數(shù)據(jù)指令,寬度為16個bit,前8個為微處理器發(fā)送到hd7279a的指令,后8個bit為hd7279a返回的鍵盤代碼。執(zhí)行此指令時,hd7279a的data端在第9個clk脈沖

30、的上升沿變?yōu)檩敵鰻顟B(tài),并與第16個脈沖的下降沿恢復(fù)為輸入狀態(tài),等待接收下一個指令。串行接口的時序如圖2.5、2.6、2.7所示:1、純指令圖2.5 串行接口的時序(1)2、帶數(shù)據(jù)指令圖2.6 串行接口的時序(2)3、讀鍵盤指令圖2.7 串行接口的時序(3)第3章 開發(fā)環(huán)境keil介紹單片機開發(fā)中除必需的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要變?yōu)閏pu可以執(zhí)行的機器代碼有兩種方法,一種是手工匯編,另一種是機器匯編,目前手工匯編的方法已經(jīng)很少使用了。機器匯編是通過匯編軟件將源程序變?yōu)闄C器碼,匯編軟件有早期的a51,隨著單片機開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級語言開發(fā),單

31、片機的開發(fā)軟件也在不斷發(fā)展,keil軟件是目前最流行開發(fā)mcs-51系列單片機的軟件,這從近年來各仿真機廠商紛紛宣布全面支持keil即可看出。keil提供了完整的開發(fā)方案包括c編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等,通過一個集成開發(fā)環(huán)境(uvision)將這些部份組合在一起。3.1 系統(tǒng)概述keil c51是美國keil software公司出品的51系列兼容單片機c語言軟件開發(fā)系統(tǒng),與匯編相比,c語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言后再使用c來開發(fā),體會更加深刻。 keil c51軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具

32、,全windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到keil c51生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。下面詳細介紹keil c51開發(fā)系統(tǒng)各部分功能和使用。使用獨立的keil仿真器時,注意事項 :* 仿真器標配11.0592mhz的晶振,但用戶可以在仿真器上的晶振插孔中換插其他頻率的晶振。 * 仿真器上的復(fù)位按鈕只復(fù)位仿真芯片,不復(fù)位目標系統(tǒng)。 * 仿真芯片的31腳(/ea)已接至高電平,所以仿真時只能使用片內(nèi)rom,不能使用片外rom;但仿真器外引插針中的31腳并不與仿真芯片的31腳相連,

33、故該仿真器仍可插入到擴展有外部rom(其cpu的/ea引腳接至低電平)的目標系統(tǒng)中使用。3.2 keil工程的建立 首先啟動 keil 軟件的集成開發(fā)環(huán)境,這里假設(shè)已正確安裝了該軟件,可以從桌面上直接雙擊 uvision 的圖標以啟動該軟件。uvison啟動后,程序窗口的左邊有一個工程管理窗口,該窗口有 3 個標簽,分別是files、regs、和 books,這三個標簽頁分別顯示當前項目的文件結(jié)構(gòu)、cpu 的寄存器及部份特殊 功能寄存器的值(調(diào)試時才出現(xiàn))和所選 cpu 的附加說明文件,如果是第一次啟動 keil,那么這三個標簽頁全是空的。1、源文件的建立使用菜單“file-new ”或者點擊

34、工具欄的新建文件按鈕,即可在項目窗口的右側(cè)打開一個新的文本編緝窗口, 在該窗口中輸入源程序如下:#includesbit d2=p12;unsigned int a;void main() d2=0;for(a=0;a=10000;a+);d2=1;for(a=0;anew project ”菜單,出現(xiàn)一個對話框,要求給將要建立的工程起一個名字,你可以在編緝框中輸入一個名字(設(shè)為 exam1),不需要擴展名。點擊“保存”按鈕,出現(xiàn)第二個對話框,這個對話框要求選擇目標 cpu(即所用芯片的型號),keil 支持的 cpu 很多,我們選擇 atmel 公司的 89c51芯片。點擊 atmel前面的

35、“+”號,展開該層,點擊其中的 89c51,然后再點擊“確定”按鈕,回到主界面,此時,在 工程窗口的文件頁中,出現(xiàn)了“target1”,前面有“+”號,點擊“+”號展開,可以看到下一層的“ source group1”,這時的工程還是一個空的工程,里面什么文件也沒有,需要手動把剛才編寫好的源程序加入,點擊“source group1”使其反白顯示,然后,點擊鼠標右鍵,出現(xiàn)一個下拉菜單。選中其中的“add file to group”source group1”,出現(xiàn)一個對話框,要求尋找源文件,注意,該對話框下面的“文件類型” 默認為 c source file(*.c),也就是以 c 為擴展名

36、的文件。雙擊 exam1.c 文件,將文件加入項目,注意,在文件加入項目后,該對話框并不消失,等待繼續(xù)加入其它文件,但初學(xué)時常會誤認為操作沒有成功而再次雙擊同一文件,這時會出現(xiàn)如圖 4所示的對話框,提示你所選文件已在列表中,此時應(yīng)點擊“確定”,返回前一對話框,然后點擊“close” 即可返回主界面,返回后,點擊“source group 1”前的加號,會發(fā)現(xiàn) exam1.c文件已在其中。雙擊文件名,即打開該源程序。3、工程的詳細設(shè)置工程建立好以后,還要對工程進行進一步的設(shè)置,以滿足要求。首先點擊左邊 project 窗口的 target 1,然后使用菜單“project-option for

37、target target1” 即出現(xiàn)對工程設(shè)置的對話框,這個對話框可謂非常復(fù)雜,共有 8 個頁面,要全部搞清可不容易,好在絕大部份設(shè)置項取默認值就行了。設(shè)置對話框中的 target 頁面,xtal 后面的數(shù)值是晶振頻率值,默認值是所選目標 cpu 的最高 可用頻率值,對于我們所選的at89c51 而言是24m,該數(shù)值與最終產(chǎn)生的目標代碼無關(guān),僅用于軟件模擬調(diào)試時顯示程序執(zhí)行時間。正確設(shè)置該數(shù)值可使顯示時間與實際所用時間一致,一般將其設(shè)置成與硬件對目標進行設(shè)置所用晶振頻率相同,如果沒必要了解程序執(zhí)行的時間,也可以不設(shè),這里設(shè)置為12。memory model 用于設(shè)置ram 使用情況,有三個選

38、擇項,small 是所有變量都在單片機的內(nèi)部 ram 中;compact 是可以使用一頁外部擴展 ram,而 larget則是可以使用全部外部的擴展 ram。code model用于設(shè)置 rom空間的使用,同樣也有三個選擇項,即 small 模式,只用低于 2k的程序空間;compact 模式,單個函數(shù)的代碼量不能超過2k,整個程序可以使用64k程序空間;larget 模,可用全部 64k空間。use on-chip rom 選擇項,確認是否僅使用片內(nèi) rom(注意:選中該項并不會影響最終生成的目標代碼量);operating 項是操作系統(tǒng)選擇,keil 提供了兩種操作系統(tǒng):rtx tiny

39、和 rtx full,關(guān)于操作系統(tǒng)是另外一個很大的話題了,通常我們不使用任何操作系統(tǒng),即使用該項的默認值:none(不使用任何操作系統(tǒng));off chip code memory 用以確定系統(tǒng)擴展 rom 的地址范圍,off chip xdata memory 組用于確定系統(tǒng)擴展 ram 的地址范圍,這些選擇項必須根據(jù)所用硬件來決定,由于該例是單片應(yīng)用,未進行任何擴展,所以均不重新選擇,按默認值設(shè)置。設(shè)置對話框中的 output 頁面,這里面也有多個選擇項,其中 creat hex file 用于生成可執(zhí)行代碼文件(可以用編程器寫入單片機芯片的 hex 格式文件,文件的擴展名為.hex),默認

40、情況下該項未被選中,如果要寫片做硬件實驗,就必須選中該項,這一點是初學(xué)者易疏忽的,在此特別提醒注意。選中 debug information 將會產(chǎn)生調(diào)試信息,這些信息用于調(diào)試,如果需要對程序進行調(diào)試,應(yīng)當選中該項。browse information 是產(chǎn)生瀏覽信息,該信息可以用菜單 view-browse 來查看,這里取默認值。按鈕“ select folder for objects ”是用來選擇最終的目標文件所在的文件夾,默認是與工程文件在同一個文件夾中。name of executable 用于指定最終生成的目標文件的名字,默認與工程的名字相同,這兩項一般不需要更改。工程設(shè)置對話框中

41、的其它各頁面與 c51 編譯選項、a51 的匯編選項、bl51 連接器的連接選項等用法有關(guān),這里均取默認值,不作任何修改。以下僅對一些有關(guān)頁面中常用的選項作一個簡單介紹。listing 標簽頁用于調(diào)整生成的列表文件選項。在匯編或編譯完成后將產(chǎn)生(*.lst)的列表文件,在連接完成后也將產(chǎn)生(*.m51)的列表文件,該頁用于對列表文件的內(nèi)容和形式 進行細致的調(diào)節(jié),其中比較常用的選項是“c compile listing”下的“assamble code”項,選中該項可以在列表文件中生成 c 語言源程序所對應(yīng)的匯編代碼。c51 標簽頁用于對keil的c51編譯器的編譯過程進行控制,其中比較常用的是

42、“code optimization”組,該組中 level 是優(yōu)化等級,c51 在對源程序進行編譯時,可以對代碼多至 9 級優(yōu)化,默認使用第 8 級,一般不必修改,如果在編譯中出現(xiàn)一些問題,可以降低優(yōu)化級別試一試。emphasis 是選擇編譯優(yōu)先方式,第一項是代碼量優(yōu)化(最終生成的代碼量?。坏诙?是速度優(yōu)先(最終生成的代碼速度快);第三項是缺省。默認的是速度優(yōu)先,可根據(jù)需要更改。設(shè)置完成后按確認返回主界面,工程文件建立、設(shè)置完畢。4、編譯、連接在設(shè)置好工程后,即可進行編譯、連接。選擇菜單 project-build target,對當前工程進行連接,如果當前文件已修改,軟件會先對該文件進

43、行編譯,然后再連接以產(chǎn)生目標代碼;如果選擇 rebuild all target files 將會對當前工程中的所有文件重新進行編譯然后再連接,確保最終生產(chǎn)的目標代碼是最新的,而 translate .項則僅對該文件進行編譯,不進行連接。以上操作也可以通過工具欄按鈕直接進行。編譯過程中的信息將出現(xiàn)在輸出窗口中的 build 頁中,如果源程序中有語法錯誤,會有錯誤報告出現(xiàn),雙擊該行,可以定位到出錯的位置,對源程序反復(fù)修改之后, 最終會得到名為exam1.hex 的文件,該文件即可被編程器讀入并寫到芯片中,同時還產(chǎn)生了一些其它相關(guān)的文件,可被用于 keil 的仿真與調(diào)試,這時可以進入下一步調(diào)試的工

44、作。第4章 系統(tǒng)電路的設(shè)計及原理4.1 原理框圖本設(shè)計的硬件部分主要由單片機(stc89c52)、讀寫模塊、鍵盤電路,數(shù)碼管顯示四大部分組成。其中,單片機主要起控制作用,以完成對射頻卡讀寫模塊的配置從而實現(xiàn)對射頻卡的操作以及顯示等控制;數(shù)字鍵盤作為輸入設(shè)備;顯示部分主要采用數(shù)碼管顯示來實現(xiàn)。系統(tǒng)硬件框圖如圖4.1所示:圖4.1 系統(tǒng)總體框圖4.2 各模塊具體實現(xiàn)原理分析和說明4.2.1 讀寫模塊本設(shè)計的讀寫模塊采用周立功zlg522s模塊,基于飛利浦rc522芯片,體積??;支持mifare1系列射頻卡;模塊能接雙天線,并且能識別哪個天線上有卡,天線讀卡有效范圍50100mm;iic接口通信,使

45、用單片機上任意兩條i/o口即可實現(xiàn)。1、io設(shè)置本課題的讀寫模塊采用周立功zlg522s模塊,該模塊有兩種不可同時使用的通信接口:uart和iic接口。本課題采用iic接口,數(shù)據(jù)接口為j1,天線接口為j2,定義分別如表4.1、4.2所示:表4.1 j1管腳定義表管腳符號類型描述j1-1int輸出中斷輸出信號,集電極開路。當使用iic通信,當模塊完成命令時,此腳輸入低電平;當設(shè)置為自動檢測卡模式時,當檢測到卡時,此腳也輸出低電平。j1-2scl輸入iic時鐘輸入,集電極開路。j1-3sda輸入/輸出iic數(shù)據(jù)輸入/輸出,集電極開路。j1-4gndpwr電源負端。j1-5vccpwr電源正端。若模

46、塊名后綴帶“l(fā)”,則以+3.3v供電,否則+5v供電j1-6rxd輸入uart接收端j1-7txd輸出uart發(fā)送端j1-8con表4.2 j2管腳定義表管腳符號類型描述j1-1tx1輸出天線輸出驅(qū)動1。j1-2gnd地天線地。j1-3tx2輸出天線輸出驅(qū)動2。j1-4rx輸入接收j1-5gnd地天線地。j1-6rx2輸入接收2。在接收雙天線時與tx2和地可組成第二個天線接口2、iic接口iic總線協(xié)議定義如下:(1) 只有在總線非忙時才被允許進行數(shù)據(jù)傳送。(2) 在數(shù)據(jù)傳送時,當時鐘線為高電平,數(shù)據(jù)線必須為固定狀態(tài),不允許有跳變。時鐘線為高電平時,數(shù)據(jù)線的任何電平變化將被當作總線的啟動或停止

47、條件。iic總線每一次數(shù)據(jù)傳送,都是由主器件發(fā)送起始信號開始,發(fā)送停止信號結(jié)束,當scl時鐘線為高電平,sda數(shù)據(jù)線出現(xiàn)高電平向低電平的下降沿信號時即為總線的起始信號;相反,當sda出現(xiàn)由低向高的上升沿信號時為總線的停止信號,在起始信號和停止信號之間是尋址信息和數(shù)據(jù)信息。iic總線上的數(shù)據(jù)傳輸必須遵循總線規(guī)范。主cpu發(fā)生起始信號表明一次數(shù)據(jù)傳送的開始,然后為尋址字節(jié),尋址字節(jié)由高7位地址和一位方向位組成,方向位表明主cpu與從器件之間的數(shù)據(jù)傳送方向,當該位為“0”時表明cpu對從器件進行寫操作,為“1”時為讀操作。尋址字節(jié)后是按指定地址讀、寫操作的數(shù)據(jù)字節(jié)與應(yīng)答位。主cpu發(fā)出尋址信號后,地

48、址與自己相符的從器件便會產(chǎn)生一個應(yīng)答信號。數(shù)據(jù)字節(jié)的后面也跟隨一個應(yīng)答信號,應(yīng)答信號在第9個時鐘位上出現(xiàn)。當從器件輸出低電平時為應(yīng)答信號(ack),輸出高電平為非應(yīng)答信號(nack)。如圖4.2所示,數(shù)據(jù)傳送完畢后主cpu必須發(fā)停止信號。圖4.2 iic總線的應(yīng)答信號利用模塊的j1.1j1.3接口可以與主機進行iic通信。只要主機提供任意三個i/o口即可。注意本模塊的這三個管腳均為集電極開路,因此一定要加上拉電阻。本設(shè)計采用+5v供電,上拉電阻應(yīng)為4.7k,iic連接圖如圖4.3所示:圖4.3 iic接口連接圖4.2.2 按鍵模塊按鍵是人機交互很重要的一部分,也是本設(shè)計必不可少的一個模塊。本設(shè)

49、計中可以通過按鍵模塊來輸入扣費額,例如自動售貨機等;還可以使用按鍵來設(shè)置定額功能,供某些扣費額固定的場合使用,例如餐廳里賣飲料的窗口的收費。本設(shè)計的按鍵模塊使用的是4*4矩陣鍵盤,假設(shè)收費機為多收費項目,定義其鍵盤功能如圖4.4。圖4.4 按鍵功能定義圖鍵值說明:09為數(shù)字鍵,功能鍵有6個,此收費機可以收取水費、電費、電話費等。定額功能是在按下定額鍵收費機將按設(shè)定值扣費,確定鍵表示按下相應(yīng)功能鍵后按確定鍵才生效,清除鍵在輸入錯誤時可以按清除鍵重新輸入,總額表示按下該鍵將顯示當天的扣費總額。例如,如果想要扣費12元,只要按下數(shù)字鍵1和2,然后按確定鍵,將卡放在刷卡區(qū),即可完成扣費;當要每次扣費均

50、為5元時,只要按下定額鍵,然后按下數(shù)字鍵5,最后再按下確定鍵即可。4.2.3 數(shù)碼管顯示模塊刷卡區(qū)要通過2位數(shù)碼管顯示該區(qū)刷卡金額,之所以采用數(shù)碼管顯示是方便需要時重新設(shè)置票價;扣費金額及余額顯示共用3位數(shù)碼管顯示。共需5位數(shù)碼管。使用sadp控制數(shù)碼管的段選,用dig0dig4控制位選。本設(shè)計采用hd7279a控制按鍵和數(shù)碼管顯示模塊,hd7279a應(yīng)連接共陰式數(shù)碼管。應(yīng)用中,無需用到的鍵盤和數(shù)碼管可以不連接,省去數(shù)碼管或?qū)?shù)碼管設(shè)置消隱屬性均不會影響鍵盤的使用。實際應(yīng)用中下拉電阻和鍵盤連接位選線dig0dig7的電阻(以下簡稱位選電阻),應(yīng)遵從一定的比例關(guān)系,下拉電阻應(yīng)大于位選電阻的5倍而

51、小于其50倍,典型值為10倍;下拉電阻的取值范圍是10k到100k,位選電阻的取值范圍是1k到10k。在不影響顯示的前提下,下拉電阻應(yīng)盡可能地取較小的值,這樣可以提高鍵盤部分的抗干擾能力。因為采用循環(huán)掃描的工作方式,如果采用普通的數(shù)碼管,亮度可能不夠,采用高亮或超高亮的型號,可以解決這個問題。數(shù)碼管的尺寸,亦不宜選得過大,一般字符高度不宜超過1英寸,如果用大型的數(shù)碼管,應(yīng)使用適當?shù)尿?qū)動電路。hd7279a需要一外接的rc振蕩電路以供系統(tǒng)工作,其典型值分別為r=1.5k,c=15pf。如果芯片無法正常工作,請首先檢查此振蕩電路。在印刷電路板布線時,所有元件,尤其是振蕩電路的元件應(yīng)盡量靠近hd72

52、79a,并盡量使電路連續(xù)最短。hd7279a的reset復(fù)位端在一般應(yīng)用情況下,可以直接與正電源連接,在需要較高可靠性的情況下,可以連接一外部的復(fù)位電路,或直接由單片機控制。在上電或reset端由低電平變?yōu)楦唠娖胶?,hd7279a大約需要經(jīng)過1825ms的時間才會進入正常工作狀態(tài)。上電后,所有的顯示均為空,所有顯示位的顯示屬性均為“顯示”及“不閃爍”。當有鍵按下時,key引腳輸出變?yōu)榈碗娖?,此時如果接收到“讀鍵盤”指令,hd7279a將輸出所按下鍵的代碼。如果在沒有按鍵的情況下收到“讀鍵盤”指令,hd7279a將輸出ffh(255)。程序中,盡可能地減少cpu對hd7279a的訪問次數(shù),可以使

53、得程序更有效率。因為芯片直接驅(qū)動led數(shù)碼管顯示,電流較大,且為動態(tài)掃描方式,故如果該部分電路電源連續(xù)較細較長,可能會引入較大的電源噪聲干擾,將hd7279a的正負電源端上并入去耦電容可以提高電路的抗干擾能力。注意:如果有兩個鍵同時按下,hd7279a將只能給出其中一個鍵的代碼,因此,hd7279a不適于應(yīng)用在需要2個或2個以上鍵同時按下的場合。硬件連接如圖2.8 所示,stc89c52所用的時鐘頻率為12mhz,程序使用keil編譯通過,并經(jīng)過驗證。程序中延時時間以hd7279a外接r=1.5k,c=15pf為準。硬件連接如圖4.5所示:圖4.5 按鍵和數(shù)碼管顯示模塊連接圖第5章 軟件實現(xiàn)5.1 讀寫模塊通信設(shè)計5.1.1 數(shù)據(jù)通信格式射頻卡與單片機通信采用iic接口方式,模塊以“命令響應(yīng)”的方式工作,它在系統(tǒng)中模塊處于從屬地位,不會主動發(fā)出數(shù)據(jù)(自動檢測卡除外)。通常主機首先發(fā)出命令,然后等待模塊響應(yīng)。為保證通信正常進行,數(shù)據(jù)完整有序接收,定義通信控制符如表5.1所示:表5.1 通信控制符表描述定義值開始符stx0x20終止符etx0x30應(yīng)答ack0x06無應(yīng)答nak0

溫馨提示

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

評論

0/150

提交評論