单片机实验
IC 卡身份识别开关实验
一.实验目的
掌握如何灵活运用已有的模块,做出IC 卡身份识别开关。
二. 验设备及器件
IBM PC 机 一台
DP-51PROC 单片机综合仿真实验仪 一台
三. 实验内容
利用I2C 模块、IC 卡读卡模块编一段身份识别程序,并由此控制继电器动作。
四. 实验要求
了解身份识别原理,熟练运用各模块。
五. 实验步骤
1. 连线。
引脚连线关系见表3.7
表3.7
另外,使用跳线帽短接D5 区的JP1 和C7 区的JP7。
2. 利用实验十八IC 卡读写程序,初始化好一张卡号为0x12345678 的卡(对
SLE4442 从20H 单元开始,写入4 个字节,分别为0X12,0X34,0X56,0X78)。
3. 利用实验十六对24WC02 从20H 单元开始写入4 个字节, 分别为
0X12,0X34,0X56,0X78。
4. 分别利用I2C 模块,IC 卡读写模块,编写IC 卡读数据及数据比较程序。
5. 当卡合法时,控制继电器吸合,并用控制LED1 亮来表示。
六. 实验预习要求
复习实验十八及实验十六的内容,并做好一张卡号为0x12345678 的卡备用。
七. 实验参考程序
;**********************************************************
;注意:单片机的晶振频率选用11.0592MHZ
;在使用本程序前应先写好IC 卡和EEPROM 的数据
;在插入合法的卡(IC 卡内从20H 处开始的数据与24WC02 中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: DS 10H ;发送数据缓冲区首址
MRD: DS 10H ;接收数据缓冲区首址
ORG 8000H
AJMP MAIN
ORG 8100H
MAIN:
MOV SP,#60H ;设置栈底
Read_Insert_Card:
MOV ByteNum,#04H
MOV StartAdr,#20H ;从主存储区的20H 地址读4 个字节
LCALL ReadCard
;在此可查看内存ReadBuf 中的数据是否合法
MOV SLA,#0a0H ;24WC02 的器件地址
MOV SUBA,#20h
MOV NUMBYTE,#4h
LCALL IRDNBYTE ;从24WC02 的20H 单元开始处读取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
JNZ NOEQU
DJNZ R7,CMPLOOP
;------------数据相同则断开继电器
SNEQU:
CLR SW
JMP Read_Insert_Card
NOEQU:
;------------数据不同则闭合继电器
SETB SW
JMP Read_Insert_Card
$INCLUDE(SLE4442.INC) ;包含SLE4442 驱动程序
$INCLUDE(VI2C_24A.inc) ;包含I2C 驱动程序
;
END
八. 实验程序流程图
九. 实验思考题
(1) 如果在实际中要进行身份识别,本程序还应作哪些完善工作?
全部0条评论
快来发表一下你的评论吧 !