
智能卡门禁系统设计 1设计要求 智能卡的应用并不是简单的读写卡操作,而是一个棕合性的工程项目,它不仅包括卡和 速写模块的选择,还涉及到读写模块的控制、数据的传输、数据的处理和存储:既需要有硬 件应用的知识,也还必须具有软作方面的能力。下面我们以一个完整的应用系烧为例,详细 地描述了各组成部分的设计要求、完成的功能及具体的实现方法。 智能卡门禁系统设计任务: 智能卡门禁系统一一门禁机核块的设计 (1)幸接触式1C卡读写头都分 主要内容:读头部分采用非接触智能卡读写模块,由读卡器读入数据并如以保存,智能 卡按常规要具有加密和数据分区存储功修,读写头的读写距离在50厘米左右,必须具有 掉电保护、精确时同记时和显示,3蒸一5K的临时数据存储。 (2)门禁机主控模块 主要内容:智旋门禁机主控核块是智能门禁机系统的核心部分,主要色括C、健盘、 是示、电子时钟、外部数据存储器及掉电保护和看门到电路,有精确时间记时和显示。 2,智修卡门禁系饶一一系统管理横块的设计 《1)系统管理主控模块设计 主要内容:设计门禁上层找件的主控模块,其主要实现的功能是最高权限卡对管理员和 一般用户发卡,管理员对一般用户发卡。能对丢失的卡进行壮失,对找回的卡违行解壮,同 时还要具备查找功能。 (2)系统管理的数据库管理软件设计 主要内容:运用高级语言偏程,制作数据库管理软作。果集下位机的数据并保存,然目 管理采集到的数据,具有采集、数据更新、查询统计和报表的打印功能 3.智脆卡门禁系统一一数据传输模块的设计 主要内容:完成中央控制电脑与门禁读写卷之何的数据传输协议的设计,修实现主、从 机的双向数据传输及一对一,一对多的数据传输。 2总体方案 根据设计要求,整个智能卡门禁系统分为三大部分:其一是读写器部分,包括,复 位电路、时钟电路、显示电路、键盘、数据存错等主控颅块及幸接触1C卡读写核块和电镜
智能卡门禁系统设计 1 设计要求 智能卡的应用并不是简单的读写卡操作,而是一个综合性的工程项目。它不仅包括卡和 读写模块的选择,还涉及到读写模块的控制、数据的传输、数据的处理和存储;既需要有硬 件应用的知识、也还必须具有软件方面的能力。下面我们以一个完整的应用系统为例,详细 地描述了各组成部分的设计要求、完成的功能及具体的实现方法。 智能卡门禁系统设计任务: 智能卡门禁系统——门禁机模块的设计 (1) 非接触式 IC 卡读写头部分 主要内容:读头部分采用非接触智能卡读写模块,由读卡器读入数据并加以保存,智能 卡按常规要具有加密和数据分区存储功能,读写头的读写距离在 5-10 厘米左右,必须具有 掉电保护、精确时间记时和显示,3K—5K 的临时数据存储。 (2) 门禁机主控模块 主要内容:智能门禁机主控模块是智能门禁机系统的核心部分,主要包括 MCU、键盘、 显示、电子时钟、外部数据存储器及掉电保护和看门狗电路,有精确时间记时和显示。 2. 智能卡门禁系统——系统管理模块的设计 (1) 系统管理主控模块设计 主要内容:设计门禁上层软件的主控模块,其主要实现的功能是最高权限卡对管理员和 一般用户发卡,管理员对一般用户发卡。能对丢失的卡进行挂失,对找回的卡进行解挂,同 时还要具备查找功能。 (2) 系统管理的数据库管理软件设计 主要内容:运用高级语言编程,制作数据库管理软件。采集下位机的数据并保存,然后 管理采集到的数据,具有采集、数据更新、查询统计和报表的打印功能 3. 智能卡门禁系统——数据传输模块的设计 主要内容:完成中央控制电脑与门禁读写器之间的数据传输协议的设计,能实现主、从 机的双向数据传输及一对一、一对多的数据传输。 2 总体方案 根据设计要求,整个智能卡门禁系统分为三大部分:其一是读写器部分,包括 MCU、复 位电路、时钟电路、显示电路、键盘、数据存储等主控模块及非接触 IC 卡读写模块和电锁

