新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機IC卡讀寫器設(shè)計

        單片機IC卡讀寫器設(shè)計

        作者: 時間:2013-02-21 來源:網(wǎng)絡(luò) 收藏

        3.2 停止條件(STOP_C)

        在停止條件下,當SCL為高電平時,SDA由低轉(zhuǎn)為高。程序如下:

        STOP_IC:CLR SCL

        NOP

        NOP

        CLR SDA

        NOP

        NOP

        SETB SCL

        NOP

        NOP

        SETB SDA

        NOP

        NOP

        CLR SCL

        NOP

        NOP

        CLR SDA

        RET

        3.3 確認信號(ACK_IC)

        在接收方應(yīng)答下,每收到一字節(jié)后便將SDA電平拉低,程序如下:

        ACK_IC:CLR SCL

        NOP

        NOP

        CLR SDA

        NOP

        NOP

        SEIB SCL

        NOP

        NOP

        CLR SCL

        NOP

        SETB SDA

        NOP

        RET

        3.4 寫一字節(jié)數(shù)據(jù)到IC卡(WR_BYTE)

        在下列程序中,參數(shù)A表示源數(shù)據(jù),R5表示字節(jié)位數(shù)。

        WR_BYTE:MOV R5,#08 ;一字節(jié)8位數(shù)據(jù)

        CLR SCL

        NOP

        NOP

        WR_BYTE1:RLC A ;帶進位位左移,A.8->C

        MOV SDA,C ;SCL低電平時改變SDA上的數(shù)據(jù)

        NOP

        SETB SCL ;拉高SCL把數(shù)據(jù)發(fā)送出去

        NOP

        NOP

        CLR SCL

        NOP

        NOP

        DJNZ R5,WR_BYTE1;依次發(fā)送A中的8位數(shù)據(jù)

        SETB SDA

        SETB SCL

        JB SDA,$ ;等待IC卡確認信號

        CLR SCL

        NOP

        RET

        此子程序的主要作用是按照定義的時序,順序左移A中一字節(jié)8位數(shù)據(jù),并通過引腳傳送出去。當一字節(jié)發(fā)完后,等待IC卡發(fā)回的確認信號。

        3.5 從IC卡讀一字節(jié)(RD+BYTE)

        從IC卡中讀一字節(jié)的源程序如下:

        RD_BYTE:MOV R5,#08

        SETB SDA ;設(shè)備SDA為讀狀態(tài)

        CLR A ;清空A寄存器

        RD_BTYE1:MOV C,SDA ;讀一位數(shù)據(jù)到進位位

        RLC A ;左移數(shù)據(jù)到A.0

        SETB SCL

        NOP

        NOP

        CLR SCL

        NOP

        NOP

        DJNZ R5,RD_BYTE1;依次讀出8位數(shù)據(jù)到A中

        RET ;無應(yīng)答信號

        利用該程序可將讀出的數(shù)據(jù)存放在A中。需要注意的是:讀數(shù)據(jù)的器件不是通過確認狀態(tài)來應(yīng)答的,而是隨后產(chǎn)生一個停止狀態(tài)。

        3.6 字節(jié)寫入模式寫數(shù)據(jù)(WRITE_BYTE)

        下列程序中的參數(shù)為:R6= =目的地址,A= =數(shù)據(jù);數(shù)據(jù)如下:

        WRITE_BYTE:PUSH ACC ;保存A中的數(shù)據(jù)

        LCALL START_IC ;發(fā)開始信號

        MOV A,#DEVICEAD_W;寫入器件地址

        LCAL WR_BYTE

        上拉電阻相關(guān)文章:上拉電阻原理


        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 乳山市| 霍城县| 靖江市| 兴国县| 嘉祥县| 彩票| 宁南县| 印江| 土默特左旗| 莆田市| 石泉县| 敖汉旗| 长泰县| 阳江市| 湘潭市| 东安县| 钟山县| 上饶市| 宁国市| 武宁县| 瓦房店市| 滨海县| 寻甸| 垫江县| 宁陵县| 孟州市| 通州市| 汽车| 庆阳市| 平武县| 上高县| 宁武县| 济源市| 斗六市| 信阳市| 道孚县| 丹阳市| 遂川县| 田林县| 永平县| 塘沽区|