2023年全國(guó)碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩39頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  摘 要</b></p><p>  IC卡是一個(gè)正蓬勃發(fā)展的邊緣產(chǎn)業(yè),一個(gè)與我們的生活正越來越密切的產(chǎn)業(yè)。在普及因特網(wǎng)和計(jì)算機(jī)的大潮涌來時(shí),IC卡扮演著越來越重要的角色。</p><p>  IC卡讀寫設(shè)備大致可分為兩大類:一類為專用讀寫設(shè)備或稱脫機(jī)讀寫器。其特點(diǎn)是:充分利用IC卡存儲(chǔ)量大,可以獨(dú)立存儲(chǔ)和工作, 不需要和主機(jī)相連就可完成

2、數(shù)據(jù)讀寫的優(yōu)點(diǎn),可與應(yīng)用設(shè)備結(jié)合或單獨(dú)工作。例如:IC卡電表,水表,ATM機(jī), 商場(chǎng)收款機(jī)。另一類為通用讀寫設(shè)備,或稱聯(lián)機(jī)讀寫器,是帶有單片機(jī)和存儲(chǔ)器的設(shè)備,通過并行或串行口與PC機(jī)或應(yīng)用系統(tǒng)網(wǎng)絡(luò)相連接。 在運(yùn)行不同軟件時(shí)可以讀寫不同種類的IC卡,組成不同的應(yīng)用系統(tǒng)。如果配備開發(fā)系統(tǒng)軟件,可對(duì)IC卡做初始規(guī)劃,數(shù)據(jù)加密和初始寫入,從而構(gòu)成IC卡應(yīng)用開發(fā)制作環(huán)境。在本設(shè)計(jì)中, 我們討論通用開發(fā)系統(tǒng)——基于ATM89C51單片機(jī)的IC卡讀/

3、寫器的設(shè)計(jì)。</p><p>  通過89C51單片機(jī)來實(shí)現(xiàn)IC卡的讀和寫,在系統(tǒng)中設(shè)計(jì)一個(gè)復(fù)位電路,接在89C51的復(fù)位管腳上。復(fù)位電路是微機(jī)應(yīng)用中重要的一環(huán),一個(gè)好的復(fù)位電路對(duì)微機(jī)抗干擾有重要作用。另外還在單片機(jī)上接了一個(gè)時(shí)鐘電路,用來設(shè)置單片機(jī)內(nèi)部震蕩的時(shí)間。</p><p>  RS232串行接口在本設(shè)計(jì)中用于單片機(jī)與PC機(jī)之間的連接, IC卡座用于插卡,實(shí)現(xiàn)IC卡與讀寫器的連接。

4、本設(shè)計(jì)中所涉及的主要是接觸式邏輯加密卡SLE4442卡。</p><p>  另外一些外圍電路的設(shè)計(jì)使整個(gè)IC卡讀寫器顯得完美。</p><p><b>  目 錄</b></p><p>  前言 …………………………………………………………….. 3</p><p>  概述 ................

5、...................................................... 5 </p><p>  一 IC卡技術(shù) …………………………………………………… 5</p><p>  二 IC卡應(yīng)用 …………………………………………………… 8</p><p>  系統(tǒng)原理框圖 .................

6、.......................... 10</p><p>  一 系統(tǒng)原理框圖的繪制 ……………………………………… 10</p><p>  二 原理圖 ……………………………………………………… 13</p><p>  硬件部分 ........................... 14</p><p

7、>  一 AT89C51單片機(jī)簡(jiǎn)介 ……………………………………….. 14</p><p>  二 RS232串行接口 …………………………………………… 16</p><p>  三 SLE4442簡(jiǎn)介 ……………………………………………… 18</p><p>  四 IC卡座 ……………………………………………………

8、18</p><p>  五 外圍電路 …………………………………………………… 20</p><p>  軟件部分 ……………………………………. 25</p><p>  一 工作過程、流程圖 …………………………………………… 25</p><p>  二 用C51實(shí)現(xiàn)的讀/寫主程序 .................

9、...................................... 27 </p><p>  三 上位PC機(jī)通信接口軟件 ……………………………………. 34</p><p>  總結(jié) …………………………………………….. 36</p><p>  一 總結(jié) …………………………………………………………… 36</p><

10、;p>  二 致謝 …………………………………………………………… 37</p><p>  三 參考文獻(xiàn) ……………………………………………………… 38</p><p><b>  前 言</b></p><p>  IC卡是一個(gè)正蓬勃發(fā)展的邊緣產(chǎn)業(yè),一個(gè)與我們的生活正越來越密切的產(chǎn)業(yè)。在普及因特網(wǎng)和計(jì)算機(jī)的大潮涌來時(shí),

11、IC卡扮演著越來越重要的角色。</p><p>  IC卡讀寫設(shè)備大致可分為兩大類:一類為專用讀寫設(shè)備或稱脫機(jī)讀寫器。其特點(diǎn)是:充分利用IC卡存儲(chǔ)量大,可以獨(dú)立存儲(chǔ)和工作, 不需要和主機(jī)相連就可完成數(shù)據(jù)讀寫的優(yōu)點(diǎn),可與應(yīng)用設(shè)備結(jié)合或單獨(dú)工作。例如:IC卡電表,水表,ATM機(jī), 商場(chǎng)收款機(jī)。另一類為通用讀寫設(shè)備,或稱聯(lián)機(jī)讀寫器,是帶有單片機(jī)和存儲(chǔ)器的設(shè)備,通過并行或串行口與PC機(jī)或應(yīng)用系統(tǒng)網(wǎng)絡(luò)相連接。 在運(yùn)行不同軟

12、件時(shí)可以讀寫不同種類的IC卡,組成不同的應(yīng)用系統(tǒng)。如果配備開發(fā)系統(tǒng)軟件,可對(duì)IC卡做初始規(guī)劃,數(shù)據(jù)加密和初始寫入,從而構(gòu)成IC卡應(yīng)用開發(fā)制作環(huán)境。在本設(shè)計(jì)中, 我們討論通用開發(fā)系統(tǒng)——基于ATM89c51單片機(jī)的IC卡讀/寫器的設(shè)計(jì)。 IC卡讀/寫設(shè)備由IC卡卡座,單片機(jī),數(shù)據(jù)存儲(chǔ)器RAM,程序存儲(chǔ)器EEPROM,接口電路和外圍設(shè)備等組成。 IC卡讀/寫器各部分結(jié)構(gòu)與功能簡(jiǎn)單介紹如下:1.IC卡卡座 IC卡卡