驱动部分:其二是中央控制电脑的款件管理系统模块:其三是中央控制电韩与读写器之阿的 数据传输颅块。其总体方案见图5,1。 时件中東略 (D5I32) 件输根 校 50单片机若片 RS485 (89C520 中奥控越 液是显尿 图1非接触式IC卡门禁系统框图 3非接触式IC卡门禁机的设计 系统采用Philips公可的丰接触智能IC卡lifare】卡,以1卡作为用户卡,以用户 卡的序列号S(全球唯一)为依据控制门的开启。因为它是一个高類卡(工作频率为 13.5亚),有较的抗干扰能力、读写距离运(5一10), 首先,在发卡系统(中央控制配机)里把用户的卡号及个人偏息输入系统数据库,并将 该卡号作为合法卡号下载给所有门禁机,当有一张1卡在门禁机的有效工作范围内时,系饶 会白动向卡发出命令,卡接收到命令后向门禁机反陵其S,门禁机判断收到的卡号是否合 法,合法则整动电磁门随开门,并实时上传其开门记录:如果是非法卡(未经授权或已挂失 的卡)则拒绝开门并上传报警信息。只有最高授权者(拿握授权密码)才可以发管理员卡, 管理员必须用管理员卡方可登录发卡系统选行发卡/下传合法卡号、挂失,解挂、下传黑名 单等操作
驱动部分;其二是中央控制电脑的软件管理系统模块;其三是中央控制电脑与读写器之间的 数据传输模块。其总体方案见图 5.1。 图 1 非接触式 IC 卡门禁系统框图 3 非接触式 IC 卡门禁机的设计 系统采用 Philips 公司的非接触智能 IC 卡 Mifare 1 卡,以 M1 卡作为用户卡,以用户 卡的序列号 SN(全球唯一)为依据控制门的开启。因为它是一个高频卡(工作频率为 13.5MHZ),有较强的抗干扰能力、读写距离远(5MM—10MM)。 首先,在发卡系统(中央控制 PC 机)里把用户的卡号及个人信息输入系统数据库,并将 该卡号作为合法卡号下载给所有门禁机。当有一张 M1 卡在门禁机的有效工作范围内时,系统 会自动向卡发出命令,卡接收到命令后向门禁机反馈其 SN, 门禁机判断收到的卡号是否合 法,合法则驱动电磁门锁开门,并实时上传其开门记录;如果是非法卡(未经授权或已挂失 的卡)则拒绝开门并上传报警信息。只有最高授权者(掌握授权密码)才可以发管理员卡, 管理员必须用管理员卡方可登录发卡系统进行发卡/下传合法卡号、挂失、解挂、下传黑名 单等操作

宝与 附承二门禁机硬件原理图 由于采用了路i1ips公可的非接触式Mifare1卡,所以卡的读写模块也采用了以 hi1ips公司最新挂出的Mifare读写艺片FC5O0为核心开发的LG500A读写模块。 门禁机模块的硬件原理图见附录二 通过AT89C52对Z么G500A的控制达到对卡的读写。系统结构简单,成本较低且具有信息 量大和安全保密性好等特点。外围配有s232转然485接口能与℃机互连成网络。可以完 成读卡、显示卡号和出入时间、身份识别、开锁以及保存和上传出入记录、下载黑名单、,设 置开门权限等功能。 门禁机模块的主控款件主要完成门禁机模块的初始化、卡的识别、开启门领及保存有关 量据和数据的传输等五大功能。其总体工作流程如图52所示:
附录二 门禁机硬件原理图 由于采用了 Philips 公司的非接触式 Mifare 1 卡,所以卡的读写模块也采用了以 Philips 公司最新推出的 Mifare 读写芯片 MF RC500 为核心开发的 ZLG500A 读写模块。 门禁机模块的硬件原理图见附录二。 通过 AT89C52 对 ZLG500A 的控制达到对卡的读写。系统结构简单,成本较低且具有信息 量大和安全保密性好等特点。外围配有 RS232 转 RS485 接口能与 PC 机互连成网络,可以完 成读卡、显示卡号和出入时间、身份识别、开锁以及保存和上传出入记录、下载黑名单、设 置开门权限等功能。 门禁机模块的主控软件主要完成门禁机模块的初始化、卡的识别、开启门锁及保存有关 数据和数据的传输等五大功能。其总体工作流程如图 5.2 所示:

谢化 装载权阳 显诉日历 士 寻和 寻表 执们开门 比较权限 开故这位 介法司: 设直时间 设置权网 执行开门 执行独警 计录满否? 取时间+卡号+红C码 发送数据 写入2C84中数 发远记录数 器指什加12 计录数如1 清空24C6 者据检计一0 计柔数=0 图3非接触式C卡门禁机总体工作流程 在完成整个门禁机柄块的设计和制作前, 首先色须明确非接触式C卡读写树块的 功能特性、接口规范和控制方式。本系统透用FE1卡作为门禁钥匙,相应地,选用广 州周立功公司的LG500A读写模块作为卡与门禁机交换数据的接口模块。 刀G500A读写模块特性 1)功能特性 图5.3为Z.G500A非接触式IC卡读写模块,该模块采用最新TLI5高集成IS014443 读卡芯片一婚C500,能读写C500内EW,提供三线sI接口,并具有控制线输出口, 能与任何城U接口。此外,该慎块四层电落板设计,双面表贴,性能优良:并白带无源 蜂鸣器情号输出,能用软件挖制输出顾半及持续时间
装载权限 初始化 显示日历 寻卡 执行开门 比较权限 开放键盘 设置时间 设置权限 合法吗? 执行开门 执行报警 取时间+卡号+BCC码 寻卡 计录满否? 写入24C64中数 据指针加12 计录数加1 发送数据 发送记录数 清空24C64 数据指针=0 计录数=0 图 3 非接触式 IC 卡门禁机总体工作流程 在完成整个门禁机模块的设计和制作前, 首先必须明确非接触式 IC 卡读写模块的 功能特性、接口规范和控制方式。本系统选用 MIFARE 1 卡作为门禁钥匙,相应地,选用广 州周立功公司的 ZLG500A 读写模块作为卡与门禁机交换数据的接口模块。 ZLG500A 读写模块特性 1)功能特性 图 5.3 为 ZLG500A 非接触式 IC 卡读写模块,该模块采用最新 PHILIPS 高集成 ISO14443 读卡芯片—MF RC500,能读写 RC500 内 EEPROM,提供三线 SPI 接口,并具有控制线输出口, 能与任何 MCU 接口。此外,该模块四层电路板设计,双面表贴,EMC 性能优良;并自带无源 蜂鸣器信号输出,能用软件控制输出频率及持续时间

