色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

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

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

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


          3、讀寫操作軟件

          當系統(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)
          在開始條件下,當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)

          在停止條件下,當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)

          在接收方應答下,每收到一字節(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 ;設備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 ;無應答信號
          利用該程序可將讀出的數(shù)據(jù)存放在A中。需要注意的是:讀數(shù)據(jù)的器件不是通過確認狀態(tài)來應答的,而是隨后產(chǎn)生一個停止狀態(tài)。



          評論


          相關推薦

          技術專區(qū)

          關閉