蓮花非接觸式IC卡讀卡器的程序設(shè)計(jì)
蓮花非接觸式IC卡讀卡器的軟件設(shè)計(jì)分為三部分,分別為MF RC500的應(yīng)用子程序的設(shè)計(jì)、主程序設(shè)計(jì)和讀卡器其它電路的應(yīng)用程序設(shè)計(jì)。我們將這部分內(nèi)容公開化,讓更多的用戶知道蓮花智能卡讀卡器的技術(shù)優(yōu)勢和制作工藝。和市面上低價(jià)格IC卡讀卡器的本質(zhì)區(qū)別。
單片機(jī)開發(fā)所使用的語言一般為匯編語言。匯編語言的優(yōu)點(diǎn)是:
1、代碼生成效率高。
2、程序運(yùn)行速度快。
其缺點(diǎn)是:
1、程序的可讀性和可移植性比較差。
2、匯編語言編 寫單片機(jī)應(yīng)用系統(tǒng)程序的周期長,調(diào)試和排錯(cuò)比較困難。
c語言是一種通用的計(jì)算機(jī)程序設(shè)計(jì)語言,在國際上十分流行,它既可用來編寫計(jì)算機(jī)的系統(tǒng)程序,也可用 來編寫一般的應(yīng)用程序,用它編寫的程序,具有較好的可讀性和可移植性。德國Keil軟件公司的C51編譯器可以直接對(duì)8051單片機(jī)的內(nèi)部特殊功能寄存器 I/O口進(jìn)行操作,直接訪問片內(nèi)或片外存儲(chǔ)器,還可以進(jìn)行各種位操作,能夠產(chǎn)生簡潔、高效率的程序代碼,在代碼質(zhì)量上可以與匯編語言相媲美。因此在本讀卡 器中使用C語言進(jìn)行程序設(shè)計(jì)。
非接觸式Ic卡讀卡器主程序設(shè)計(jì)
讀卡器對(duì)Mifare卡片的操作流程如圖所示:
復(fù)位應(yīng)答操作將通知MF RC500在天線的有效工作范圍(距離)內(nèi)尋找Mifare卡片。如果有Mifare卡片存在,這一操作將分別與每一張Mifare卡片進(jìn)行通信,讀取 MIFARE卡片上的卡片類型號(hào)TAGTYPE(兩個(gè)字節(jié)),由MFRC500傳遞給MCU,進(jìn)行識(shí)別處理。如果有多余一張的Mifare卡片在讀卡器天 線的有效工作范圍(距離)內(nèi),必須執(zhí)行防重疊操作,返回一張卡片的序列號(hào),作為本次操作的對(duì)象。而其它卡片處于等待狀態(tài)。在成功執(zhí)行防重疊操作之后,或在 任何時(shí)候當(dāng)程序員想實(shí)際地與己知序列號(hào)的卡片進(jìn)行通信時(shí),必須執(zhí)行選擇卡片操作,以建立與所選卡片的通信,同時(shí)返回該卡片的size(容量)字節(jié)。為了保 證對(duì)卡片操作的合法性,在對(duì)卡片進(jìn)行操作之前必須在卡片和讀卡器之間進(jìn)行認(rèn)證操作。讀卡器對(duì)任何一張Mifare卡片進(jìn)行任何操作都要經(jīng)過上述幾個(gè)步驟, 之后就可以具體地對(duì)卡片進(jìn)行相應(yīng)的讀、寫等操作。
非接觸式IC卡讀卡器主程序流程圖:
蜂鳴器驅(qū)動(dòng)程序設(shè)計(jì)
蜂嗚器發(fā)出聲音的條件是晶體管不斷ON/OFF交互變化,也即是P3.5不斷的輸出“1”電位及?0’電位,如果P3.5輸出一直是“1”或輸出一直 是?0電位,則蜂鳴器無法產(chǎn)生聲音。程序設(shè)計(jì)除了要讓蜂鳴器能夠發(fā)出聲音之外,還要讓蜂鳴器能夠連續(xù)發(fā)出不同音長及音調(diào)的聲音,使蜂鳴器能夠基于不同功能 發(fā)出不同的報(bào)警信號(hào)。