11H J2 4ZL.G500模块实物图 如图反3所示J1为与天线的接口J2为与的接口,J1、J2的管御排列和功能说明 见表5,1: 表5.1ZG500A非接触式1C卡读写模块管脚说明(一) 管脚 符号 描述 1-1 GND 地 J1-2 TXI 天线发送1 J1-3 D 地 J1-4 TX2 天线发送2 J1-5 GND 地 J16 RX 天线接收 表5.1弘G5004非接触式1C卡读写核块管脚说明(二》 管 符号 类型 描述 脚 J2- SCLK 输入 三线SPI接口时钟线总是由外部 产生 J2- SDATA 双向 数据线可双向传输 2 J2- SS 双向 传输启动找接U外部中断 J2- VOC R 电蓉正端 J2- RST 复位 内部团复位端高电平有效
J1 J2 4 ZLG500A 模块实物图 如图 5.3 所示 J1 为与天线的接口 J2 为与 MCU 的接口,J1、J2 的管脚排列和功能说明 见表 5.1: 表 5.1 ZLG500A 非接触式 IC 卡读写模块管脚说明(一) 管脚 符号 描述 J1-1 GND 地 J1-2 TX1 天线发送 1 J1-3 GND 地 J1-4 TX2 天线发送 2 J1-5 GND 地 J1-6 RX 天线接收 表 5.1 ZLG500A 非接触式 IC 卡读写模块管脚说明(二) 管 脚 符号 类型 描述 J2- 1 SCLK 输入 三线 SPI 接口时钟线总是由外部 MCU 产生 J2- 2 SDATA 双向 数据线可双向传输 J2- 3 SS 双向 传输启动线接 MCU 外部中断 J2- 4 VCC PWR 电源正端 J2- 5 RST 复位 内部 MCU 复位端高电平有效

J2- CND PVR 电源负端 6 J2- CTRL 输出 控制线输出 J2- 配 输出 峰璃器信号输出 P1.0 PI. SDATA Pl. MCS51 ZLG500 3. T 刀G500模块可方梗地与任何进行接口,如图反4所示为2L50与填CS-51单片机 图5.4Z孔.G500与CS-51单片机接口图 的具型接口.SCK、SDATA、Ss为G500A与CU相联接的控制线,分别为片选SS、时 钟线SK和数据线S4TA。主控制器的T和读卡核块内的通过此三线相连,三根线 上的实际电平是双方口线状态逐铜线与的结果。 2)Z500三线中行读卡模块接口规范 (1)接口原理 接口空网时主机5S=1SCLK=0 SDATA-0从机55=】5SC=1S3TA=0·其中55和D4TA 是双白的而时钟线SK是单向的,即时钟具能由主粒制器产生,该信号必须严格道守时序 规范,否则将出现通信错误读卡核块必筑释放该线。 5S为数据发送使能,若一方有数据要发送给另一方,则该方控制SS线为低并在发送结 束后将该战置高,接收数据方不得控制该线,双方必遵守通信协议不得同时控制该线。 S幻4TA为数据线。由数据发送端控制数据。接收端必湖释放该线。该线在一次传输开始 时还用时作为数据找牧端的响应信号。 (2)时序图
J2- 6 GND PWR 电源负端 J2- 7 CTRL 输出 控制线输出 J2- 8 BZ 输出 蜂鸣器信号输出 ZLG500 模块可方便地与任何 MCU 进行接口,如图 5.4 所示为 ZLG500 与 MCS-51 单片机 图 5.4 ZLG500 与 MCS-51 单片机接口图 的典型接口。SCLK、SDATA、SS 为 ZLG500A 与 MCU 相联接的控制线,分别为片选 SS、时 钟线 SCLK 和数据线 SDATA。主控制器的 MCU 和读卡模块内的 MCU 通过此三线相连,三根线 上的实际电平是双方口线状态逻辑线与的结果。 2) ZLG500 三线串行读卡模块接口规范 (1) 接口原理 接口空闲时主机 SS=1 SCLK=0 SDATA=0 从机 SS=1 SCLK=1 SDATA=0 。其中 SS 和 DATA 是双向的而时钟线 SCLK 是单向的,即时钟只能由主控制器产生,该信号必须严格遵守时序 规范,否则将出现通信错误读卡模块必须释放该线。 SS 为数据发送使能,若一方有数据要发送给另一方,则该方控制 SS 线为低并在发送结 束后将该线置高,接收数据方不得控制该线,双方必须遵守通信协议不得同时控制该线。 SDATA 为数据线,由数据发送端控制数据,接收端必须释放该线。该线在一次传输开始 时还同时作为数据接收端的响应信号。 (2)时序图 P1.0 P1.1 P3.3 P1.2 MCS51 SCLK SDATA SS RST CTRL BZ ZLG500