13、座是連接IC卡與讀寫器的。其功能包括對(duì)IC卡供電,提供讀寫信號(hào)和傳送數(shù)據(jù)。要求提供方便的插拔方式和可靠的接觸,并帶有帶電插拔,過流保護(hù),插卡檢測(cè)等能力。IC卡和插座的結(jié)構(gòu)尺寸必須符合國(guó)際標(biāo)準(zhǔn)化組織</p><p>  3.接口電路和外圍設(shè)備    通用讀寫器一般與PC機(jī)或網(wǎng)絡(luò)聯(lián)機(jī)工作, 常用標(biāo)準(zhǔn)并行或串行口與上位機(jī)連接和通訊。常用的是帶有25芯或者9芯插口的RS232-

14、C 型串行接口, 可直接接到PC 機(jī)的COM1或COM2上。此時(shí),可利用主機(jī)的顯示器作監(jiān)視器,主機(jī)鍵盤作控制和輸入,利用主機(jī)打印機(jī)輸出。此時(shí)主機(jī)與讀寫器組成了IC卡應(yīng)用與開發(fā)系統(tǒng),操作與一般微機(jī)相仿,但用戶界面將隨所配軟件而有很大不同。</p><p><b>  4.IC卡系統(tǒng)軟件</b></p><p>  本設(shè)計(jì)的系統(tǒng)軟件是通過C51編寫的。</p>

15、<p><b>  第一章 概述</b></p><p><b>  一、IC卡技術(shù)</b></p><p><b>  IC卡概述</b></p><p>  1. 什么是IC 卡</p><p>  IC卡是英文集成電路卡(integrted circnit

16、 card )的縮寫,其大小和名片相當(dāng),但比名片稍厚些。國(guó)際標(biāo)準(zhǔn)化組織ISO為它制定了國(guó)際標(biāo)準(zhǔn),對(duì)卡的長(zhǎng)度、寬度及厚度都做了比較明確的規(guī)定。制作時(shí),將一個(gè)專用的集成電路芯片鑲嵌于基片中,封裝成形,即為IC卡。IC卡的概念是20世紀(jì)70年代初提出來的,法國(guó)人RoLa MdMore Mo與1970年首先將IC卡芯片放于卡片中。</p><p>  2. IC卡的分類</p><p> ?。?

17、)根據(jù)卡中所鑲嵌的集成電路的不同分類</p><p>  存儲(chǔ)卡:卡中的集成電路為EEPROM。</p><p>  邏輯加密卡:卡中集成電路為帶加密邏輯和EEPROM。</p><p>  CPU卡:卡中的集成電路包括中央處理器CPU、EPROM、隨機(jī)存儲(chǔ)器RAM以及固化在只讀存儲(chǔ)器ROM中的片內(nèi)操作系統(tǒng)。</p><p>  嚴(yán)格的講只有

18、CPU才是真正的只能卡。</p><p> ?。?)根據(jù)卡與外界數(shù)據(jù)傳送的形式分類</p><p>  IC卡可分為接觸型與非接觸型。非接觸型IC卡又稱射頻卡。當(dāng)前使用廣泛的是接觸型IC卡。在這種卡上,起IC芯片有8個(gè)觸點(diǎn)可與外界接觸;射頻卡的集成電路不向外引出觸點(diǎn),因此,它除了包含前述三種IC卡的電路外,還帶有射頻收/發(fā)電路及其相關(guān)電路。</p><p>  (3

19、)根據(jù)應(yīng)用領(lǐng)域分類</p><p>  IC卡分為金融卡和非金融卡。金融卡又分 為信用卡和現(xiàn)金卡。信用卡由銀行發(fā)行并管理,持卡人用它作為消費(fèi)時(shí)的支付工具,可使用預(yù)先設(shè)的的透支限額資金。現(xiàn)金卡可用作電子存折和電子錢包,不允許透支</p><p><b>  . </b></p><p><b>  3. IC卡技術(shù)</b>

20、</p><p> ?。?)IC卡讀/寫技術(shù)</p><p>  IC卡是一種集成電路卡,它的讀寫設(shè)備是每個(gè)IC卡應(yīng)用系統(tǒng)不可缺的周邊設(shè)備。該設(shè)備通過IC卡的8個(gè)觸點(diǎn)向IC卡提供電源與IC卡相互交換信息。雖然IC卡是從磁卡發(fā)展而來的,但他在機(jī)器讀/寫性能上卻遠(yuǎn)優(yōu)與磁卡,無需往復(fù)的機(jī)械動(dòng)作即可完成人-機(jī)-卡之間的多次會(huì)話過程,使卡在應(yīng)用時(shí)操作簡(jiǎn)單,給人們帶來極大的便利。</p>

21、<p> ?。?)IC卡的安全技術(shù)</p><p>  信息安全的目的就是保證數(shù)據(jù)在確定的時(shí)間內(nèi),在確定的地點(diǎn),在確定的條件下,只能被卻定的對(duì)象使用。而IC 卡正是為了解決數(shù)據(jù)是安全問題而設(shè)計(jì)的,它采用的是半導(dǎo)體密碼存放與軟件加密技術(shù),能夠有效地阻止卡的非法復(fù)制與數(shù)據(jù)篡改,應(yīng)用設(shè)備設(shè)備在脫離網(wǎng)絡(luò)的情況下,可以對(duì)IC卡進(jìn)行鑒別。</p><p>  IC卡的信息安全一般具有以下特

22、征:</p><p>  保密性:既防止未經(jīng)授權(quán)的使用者獲取信息;</p><p>  完整性:防止未經(jīng)授權(quán)的信息改變(更改、刪除、增加);</p><p>  可獲取性:防止未經(jīng)授權(quán)的截取信息;</p><p>  真實(shí)型:即通過一系列的技術(shù)措施驗(yàn)證信息的真實(shí)性;</p><p>  持久性:即長(zhǎng)久時(shí)間信息保存的可靠

23、性。</p><p><b> ?。?)數(shù)據(jù)存儲(chǔ)技術(shù)</b></p><p>  在一個(gè)應(yīng)用系統(tǒng)的使用中,系統(tǒng)必須對(duì)所有持卡人建立一份身份與使用的檔案。在磁卡系統(tǒng)中,這組檔案存放在中心數(shù)據(jù)庫系統(tǒng)內(nèi),沒次持卡人使用必須通過終端,以網(wǎng)絡(luò)形式從</p><p>  數(shù)據(jù)庫系統(tǒng)中提出那分與自己有關(guān)的檔案,IC 卡的數(shù)據(jù)存儲(chǔ)能路比磁卡要強(qiáng)得多,卡把持卡人

