資源描述:
《大學(xué)畢業(yè)論文-—iic讀卡器設(shè)計(jì).doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、IC卡讀寫(xiě)器IIC讀卡器設(shè)計(jì)目錄1設(shè)計(jì)目的和要求11.1設(shè)計(jì)目的11.2設(shè)計(jì)要求12硬件設(shè)計(jì)22.1硬件選擇和總體系統(tǒng)框圖22.24x4矩陣鍵盤(pán)電路22.3數(shù)碼管動(dòng)態(tài)、靜態(tài)顯示電路32.4數(shù)據(jù)儲(chǔ)存電路43軟件設(shè)計(jì)73.1軟件總體流程73.2I2C器件的讀寫(xiě)83.3反轉(zhuǎn)法讀鍵值93.4數(shù)碼管掃描顯示104軟硬件調(diào)試124.1軟硬件協(xié)同調(diào)試125實(shí)習(xí)心得13參考文獻(xiàn)15附錄16IIC卡讀寫(xiě)器1設(shè)計(jì)目的和要求1.1設(shè)計(jì)目的本課題的主要內(nèi)容是采用51系列微控制器實(shí)現(xiàn)IC讀寫(xiě)器的設(shè)計(jì),通過(guò)這個(gè)實(shí)習(xí),增強(qiáng)C語(yǔ)言程序設(shè)能力,同時(shí)加強(qiáng)對(duì)51系列微控制器及相關(guān)知識(shí)理論的使用,熟練掌握51系列微控制
2、器的編程、調(diào)試和應(yīng)用系統(tǒng)的開(kāi)發(fā)以及相關(guān)芯片總線協(xié)議的使用。1.2設(shè)計(jì)要求1、密碼存儲(chǔ)在I2C器件AT24C02中,實(shí)現(xiàn)數(shù)據(jù)掉電不丟失。2、系統(tǒng)在上電后四個(gè)數(shù)碼管均顯示“—”的初始化狀態(tài)。3、實(shí)現(xiàn)數(shù)字鍵0-9和相關(guān)功能鍵的設(shè)計(jì),4、四個(gè)功能鍵的說(shuō)明:(1)輸入鍵:按下此鍵時(shí),四個(gè)數(shù)碼管空白顯示(全黑),每輸入一個(gè)數(shù)字就在數(shù)碼管上顯示出來(lái)。(2)讀出鍵:按下此鍵后,讀出24c02的數(shù)據(jù),并顯示在四個(gè)數(shù)碼管上。(3)復(fù)位鍵:在按下輸入鍵之后,輸入4個(gè)數(shù)字后,可以選擇該鍵表示放棄輸入不儲(chǔ)存,或者選擇儲(chǔ)存鍵。(4)儲(chǔ)存鍵:當(dāng)輸入修改的數(shù)字后,按下此鍵,將修改的數(shù)據(jù)進(jìn)行存儲(chǔ)并同時(shí)回到初始狀態(tài)
3、,顯示“—”。第29頁(yè)共29頁(yè)IC卡讀寫(xiě)器2硬件設(shè)計(jì)2.1硬件選擇和總體系統(tǒng)框圖本設(shè)計(jì)采用STC89C52微控制器,用24C02作為存儲(chǔ)密碼的芯片,實(shí)現(xiàn)儲(chǔ)存數(shù)據(jù)斷電不丟失,采用4X4矩陣鍵盤(pán)輸入,四位共陽(yáng)數(shù)碼管動(dòng)態(tài)顯示密碼。管腳連接如圖2.1所示。圖中省略時(shí)鐘電路和電源電路。4位數(shù)碼管P0/P3STC89C52RCP2INT0/INT14x4矩陣鍵盤(pán)IIC儲(chǔ)存器AT24C02圖2.1總體系統(tǒng)框圖2.24X4矩陣鍵盤(pán)電路矩陣鍵盤(pán)又稱行列式鍵盤(pán)。用I/O口線組成行列結(jié)構(gòu),按鍵設(shè)置在行列交點(diǎn)上。N條口線最多可構(gòu)造N2個(gè)按鍵。4X4的行列結(jié)構(gòu)可構(gòu)成16個(gè)鍵的鍵盤(pán),如圖2.2所示。無(wú)按鍵時(shí)
4、各行各列彼此相交而不相連。由行列線的電平狀態(tài)可以識(shí)別唯一與之相連的按鍵,此過(guò)程成為讀鍵值。第29頁(yè)共29頁(yè)IC卡讀寫(xiě)器圖2.24x4矩陣鍵盤(pán)鍵盤(pán)讀鍵采用反轉(zhuǎn)讀鍵法。第一步:先置行線P2.0~P2.3為輸入線,列線P2.4~P2.7為輸出線,且輸出為0。相應(yīng)的P2口寫(xiě)為0FH。若讀入低4位的數(shù)據(jù)為F,則表明有鍵按下,保存低4位數(shù)據(jù)。低4位中電平0的位置對(duì)應(yīng)的是被按下鍵的行位置。第二步:設(shè)置輸入輸出口對(duì)換,行線P2.0~P2.3為輸出線,且輸出為0,列線P2.4~P2.7為輸入線,I/O口編程數(shù)據(jù)為F0H。若讀入高4位數(shù)據(jù)不等于F,則認(rèn)為有鍵按下。讀入高4位數(shù)據(jù)中為0的位為列位置。保
5、存高4位數(shù)據(jù),將兩次所讀數(shù)值按位或運(yùn)算一次,便得按鍵值。2.3數(shù)碼管顯示電路設(shè)計(jì)中顯示4位數(shù)據(jù)時(shí),采用數(shù)碼管動(dòng)態(tài)顯示方式,它既滿足4個(gè)數(shù)碼管的顯示要求,又節(jié)省了單片機(jī)的I/O管腳資源,只使用12條I/O口線。4個(gè)數(shù)碼管共用一個(gè)I/O口P0,如圖2.3所示,在每個(gè)瞬間,數(shù)碼管段碼相同。要達(dá)到多位顯示的目的,就要在每一瞬間只有一位共陽(yáng)端有效,即只選通一位數(shù)碼管。段碼由共用I/O口送來(lái),各位數(shù)碼管依次輪流選通,使每位顯示該位的字符,并保持一段時(shí)間,以適應(yīng)視覺(jué)暫留的效果。然后關(guān)閉該位數(shù)碼管,防止“殘影”現(xiàn)象。在顯示初始狀態(tài)“—”時(shí),四位數(shù)碼管為靜態(tài)顯示,所有數(shù)碼顯示相同。第29頁(yè)共29頁(yè)
6、IC卡讀寫(xiě)器圖2.3數(shù)碼管顯示電路2.4數(shù)據(jù)存儲(chǔ)電路2.4.1I2C總線協(xié)議I2C總線是由數(shù)據(jù)線SDA和時(shí)鐘SCL構(gòu)成的串行t通信總線,可發(fā)送和接收數(shù)據(jù)。在微控制器與IC之間、IC與IC之間進(jìn)行雙向傳送,在信息的傳輸過(guò)程中,I2C總線上并接的每一模塊電路既是主控器(或被控器),又是發(fā)送器(或接收器),這取決于它所要完成的功能。I2C總線基本狀態(tài)如圖2.4:1)總線空閑(A)數(shù)據(jù)線和時(shí)鐘線同時(shí)為高電平。2)啟動(dòng)數(shù)據(jù)傳輸(B)時(shí)鐘(SCL)為高電平時(shí),SDA從高電平變?yōu)榈碗娖奖硎酒鹗紬l件產(chǎn)生。起始條件必須先于所有的命令產(chǎn)生。第29頁(yè)共29頁(yè)IC卡讀寫(xiě)器3)停止數(shù)據(jù)傳輸(C)時(shí)鐘(SC
7、L)為高電平時(shí),SDA從低電平變?yōu)楦唠娖奖硎就V箺l件產(chǎn)生。所有操作都必須以停止條件結(jié)束。4)數(shù)據(jù)傳送/數(shù)據(jù)有效(D)數(shù)據(jù)線的狀態(tài)表明數(shù)據(jù)何時(shí)有效。在起始條件之后,數(shù)據(jù)線在時(shí)鐘處于高電平期間保持穩(wěn)定。必須在時(shí)鐘信號(hào)為低電平期間改變數(shù)據(jù)線。一個(gè)數(shù)據(jù)位對(duì)應(yīng)一個(gè)時(shí)鐘脈沖。數(shù)據(jù)的每次傳輸以起始條件開(kāi)始,以停止條件結(jié)束。在起始條件和停止條件之間傳輸?shù)臄?shù)據(jù)字節(jié)數(shù)目由主器件決定。圖2.4基本狀態(tài)圖確認(rèn)信號(hào)(ACK)每一個(gè)被尋址的接收器在接收到每一字節(jié)數(shù)據(jù)后,應(yīng)發(fā)送一個(gè)確認(rèn)位。主器件必須提供一個(gè)額