Start from sader Stopf红ee,ader 3 SIX- SDATA O000000OXO0000000 Aek from receivee Sender aad receiver 如图55所示,无论数据传输的方向如何,SPI线上信号的被形总是如下: 图5aG500时序图 由图中可以看出,在55为低的情况时,时钟和数据线上的信号才有效。且在SK为低 时SATA变化,在SCK为高时SATA应保特稳定。 以上传输中从数据发送器请求开始至数据接收器响应的时间是不确定的,取决接收器内 的U是否忙,有必要设置一个看门到定时器对数据接收图的响应选行监视,一且接收墨 响应,则必须根据数据传输的方向,严格控制以下几个时间,以确保数据传输无误。 t1一数据接收器响应至产生第一个SK上升沿的时间。 t2一两个字节传输之间SK低电平的持续封间。 t3一传输最后一个字节的最后一位的SK信号的上升沿至55上升沿的时间, t一SCK信号的高电平持族时间, t山一5K信号的低电平持线时间。 在数据传输的方向不同时,对时间t1一13tH和tL都有各自不同的要求, (3)通信协议 与2LG500的通信必须先由发送命令和数据给2L300,200执行命◆完毕后, 将金令执行的状态和响应数据发日, 开始通信前,收发双方必须处于空闲状态。首先由U发出SS下降沿信号,然后等传 ZL.G500载SDATA线上的响应,若在50=内为检测到此信号,则退出本次传输。若正确响应, 则U可将命令和最据发送出去。 然后等待LG500发回的状态和响应数据。也即等特SS线上的下降沿信号,若在 50面内为检测到此信号,则退出本次传输,若正确检测到s信号,则可以接收状态和数据, 五G500初始化的子程序如下: SCLK BIT P1.0
如图 5.5 所示,无论数据传输的方向如何,SPI 线上信号的波形总是如下; 图 5 ZLG500 时序图 由图中可以看出,在 SS 为低的情况时,时钟和数据线上的信号才有效。且在 SCLK 为低 时 SDATA 变化,在 SCLK 为高时 SDATA 应保持稳定。 以上传输中从数据发送器请求开始至数据接收器响应的时间是不确定的,取决接收器内 的 MCU 是否忙,有必要设置一个看门狗定时器对数据接收器的响应进行监视,一旦接收器 响应,则 MCU 必须根据数据传输的方向,严格控制以下几个时间,以确保数据传输无误。 t1—数据接收器响应至 MCU 产生第一个 SCLK 上升沿的时间。 t2—两个字节传输之间 SCLK 低电平的持续时间。 t3—传输最后一个字节的最后一位的 SCLK 信号的上升沿至 SS 上升沿的时间。 tH—SCLK 信号的高电平持续时间。 tL—SCLK 信号的低电平持续时间。 在数据传输的方向不同时,对时间 t1— t3 tH 和 tL 都有各自不同的要求。 (3) 通信协议 MCU 与 ZLG500 的通信必须先由 MCU 发送命令和数据给 ZLG500,ZLG500 执行命令完毕后, 将命令执行的状态和响应数据发回 MCU。 开始通信前,收发双方必须处于空闲状态。首先由 MCU 发出 SS 下降沿信号,然后等待 ZLG500 载 SDATA 线上的响应,若在 50ms 内为检测到此信号,则退出本次传输。若正确响应, 则 MCU 可将命令和数据发送出去。 然后 MCU 等待 ZLG500 发回的状态和响应数据。也即等待 SS 线上的下降沿信号,若在 50ms 内为检测到此信号,则退出本次传输,若正确检测到 SS 信号,则可以接收状态和数据。 ZLG500 初始化的子程序如下: SCLK BIT P1.0 SS SCLK SDATA Start from sender t1 tH tL t2 t3 Stop from sender Ack from receiver Sender and receiver