24、有關(guān)的大量信息存放在卡中,因而使得IC卡使用的靈活性大大增強(qiáng),交易的實(shí)時(shí)性也明顯改善。目前,IC卡的存儲(chǔ)容量可達(dá)近1MB。</p><p>  4. IC卡的技術(shù)特點(diǎn)</p><p>  芯片的制造技術(shù)與工藝</p><p>  目前,IC卡用芯片撲片采用較為先進(jìn)的CMOS,BICMOS等集成電路制造工藝,具有較好的點(diǎn)性能及抗干擾能力,一采用CMOS工藝制造的IC

25、 卡芯片為例,起主要技術(shù)指標(biāo)為;</p><p>  寫入/刪除次數(shù)最少可大100000次。</p><p>  數(shù)據(jù)保存時(shí)間最少為10年。</p><p><b>  工作電壓為5V。</b></p><p>  抗靜電4000V左右。</p><p><b>  噪音容限也較高。&l

26、t;/b></p><p>  IC 卡座的技術(shù)要求</p><p>  IC卡卡座哈IC 卡應(yīng)有良好的接觸點(diǎn),應(yīng)有盡量小的摩擦。</p><p>  具有生產(chǎn)制造時(shí)的質(zhì)量穩(wěn)定性。</p><p>  具有對(duì)應(yīng)用環(huán)境(溫度、濕度、震動(dòng)及電磁干擾等)的適應(yīng)性。</p><p>  其中正確的工作順序較為重要。按有關(guān)

27、ISO/IEC7816標(biāo)準(zhǔn)規(guī)定,在IC卡的觸點(diǎn)和讀/寫設(shè)備的觸點(diǎn)之前,讀/寫設(shè)備不應(yīng)對(duì)磁卡施加有關(guān)點(diǎn)信號(hào),以免造成不可預(yù)料的損壞。IC卡讀/寫設(shè)備作為系統(tǒng)和用戶交互的接口,必將棉隊(duì)各種各樣復(fù)雜的應(yīng)用環(huán)境,如在金融系統(tǒng)應(yīng)用中的ATM(自動(dòng)柜員機(jī)),有可能放置在露天公共場(chǎng)合,處于高/低溫、潮濕、電磁干擾等環(huán)境;在電車</p><p>  、汽車自動(dòng)售票系統(tǒng)應(yīng)用中,處于振動(dòng)、電磁干擾等環(huán)境。因此,在設(shè)計(jì)階段就應(yīng)注意;I

28、C卡讀/寫設(shè)備環(huán)境適應(yīng)性問題。</p><p>  二. IC卡的應(yīng)用</p><p>  IC卡的應(yīng)用領(lǐng)域非常廣泛。它除了涵蓋傳統(tǒng)磁卡的全部功能外,還拓展到許多磁卡所不能勝任的領(lǐng)域。這在很大程度上歸功與IC卡的大容量數(shù)據(jù)存儲(chǔ)能力和強(qiáng)有力的安全特性。</p><p>  目前,IC 卡除在金融系統(tǒng)外,在非金融系統(tǒng)也得到了廣泛的應(yīng)用。如在通信領(lǐng)域中的公用電話卡,移動(dòng)

29、電話中的SIM卡;在交通領(lǐng)域中的駕駛員執(zhí)照卡、停車收費(fèi)卡、公交交通設(shè)施是自動(dòng)收費(fèi)卡及公共交通工具的自動(dòng)收費(fèi)卡等;另外在醫(yī)療保健、個(gè)人身份識(shí)別、預(yù)收費(fèi)儀表、校園及消費(fèi)娛樂領(lǐng)域中也得到了具體的應(yīng)用。</p><p><b>  通信領(lǐng)域</b></p><p>  數(shù)字移動(dòng)電話中的用戶識(shí)別模式智能卡(SIM卡)及公用電話用IC卡。</p><p>

30、  醫(yī)療衛(wèi)生和計(jì)劃生育管理</p><p>  衛(wèi)生部計(jì)劃發(fā)行醫(yī)療IC卡;國(guó)家計(jì)劃生育委員會(huì)準(zhǔn)備發(fā)行育齡婦女計(jì)劃生育IC卡</p><p><b>  企業(yè)保險(xiǎn) 領(lǐng)域</b></p><p>  用于醫(yī)療保險(xiǎn)、失業(yè)保險(xiǎn)、養(yǎng)老保險(xiǎn)及兒童免疫接種等,目前海南、褡褳等地已發(fā)行IC保險(xiǎn)卡。</p><p><b>  

31、(4)交通領(lǐng)域</b></p><p>  用于汽車駕駛員管理、公交路費(fèi)及公交或地鐵自動(dòng)售票,目前公安部已完成“機(jī)動(dòng)車輛駕駛員違章處理IC卡”的標(biāo)準(zhǔn)起草工作,并已通過專家審定。</p><p>  (5) 對(duì)企、事業(yè)單位和社會(huì)團(tuán)體的管理</p><p>  國(guó)家工商局準(zhǔn)備發(fā)行工商企業(yè)監(jiān)管IC卡,并在部分省市試點(diǎn)。</p><p>

32、  企、事業(yè)單位內(nèi)部管理</p><p>  目前已包括單位職工內(nèi)部管理、場(chǎng)區(qū)內(nèi)部通行控制、校園師生管理、飯店IC卡門鎖及飯店內(nèi)部消費(fèi)等。這類IC卡以集團(tuán)、單位內(nèi)部發(fā)行為主。</p><p><b>  公共事業(yè)</b></p><p>  目前IC卡水表、電氣及煤氣表已在許多城市使用,今后會(huì)進(jìn)一步推廣。</p><p>

33、;  稅務(wù)(包括國(guó)稅和地稅)</p><p>  許多省市已開始使用IC卡進(jìn)行稅金的征收和稽查。</p><p><b>  加油</b></p><p>  中國(guó)石化總公司和地方石油公司都已有組織地建立IC加油卡收費(fèi)系統(tǒng)。</p><p>  隨著時(shí)間的推移,IC卡的應(yīng)用范圍將會(huì)越來越廣泛。它給人們的工作和生活帶來很大

34、的方便,相信在不遠(yuǎn)的將來,IC卡會(huì)真正走進(jìn)我們的工作和生活。</p><p><b>  第二章 原理圖</b></p><p>  一.系統(tǒng)原理框圖的繪制</p><p>  1.Protel99軟件的概述</p><p> ?。?)隨著電子技術(shù)的飛速發(fā)展,新型電子器件和集成電路的永遠(yuǎn)日趨廣泛,電子電路也變得越來越復(fù)雜

