新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機IC卡讀寫器設計

        單片機IC卡讀寫器設計

        作者: 時間:2013-02-21 來源:網絡 收藏

        3.2 停止條件(STOP_C)

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

        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)

        在接收方應答下,每收到一字節后便將SDA電平拉低,程序如下:

        ACK_IC:CLR SCL

        NOP

        NOP

        CLR SDA

        NOP

        NOP

        SEIB SCL

        NOP

        NOP

        CLR SCL

        NOP

        SETB SDA

        NOP

        RET

        3.4 寫一字節數據到IC卡(WR_BYTE)

        在下列程序中,參數A表示源數據,R5表示字節位數。

        WR_BYTE:MOV R5,#08 ;一字節8位數據

        CLR SCL

        NOP

        NOP

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

        MOV SDA,C ;SCL低電平時改變SDA上的數據

        NOP

        SETB SCL ;拉高SCL把數據發送出去

        NOP

        NOP

        CLR SCL

        NOP

        NOP

        DJNZ R5,WR_BYTE1;依次發送A中的8位數據

        SETB SDA

        SETB SCL

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

        CLR SCL

        NOP

        RET

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

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

        從IC卡中讀一字節的源程序如下:

        RD_BYTE:MOV R5,#08

        SETB SDA ;設備SDA為讀狀態

        CLR A ;清空A寄存器

        RD_BTYE1:MOV C,SDA ;讀一位數據到進位位

        RLC A ;左移數據到A.0

        SETB SCL

        NOP

        NOP

        CLR SCL

        NOP

        NOP

        DJNZ R5,RD_BYTE1;依次讀出8位數據到A中

        RET ;無應答信號

        利用該程序可將讀出的數據存放在A中。需要注意的是:讀數據的器件不是通過確認狀態來應答的,而是隨后產生一個停止狀態。

        3.6 字節寫入模式寫數據(WRITE_BYTE)

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

        WRITE_BYTE:PUSH ACC ;保存A中的數據

        LCALL START_IC ;發開始信號

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

        LCAL WR_BYTE

        上拉電阻相關文章:上拉電阻原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 毕节市| 田东县| 江北区| 新宾| 湖南省| 宜城市| 措勤县| 东乡| 溧水县| 石台县| 凤冈县| 南涧| 隆德县| 郯城县| 武宁县| 平阴县| 普陀区| 沽源县| 思南县| 沅陵县| 宣城市| 闻喜县| 迭部县| 威远县| 庆元县| 阿克陶县| 庄浪县| 简阳市| 阿拉善右旗| 芦溪县| 盐津县| 随州市| 巴里| 禹州市| 甘泉县| 吉安县| 河源市| 措勤县| 喀喇| 靖州| 门头沟区|