SOATA BIT P1.1 SS BIT P1.2 RST BIT P3.3 Z1g500: SETH RST :2L500内部复位 LCALL DELAY_S0MS CLR RST LCALL DELAY_SOMS SETB SS :处于空闲状态 CL.R SDATA CLR SCLK 0四 58,#11日 0四 59.#11目 四 5AH,#11日 0列 5L,11用 LCALL CONFIG :配置 LCALL REQUEST ;发送请求 LCALL ANTICOLL :防碰撞 ;中中中中中中中中中 IF HAVE CAI面中*◆中中中中钟 镇W A,52H CINE A,0且,SA12 A-04 IS NO CARD LIMP S4234 54123: 能T S4234: LCALL READ风OCK ;从存储露中读取数据 LCALL DELAY_IOOMS 镇0W 2,#20 0,#58组 Mov R1,80阳
SDATA BIT P1.1 SS BIT P1.2 RST BIT P3.3 Zlg500: SETB RST ; ZLG500 内部复位 LCALL DELAY_50MS CLR RST LCALL DELAY_50MS SETB SS ; 处于空闲状态 CLR SDATA CLR SCLK MOV 58H,#11H MOV 59H,#11H MOV 5AH,#11H MOV 5BH,#11H LCALL CONFIG ; 配置 LCALL REQUEST ; 发送请求 LCALL ANTICOLL ; 防碰撞 ;*********** IF HAVE CARD *********** MOV A,52H CJNE A,#04H,SA123 ; A=04 IS NO CARD LJMP SA234 SA123: RET SA234: LCALL READ_BLOCK ; 从存储器中读取数据 LCALL DELAY_100MS MOV R2,#20 MOV R0,#58H MOV R1,#80H