35、,這給電路的設(shè)計(jì)工作帶來了更大的難度。因此通過計(jì)算機(jī)進(jìn)行電子電路的互助設(shè)計(jì)成為設(shè)計(jì)電路板的一個(gè)基本手段。Protel99包含眾多的服務(wù)器,總提上可以分為5種組件,分別為:原理圖設(shè)計(jì)組件、PCB設(shè)計(jì)組件、布線組件、可邊成邏輯器件組件和仿真組件。由于其性能優(yōu)越,Protel99已成為電路設(shè)計(jì)不可缺少的理想工具。</p><p> ?。?)下面簡(jiǎn)單介紹電路原理圖的設(shè)計(jì)步驟。</p><p>  

36、總體來說,設(shè)計(jì)一個(gè)電路原理圖,首先要設(shè)置圖紙的大小和外形,對(duì)電路圖進(jìn)行總體規(guī)劃,然后在圖紙上放置元件,(其中,庫里面沒有我們所需的元件需要我們自己畫)進(jìn)行布局布線,接著對(duì)這個(gè)版面進(jìn)行編輯和調(diào)整,最后保存或打印,具體的電路原理圖的設(shè)計(jì)流程如圖1所示: </p><p><b>  圖1</b></p><p>  設(shè)計(jì)PCB板首先要啟動(dòng)Protel99-PCB

37、編輯器。啟動(dòng)該編輯器的操作步驟如下: </p><p>  新建或打開一個(gè)設(shè)計(jì)數(shù)據(jù)庫文件(*.ddb)。</p><p>  進(jìn)入設(shè)計(jì)文件夾Documents。</p><p>  選擇F ile/New命令,打開對(duì)話框。</p><p>  雙擊該對(duì)話框中的即可創(chuàng)建一個(gè)新的元件庫文件,默認(rèn)的文件名為PCB1。在工作窗口中該文件的圖標(biāo)上單擊

38、或在設(shè)計(jì)瀏覽器中該文件名上雙擊,即可進(jìn)入PCB板編輯器。</p><p>  然后即可在PCB編輯板上畫出所需的電路原理圖,如下頁所示:</p><p><b>  二 原理圖:</b></p><p>  第三章 硬件部分介紹</p><p>  一 AT89C51單片機(jī)簡(jiǎn)介 </p>

39、<p>  AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。AT89c51是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸

40、出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C51是它的一種精簡(jiǎn)版本。AT89C51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。</p><p>  1.主要特性:·與MCS-51 兼容 ·4K字節(jié)可編程閃爍存儲(chǔ)器 壽命:1000寫/擦循環(huán)數(shù)據(jù)保留時(shí)間:10年·全靜態(tài)工作:0Hz-2

41、4Hz·三級(jí)程序存儲(chǔ)器鎖定·128*8位內(nèi)部RAM·32可編程I/O線·兩個(gè)16位定時(shí)器/計(jì)數(shù)器·5個(gè)中斷源 ·可編程串行通道·低功耗的閑置和掉電模式·片內(nèi)振蕩器和時(shí)鐘電路 </p><p>  2.管腳說明:    VCC:供電電壓。   &

42、#160;GND:接地。    P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。    P1口:P1口是一個(gè)內(nèi)部提

43、供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。     P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并

44、因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上</p><p>  3.振蕩器特性:    XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源

45、驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。</p><p>  4.芯片擦除:    整個(gè)PEROM陣列和三個(gè)鎖定位的電擦除可通過正確的控制信號(hào)組合,并保持ALE管腳處于低電平10ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲(chǔ)字節(jié)被重復(fù)編程以前,該

46、操作必須被執(zhí)行。此外,AT89C51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個(gè)硬件復(fù)位為止。 </p><p>  二 RS232串行接口</p><p>  EIA-RS-232C是由美國(guó)電子工

47、業(yè)協(xié)會(huì)EIA制訂的一種串行物理接口標(biāo)準(zhǔn)。RS-232C采用負(fù)邏輯,-5~ -15V為邏輯1,+5~+15V為邏輯0。而TTL電</p><p>  平的“1”和“0”的特征電壓分別為2.4V和0.4V,用RS-232C總線進(jìn)行</p><p>  串行通信需外接電路實(shí)現(xiàn)電平轉(zhuǎn)換。在發(fā)送端需用驅(qū)動(dòng)電路將TTL電平轉(zhuǎn)換</p><p>  成RS-232C電平,在接收端

48、用接收電路將RS-232C電路轉(zhuǎn)換為TTL電平。本</p><p>  設(shè)計(jì)是用的TI公司的RS-232C收發(fā)器MAX232,可用單一+5V電源供電實(shí)現(xiàn)</p><p>  電平轉(zhuǎn)換。RS-232C在設(shè)計(jì)中主要永遠(yuǎn)用于PC機(jī)與IC卡讀/寫器之間的通信,框圖如下</p><p>  RS-232C芯片的引腳結(jié)構(gòu)如圖5所示:</p><p>&l

49、t;b>  圖5</b></p><p>  圖5中的C1、C2、C3、C4及V+、V—是電源變換電路部分。</p><p>  在實(shí)際應(yīng)用中,器件對(duì)電源噪音很敏感。因此,VCC必須要對(duì)地加去耦電容,其值為0.1μF 。電容C1、C2、C3及C4取同樣的數(shù)值的鉭電解電容,用以提高抗干擾能力,在連接時(shí)必須盡量靠近器件。</p><p>  MAX23

50、2的13、14管腳為串行異步通信發(fā)送及接受引腳。</p><p>  三 SLE4442卡簡(jiǎn)介      SLE4442卡內(nèi)部有一個(gè)256 8bit EEPROM,不可逆的4個(gè)寫保護(hù)字節(jié),具備密碼保護(hù)功能,可以隨時(shí)讀取主存儲(chǔ)器內(nèi)容;在校驗(yàn)成功后,可讀保護(hù)存儲(chǔ)器、讀寫安全存儲(chǔ)器和寫主存儲(chǔ)器。     SLE

51、4442有一個(gè)密碼邏輯,用以控制對(duì)存儲(chǔ)器的讀寫。為此,SLE4442包含一個(gè)4字節(jié)加密存儲(chǔ)區(qū),該存儲(chǔ)區(qū)有一個(gè)錯(cuò)誤計(jì)數(shù)器EC(0-2位)和三個(gè)字節(jié)的參考數(shù)據(jù),這三個(gè)字節(jié)作為一個(gè)整體,稱為可編程密碼(PSV)。整個(gè)數(shù)據(jù)區(qū)除了參考數(shù)據(jù),其它的數(shù)據(jù)都能被讀取,在校驗(yàn)數(shù)據(jù)與內(nèi)部參考數(shù)據(jù)比較正確后才能進(jìn)行讀寫操作,連續(xù)三次比較錯(cuò)誤后,錯(cuò)位計(jì)數(shù)器將阻止任何比較嘗試,從而也消除了任何擦寫操作。</p><p><b>

