电路设计,软件开发,专业项目团队承接电子产品开发!


ISPRO下载型编程器
火爆销售中

RS232/TTL转换器
全IC串口窃电

RS232/TTL转换线
全IC串口窃电

ByteBlasterMV Cable
CPLD/FPGA并口下载线

ByteBlaster II Cable ISPRO下载型编程器
支持S51/AVR/PIC
超级51开发板套件
前卫实用超值

PC/MCU/CPLD
三合一学习套件

全新万年历方案
AVR单片机开发板
 

Min51单片机仿真机
迷你型

ARM7开发板
仅售260元!
 

RS-232/RS-485双向接口电平转换器  

51单片机升级STM32
火爆销售中
MPLAB-ICD2
火爆销售中
LED51开发板
玩具又名图文显示棒

面板模块/开发板
经济危机明智决择

       

GSM MODEM GSM猫

SMS短信模块 工业级/全自动
火爆销售中

大功率数传电台

高速数传电台

您当前位置:电子技术资料 -> 外围驱动 -> IC卡 ->

祝您阅读愉快!

ISPRO下载型编程器

RS232 TO TTL转换器
↑↑本文相关产品介绍↑↑

SLE4442卡驱动程序源码


类别:技术文章
来源:未知
作者:未知
关键字:SLE4442
加入日期:2010-8-3

;SLE4442卡驱动程序源码
;中国电子网www.EC66.com
; Module Name: Sle4442.asm

;---------- 管脚定义 --------------
RST EQU P3.3
CLK EQU P3.4
IO EQU P1.4
SW1 EQU P3.5 ;为0不到位


;************************************************************
; 以下是调用示例
;************************************************************
LCALL RSTAS ;--------------------------
MOV R0,#DATA1+4
MOV @R0,#0FFH
INC R0
MOV @R0,#0FFH
INC R0
MOV @R0,#0FFH
MOV R1,#DATA1+4
LCALL CMPVD ;校验PSC
MOV R0,#DATA2+8 ;-----------------
MOV R1,#DATA1+10
MOV R2,#3
LCALL FENJN ;将余额分解为6位
MOV R1,#DATA1+10
MOV R2,#6
MOV R3,#50
LCALL WR4442 ;收到上位机传来余额信息,写入IC相应位置

;************************************************************
; 以下是SLE 4442卡的读写子程序
;************************************************************
;----------------------------------------------------
; RSTAS: IC复位子程序
; 入口参数:
; 局部参数:R6,R7
; 出口参数:R0,地址0--3的数据
;----------------------------------------------------
RSTAS: CLR RST
CLR CLK
SETB RST ;POLL UP RST
NOP
NOP
NOP
NOP ;4uS
SETB CLK ;POLL UP CLK
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP ;9uS
CLR CLK ;POLL DOWN CLK
NOP
NOP
NOP
NOP ;4uS
CLR RST ;POLL DOWN RST

