久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

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

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


評論


相關推薦

技術專區

關閉