52、  四 IC卡座</b></p><p>  IC卡座引腳如圖6所示,其中引腳SW1、SW2為微動(dòng)開關(guān)在無IC卡狀態(tài)時(shí),處與斷開狀態(tài);有卡插入時(shí),IC卡卡座上的微動(dòng)開關(guān)閉合。因此,此開關(guān)往往是用來判斷是否插IC卡的傳感器件。</p><p>  其引腳VCC:工作電壓;</p><p>  SCL(CLK):串行時(shí)鐘;</p><p

53、><b>  GND:接地;</b></p><p>  SDA(I/O):串行數(shù)據(jù)(輸入/輸出);</p><p>  SW1、SW2:微動(dòng)開關(guān)</p><p>  本設(shè)計(jì)中與邏輯有關(guān)的引出端先只有2條:SCL和SDA。所有的地址、數(shù)據(jù)及讀/寫控制命令等信號(hào)均從SDA端輸入/輸出。為了區(qū)分線上的數(shù)據(jù)、地址、操作命令以及各種狀態(tài)的“開始”

54、與“結(jié)束”,卡片內(nèi)設(shè)計(jì)就多個(gè)邏輯控制單元。其中,啟動(dòng)與停止邏輯單元產(chǎn)生控制讀/寫操作的“開始”與“停止”標(biāo)志信號(hào)。</p><p>  “開始”狀態(tài):當(dāng)SCL處于高電平時(shí),SDA從高電平轉(zhuǎn)向低電平,即產(chǎn)生“開始”標(biāo)志信號(hào)。</p><p>  “停止”狀態(tài):當(dāng)SCL處于高電平時(shí),SDA從低電平轉(zhuǎn)向高電平,即產(chǎn)生一個(gè)“停止”標(biāo)志信號(hào),如圖6所示:</p><p>  

55、圖6 讀/寫的啟動(dòng)與停止時(shí)序</p><p>  SDA和SCL通常各自通過一個(gè)電阻拉到高電平,當(dāng)SCL為高電平時(shí),對(duì)應(yīng)的SDA上的數(shù)據(jù)有宵;而當(dāng)SCL為低電平時(shí),允許SDA上的數(shù)據(jù)變化。</p><p>  數(shù)據(jù)輸入/輸出應(yīng)答邏輯單元產(chǎn)生數(shù)據(jù)輸入/輸出操作應(yīng)答信號(hào)。操作時(shí)所有的地址和數(shù)據(jù)字均一8位碼串行輸入/輸出于卡片??ㄆ瑳]收到一個(gè)8位碼長(zhǎng)的地址或數(shù)據(jù)后都以置SDA線為低電平方式“確

56、認(rèn)”應(yīng)答信號(hào),其波形如圖7所示</p><p><b>  圖7</b></p><p><b>  五 外圍電路</b></p><p><b> ?。?)狀態(tài)燈</b></p><p>  IC卡的上電一般是可知的,即對(duì)IC卡讀/寫時(shí),須給IC卡上電(送電源),因此,IC

57、卡的上電控制比較簡(jiǎn)單。由于IC卡讀/寫電流很小,一般為幾個(gè)A,因此其實(shí)現(xiàn)可按照?qǐng)D8所示。由單片機(jī)89C51的P14信號(hào)通過小功率三極管9012控制系統(tǒng)的+5V電源切入IC卡座。當(dāng)IC卡上電后,發(fā)光二極管L2被點(diǎn)亮,起讀/寫指示作用。每次對(duì)IC卡讀/寫完成后。即及時(shí)先電,以減少插拔時(shí)帶電的可能性,要保證IC卡能任意插拔(有可能處于帶電狀態(tài)),不致IC卡損壞,必須使IC卡拔電過程處于斷電的狀態(tài)。要做到這點(diǎn),必須保證IC卡的下電迅速及時(shí)<

58、;/p><p><b>  圖8</b></p><p><b> ?。?)蜂鳴器</b></p><p>  一般所指的蜂鳴器是以壓電陶瓷為主要元件的。壓電陶瓷是一類有將壓力與電流相互轉(zhuǎn)換能力的特殊陶瓷。這種能力緣于其特殊的晶體結(jié)構(gòu)。當(dāng)壓電陶瓷在一定方向上受到一個(gè)壓力使其晶體結(jié)構(gòu)發(fā)生形變時(shí),它就會(huì)在內(nèi)部產(chǎn)生一個(gè)電流,并且電流

59、的變化與壓力的變化密切相關(guān)。反之亦然。所以利用這一特性,在壓電陶瓷上通過一定頻率的電流,就會(huì)引起壓電陶瓷微小形變,這一形變帶動(dòng)空氣發(fā)生振動(dòng),如果頻率適當(dāng),就可以被人耳所聽見,也就是產(chǎn)生了蜂鳴聲。</p><p>  本設(shè)計(jì)當(dāng)中蜂鳴起的做用是IC卡與單片機(jī)是否連接。</p><p>  將IC卡插進(jìn)卡座時(shí),IC卡座與單片機(jī)之間的連接無誤是蜂鳴器會(huì)響。在取出IC卡,即IC卡與單片機(jī)斷開連接,蜂

60、鳴器也要響。具體連接圖如圖9所示:</p><p><b>  圖9</b></p><p><b>  (3) 電源電路</b></p><p>  U1=220V,U2=8V,Uc1=1.2U2=9.6V,Uo=5V</p><p>  功率穩(wěn)壓電源由電源變壓器、整流電路、濾波電路和穩(wěn)壓電路四個(gè)

61、部分組成,如圖10所示</p><p>  + 電 源 + 整 流 + 濾 波 + 穩(wěn) 壓 +</p><p>  u1 u2 u3 uI U0</p

62、><p>  _ 變壓器 _ 電 路 _ 電 路 _ 電 路 _</p><p>  u1 u2 u3 uI U0 </p><p>  0

63、 t 0 t 0 t 0 t 0 t </p><p>  圖10穩(wěn)壓電源的組成框圖及整流與穩(wěn)壓過程</p><p> ?。ǎ保娫醋儔浩?</p><p>  電源變壓器的作用是將來自電網(wǎng)的220V交流電壓u1變換為整流電路所

64、需要的交流電壓u2。電源變壓器的效率為:</p><p>  其中:是變壓器副邊的功率,是變壓器原邊的功率。</p><p>  (2).整流和濾波電路</p><p>  在穩(wěn)壓電源中一般用四個(gè)二極管組成橋式整流電路,整流電路的作用是將交流電壓u2變換成脈動(dòng)的直流電壓u3。濾波電路一般由電容組成,其作用是把脈動(dòng)直流電壓u3中的大部分紋波加以濾除,以得到較平滑的直流

