新闻中心

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

上拉电阻相关文章:上拉电阻原理


评论


相关推荐

技术专区

关闭