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