65、電壓UI。UI與交流電壓u2的有效值U2的關(guān)系為:</p><p>  在整流電路中,每只二極管所承受的最大反向電壓為: </p><p>  流過每只二極管的平均電流為:</p><p>  其中:R為整流濾波電路的負(fù)載電阻,它為電容C提供放電通路,放電時(shí)間常數(shù)RC應(yīng)滿足:</p><p>  其中:T = 20ms是50Hz交流電壓的周期

66、。</p><p><b>  (3)穩(wěn)壓電路</b></p><p>  由于輸入電壓u1發(fā)生波動(dòng)、負(fù)載和溫度發(fā)生變化時(shí),濾波電路輸出的直流電壓UI會(huì)隨著變化。因此,為了維持輸出電壓UI穩(wěn)定不變,還需加一級(jí)穩(wěn)壓電路。穩(wěn)壓電路的作用是當(dāng)外界因素(電網(wǎng)電壓、負(fù)載、環(huán)境溫度)發(fā)生變化時(shí),能使輸出直流電壓不受影響,而維持穩(wěn)定的輸出。穩(wěn)壓電路一般采用集成穩(wěn)壓器和一些外圍元件所

67、組成。采用集成穩(wěn)壓器設(shè)計(jì)的穩(wěn)壓電源具有性能穩(wěn)定、結(jié)構(gòu)簡(jiǎn)單等優(yōu)點(diǎn)。</p><p>  集成穩(wěn)壓器的類型很多,在小功率穩(wěn)壓電源中,普遍使用的是三端穩(wěn)壓器。按輸出電壓類型可分為固定式和可調(diào)式,此外又可分為正電壓輸出或負(fù)電壓輸出兩種類型。</p><p><b>  固定電壓輸出穩(wěn)壓器</b></p><p>  常見的有CW78(LM78)系列三端

68、固定式正電壓輸出集成穩(wěn)壓器;CW79(LM79)系列三端固定式負(fù)電壓輸出集成穩(wěn)壓器。三端是指穩(wěn)壓電路只有輸入、輸出和接地三個(gè)接地端子。型號(hào)中最后兩位數(shù)字表示輸出電壓的穩(wěn)定值,有5V、6V、9V、15V、18V和24V。穩(wěn)壓器使用時(shí),要求輸入電壓UI與輸出電壓Uo的電壓差UI - Uo ≥2V。穩(wěn)壓器的靜態(tài)電流Io = 8mA。當(dāng)Uo = 5 ~ 18V時(shí),UI的最大值UImax= 35V;當(dāng)Uo=18 ~ 24V時(shí),UI的最大值UIma

69、x = 40V。</p><p>  第四章 軟件部分 </p><p><b>  一.工作過程</b></p><p>  軟件結(jié)構(gòu)設(shè)計(jì)及其分析</p><p><b>  讀/寫器軟件結(jié)構(gòu)</b></p><p>  讀/寫器的讀/寫操作由上位PC機(jī)進(jìn)行控制,通過

70、串行通信的命令字節(jié)來實(shí)現(xiàn)。集體規(guī)定我誒:如握手信號(hào)為0AAH,則讀卡;如握手信號(hào)為0BBH,則寫卡。讀/寫器的主程序框圖如圖11所示。其中,在讀/寫卡開始時(shí),設(shè)置讀寫卡標(biāo)志;在通信開始時(shí),設(shè)置通信標(biāo)志。避免數(shù)據(jù)不全或錯(cuò)誤數(shù)據(jù)讀入或?qū)懭搿A硗?,所以的IC卡數(shù)據(jù)是先存放在IC卡的讀緩沖區(qū)和寫緩沖區(qū)的?!坝锌ú迦敕瘛笔怯眠^判斷P33引腳的高低電平來實(shí)現(xiàn)的。為了保證讀卡的可靠性,必須進(jìn)行軟件“去抖”處理。一旦有卡插入,則設(shè)置讀/寫卡標(biāo)志(有卡)

71、;在通信時(shí),設(shè)置正在通信標(biāo)志。目的是我為了避免帶電插卡。本系統(tǒng)中關(guān)鍵的軟復(fù)位是通過在外中斷INT0服務(wù)函數(shù)中設(shè)置軟復(fù)位標(biāo)志、在主函數(shù)中強(qiáng)制跳轉(zhuǎn)到函數(shù)首實(shí)現(xiàn)的。</p><p>  圖11 主程序流程圖</p><p>  拔卡處理是通過設(shè)置成高優(yōu)先級(jí)的下降沿觸發(fā)的INT0中斷來實(shí)現(xiàn)的。其程序如圖12所示:</p><p>  圖12 拔卡處理中斷子程序</

72、p><p>  串行通信才用3線制軟握手方式</p><p><b>  (2)軟件系統(tǒng)分析</b></p><p>  為保證IC卡讀/寫過程準(zhǔn)確可靠,除要保證讀/寫函數(shù)嚴(yán)格按照IC卡的讀/寫時(shí)序外,還須采用“重讀”和“復(fù)讀”措施。即讀IC卡是,采用讀2次的方式,如2次相符,則數(shù)據(jù)有效,否則再進(jìn)行第3次讀,寫IC卡時(shí),先將數(shù)據(jù)寫入,再回讀比較,否

73、則重寫一次,以免偶然的寫失導(dǎo)致得出IC卡失效的錯(cuò)誤結(jié)論。</p><p>  如何使上、下位機(jī)均不死機(jī)或能簡(jiǎn)單恢復(fù)正常工作呢?對(duì)于作為下位機(jī)的IC卡讀/寫器,利用IC卡能隨意插拔,再結(jié)合IC卡的拔卡處理是一個(gè)高級(jí)中斷的特點(diǎn),將IC卡的拔卡中斷程序設(shè)計(jì)成2個(gè)分支:(1)非IC卡讀/寫且非與上位機(jī)通信狀態(tài);(2)在與上位機(jī)通信或正在對(duì)IC卡讀/寫狀態(tài)。第1種情況下,中斷子程序是簡(jiǎn)單的鞍鼻卡BEEP告警后,直接中斷返回

