在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機(jī)實(shí)現(xiàn)通用存貯器IC卡讀寫

            單片機(jī)實(shí)現(xiàn)通用存貯器IC卡讀寫

            作者: 時間:2012-07-19 來源:網(wǎng)絡(luò) 收藏


            3、讀寫操作軟件

            當(dāng)系統(tǒng)采用6MHz晶體振蕩器時所定義的I/O口線及器件地址如下:

            SCL BIT P1.7
            SDA BIT P1.6
            DEVICEAD_W DATA 10100000B ;寫卡器件地址
            DEVICEAD_R DATA 10100001B ;讀卡器件地址
            3.1 開始條件(START_IC)
            在開始條件下,當(dāng)SCL為高電平時,SDA由高轉(zhuǎn)為低。程序如下:
            START_IC:CLR SCL;SCL低電平時才允許SDA更改
            NOP ;加入空指令延時以確保信號可靠
            NOP
            SETB SDA
            NOP
            NOP
            SETB SCL
            NOP
            NOP
            CLR SDA
            NOP
            NOP
            CLR SCL
            NOP
            RET

            3.2 停止條件(STOP_C)

            在停止條件下,當(dāng)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 確認(rèn)信號(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 ;帶進(jìn)位位左移,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卡確認(rèn)信號
            CLR SCL
            NOP
            RET
            此子程序的主要作用是按照定義的時序,順序左移A中一字節(jié)8位數(shù)據(jù),并通過引腳傳送出去。當(dāng)一字節(jié)發(fā)完后,等待IC卡發(fā)回的確認(rèn)信號。

            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ù)到進(jìn)位位
            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ù)的器件不是通過確認(rèn)狀態(tài)來應(yīng)答的,而是隨后產(chǎn)生一個停止?fàn)顟B(tài)。



            關(guān)鍵詞: 單片機(jī) 存貯器 IC卡讀寫

            評論


            相關(guān)推薦

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

            關(guān)閉