MOV R0,#DATA1
MOV R6,#4
RST1: MOV R7,#8 ;>2.5uS
RST2: MOV C,IO
RRC A
NOP
NOP
NOP
NOP
NOP
SETB CLK
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP ;9uS
CLR CLK
DJNZ R7,RST2
MOV @R0,A
INC R0
DJNZ R6,RST1 ;以上为RESET AND ANSWER TO RESET
RET
;----------------------------------------------------
; SDCOMD: 发送命令子程序
; 入口参数:R0,要发送的三字节命令
; 局部参数:R6,R7
;----------------------------------------------------
SDCOMD: NOP
NOP
NOP
NOP
NOP
SETB CLK
NOP
NOP
NOP
NOP
CLR IO ;开始发送命令
MOV R6,#3
COMD1: MOV R7,#8
MOV A,@R0
COMD2: NOP
NOP
NOP
NOP
NOP
NOP
NOP
CLR CLK ;>9uS
RRC A
MOV IO,C
NOP
NOP
NOP
NOP
NOP
NOP
NOP
SETB CLK ;>9uS
DJNZ R7,COMD2
INC R0
DJNZ R6,COMD1
NOP
NOP
NOP
NOP
CLR CLK
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
SETB CLK ;additional clock:0->1
NOP
NOP
NOP
NOP
SETB IO ;结束发送命令,>4uS
RET
;----------------------------------------------------
; RCDATA: 接收数据子程序
; 入口参数:R0,数据起址;R2,数据个数
; 局部参数:R6,R7
; 出口参数:R0,数据
;----------------------------------------------------
RCDATA: CLR CLK
MOV A,R2
MOV R6,A
READM1: MOV R7,#8
READM2: NOP
MOV C,IO ;>2.5uS
RRC A
NOP
NOP
NOP
NOP
SETB CLK
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP ;9uS
CLR CLK
DJNZ R7,READM2
MOV @R0,A
INC R0
DJNZ R6,READM1 ;以上为多字节读
RET
;----------------------------------------------------
; PROCESS: 开始写过程,提供足够的脉冲
; 入口参数:
; 局部参数:R7
; 出口参数:
;----------------------------------------------------
PROCESS:NOP
NOP
NOP
NOP
NOP
CLR CLK
NOP
NOP
NOP
CLR IO
MOV R7,#255
PROCES1:NOP
NOP
NOP
NOP
NOP
NOP
NOP
SETB CLK
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
CLR CLK
DJNZ R7,PROCES1
NOP
SETB IO
RET
;----------------------------------------------------
; CMPVD: 校验PSC
; 入口参数:R1,输入PSC.
; 局部参数:R6,R7
; 出口参数:R3,1:校验失败,0:成功; R0, EC & PSC
;----------------------------------------------------
CMPVD: MOV R0,#DATA1 ;--------------------
MOV @R0,#31H
LCALL SDCOMD
MOV R0,#DATA1
MOV R2,#4
LCALL RCDATA ;READ EC NOTE:READ 4
MOV R0,#DATA1
MOV A,@R0
ANL A,#07H
JNZ PERMIT ;EC=0,RET
MOV R3,#1
RET
PERMIT: JNB ACC.0,WR0A
CLR ACC.0
SJMP WR0C
WR0A: JNB ACC.1,WR0B
CLR ACC.1
SJMP WR0C
WR0B: CLR ACC.2
WR0C: MOV R0,#DATA1 ;---------------------
MOV @R0,#39H
INC R0
MOV @R0,#0
INC R0
MOV @R0,A
MOV R0,#DATA1
LCALL SDCOMD
LCALL PROCESS ;UPDATA EC
MOV R0,#DATA1 ;--------------------------
MOV @R0,#33H
INC R0
MOV @R0,#1
INC R0
MOV A,@R1
MOV @R0,A
MOV R0,#DATA1
LCALL SDCOMD
LCALL PROCESS ;COMPARE FIRST
MOV R0,#DATA1 ;-------------
MOV @R0,#33H
INC R0
MOV @R0,#2
INC R0
INC R1
MOV A,@R1
MOV @R0,A
MOV R0,#DATA1
LCALL SDCOMD
LCALL PROCESS ;COMPARE SECOND
MOV R0,#DATA1 ;--------------
MOV @R0,#33H
INC R0
MOV @R0,#3
INC R0
INC R1
MOV A,@R1
MOV @R0,A
MOV R0,#DATA1
LCALL SDCOMD ;COMPARE THIRD
LCALL PROCESS ;---------------------------
MOV R0,#DATA1
MOV @R0,#39H
INC R0
MOV @R0,#0
INC R0
MOV @R0,#07H
MOV R0,#DATA1
LCALL SDCOMD
LCALL PROCESS ;UPDATA EC

;MOV R0,#DATA1 ;------------------
;MOV @R0,#39H
;INC R0
;MOV @R0,#1
;INC R0
;MOV @R0,#0FFH
;MOV R0,#DATA1
;LCALL SDCOMD
;LCALL PROCESS ;UPDATA THE FIRST BYTE OF PSC

MOV R0,#DATA1 ;------------------
MOV @R0,#31H
LCALL SDCOMD
MOV R0,#DATA1
MOV R2,#4
LCALL RCDATA ;READ EC
MOV R0,#DATA1
MOV A,@R0
ANL A,#7
CJNE A,#7,CMPFAIL
MOV R3,#0
RET
CMPFAIL:MOV R3,#1
RET
;----------------------------------------------------
; WR4442: 多字节写
; 入口参数:R1,写入数据起址; R2,写入个数; R3,数据写入地址
; 局部参数:R0,R6,R7
; 出口参数:R3,1:校验失败,0:成功; R0, EC & PSC
;----------------------------------------------------
WR4442: MOV R0,#DATA1
MOV @R0,#38H
INC R0
MOV A,R3
MOV @R0,A
INC R0
MOV A,@R1
MOV @R0,A
MOV R0,#DATA1
LCALL SDCOMD
LCALL PROCESS ;UPDATA MAIN MEM
INC R1
INC R3
DJNZ R2,WR4442
RET

;*****************************************************


您可能还会关注的相关技术资料:

中国电子网
www.EC66.com
QQ:34740080 EMAIL:iloveaoe@163.com
最佳浏览:1024*768
Copyright (C) 2001-2010 EC66.COM All Rights Reserved
Aoe/帝国 制作维护
粤ICP备18061901号