LCALL COMPARE :进行卡号的比较和验证 .13: SETB FLAG LCALL EL123 JB F1AC,.13 RET 上述程序中CONFIG子程序为C50的复位和配置子程序,是由U向ZLC500发出的不 带数据的命令程序:gEST子程序是CT向江G500发出的希一个字背数据的命令程序, 主要是检查在有效范围内是否有卡存在:ANTICOLL子程序是防冲突操作,必须在执行了 EgES命令后立即执行. CU与ZL500之间的通信一校连循如下的数据格式 向L00发出的命◆模式的格式如下, SegNr Commsand Len Data[O-+N] BOC INFO[O】 INFO[n] 其中:SeqNr 1 Byte 是数据交换包的序号 Comand: 1 Byte 是金令字符 Len: 1B时te 是数据的长度 Data[] Len Byte是数据字节 BOC: IB盼te 是一个字节的BOC效险 SeqNr Status Len Data[0---N] BCC INPO[O] INFO(n] 其中: SeqNr: 1 Byte 是数据交换包的序号 status: 1 Byte 是状老字符 Len: 1B盼te 是数据的长度 Data[] Lea Byte是数据字节 BOC: 1yte是一个字节的B0C效验 按属上述数据格式传输编制的G0FIG、EE5T和ANT1C0L子程序清单如下: CONFIG 中中中中中中中中中中中中中中中中中中中中中 CONFIG:
LCALL COMPARE ; 进行卡号的比较和验证 REL13: SETB FLAG LCALL REL123 JB FLAG,REL13 RET 上述程序中 CONFIG 子程序为 RC500 的复位和配置子程序,是由 MCU 向 ZLG500 发出的不 带数据的命令程序;REQUEST 子程序是 MCU 向 ZLG500 发出的带一个字节数据的命令程序, 主要是检查在有效范围内是否有卡存在;ANTICOLL 子程序是防冲突操作,必须在执行了 REQUEST 命令后立即执行。 MCU 与 ZLG500 之间的通信一般遵循如下的数据格式 MCU 向 ZLG500 发出的命令模式的格式如下: SeqNr Command Len Data[0…N] BCC INFO[0] INFO[n] 其中: SeqNr: 1 Byte 是数据交换包的序号 Command: 1 Byte 是命令字符 Len: 1 Byte 是数据的长度 Data[…] Len Byte 是数据字节 BCC: 1 Byte 是一个字节的 BCC 效验 SeqNr Status Len Data[0…N] BCC INFO[0] INFO[n] 其中: SeqNr: 1 Byte 是数据交换包的序号 status: 1 Byte 是状态字符 Len: 1 Byte 是数据的长度 Data[…] Len Byte 是数据字节 BCC: 1 Byte 是一个字节的 BCC 效验 按照上述数据格式传输编制的 CONFIG、REQUEST 和 ANTICOLL 子程序清单如下: ; ************** CONFIG *********************** CONFIG:

N 60,#00阳 :数据交换包的序号 MOV 61L,52 :配置金令字符代码 T 62组00阳 【数据的长度为0 LCALL BOC_SUMO :C效验子程序 MOV 63,A : BCC_SUM 镇W A,00用 示 2,0相 0四 0,60H 发送首地址 LCALL SPI_SEND 050,#30阳 :接收起始地址 LCALLSPI_RCV RET :林和裤棒 REQUEST 率率和林率移 REQUEST: MOV 60l.00目 数据交换包的序号 四 61H,#41H :请求命令字符代码 62l,01日 :数据的长度为1 0示 63,01H :请求模式的数据ode=01H LCALL BOC SUM 示 64H.A N A,#00阳 MoY R2.05阳 :发送5个字节数 MOV 0,#60目 :60用84州的数据发送 LCALL SPI_SEND MOV 0,#40日 :接收起始地址 LCALL SPI_RCY E打 ;中神中中中中中中中中中 ANTICOLL. 中中家中中中中中中中中中中中中中中中中中中中神 ANTICOLL:
MOV 60H,#00H ; 数据交换包的序号 MOV 61H,#52H ; 配置命令字符代码 MOV 62H,#00H ; 数据的长度为 0 LCALL BCC_SUM0 ; BCC 效验子程序 MOV 63H,A ; BCC_SUM MOV A,#00H MOV R2,#04H MOV R0,#60H ; 发送首地址 LCALL SPI_SEND MOV R0,#30H ; 接收起始地址 LCALL _SPI_RCV RET ; *************** REQUEST *********************** REQUEST: MOV 60H,#00H ; 数据交换包的序号 MOV 61H,#41H ; 请求命令字符代码 MOV 62H,#01H ; 数据的长度为 1 MOV 63H,#01H ; 请求模式的数据 mode=01H LCALL BCC_SUM MOV 64H,A MOV A,#00H MOV R2,#05H ; 发送 5 个字节数 MOV R0,#60H ; 60H_64H 的数据发送 LCALL SPI_SEND ; MOV R0,#40H ; 接收起始地址 LCALL SPI_RCV RET ; ************** ANTICOLL *********************** ANTICOLL: