版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、學(xué) 號(hào) 11780215天津城建大學(xué) 電子系統(tǒng)綜合設(shè)計(jì) 設(shè)計(jì)說(shuō)明書(shū)IC卡讀寫(xiě)系統(tǒng)設(shè)計(jì)起止日期: 2014 年 12 月 29 日 至 2015 年 1 月 23 日學(xué)生姓名羅智健班級(jí)信科2班成績(jī)指導(dǎo)教師(簽字)計(jì)算機(jī)與信息工程學(xué)院2014年 1月 23 日天津城建大學(xué)課程設(shè)計(jì)任務(wù)書(shū)2014 2015 學(xué)年第 一 學(xué)期 計(jì)算機(jī)與信息工程 系 電子信息科學(xué)與技術(shù) 專(zhuān)業(yè) 信科2班 班級(jí)課程設(shè)計(jì)名稱(chēng): 電子系統(tǒng)綜合設(shè)計(jì) 設(shè)計(jì)題目: IC卡讀寫(xiě)系統(tǒng)設(shè)計(jì) 完成期限:自 2014 年 12 月 29日至 2015 年 1 月23日共 4 周設(shè)計(jì)依據(jù)、要求及主要內(nèi)容(可另加附頁(yè)):一、課程設(shè)計(jì)的目的在我們的日
2、常生活中,IC卡無(wú)處不在智能門(mén)鎖、考勤機(jī)、交通卡、銀行卡IC卡應(yīng)用非常廣泛。通過(guò)對(duì)課程設(shè)計(jì)任務(wù)的完成,使學(xué)生掌握IC卡讀寫(xiě)的工作原理,并且能夠熟悉單片機(jī)的開(kāi)發(fā)流程和基本的編程方法,既鞏固所學(xué)的基礎(chǔ)理論知識(shí), 又為學(xué)生日后從事開(kāi)發(fā)設(shè)計(jì)奠定基礎(chǔ)。 二、課程設(shè)計(jì)的內(nèi)容及要求 選擇合適的器件,了解元器件的工作原理,進(jìn)行IC卡讀寫(xiě)系統(tǒng)設(shè)計(jì),完成1、單片機(jī)最小系統(tǒng)設(shè)計(jì)。2、單片機(jī)與IC卡讀寫(xiě)器接口電路設(shè)計(jì)。3、編寫(xiě)IC卡讀寫(xiě)控制程序,并有顯示功能。4、書(shū)寫(xiě)設(shè)計(jì)說(shuō)明書(shū)。三、參考資料:1、 何立民. MCS-51單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì) . M 北京航天航空大學(xué)出版社2、 張開(kāi)如. 自動(dòng)控制原理. M北京大學(xué)出版社
3、.3、 趙新民. 智能儀器設(shè)計(jì)基礎(chǔ) M哈爾濱工業(yè)大學(xué)出版社指導(dǎo)教師(簽字): 系 主 任(簽字): 批準(zhǔn)日期: 2015年 12月 18日目錄第1章 緒論11.1 IC卡的發(fā)展和應(yīng)用使用情況11.2 IC卡應(yīng)用技術(shù)11.3 課題中IC卡的設(shè)計(jì)目標(biāo)1第2章 IC卡芯片的介紹32.1 SLE4442IC卡32.1.1 芯片特點(diǎn)32.1.2 芯片的引腳配置32.1.3 芯片功能42.1.4 芯片傳送協(xié)議5第3章 硬件電路設(shè)計(jì)73.1 單片機(jī)系統(tǒng)電路73.2 接觸式IC卡的接口電路83.2 串行通信電路113.3 鍵盤(pán)電路113.4 顯示電路12第4章 軟件系統(tǒng)設(shè)計(jì)144.1 主程序144.2 鍵盤(pán)掃
4、描子程序154.3 顯示子程序17總結(jié)19參考文獻(xiàn)20總程序圖21附錄22第1章 緒論本章介紹了IC卡的發(fā)展歷史和應(yīng)用情況,說(shuō)明了現(xiàn)代IC卡技術(shù)的基礎(chǔ)知識(shí),最后分析了目前常見(jiàn)的IC卡讀寫(xiě)器終端,并提出了本課題中IC卡讀寫(xiě)器的設(shè)計(jì)目標(biāo)。1.1 IC卡的發(fā)展和應(yīng)用使用情況卡片是作為個(gè)人身份識(shí)別的手段而引進(jìn)的,而作為交易憑證的卡片則早在19世紀(jì)80年代就萌芽于英國(guó)了,1950年,美國(guó)商人設(shè)計(jì)了第一張現(xiàn)代的塑料信用卡,1951年美國(guó)富蘭克林銀行作為金融機(jī)構(gòu)率先發(fā)行了信用卡,到60年代中期,人們?cè)谒芰辖鹑诮灰卓ǖ谋趁尜N上磁條,發(fā)展成為能夠自動(dòng)讀取信息進(jìn)行在線(xiàn)處理的磁卡,磁卡因?yàn)榻Y(jié)構(gòu)簡(jiǎn)單,價(jià)格低廉,得到迅
5、速推廣。 IC卡是近年從歐洲開(kāi)始出現(xiàn)的,IC卡具有突出的3S特點(diǎn),即Standard(國(guó)際標(biāo)準(zhǔn)化)、Smart(靈巧智能化)、和Security(安全性)。因而發(fā)展迅速,在金融、通訊、交通等眾多領(lǐng)域中后來(lái)居上,即使那些磁卡已經(jīng)普及應(yīng)用的范圍也將被取而代之。IC卡不僅改變了現(xiàn)有多種卡的使用方法和功能作用,還不斷開(kāi)創(chuàng)出新的應(yīng)用領(lǐng)域。將IC卡和其他設(shè)備組成系統(tǒng)就能提供非常豐富的服務(wù)功能,把這些功能與生產(chǎn)或流通領(lǐng)域有機(jī)地結(jié)合起來(lái),將出現(xiàn)令人意想不到的奇跡,創(chuàng)造出巨大的經(jīng)濟(jì)和社會(huì)效益。隨著信息技術(shù)的發(fā)展,IC卡作為一種先進(jìn)的信息存儲(chǔ)介質(zhì),它的應(yīng)用己經(jīng)滲透到各國(guó)的經(jīng)濟(jì)、社會(huì)生活、軍事等各個(gè)方面,將來(lái)更有著
6、廣闊的發(fā)展空間。1.2 IC卡應(yīng)用技術(shù)IC卡比磁卡存儲(chǔ)容量大,可靠性和安全性高,在應(yīng)用上除了覆蓋磁卡的全部應(yīng)用范圍以外,還提供了許多磁卡所不具備的應(yīng)用特性。正是這些特性,使IC卡在脫機(jī)業(yè)務(wù)處理和聯(lián)網(wǎng)數(shù)據(jù)一致性等方面表現(xiàn)出前所未有的優(yōu)勢(shì)。IC 卡雖然有很強(qiáng)的功能,但僅當(dāng)IC卡加入到應(yīng)用系統(tǒng)中,構(gòu)成發(fā)行商、應(yīng)用系統(tǒng)和持卡人之間的數(shù)據(jù)傳輸媒介時(shí),才能有效地發(fā)揮其優(yōu)勢(shì)。一個(gè)好的IC卡應(yīng)用系統(tǒng),應(yīng)具備良好的應(yīng)用特性和性能價(jià)格比,還要有好的安全特性。1.3 課題中IC卡的設(shè)計(jì)目標(biāo)讀寫(xiě)器是IC卡應(yīng)用系統(tǒng)的終端設(shè)備,只有通過(guò)讀寫(xiě)設(shè)備才能和IC卡建立聯(lián)系,讀寫(xiě)IC卡中的數(shù)據(jù);讀寫(xiě)器一般還要求和信息網(wǎng)絡(luò)中的上位機(jī)
7、進(jìn)行通訊,把IC卡中的數(shù)據(jù)融入到上層數(shù)據(jù)庫(kù)。設(shè)計(jì)選擇讀寫(xiě)器是建立IC卡應(yīng)用系統(tǒng)的關(guān)鍵。本文是就設(shè)計(jì)IC卡讀寫(xiě)器展開(kāi)的,課題的設(shè)計(jì)目標(biāo)是一種通用的接觸式IC卡讀寫(xiě)終端,要求讀寫(xiě)器能夠單獨(dú)工作。預(yù)期目標(biāo):l 實(shí)現(xiàn)用戶(hù)信息的存儲(chǔ)l 通過(guò)鍵盤(pán)顯示電路實(shí)現(xiàn)人機(jī)交互l 實(shí)現(xiàn)卡的插入與退出識(shí)別l 實(shí)現(xiàn)偽卡的識(shí)別 第2章 IC卡芯片的介紹2.1 SLE4442IC卡IC卡是集成電路卡(IntegratedC ircuit Card)的簡(jiǎn)稱(chēng),有些國(guó)家和地區(qū)稱(chēng)之為微芯片卡(Microchip card)或微電路卡(Microcircuit Card)。IC卡的大小和磁卡相同,它把集成電路鑲在塑料卡片上,芯片一般是
8、不易揮發(fā)性存儲(chǔ)器(ROM, EPROM. EPROM),保護(hù)邏輯電路,甚至于CPU。本節(jié)介紹IC卡的一些基本知識(shí),使讀者對(duì)IC卡有一個(gè)大概的了解。由于本設(shè)計(jì)所采用的IC卡為接觸型邏輯加密卡(SLE4442),所以本節(jié)的內(nèi)容重點(diǎn)介紹此卡。SLE4442是由德國(guó)西門(mén)子公司設(shè)計(jì)的邏輯加密存儲(chǔ)卡。它具有2K位的存儲(chǔ)容量和完全獨(dú)立的可編程加密代碼存儲(chǔ)器。內(nèi)部電壓提升電路保證了芯片能夠以單5V電壓供電,較大的存儲(chǔ)器容量能夠滿(mǎn)足應(yīng)用領(lǐng)域的各種要求。是目前國(guó)內(nèi)應(yīng)用較多的一種IC卡芯片。2.1.1 芯片特點(diǎn)l 面向字節(jié)尋址;l 采用多存儲(chǔ)器結(jié)構(gòu):主存儲(chǔ)器、保護(hù)型存儲(chǔ)器、加密存儲(chǔ)器;l 線(xiàn)連接協(xié)議,觸點(diǎn)和串行接口
9、滿(mǎn)足ISO7816同步傳送協(xié)議;l 芯片采用NMOS工藝技術(shù),每字節(jié)的擦除/寫(xiě)入編程時(shí)間為2.5ms;l 復(fù)位響應(yīng)(ATR)符合ISO/IEC7816-3協(xié)議;l 存儲(chǔ)器采用至少10 000次的擦除/寫(xiě)入周期,數(shù)據(jù)保持時(shí)間至少為10年;l 額外特性:數(shù)據(jù)僅能在正確輸入24位可編程安全碼(安全存儲(chǔ)器)之后才能改變。2.1.2 芯片的引腳配置芯片的引腳與國(guó)際標(biāo)準(zhǔn)兼容,下表3-1是引腳的定義和功能說(shuō)明:表2-1 SLE4442引腳功能引腳卡觸點(diǎn)符號(hào)功能12345678C1C2C3C4C5C6C7C8VCCRSTCLKNCGNDNCI/ONC操作電壓5V復(fù)位時(shí)鐘未用地未用雙向數(shù)據(jù)線(xiàn)(漏極開(kāi)路)未用2.
10、1.3 芯片功能SLE4442IC卡芯片主要包括三個(gè)存儲(chǔ)器:256×8位EEPROM型主存儲(chǔ)器、32×1位PROM型保護(hù)存儲(chǔ)器和4×8位EEPROM型加密存儲(chǔ)器。1)主存儲(chǔ)器:主存儲(chǔ)器為可重復(fù)擦除使用的EEPROM型存儲(chǔ)器。按字節(jié)尋址,擦除寫(xiě)入。在擦除時(shí),一個(gè)數(shù)據(jù)字節(jié)的所有8位被全部置“1”。在寫(xiě)入時(shí),在EEPROM單元中的信息則根據(jù)輸入的數(shù)據(jù),按字位方式變換成邏輯“0”(即在EEPROM中,新寫(xiě)入的數(shù)據(jù)與原來(lái)存在的數(shù)據(jù)進(jìn)行“邏輯與”)。通常,要改變一個(gè)數(shù)據(jù)需要先進(jìn)行擦除再進(jìn)行寫(xiě)入兩項(xiàng)操作。如果在被尋址的字節(jié)中8位沒(méi)有一個(gè)字位需要從0變?yōu)?,則可以不進(jìn)行擦除處理。
11、反之亦然,在被尋址的字節(jié)中,如果沒(méi)有一個(gè)字節(jié)需要從1變?yōu)?,則可以不做寫(xiě)入處理,寫(xiě)入或擦除操作一次至少耗費(fèi)2.5ms時(shí)間。主存儲(chǔ)器的地址是從00H到FFH。但主存儲(chǔ)器可分為兩個(gè)數(shù)據(jù)區(qū):保護(hù)數(shù)據(jù)區(qū)和應(yīng)用數(shù)據(jù)區(qū),保護(hù)數(shù)據(jù)區(qū)是主存儲(chǔ)器前32個(gè)字節(jié)數(shù)據(jù)區(qū)。其地址是從0(00H)到31(1FH)這部分的數(shù)據(jù)讀出不受限制,但擦除和寫(xiě)入操作均受到保護(hù)存儲(chǔ)器內(nèi)部數(shù)據(jù)狀態(tài)的限制。當(dāng)保護(hù)存儲(chǔ)器中第N位為0時(shí),則對(duì)應(yīng)主存儲(chǔ)器中第N個(gè)字節(jié)就不允許進(jìn)行擦除和寫(xiě)入操作。故保護(hù)數(shù)據(jù)區(qū)一般均作為IC卡的標(biāo)識(shí)數(shù)據(jù)區(qū),存放一些固定不變的標(biāo)識(shí)參數(shù)。應(yīng)用數(shù)據(jù)區(qū)為主存儲(chǔ)器后224個(gè)字節(jié)。其地址從32(20H)到255(FFH).這部分
12、的數(shù)據(jù)讀出不受限制,但擦除和寫(xiě)入受控于加密存儲(chǔ)器數(shù)據(jù)校驗(yàn)比較結(jié)果的影響。當(dāng)需要修改應(yīng)用數(shù)據(jù)區(qū)的內(nèi)容時(shí),必須首先輸入一個(gè)3字節(jié)長(zhǎng)的“校驗(yàn)字”。這個(gè)新輸入的“校驗(yàn)字”與原來(lái)存在在加密存儲(chǔ)器中的“參照字”進(jìn)行一對(duì)一的比較。只有當(dāng)兩者完全一致時(shí),芯片的加密控制邏輯才打開(kāi)芯片的主存儲(chǔ)器,允許后面的擦除和寫(xiě)入操作。芯片允許在有限的次數(shù)內(nèi)重試比較操作。如果在連續(xù)三次比較失敗之后,芯片的錯(cuò)誤計(jì)數(shù)器計(jì)數(shù)到“0”,并將鎖死主存儲(chǔ)器,禁止隨后的任何比較操作和寫(xiě)入擦除操作。這時(shí)整個(gè)主存儲(chǔ)器變成一個(gè)只讀存儲(chǔ)器。芯片中各存儲(chǔ)器的內(nèi)容不能再改變。2)保護(hù)存儲(chǔ)器是一個(gè)32×1位的一次性可編程只讀存儲(chǔ)器(PROM)。
13、它是按字位方式尋址和寫(xiě)入。保護(hù)存儲(chǔ)器從032的每一位對(duì)應(yīng)著主存儲(chǔ)器地址從0到31的字節(jié)。因此可以理解為每個(gè)字節(jié)單元的控制熔絲。從出廠(chǎng)到被初始化之前,保護(hù)存儲(chǔ)器的狀態(tài)為全“1”。從控制方面來(lái)說(shuō),保護(hù)存儲(chǔ)器的內(nèi)容只能從“1"寫(xiě)成“0”而不能從“0”擦除成“1”。保護(hù)存儲(chǔ)器每個(gè)被寫(xiě)“0”的單元所對(duì)應(yīng)控制的主存儲(chǔ)器的字節(jié)單元將不再接收任何擦除和寫(xiě)入命令,從而使得該字節(jié)單元的數(shù)據(jù)不可再改變。從使用方面來(lái)講,如果需要防止一些固定的標(biāo)識(shí)參數(shù)被改動(dòng),可以將這類(lèi)參數(shù)先寫(xiě)入主存儲(chǔ)器的保護(hù)存儲(chǔ)區(qū),然后將對(duì)應(yīng)單元的保護(hù)存儲(chǔ)器的字位寫(xiě)位“0”,從而使這一部分單元中的參數(shù)內(nèi)容永遠(yuǎn)不可更改。保護(hù)存儲(chǔ)器本身的讀出操
14、作不受限制。但對(duì)其寫(xiě)入操作仍然受到加密存儲(chǔ)器比較校驗(yàn)操作結(jié)果的控制。當(dāng)輸入的“校驗(yàn)字”與芯片內(nèi)的“參照字”一致,則可以執(zhí)行后續(xù)的寫(xiě)入操作。如果比較不成功,則控制邏輯將閉鎖保護(hù)存儲(chǔ)器。3)加密存儲(chǔ)器:加密存儲(chǔ)器是一個(gè)4×8位的EEPROM型存儲(chǔ)器。在這個(gè)存儲(chǔ)器中,第0字節(jié)為“密碼輸入錯(cuò)誤計(jì)數(shù)器”(EC)。密碼輸入錯(cuò)誤計(jì)數(shù)器的有效位是低3位。在芯片初始化時(shí),計(jì)數(shù)器設(shè)置成"111"。這一字節(jié)是可讀的。每次比較密碼時(shí),先判斷計(jì)數(shù)器中是否還有“1”。如果還有“1”,則將其中一個(gè)“1”寫(xiě)成“0”,然后進(jìn)行比較“校驗(yàn)字”操作。如果比較結(jié)果一致,密碼錯(cuò)誤計(jì)數(shù)器將允許進(jìn)行擦除操作(
15、芯片不能自動(dòng)進(jìn)行擦除操作),同時(shí)打開(kāi)主存儲(chǔ)器、保護(hù)存儲(chǔ)器和加密存儲(chǔ)器,并允許進(jìn)行擦除和寫(xiě)入操作。如果比較結(jié)果不一致,則密碼錯(cuò)誤計(jì)數(shù)器中為“1”的個(gè)數(shù)將減少一位。只要計(jì)數(shù)器的內(nèi)容不全為0,則芯片的比較“校驗(yàn)字”操作還允許進(jìn)行。當(dāng)密碼計(jì)數(shù)器減數(shù)為零,則芯片的存儲(chǔ)單元將全部鎖死。加密存儲(chǔ)器的第1,2,3字節(jié)為“參照字”存儲(chǔ)區(qū)。這3個(gè)字節(jié)的內(nèi)容作為一個(gè)整體披稱(chēng)為可編程加密代碼(PSC)。值得注意的是:這3個(gè)字節(jié)的內(nèi)容在PSC比較成功前是不可讀的,只能進(jìn)行比較操作。而“寫(xiě)入、擦除”操作也受自身“比較”操作結(jié)果的控制。只有當(dāng)“比較”成功,加密存儲(chǔ)器各字節(jié)內(nèi)容才可以進(jìn)行讀出、寫(xiě)入和擦除。2.1.4 芯片傳送
16、協(xié)議傳送協(xié)議是在接口設(shè)備IFD與IC卡的集成電路之間的兩線(xiàn)連接協(xié)議,SLE4442芯片的協(xié)議類(lèi)型為S=10(同步卡協(xié)議)。I/O線(xiàn)上數(shù)據(jù)變化只在CLK信號(hào)的下降沿才有效。傳送協(xié)議包括4種模式:l 復(fù)位和復(fù)位響應(yīng)l 命令模式l 輸出數(shù)據(jù)模式l 處理模式1)復(fù)位和復(fù)位響應(yīng):復(fù)位響應(yīng)是根據(jù)ISO 7816-3標(biāo)準(zhǔn)來(lái)進(jìn)行的。在操作期間的任何時(shí)候都可以復(fù)位,只有經(jīng)過(guò)了復(fù)位才能對(duì)IC卡進(jìn)行其他操作.開(kāi)始時(shí)地址計(jì)數(shù)器隨一個(gè)時(shí)鐘脈沖而被設(shè)置成0。當(dāng)RST線(xiàn)從H狀態(tài)置到L狀態(tài)時(shí),第一個(gè)數(shù)據(jù)位的內(nèi)容被送到I/O線(xiàn)上。若連續(xù)輸入32個(gè)時(shí)鐘脈沖,主存儲(chǔ)器中的前4個(gè)字節(jié)地址單元中的內(nèi)容被讀出。在第33個(gè)時(shí)鐘脈沖的下降沿
17、,I/O線(xiàn)被置成H狀態(tài)而關(guān)閉。圖3-1為芯片復(fù)位即復(fù)位響應(yīng)的時(shí)序關(guān)系。在復(fù)位響應(yīng)期間,“啟動(dòng)”和“停止”(見(jiàn)下面)狀態(tài)被忽略。圖2-1芯片復(fù)位及復(fù)位響應(yīng)的時(shí)序關(guān)系2)命令模式:復(fù)位響應(yīng)之后,芯片等待著命令。每條命令都以一個(gè)“啟動(dòng)狀態(tài)”開(kāi)始。整個(gè)命令包括三個(gè)字節(jié)(命令含義后面解釋)。隨后緊跟著一個(gè)附加脈沖并用一個(gè)“停止?fàn)顟B(tài)”來(lái)結(jié)束操作。圖3-2為命令模式時(shí)序關(guān)系。啟動(dòng)狀態(tài):在CLK為H狀態(tài)期間,I/O線(xiàn)的下降沿為啟動(dòng)狀態(tài)。停止?fàn)顟B(tài):在CLK為H狀態(tài)期間,I/O線(xiàn)的上升沿為停止?fàn)顟B(tài)。在接受一個(gè)命令之后,有兩種可能的模式:輸出數(shù)據(jù)模式(即讀數(shù)據(jù)模式)和處理數(shù)據(jù)模式。圖2-2命令模式的時(shí)序關(guān)系3) 輸
18、出數(shù)據(jù)模式:這種模式是將IC卡芯片中的數(shù)據(jù)傳送給外部接口設(shè)備的一種操作。圖3-3為輸出數(shù)據(jù)模式的時(shí)序關(guān)系。在第一個(gè)CLK脈沖的下降沿之后,I/O線(xiàn)上的第一位數(shù)據(jù)變?yōu)橛行?。隨后每增加一個(gè)時(shí)鐘脈沖,芯片內(nèi)部的一位數(shù)據(jù)被送到I/O線(xiàn)上。其輸出的順序是從每個(gè)字節(jié)的最低位開(kāi)始。當(dāng)所需要的最后一個(gè)數(shù)據(jù)送出以后,需要再附加一個(gè)時(shí)鐘脈沖來(lái)把I/O線(xiàn)置成H狀態(tài),以便準(zhǔn)備接受新的命令。在輸出數(shù)據(jù)期間,任何“啟動(dòng)狀態(tài)”和“停止?fàn)顟B(tài)”均被屏蔽掉。圖2-3輸出數(shù)據(jù)模式的時(shí)序關(guān)系4) 處理數(shù)據(jù)模式:這種模式是對(duì)IC卡芯片做內(nèi)部處理。圖3-4為處理數(shù)據(jù)模式的時(shí)序關(guān)系。芯片在第一個(gè)時(shí)鐘脈沖的下降沿將I/O從H狀態(tài)拉為L(zhǎng)狀態(tài)并
19、開(kāi)始處理。此后芯片在內(nèi)部連續(xù)計(jì)時(shí)計(jì)數(shù),直到第N個(gè)時(shí)鐘脈沖之后的附加時(shí)鐘脈沖的下降沿I/O線(xiàn)被再次置高,完成芯片的處理過(guò)程。在整個(gè)處理過(guò)程中I/O線(xiàn)被鎖定成低狀態(tài)。圖2-4處理數(shù)據(jù)模式的時(shí)序關(guān)系第3章 硬件電路設(shè)計(jì)所設(shè)計(jì)的讀寫(xiě)器以8051單片機(jī)為核心,配以IC卡接口電路、串行通信電路、存儲(chǔ)電路、掉電檢測(cè)電路、鍵盤(pán)顯示電路等部分。通過(guò)讀寫(xiě)器插槽與IC卡芯片通信,由51單片機(jī)控制數(shù)據(jù)傳輸過(guò)程,實(shí)現(xiàn)讀卡和寫(xiě)卡操作。圖4-1為系統(tǒng)的總體框圖。51單片機(jī)IC卡芯片串行通信電路掉電檢測(cè)鍵盤(pán)液晶顯示存儲(chǔ)模塊圖3-1 總體框圖IC卡接口設(shè)備的種類(lèi)很多,功能上由于不同的應(yīng)用需要,差別也很大,但就其對(duì)卡 (以接觸式
20、卡為例)的操作功能來(lái)說(shuō),都應(yīng)具備以下幾個(gè)基本功能:l IC卡的插入/退出的識(shí)別與控制(接觸式卡):IC卡進(jìn)/出RF區(qū)的識(shí)別和控制(非接觸式卡)。l 向IC卡提供其所需的穩(wěn)定的電源與時(shí)鐘信號(hào)。l 實(shí)現(xiàn)與卡的數(shù)據(jù)交換,并提供相應(yīng)的控制信號(hào)。l 對(duì)于加密數(shù)據(jù)系統(tǒng),應(yīng)提供相應(yīng)的加密解密處理及密鑰管理機(jī)制。l 提供相應(yīng)的外部控制信息及其它設(shè)備的信息交換。很多讀寫(xiě)設(shè)備除了對(duì)卡的基本操作外,還設(shè)計(jì)了其他一些重要功能:l 必要的控制界面和顯示界面。l 提供數(shù)據(jù)通訊接口與上位機(jī)進(jìn)行數(shù)據(jù)通訊。l 網(wǎng)絡(luò)控制功能,實(shí)現(xiàn)遠(yuǎn)程適時(shí)控3.1 單片機(jī)系統(tǒng)電路AT89C51單片機(jī)是該系統(tǒng)的核心器件,其控制著所有的外圍電路,并及
21、時(shí)響應(yīng)外部請(qǐng)求。整個(gè)系統(tǒng)電路設(shè)計(jì)如下:(1)按鍵S17,電容C8,電阻R13構(gòu)成單片機(jī)的人工復(fù)位裝置;兩個(gè)30pF的電容,12M的晶振構(gòu)成單片機(jī)的振蕩電路。(2)矩陣式鍵盤(pán)由P1口來(lái)控制,P1.0,P1.1,P1.2,P1.3接行線(xiàn),P1.4、P1.5、P1.6、P1.7接列線(xiàn)。單片機(jī)對(duì)鍵盤(pán)進(jìn)行行列掃描讀取鍵值。(3)數(shù)碼管顯示電路由P2口控制,單片機(jī)對(duì)數(shù)碼管進(jìn)行動(dòng)態(tài)掃描。P2.0與P2.1口通過(guò)一串入并出的74LS164與所有LED的a,b,c,d,e,f,g,sp引線(xiàn)相連,P2口接LED的控制端,單片機(jī)通過(guò)P3口控制各LED是否點(diǎn)亮。(4)P0口設(shè)計(jì)為與IC卡卡座的接口,AT89C51單片
22、機(jī)通過(guò)IC卡座完成單片機(jī)與IC卡的連接。 圖3.1 AT89C51最小系統(tǒng)3.2 接觸式IC卡的接口電路IC卡的接口電路是連接IC卡與讀寫(xiě)設(shè)備的通路,由它實(shí)現(xiàn)對(duì)IC卡的供電,并滿(mǎn)足不帶電插拔的要求。IC卡接口設(shè)備中的IC卡供電電路應(yīng)是一個(gè)相對(duì)獨(dú)立于其他回路,并提供完善的過(guò)流保護(hù)措施的穩(wěn)壓電路,這是由于IC卡接口設(shè)備是一個(gè)獨(dú)立于IC卡的設(shè)備,當(dāng)有卡插入時(shí),接口設(shè)備便開(kāi)始向IC卡提供其所需的電力。如果插入的是一張電源與地?fù)舸┑膲目?,或是一個(gè)金屬片之類(lèi)的物質(zhì),就會(huì)造成供電回路的短路現(xiàn)象,若IC卡接口設(shè)備中無(wú)過(guò)流保護(hù)回路,就會(huì)干擾整個(gè)設(shè)備的正常工作。為了提高IC卡操作的可靠性,必須有上下電控制電路、卡
23、插入檢測(cè)電路、卡短路檢測(cè)電路。下圖4-2所示是IC卡接口電路。圖3-2 IC卡接口電R2、VD1、VT1組成卡上下電電路。當(dāng)8051的P1.6=0時(shí),VT1導(dǎo)通,IC卡的VCC得電;當(dāng)8051的P1.6=1時(shí),VT1截止,IC卡的VCC失電。如果插入的是一張電源與地?fù)舸┑膲目?,或是一個(gè)金屬片之類(lèi)的物質(zhì),就會(huì)造成回路的短路現(xiàn)象。IC卡的VCC同時(shí)經(jīng)VD2送至CPU的P1.5,檢測(cè)有無(wú)卡電源短路現(xiàn)象,以防人為破環(huán)。IC卡的控制與讀寫(xiě)是IC卡接口設(shè)備中的核心操作部分,各種IC卡的實(shí)際操作有較大的不同,(ISO-7816標(biāo)準(zhǔn)只定義了一個(gè)最小操作,因而符合這一標(biāo)準(zhǔn)的卡亦不能保證其他操作的一致性),這里先
24、選擇其中較具共性的部分介紹,后面會(huì)針對(duì)SLE4442芯片的具體操作做詳細(xì)說(shuō)明。1)IC卡的插入/退出識(shí)別與上電/下電控制技術(shù)IC卡的插入與退出的識(shí)別是通過(guò)IC卡接口電路來(lái)識(shí)別的,如果卡己插入到正確位置,且卡是合法卡,則置P1.1為0,VT2導(dǎo)通,圖4-6中的LED點(diǎn)亮。若卡是非法卡,卡電源短路,低電平送至P1.5,則P1.0為0,VT3導(dǎo)通,圖4-7中的報(bào)警電路報(bào)警。為了確保IC卡已準(zhǔn)確地插到位置,插入的識(shí)別過(guò)程必須加入消顫處理。IC卡插入識(shí)別程序如下所示:RE_ DETECT:SETB IC_SWMOV C,IC_SW ;輸出高電平至檢測(cè)端JNC RE_ DETECT ;無(wú)卡插入,等待LCA
25、LL DELAY_5MS ;延時(shí)5msMOV C,IC_SWJNC RE_DETECT ;再次判斷,若無(wú)卡輸入等待RET ;有卡插入,進(jìn)行處理IC卡的供電控制是一個(gè)直接涉及是否能安全可靠地操作IC卡的過(guò)程。它必須嚴(yán)格遵循ISO7816-3所規(guī)定的操作順序,否則就有可能對(duì)IC卡帶來(lái)永久的損壞。ISO7816-3標(biāo)準(zhǔn)規(guī)定的操作順序如下:IC卡的激活(上電過(guò)程): RST處于L狀態(tài) VCC供電 接口設(shè)備處于接收方式 Vpp上升為空閑狀態(tài) CLK由相應(yīng)穩(wěn)定的時(shí)鐘提供IC卡的去激活過(guò)程(下電過(guò)程):RST為狀態(tài)LCLK為狀態(tài)LVpp不起作用I/O為狀態(tài)AVCC關(guān)閉由于IC卡技術(shù)的進(jìn)步,現(xiàn)在的IC卡事實(shí)上
26、都己使用卡內(nèi)自帶升壓電路,因此Vpp控制已逐漸失去具體含義。下面是上下電程序控制過(guò)程:POWERON: ;上電控制LCALL RE_DETECT ;識(shí)別是否有卡插入CLR RST ;使RST=LCLR CLK ;使CLK二LLCALL DELAY_500us ;延遲0.5ms,使端口邏輯信號(hào)穩(wěn)定CLR POWER ;給卡供電SETB D_OUT ;使I/O端口為高電平,準(zhǔn)備接受數(shù)據(jù)RETPOWER_OFF: ;下電控制CLR RST ;使RST=LCLR CLK ;使CLK=LCLR D_OUT ;使I/O=L LCALL DELAY_500us ;延時(shí)0.5ms,使端口邏輯信號(hào)穩(wěn)定 SETB
27、 POWER ;給卡下電RET2)IC卡的讀寫(xiě)技術(shù)不同類(lèi)型的IC卡其讀寫(xiě)方式或數(shù)據(jù)協(xié)議方式是不同的,ISO7816標(biāo)準(zhǔn)對(duì)異步型IC卡的讀寫(xiě)協(xié)議做了較充分的定義,而對(duì)于同步型IC卡,則只定義了其復(fù)位響應(yīng)過(guò)程的協(xié)議標(biāo)準(zhǔn),這使得各廠(chǎng)家設(shè)計(jì)的同步型IC卡的讀寫(xiě)方式不盡相同,而且同步型IC卡接口協(xié)議是面向操作而進(jìn)行的,因此,其操作協(xié)議方式也各不相同。但許多廠(chǎng)家生產(chǎn)的IC卡都以ISO7816同步復(fù)位響應(yīng)協(xié)議作為IC卡的數(shù)據(jù)讀協(xié)議。大多數(shù)符合ISO7816標(biāo)準(zhǔn)的同步型IC卡的地址計(jì)數(shù)器是與時(shí)鐘緊密相關(guān)的,當(dāng)卡復(fù)位時(shí),地址計(jì)數(shù)器置0。以后每向卡發(fā)一個(gè)節(jié)拍的時(shí)鐘,都將使IC卡的地址計(jì)數(shù)器加“1”,這一時(shí)鐘頻率上
28、限為50kHz或280kHz。復(fù)位之后的頭32個(gè)時(shí)鐘周期內(nèi),是卡的復(fù)位響應(yīng)過(guò)程,該過(guò)程中,廠(chǎng)家的產(chǎn)品編碼以位編碼方式逐一在數(shù)據(jù)線(xiàn)上送出,以后的字段則根據(jù)廠(chǎng)家及用戶(hù)所定義的含義不同而各不相同。若某字段定義為可讀的,則可將時(shí)鐘運(yùn)行到該字段上,然后再逐時(shí)鐘讀出。數(shù)據(jù)的讀出過(guò)程可分為三個(gè)基本過(guò)程:復(fù)位,數(shù)據(jù)字段的定位和數(shù)據(jù)讀出。3.2 串行通信電路由于PC機(jī)的串口電壓為±12V,而單片機(jī)的工作電壓為5V,所以需要MAX接口芯片實(shí)現(xiàn)TTL與RS232電平轉(zhuǎn)換,采用簡(jiǎn)單的3線(xiàn)制通信方式。圖4-3為串行通信電路。圖3-3 串行通信電路3.3 鍵盤(pán)電路由于需要16個(gè)按鍵,采用并行接口的鍵盤(pán)電路至少需
29、要4+4=8條I/O線(xiàn),而串行接口的鍵盤(pán)電路只需要3條I/O口線(xiàn),一條用作鍵盤(pán)行線(xiàn),一條串行移位輸出列掃描信號(hào),另一條用作移位寄存器74LS164的移位時(shí)鐘脈沖信號(hào)線(xiàn)。16個(gè)按鍵構(gòu)成了讀寫(xiě)系統(tǒng)的鍵盤(pán)電路部分。圖4-8為鍵盤(pán)與單片機(jī)的接口電路。圖3-4 8051與鍵盤(pán)接口電路圖中,P2.2為行線(xiàn),接有上拉電阻 R=5V/1 mA=5k。 因而選用5.1K的電阻,上拉電阻保證了沒(méi)有鍵輸入時(shí),I/O口線(xiàn)上有確定的高電平輸入。由P2.3端輸出列掃描信號(hào),通過(guò)移位寄存器74LS164輸出端QAQH接至鍵盤(pán)作為鍵盤(pán)列線(xiàn)。掃描信號(hào)通過(guò)74LS164移位,實(shí)現(xiàn)逐列置低電平,達(dá)到掃描各鍵的目的。3.4 顯示電路
30、應(yīng)用系統(tǒng)中常用的顯示器有:發(fā)光二極管顯示器,簡(jiǎn)稱(chēng)LED;液晶顯示器,簡(jiǎn)稱(chēng)LCD;熒光顯示器。本文采用LCD,所以只對(duì)LCD進(jìn)行介紹。LCD是一種極低功耗顯示器,目前,高分辨率的LCD點(diǎn)陣式顯示器有顯示靈活,顯示圖型字符美觀(guān)等優(yōu)點(diǎn),在很多系統(tǒng)中應(yīng)用非常廣泛。顯示設(shè)計(jì)使用現(xiàn)有的液晶顯示功能模塊SMG12232B-2,該模塊能提供122*22的分辨率,帶中文字庫(kù),更重要的是它可以有并行和串行兩種輸入方式,接口方便,這樣我們可以使用單片機(jī)的異步通訊口驅(qū)動(dòng)顯示模塊,軟硬件實(shí)現(xiàn)都非常簡(jiǎn)單,外圍電路非常簡(jiǎn)潔。圖4-9是單片機(jī)與顯示器的接口電路。圖3-5 顯示器與單片機(jī)接口電路第4章 軟件系統(tǒng)設(shè)計(jì)本章主要介紹
31、接觸式IC卡讀寫(xiě)器的程序設(shè)計(jì)。本設(shè)計(jì)的所有程序用C51語(yǔ)言編寫(xiě),由主程序和子程序組成。其中子程序包括比較校驗(yàn)數(shù)據(jù)子程序、插卡子程序、顯示中斷子程序。4.1 主程序主程序主要完成初始化并檢測(cè)系統(tǒng)的狀態(tài),如果是剛上電狀態(tài),則恢復(fù)掉電瞬間保存的數(shù)據(jù)。主程序的流程圖如圖5-1所示。主程序如下:#include< at8051.h> /頭文件#define uint unsigned int#define uchar unsigned char#define addrl 0x40uint data consl; /全局變量定義uchar data cons22=0,0;main ( ) uc
32、har data *p; /指針定義if(consl=0) /判斷是否剛上電狀態(tài) p=cons2;Read24c02(p,addrl,2); /從24c02中讀出掉電時(shí)保存的數(shù)據(jù)consl=OxOOOF; /修改標(biāo)志位ITO=1; /外部中斷0下降沿觸發(fā)EXO=1; /外部中斷0開(kāi)中斷EA=1; /CPU開(kāi)中斷IDL=1; /設(shè)置節(jié)電工作方式do while(1);開(kāi)始初始化待機(jī)是否有卡插入 N Y密碼效驗(yàn) 有無(wú)按鍵 N Y執(zhí)行相應(yīng)功能顯示圖4-1主程序流程圖4.2 鍵盤(pán)掃描子程序16個(gè)按鍵的鍵盤(pán)電路分別為:數(shù)字鍵09及小數(shù)點(diǎn)“.”,可以設(shè)定用戶(hù)信息及余額;此外還有5個(gè)功能鍵,分別為:(1)
33、修改/確認(rèn)鍵,用來(lái)控制信息的改寫(xiě)及確認(rèn);(2) 賬號(hào)顯示鍵,用來(lái)控制用戶(hù)賬號(hào)信息的顯示;(3) 余額/總數(shù)顯示鍵,用來(lái)控制余額或總數(shù)的顯示;(4) 計(jì)數(shù)開(kāi)始/停止鍵,用來(lái)控制計(jì)數(shù)系統(tǒng)的計(jì)數(shù);(5) 備用鍵;(6) 備用鍵。此讀寫(xiě)系統(tǒng)中,鍵盤(pán)采用編程掃描方式。所謂編程掃描就是CPU對(duì)鍵盤(pán)的掃描采取程序控制方式,一旦進(jìn)入鍵盤(pán)掃描狀態(tài)則反復(fù)地掃描鍵盤(pán),等待用戶(hù)從鍵盤(pán)上輸入命令或數(shù)據(jù)。而在執(zhí)行鍵入命令或處理鍵入數(shù)據(jù)的過(guò)程中,CPU不再響應(yīng)鍵入要求,直到CPU返回重新掃描鍵盤(pán)為止。鍵盤(pán)掃描子程序流程圖如圖5-3所示。圖中可見(jiàn),鍵盤(pán)掃描子程序要完成以下的功能:1) 判斷鍵盤(pán)上有無(wú)鍵按下。其方法為P2.3口
34、連續(xù)16次全輸出為“0”電平時(shí),讀P2.2口行線(xiàn)電平狀態(tài),若行電平全為“1”電平,則鍵盤(pán)無(wú)鍵按下,若不為“1”電平,則有鍵按下。2) 取出鍵抖動(dòng)及重鍵的影響。在鍵盤(pán)電路中,按鍵按下閉合后,將產(chǎn)生一個(gè)一個(gè)負(fù)的矩形脈沖。但由于在按動(dòng)按鍵時(shí)總有一些抖動(dòng),因此在負(fù)脈沖的開(kāi)始和末尾部位總要出現(xiàn)一些毛齒波,毛齒波的長(zhǎng)短與開(kāi)關(guān)的機(jī)械特性有關(guān),一般為510ms。除了抖動(dòng)之外還有重鍵,即一個(gè)鍵按下后緊接著由按下另一鍵,或者兩個(gè)鍵同時(shí)按下。這些需要采取一定的措施加以消除。本系統(tǒng)采用軟件延時(shí)的方法來(lái)解決。通過(guò)延時(shí)來(lái)等待信號(hào)穩(wěn)定,在信號(hào)穩(wěn)定后查詢(xún)鍵碼。其過(guò)程是在查詢(xún)到有按鍵按下后延時(shí)一段時(shí)間,一般為10ms。再查詢(xún)一
35、次看是否有鍵按下。若這次查詢(xún)不到,則說(shuō)明前一次查詢(xún)結(jié)果為干擾或抖動(dòng),若這次查詢(xún)到有鍵按下,則說(shuō)明信號(hào)已經(jīng)穩(wěn)定,然后判斷閉合按鍵的鍵碼。當(dāng)閉合按鍵地鍵碼確定之后,再去查詢(xún)按鍵是否釋放,待按鍵釋放后再進(jìn)行處理,這樣既可消除釋放抖動(dòng)的干擾。對(duì)于重鍵則以后一次查詢(xún)?yōu)樽詈蠼Y(jié)果。3) 掃描鍵盤(pán),得到按下的鍵的鍵值。方法是P2.3口連續(xù)16次輸出“1”電平,然后輸出一次“0”電平,同時(shí)進(jìn)行計(jì)數(shù)為00H,若P2.2口仍為“1”電平,則繼續(xù)連續(xù)輸出“1”電平進(jìn)行移位,并同時(shí)計(jì)數(shù),直到P2.2口輸入的電平為“0”電平,表明此時(shí)的鍵即為按下的鍵,對(duì)應(yīng)的計(jì)數(shù)值即為鍵值,然后調(diào)用對(duì)應(yīng)的鍵處理子程序。鍵值與鍵號(hào)的對(duì)應(yīng)關(guān)系
36、如表5-1所示。4) 表4-1 鍵值與鍵號(hào)對(duì)應(yīng)表鍵值00H01H02H03H04H05H鍵號(hào)012345鍵值06H07H08H09H0AH鍵號(hào)6789.鍵值0BH0CH0DH鍵號(hào)修改/確認(rèn)賬號(hào)顯示余額/總數(shù)鍵值0EH0FH10H鍵號(hào)開(kāi)始/停止備用備用開(kāi)始調(diào)用鍵盤(pán)程序判斷是否按鍵數(shù)字功能返回圖4-2 鍵盤(pán)掃描流程圖4.3 顯示子程序讀卡器在運(yùn)行過(guò)程中,對(duì)用戶(hù)的信息進(jìn)行不斷改變,并寫(xiě)入EEPROM中。當(dāng)用戶(hù)需要查詢(xún)IC卡的運(yùn)行狀態(tài)時(shí),只需按動(dòng)顯示按鈕,即可顯示用戶(hù)的帳號(hào)信息、帳號(hào)余額、計(jì)數(shù)值等信息。流程圖如圖5-4所示。開(kāi)始LCD初始化清屏從緩沖區(qū)中顯示用戶(hù)信息顯示用戶(hù)信息返回圖4-3 顯示子程序
37、流程圖總結(jié)在了解研究8051單片機(jī)的結(jié)構(gòu)特點(diǎn)及其相關(guān)的設(shè)計(jì)實(shí)例后,本次設(shè)計(jì)充分利用其相關(guān)的功能,開(kāi)發(fā)設(shè)計(jì)了IC卡讀寫(xiě)器。另外,在軟件設(shè)計(jì)過(guò)程中,主要程序代碼使用C編寫(xiě),大大加快了開(kāi)發(fā)進(jìn)程與后期的可維護(hù)性提升。設(shè)計(jì)主要完成了以下工作:1.深入了解了8051單片機(jī)的性能特點(diǎn)、開(kāi)發(fā)工具和應(yīng)用領(lǐng)域2. 使用PROTEL軟件繪制完成了系統(tǒng)完整的電路圖,實(shí)現(xiàn)了基于51單片機(jī)的IC卡讀寫(xiě)器的設(shè)計(jì)。3.以C語(yǔ)言為主,完成了相應(yīng)的軟件設(shè)計(jì),達(dá)到了預(yù)期的效果。4.最終完成了基于51單片機(jī)的IC卡讀寫(xiě)器的設(shè)計(jì):以51單片機(jī)為核心,結(jié)合AT24C02作為外部存儲(chǔ)器,存放關(guān)鍵信息,液晶SMG12232B-2作為顯示系統(tǒng)
38、。實(shí)現(xiàn)了IC卡與單片機(jī)的通信,有51單片機(jī)控制數(shù)據(jù)傳輸過(guò)程,實(shí)現(xiàn)讀卡和寫(xiě)卡操作。參考文獻(xiàn)1于宏軍,趙東艷.智能卡技術(shù)全書(shū).北京:電子工業(yè)出版社,19962王愛(ài)英.智能卡技術(shù).北京:清華大學(xué)出版社,20003彭為,黃科,雷道仲.單片機(jī)典型系統(tǒng)設(shè)計(jì)實(shí)例精講. 北京:電子工業(yè)出版社,2006.54段麗斌.智能卡技術(shù)應(yīng)用北京.電子工業(yè)出版社,19955陸永寧.IC卡應(yīng)用系統(tǒng).南京:東南大學(xué)出版社,20006沈紅衛(wèi).單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)實(shí)例與分析.北京:北京航空航天大學(xué)出版社,2003.17王卓人,鄧晉鈞,劉宗祥.IC卡的技術(shù)與應(yīng)用.北京:電子工業(yè)出版社,19998何立民.單片機(jī)高級(jí)教程.北京:北京航空航
39、天大學(xué)出版社,2000.89李華.MCS-51系列單片機(jī)實(shí)用接口技術(shù)北京:北京航空航天大學(xué)出版社,1993.810吳金戌,沈慶陽(yáng),郭庭吉.8051單片機(jī)實(shí)踐與應(yīng)用.北京:清華大學(xué)出版社,2002.911李光飛,樓然苗,胡佳文,謝象佐.單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo). 北京:北京航空航天大學(xué)出版社,200411姜志海,劉連鑫.單片微型計(jì)算機(jī)原理及應(yīng)用.北京:機(jī)械工業(yè)出版社,2007.112張洪潤(rùn),劉秀英,張亞凡.單片機(jī)應(yīng)用設(shè)計(jì)200例. 北京:北京航空航天大學(xué)出版社2006.7總程序圖附錄主程序:#include <reg52.h>#include "lcd.h"#inc
40、lude "keyboard.h"#include "SLE4442.H"#define uchar unsigned char#define uint unsigned int#define com_read 0x91 /讀卡#define com_add 0x92 /充值#define com_dec 0x93 /扣錢(qián)#define change_psw 0x95 /修改密碼#define change_id 0x96 /修改卡號(hào)#define FLAG_RD_OK0x97/上傳的數(shù)據(jù),表示讀卡完畢#define FLAG_WR_OK0x98/上傳的
41、數(shù)據(jù),表示寫(xiě)卡完畢#define FLAG_RD_ER0x99/上傳的數(shù)據(jù),表示讀卡錯(cuò)誤#define FLAG_WR_ER0xa0/上傳的數(shù)據(jù),表示寫(xiě)卡錯(cuò)誤#define FLAG_NO_MONEY 0xa1/卡上金額不足#define FLAG_FULL_MONEY 0xa2/卡上金額過(guò)多#define FLAG_PSW_ER 0xa3/密碼錯(cuò)誤#define FLAG_CARD_LOCK0xa4/卡已鎖死#define FLAG_CARD_ER0xa5/卡無(wú)效 #define addr_money 0x0f /金額 0f10#define addr_mon_h 0x0f /錢(qián)的高位地址#
42、define addr_mon_l 0x10uchar Card_num="ID: "uchar Money_num="MONEY: . "uchar money=0;uchar keynum=0xff;sbit IsCard=P32;sbit BEE =P34;sbit LED =P33;/延時(shí)10msvoid delay()unsigned char i,j,k; for(i=5;i>0;i-) for(j=4;j>0;j-) for(k=248;k>0;k-);void delay_ms(unsigned int ms)unsig
43、ned char i = 0;unsigned int j = 0;for(; j<ms; j+)for(i=0; i<125; i+)void reckey(int i,char *int_buf)char num;int x;if(x<i)num=key_switch(); /掃描鍵盤(pán)if(num!=0xff) /如果掃描是按鍵有效值則進(jìn)行處理 *int_buf=num; int_buf+; LCD_Wr_Char(x,0,num);x+;void main()uchar rec20=0;uchar Write_buf4;uchar input_buf4;uchar i;
44、uchar cardid8=0,6,1,1,0,0,2,1;uchar psw3 = 0xff,0xff,0xff;LCD_Init(); /初始化LCDET0=1;EA=1; LED=1;LCD_Clear_ALL();Print (1,0,"wlcome!Please");Print (3,1,"insert card");while(1) if(IsCard=0) delay(); if(IsCard=0)LED=0;ResetCard(); if(1=checkpsw(psw)/讀成功返加1,失敗返回0read_cm(32,8,rec);Card
45、_num3=(rec0&0x0f) + '0'Card_num4=(rec1&0x0f) + '0' Card_num5=(rec2&0x0f) + '0'Card_num6=(rec3&0x0f) + '0'Card_num7=(rec4&0x0f) + '0'Card_num8=(rec5&0x0f) + '0'Card_num9=(rec6&0x0f) + '0'Card_num10=(rec7&0x0f) + &
46、#39;0'Print(0,0,"");Print(0,0,Card_num);read_cm(addr_money,2,rec); /讀取金額money=rec0*256+rec1;Money_num6=(money/10000)%10)+'0'Money_num7=(money/1000)%10)+'0'Money_num8=(money/100)%10)+'0'Money_num9=(money/10)%10)+'0'Money_num11=(money%10)+'0'Print(
47、0,1,"");Print (0,1,Money_num);else LCD_Clear_ALL();Print (0,0,"Read error");while(IsCard=0)LED=LED;delay();delay();delay();delay();delay();delay();keynum=key_switch(); /讀取鍵盤(pán)if(keynum!=0xff)if (keynum=12)reckey(2,input_buf);money+=(input_buf0*256+input_buf1);Write_buf0=money/256;Write_buf1=money%256;if( checkpsw(psw) = 1 ) /如果密碼正確,就直接寫(xiě)入數(shù)據(jù)for(i=0; i<=1; i+) write_cm(32+i, input_bufi);/從32開(kāi)始 寫(xiě)入8個(gè)字節(jié) delay_ms(5);BreakOperate();/IIC ST
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 增資擴(kuò)股委托協(xié)議
- 2025版小產(chǎn)權(quán)房購(gòu)房合同范本:房產(chǎn)交易糾紛調(diào)解與和解3篇
- 2025年度個(gè)人房屋交易房地產(chǎn)廣告推廣合同范本
- 2025版房地產(chǎn)銷(xiāo)售委托代理合同補(bǔ)充協(xié)議3篇
- 2025-2030全球MBE摻雜源行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)便攜式三維測(cè)力臺(tái)行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025版?zhèn)€人信用貸款合同樣本6篇
- 2025年度鋼構(gòu)建筑綠色供應(yīng)鏈管理合同范本2篇
- 委托調(diào)查合同范本
- 2025年度個(gè)人與個(gè)人投資理財(cái)合作協(xié)議范本4篇
- 中國(guó)減肥行業(yè)市場(chǎng)分析與發(fā)展趨勢(shì)講義
- 海通食品集團(tuán)楊梅汁產(chǎn)品市場(chǎng)營(yíng)銷(xiāo)
- 教學(xué)查房及體格檢查評(píng)分標(biāo)準(zhǔn)
- 西方經(jīng)濟(jì)學(xué)(第二版)完整整套教學(xué)課件
- 人教版高一數(shù)學(xué)上冊(cè)期末考試試卷及答案
- 圍術(shù)期下肢深靜脈血栓預(yù)防的術(shù)中護(hù)理
- 三方采購(gòu)協(xié)議范本
- 《材料分析測(cè)試技術(shù)》全套教學(xué)課件
- 安全學(xué)原理第2版-ppt課件(完整版)
- 傾聽(tīng)是一種美德
- 武漢東湖賓館建設(shè)項(xiàng)目委托代建合同
評(píng)論
0/150
提交評(píng)論