74、;第2種情況,則會(huì)引起系統(tǒng)工作時(shí)常甚至死機(jī),在恢復(fù)中斷環(huán)境后,用強(qiáng)制跳轉(zhuǎn)指令強(qiáng)制從主程序開始執(zhí)行,達(dá)到復(fù)位的效果。程序框圖如圖 12所示。</p><p>  為確保串行通信的可靠性,應(yīng)著重從上、下位機(jī)通信軟件的以下問題入手——合理選擇通信波特率。由于上、下位機(jī)通信的數(shù)據(jù)量很?。ㄗ疃酁镮C卡的容量),因此通信波特率可選低一些,如2400;但要高度重視下位機(jī)(即IC卡讀/寫器)的波特率參數(shù)整頂問題。對(duì)于51系統(tǒng)CP

75、U,尤其要注意電源管理寄存器中SMOD位的設(shè)置。以2400波特率為例,當(dāng)SMOD=0時(shí),波特率參數(shù)為0F9H,實(shí)際波特率為2232,此時(shí)波特率相對(duì)誤差是7%;而當(dāng)SMOD=1時(shí),波特率參數(shù)為0F3H,實(shí)際波特率為2401,此時(shí)波特率相對(duì)誤差是0.16%,滿足正常通信所規(guī)定的波特率相對(duì)誤差小于5%的要求。</p><p>  二 用C51實(shí)現(xiàn)的讀/寫主程序</p><p>  #includ

76、e <reg51.h></p><p>  #include <absacc.h></p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int </p><p>  / * IC卡信號(hào)輸入/輸出*/</p><

77、p>  Sbit scl=P17;</p><p>  Sbit sda=P16; </p><p>  / *I/O口定義*/</p><p>  Sbit ICOUT=P32; </p><p>  Sbit ICIN=P33;</p><p>  Sbit C

78、OMM=P34;</p><p>  Sbit BELL=P35;</p><p>  Sbit PWR=P14;</p><p><b>  /*波特率選擇*/</b></p><p>  Sbit BACD=P12;</p><p>  /*24c01~24c16讀/寫驅(qū)動(dòng)程序*/</p

79、><p>  Sbit a0=ACC-0;</p><p>  Sbit a1=ACC-1;</p><p>  Sbit a2=ACC-2;</p><p>  Sbit a3=ACC-3;</p><p>  Sbit a4=ACC-4;</p><p>  Sbit a5=ACC-5;

80、</p><p>  Sbit a6=ACC-6;</p><p>  Sbit a7=ACC-7;</p><p>  / *讀/寫數(shù)據(jù)緩沖區(qū),24C01最多為128B *</p><p>  Uchar buf[16];</p><p>  Uchar flag;</p><p>  /

81、 * 標(biāo)志定義* /</p><p>  Sbit IC_WR=flag-0;</p><p>  Sbit ONCOMM=flag-1;</p><p>  Sbit RST=flag-2;</p><p>  Void start_ic(void)</p><p><b>  {</b><

82、;/p><p><b>  Sda=1;</b></p><p><b>  Scl=1;</b></p><p><b>  Delay(2);</b></p><p><b>  Sda=0;</b></p><p><b&g

83、t;  Delay(6);</b></p><p><b>  }</b></p><p>  Void stop_ic(void)</p><p><b>  {</b></p><p><b>  Sda=0;</b></p><p>&

84、lt;b>  Scl=1;</b></p><p><b>  Delay(6);</b></p><p><b>  Sda=1;</b></p><p><b>  Delay(6);</b></p><p><b>  Scl=0;</b

85、></p><p><b>  Sda=0;</b></p><p><b>  }</b></p><p>  Void ack_ic(void)</p><p><b>  {</b></p><p><b>  Sda=0;<

86、/b></p><p><b>  Delay(3);</b></p><p><b>  Scl=1;</b></p><p><b>  Delay(3);</b></p><p><b>  Scl=0;</b></p><

87、p><b>  Sda=1;</b></p><p><b>  }</b></p><p>  / * 讀字節(jié)函數(shù),無應(yīng)答信號(hào) * /</p><p>  Unsigned char rd24(void)</p><p><b>  {</b></p>&

88、lt;p><b>  Sda=1;</b></p><p>  Scl=1;a7=sda;scl=0;</p><p>  Scl=1;a6=sda;scl=0;</p><p>  Scl=1;a5=sda;scl=0;</p><p>  Scl=1;a4=sda;scl=0;</p><p

89、>  Scl=1;a3=sda;scl=0;</p><p>  Scl=1;a2=sda;scl=0;</p><p>  Scl=1;a1=sda;scl=0;</p><p>  Scl=1;a0=sda;scl=0;</p><p>  Sda=1;scl=1;scl=o;</p><p>  Retur

90、n(ACC);</p><p><b>  }</b></p><p>  / * 寫字節(jié)函數(shù) * /</p><p>  Void wd24(unsigned char dd) {</p><p><b>  ACC=dd;</b></p><p>  Sda=a7;scl

91、=1;scl=0;</p><p>  Sda=a6;scl=1;scl=0;</p><p>  Sda=a5;scl=1;scl=0;</p><p>  Sda=a4;scl=1;scl=0;</p><p>  Sda=a3;scl=1;scl=0;</p><p>  Sda=a2;scl=1;scl=0;&

92、lt;/p><p>  Sda=a1;scl=1;scl=0;</p><p>  Sda=a0;scl=1;scl=0;</p><p>  Sda=1;scl=1;</p><p>  While(sda==1);</p><p><b>  SCL=0;</b></p><p

93、><b>  }</b></p><p>  / * 隨機(jī)地址地字節(jié)函數(shù),address為預(yù)讀單元地址 *?。?lt;/p><p>  Uchar read_buter(uchar address)</p><p><b>  {</b></p><p><b>  Uchar x;&l

94、t;/b></p><p>  Start_ic();</p><p>  Wd24(0a0);</p><p>  Wd24(address);</p><p>  Start_ic();</p><p>  Wd24(0a1);</p><p><b>  X=rd24();

95、</b></p><p>  Stop_ic();</p><p>  Return(x);</p><p><b>  }</b></p><p>  / * 從指定地址開始順序讀塊地址數(shù)據(jù),數(shù)據(jù)存入全局緩沖區(qū)中buf,n為數(shù)據(jù)字節(jié)數(shù) * /</p><p>  Uchar read

96、_bytes(uchar address,uchar n)</p><p><b>  {</b></p><p>  Uchar a,y;</p><p>  For(y=0;y<n;y++)</p><p><b>  {</b></p><p>  a=read_

97、byter(address,y);</p><p><b>  buf[y]=a;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  / * * /</b></p><

98、p>  / * 字節(jié)寫入模式寫函數(shù),其中address為單元地址,dd為數(shù)據(jù) * /</p><p>  Void write_byte(uchar address,uchar dd)</p><p><b>  {</b></p><p>  Start_ic();</p><p>  Wd24(0a0);<

99、;/p><p>  Wd24(address);</p><p><b>  Wd24(dd);</b></p><p>  Stop_ic();</p><p><b>  }</b></p><p>  / * 串行通信子程序 * /</p><p>

100、  / * 波特率2400,8位數(shù)據(jù)位,1位停止位,無校驗(yàn)位 * /</p><p>  / * 先用握手字節(jié)y,然后發(fā)送x個(gè)數(shù)據(jù) * /</p><p>  / * 待發(fā)送數(shù)據(jù)在trdata緩沖區(qū)中 * /</p><p>  Void comm.(uchar x,uchar y)</p><p><b>  {</b>

101、;</p><p>  Uchar i,a;</p><p><b>  Uint j;</b></p><p><b>  While(1)</b></p><p>  {TI; while(RI= =0);</p><p><b>  RI=0;</

102、b></p><p><b>  A=SBUF;</b></p><p>  If(a!=y)goto[1];</p><p>  For(j=0;i<x;i++);</p><p>  { SBUF trdata[i];</p><p>  While(TI= =1);

103、</p><p><b>  TI=0;</b></p><p><b>  }</b></p><p>  For(j=0;j<12500;j++);</p><p><b>  }</b></p><p><b>  }</b&

104、gt;</p><p>  / * 主程序初始化函數(shù) * /</p><p>  Void init(void)</p><p><b>  {</b></p><p><b>  RSR=0;</b></p><p><b>  PWR=1;</b>&

105、lt;/p><p><b>  IC_WR=0;</b></p><p><b>  ONCOMM=0;</b></p><p><b>  EX0=1;</b></p><p>  TMOD=0x20;</p><p>  SCON=0x50;</p

106、><p>  TH1=0xf3;TL1=0xf3;</p><p>  If(BAUI)==0</p><p><b>  {</b></p><p>  PCON=0x08;</p><p><b>  }</b></p><p><b>  

107、Else</b></p><p><b>  {</b></p><p>  PCON=0x00;</p><p><b>  }</b></p><p><b>  TR1=1;</b></p><p><b>  EA=1;&l

108、t;/b></p><p><b>  }</b></p><p>  / * 將數(shù)據(jù)緩沖區(qū)16B發(fā)往上位機(jī) * /</p><p>  / * 波特率2400,8位數(shù)據(jù)位,1位停止位,無校驗(yàn)為2 * /</p><p>  / * 待發(fā)送數(shù)據(jù)在buf緩沖區(qū) * /</p><p>  Vo

109、id transfer(void)</p><p><b>  {</b></p><p><b>  Uchar i;</b></p><p><b>  Uint j;</b></p><p>  For(i=0;i<16;i++)</p><p

110、>  { SBUF=buf[i];</p><p>  While(TI= =0);</p><p><b>  TI=0;</b></p><p>  For(j=0;j<1000;j++);</p><p><b>  }</b></p><p&

111、gt;<b>  }</b></p><p>  / * 接收16B存入緩沖區(qū) * /</p><p>  / * 波特率2400,8位數(shù)據(jù)位,1位停止位,無校驗(yàn)位 * /</p><p>  / * 緩沖區(qū)為buf * /</p><p>  Void teceive(void)</p><p>

112、;<b>  {</b></p><p>  Uchar I,a;</p><p>  For(i=0;i<16;i++)</p><p>  { while(RI= =0);</p><p><b>  RI=0;</b></p><p><b&

113、gt;  A=SBUF;</b></p><p><b>  Buf[i]=a;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  / * 將緩沖區(qū)的n字節(jié)寫入IC卡address開始的區(qū)域 * /</

114、p><p>  Void write_ic(uchar address,uchar n)</p><p><b>  {</b></p><p>  Uchar x,y;</p><p>  For(y=0;y<n;y++)</p><p><b>  {</b></

115、p><p>  While_byte(address[y],buf[y]);</p><p>  Delay(10);</p><p><b>  }</b></p><p><b>  }</b></p><p>  / * 拔卡中斷程序,主要完成IC卡下電及讀/寫復(fù)位 * /

116、</p><p>  Void int_0(void)interrupt 0 using 1</p><p><b>  {</b></p><p>  While(! ICOUT);</p><p>  Delay(10);</p><p>  If(! ICOUT)</p>&l

117、t;p><b>  {</b></p><p>  If(IC_WR ONCOMM)</p><p><b>  {</b></p><p><b>  PWR=1;</b></p><p><b>  BELL=0;</b></p>

118、<p>  Delay(10);</p><p><b>  BELL=1;</b></p><p><b>  RST==1;</b></p><p><b>  }</b></p><p><b>  }</b></p><

119、;p><b>  }</b></p><p>  / * 延時(shí)函數(shù),延時(shí)ms數(shù)由N決定,但不同的系統(tǒng)需要調(diào)整相應(yīng)參數(shù) * /</p><p>  Void delay(uchar n)</p><p><b>  {</b></p><p>  Uchar i,j,k;</p>

120、<p>  For(k=o;k<n;k++)</p><p>  For(i=0;i<100;i++)</p><p>  For(j=0;j<255;j++);</p><p><b>  } </b></p><p>  Void main(void)</p><p&g

121、t;<b>  {</b></p><p><b>  Uchar a;</b></p><p>  Fuwei: init( );</p><p>  While(! ICIN);</p><p>  Delay(10);</p><p>  While(! ICIN

122、);</p><p><b>  IC_WR=1;</b></p><p>  / * 開始讀IC卡16B并存入緩沖區(qū) * /</p><p><b>  PWR=0;</b></p><p>  Read_bytes(0,16);</p><p><b>  PW

123、R=1;</b></p><p>  / * 等待與上機(jī)位建立 通信聯(lián)系 * /</p><p><b>  ONCOMM=1;</b></p><p>  While(RI= =0);</p><p><b>  RI=0;</b></p><p><b

124、>  A=SBUF;</b></p><p><b>  Switch(a)</b></p><p>  { case 0xaa: SBUF=0xaa;</p><p>  While(! TI);</p><p><b>  TI=0;</b></p>

125、<p>  Transfer( );</p><p><b>  Break;</b></p><p>  Case 0xbb: SBUF=0xbb;</p><p>  While(! TI);</p><p><b>  TI=O;</b></p><

126、;p>  Receive( );</p><p><b>  PWR=0;</b></p><p>  Write_ic(0,16);</p><p><b>  PWR=1;</b></p><p><b>  Break;</b></p><p&g

127、t;  Default: SBUF=0xcc;</p><p>  While(! TI);</p><p><b>  TI=0;</b></p><p><b>  }</b></p><p><b>  ONCOMM=0;</b></p>&l

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論