⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sle4442.asm

📁 实现SLE4442接触式IC卡读写功能的源代码
💻 ASM
字号:
;*******************************************************************
;注意:单片机的晶振频率选用11.0592MHZ
;在使用本程序前应先写好IC卡和EEPROM的数据
;在插入合法的卡(IC卡内从20H处开始的数据与EEPROM中20H开始的数据相同)
;则继电器通电LED亮,否则继电器断电LED灭
;*******************************************************************

SLA		DATA 70h  	;器件从地址  
SUBA 		DATA 71h	;器件子地址   
NUMBYTE		DATA 72h	;读/写的字

ACK	BIT 20H		;位变量ACK 
;定义常量:  
SDA  	BIT P1.5
SCL	BIT P1.6	; 总线位  
SW	BIT P1.7	;继电器控制脚

MTD	EQU 40H		;发送数据缓冲区首址    
MRD	EQU 40H		;接收数据缓冲区首址

 	ORG	8000H
	AJMP	MAIN
	
	ORG	8100H
MAIN:
	MOV	SP,#60H			;设置栈底

Read_Insert_Card:

	MOV ByteNum,#04H		
	MOV StartAdr,#20H		;从主存储区的20地址读4个字节

	LCALL	ReadCard
;在此可查看内存ReadBuf中的数据是否合法
	MOV	SLA,#0a0H		;24WC02的器件地址
	MOV	SUBA,#20h		
	MOV	NUMBYTE,#4h

	LCALL  	IRDNBYTE		;从24WC02的20单元开始处读取4字节的数据
					;放在MRD内
;在此可查看内存中MRD的数据是否合法
        MOV	R7,#4
	MOV	R1,#MRD
	MOV	R0,#ReadBuf

;-----------------------------------------------
;以下为比较从EEPROM中读出的数据和IC卡中读出的数
;据是否相同
;-----------------------------------------------
CMPLOOP:
	MOV	A,@R0
	MOV	R6,A
	MOV	A,@R1
	XRL	A,R6
	INC	R0
	INC	R1
	JNZ	NOEQU
	DJNZ	R7,CMPLOOP
;------------数据相同则开继电器
SNEQU:
	CLR	SW
	JMP	TESTEND
NOEQU:
;------------数据不同则关继电器
	SETB	SW
	JMP	TESTEND
TESTEND:
	JMP	TESTEND
$INCLUDE(SLE4442.INC)			;包含SLE4442驱动程序	
$INCLUDE(VI2C_24A.inc)			;包含IIC驱动程序
END


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -