门禁系统设计单片机射频.pptx
会计学1门禁系统设计单片机射频门禁系统设计单片机射频一、目的要求一、目的要求1 1掌握门禁系统的概念。掌握门禁系统的概念。2 2掌握非接触式掌握非接触式ICIC卡门禁系统的组成。卡门禁系统的组成。3 3通过门禁系统的训练,掌握串行静态显示通过门禁系统的训练,掌握串行静态显示的方法。的方法。4 4掌握卡号显示方法。掌握卡号显示方法。5 5进一步掌握单片机的使用技巧和方法。进一步掌握单片机的使用技巧和方法。第1页/共72页二、任务目标二、任务目标 利用单片机利用单片机利用单片机利用单片机AT89S52AT89S52构成一非接构成一非接构成一非接构成一非接触式触式触式触式ICIC卡门禁系统,要求实现功能如下卡门禁系统,要求实现功能如下卡门禁系统,要求实现功能如下卡门禁系统,要求实现功能如下1 1程序控制开锁程序控制开锁 当读卡器检索到合法当读卡器检索到合法当读卡器检索到合法当读卡器检索到合法ICIC卡时,由卡时,由卡时,由卡时,由CPUCPU提供一个低电平信号,因为,提供一个低电平信号,因为,提供一个低电平信号,因为,提供一个低电平信号,因为,89S5289S52单片机复位是高电平有效,并且单片机复位是高电平有效,并且单片机复位是高电平有效,并且单片机复位是高电平有效,并且实际电路必须有看门狗电路,一旦出现实际电路必须有看门狗电路,一旦出现实际电路必须有看门狗电路,一旦出现实际电路必须有看门狗电路,一旦出现故障,也需高电平复位,因此,采用低故障,也需高电平复位,因此,采用低故障,也需高电平复位,因此,采用低故障,也需高电平复位,因此,采用低电平作为控制门的开有效信号。电平作为控制门的开有效信号。电平作为控制门的开有效信号。电平作为控制门的开有效信号。第2页/共72页2出门按钮开锁出门按钮开锁 按钮按下,给出一个开关信号,此按钮按下,给出一个开关信号,此按钮按下,给出一个开关信号,此按钮按下,给出一个开关信号,此时门锁同样被打开。时门锁同样被打开。时门锁同样被打开。时门锁同样被打开。3从消防安全考虑,如果发生意外从消防安全考虑,如果发生意外或危险,只要断开电源,门锁同样或危险,只要断开电源,门锁同样可以被打开。可以被打开。4读卡显示读卡显示 当读卡器检索到合法射频卡时,当读卡器检索到合法射频卡时,七段数码管可以显示出此卡的卡号,七段数码管可以显示出此卡的卡号,以便识别出持卡人身份。以便识别出持卡人身份。第3页/共72页5蜂鸣器报警蜂鸣器报警 当门锁处于开启状态时,超当门锁处于开启状态时,超过延时时间,蜂鸣器发出蜂鸣,过延时时间,蜂鸣器发出蜂鸣,以提示用户及时关门。以提示用户及时关门。6工作指示灯工作指示灯 n n红色指示灯提示电源正常供电。红色指示灯提示电源正常供电。n n绿色指示灯提示门锁工作状态,绿色指示灯提示门锁工作状态,刷卡合法,绿色指示灯亮。刷卡合法,绿色指示灯亮。第4页/共72页四、预备知识四、预备知识n n门禁系统定义门禁系统定义 门禁系统就是对出入口通道进行管制的系统,是一种门禁系统就是对出入口通道进行管制的系统,是一种管理人员进出的数字化管理系统。管理人员进出的数字化管理系统。它是在传统的门锁基础上发展而来的。它是在传统的门锁基础上发展而来的。n门禁系统的组成门禁系统的组成 门禁控制器门禁控制器 门禁读卡器门禁读卡器 卡片卡片 电控锁及相应软件电控锁及相应软件 电源和其他相关门禁设备电源和其他相关门禁设备 第5页/共72页(一)非接触式(一)非接触式(一)非接触式(一)非接触式ICIC卡门禁系统框图卡门禁系统框图卡门禁系统框图卡门禁系统框图 非接触式非接触式非接触式非接触式ICIC卡门禁系统包括卡门禁系统包括卡门禁系统包括卡门禁系统包括读写读写读写读写器、中央控制电脑的软件管理系统、器、中央控制电脑的软件管理系统、器、中央控制电脑的软件管理系统、器、中央控制电脑的软件管理系统、中央控制电脑与读写器之间的数据传中央控制电脑与读写器之间的数据传中央控制电脑与读写器之间的数据传中央控制电脑与读写器之间的数据传输输输输三部分。其中读写器是核心,包括三部分。其中读写器是核心,包括三部分。其中读写器是核心,包括三部分。其中读写器是核心,包括MCUMCU、复位电路、时钟电路、报警及、复位电路、时钟电路、报警及、复位电路、时钟电路、报警及、复位电路、时钟电路、报警及工作指示电路、显示电路、键盘、数工作指示电路、显示电路、键盘、数工作指示电路、显示电路、键盘、数工作指示电路、显示电路、键盘、数据存储等主控模块及非接触式据存储等主控模块及非接触式据存储等主控模块及非接触式据存储等主控模块及非接触式ICIC卡读卡读卡读卡读写模块和电锁驱动部分。写模块和电锁驱动部分。写模块和电锁驱动部分。写模块和电锁驱动部分。第6页/共72页非接触式非接触式ICIC卡门禁系统框图卡门禁系统框图主控主控MCUMCU单片机芯片单片机芯片(89S5289S52)时钟电路时钟电路传输模块传输模块(MAX232MAX232)中央中央控制控制电脑电脑数数据据存存储储电电路路24C6424C64EM9931 EM9931 模模 块块电电 锁锁天天线线 显显 示示 键键 盘盘出出 门门按按 钮钮报警及报警及工作指示工作指示复位电路复位电路第7页/共72页 非接触式非接触式IC卡门禁机总体工作流程卡门禁机总体工作流程初始化初始化装载权限装载权限寻寻 卡卡加入权限?加入权限?下一张卡提权下一张卡提权执行报警执行报警 执行开门执行开门取时间取时间+卡号卡号+BCC码码发送数据发送数据写写入入24C64中中数数据据指指针针加加12纪纪录录数加数加1发送纪录数发送纪录数清清 空空 24C64数数据据指指针针=0纪录数纪录数=0NNNYYY卡号在数据库?卡号在数据库?纪录满否?纪录满否?第8页/共72页P1.7P1.7P1.6P1.6P1.5P1.5P1.4P1.4P1.3P1.3P1.2P1.2P1.1P1.1P1.0P1.0键键键键显示键显示键显示显示通讯通讯 通讯通讯 读卡读卡 显示显示P2.7P2.7 P2.6P2.6P2.5P2.5P2.4P2.4P2.3P2.3 P2.2P2.2 P2.1P2.1 P2.0P2.0出门出门按钮按钮蜂鸣蜂鸣器器指示灯指示灯门态门态上锁上锁SCLSCLSDASDA24C6424C64(二)门禁系统中单片机口的资源分配(二)门禁系统中单片机口的资源分配第9页/共72页(三)各部分电路原理分析(三)各部分电路原理分析 非接触式非接触式ICIC卡门禁机工作过卡门禁机工作过程为当刷卡时,蜂鸣器响一下,程为当刷卡时,蜂鸣器响一下,如卡权限获得允许,显示模块显如卡权限获得允许,显示模块显示卡号,同时继电器动作将门锁示卡号,同时继电器动作将门锁打开,指示灯点亮,延时一段时打开,指示灯点亮,延时一段时间后继电器再次动作将门锁锁闭,间后继电器再次动作将门锁锁闭,指示灯熄灭;当按下出门按钮时,指示灯熄灭;当按下出门按钮时,继电器动作将门锁打开,指示灯继电器动作将门锁打开,指示灯点亮,延时一段时间后继电器再点亮,延时一段时间后继电器再次动作将门锁锁闭,指示灯熄灭。次动作将门锁锁闭,指示灯熄灭。当遇到非法卡时,该系统不显示当遇到非法卡时,该系统不显示卡号,门锁不开。卡号,门锁不开。第10页/共72页1门控锁电路门控锁电路 门控锁电路如图门控锁电路如图P3.3所示。所示。偏置电阻偏置电阻R3与三级管与三级管Q16、Q6构成复合驱动电路以提高驱动能力,控制锁的开与闭。构成复合驱动电路以提高驱动能力,控制锁的开与闭。当当P2.3为高电平时为高电平时Q16导通,导通,Q6截止,此时继电器的控制线圈为开路,继电器不动作。截止,此时继电器的控制线圈为开路,继电器不动作。门锁接于继电器常闭端,门锁闭合,门处于锁死状态。门锁接于继电器常闭端,门锁闭合,门处于锁死状态。当当P2.3口输出低电平时口输出低电平时Q16截止,截止,Q6导通,此时继电器的控制线圈闭合,继电器动作。继电器常闭端断开,门锁打开,门处于打开状态。导通,此时继电器的控制线圈闭合,继电器动作。继电器常闭端断开,门锁打开,门处于打开状态。第11页/共72页2 2蜂鸣器电路蜂鸣器电路 蜂鸣器电路由蜂鸣器、三极管蜂鸣器电路由蜂鸣器、三极管Q1、Q2及电阻及电阻R2组成。电路如图组成。电路如图P3.4所示。当所示。当 P2.6输出高电平时,输出高电平时,Q1导通,导通,Q2截止,蜂鸣器回路开路,蜂鸣器不响。截止,蜂鸣器回路开路,蜂鸣器不响。当当 P1.2输出高电平时,输出高电平时,Q1截止,截止,Q2导通,蜂鸣器回路闭合,蜂鸣器发出响声。导通,蜂鸣器回路闭合,蜂鸣器发出响声。CPU、显示电路、键盘、数据存储等主控模块及非接触式、显示电路、键盘、数据存储等主控模块及非接触式IC卡读写模块将在后面章节中介绍。卡读写模块将在后面章节中介绍。第12页/共72页图图P3.3 门控锁电路门控锁电路第13页/共72页图图P3.4 蜂鸣器电路蜂鸣器电路R2680第14页/共72页3.3.串行口在门禁系统中的应用串行口在门禁系统中的应用串行口在门禁系统中的应用串行口在门禁系统中的应用门禁系统读卡采用串口中断方式。门禁系统读卡采用串口中断方式。门禁系统读卡采用串口中断方式。门禁系统读卡采用串口中断方式。n n 非接触式射频卡的基本原理非接触式射频卡的基本原理非接触式射频卡的基本原理非接触式射频卡的基本原理 每个卡片内都有一个小芯片和感应线圈。每张每个卡片内都有一个小芯片和感应线圈。每张每个卡片内都有一个小芯片和感应线圈。每张每个卡片内都有一个小芯片和感应线圈。每张卡有且只有一个唯一的、不可更改和复制的卡有且只有一个唯一的、不可更改和复制的卡有且只有一个唯一的、不可更改和复制的卡有且只有一个唯一的、不可更改和复制的IDID内码。内码。内码。内码。n n 非接触式非接触式非接触式非接触式ICIC卡系统的构成与特点卡系统的构成与特点卡系统的构成与特点卡系统的构成与特点 非接触式非接触式非接触式非接触式ICIC卡卡卡卡(也称为也称为也称为也称为“应答器应答器应答器应答器”)是射频识别是射频识别是射频识别是射频识别系统的电子数据载体,卡中嵌有耦合元件和微电子系统的电子数据载体,卡中嵌有耦合元件和微电子系统的电子数据载体,卡中嵌有耦合元件和微电子系统的电子数据载体,卡中嵌有耦合元件和微电子芯片。通常,非接触式芯片。通常,非接触式芯片。通常,非接触式芯片。通常,非接触式ICIC卡没有自己的供电电源卡没有自己的供电电源卡没有自己的供电电源卡没有自己的供电电源(电池电池电池电池),只是在读写器响应范围之内,卡才是有源,只是在读写器响应范围之内,卡才是有源,只是在读写器响应范围之内,卡才是有源,只是在读写器响应范围之内,卡才是有源的,卡所需要的能量以及时钟脉冲、数据,都是通的,卡所需要的能量以及时钟脉冲、数据,都是通的,卡所需要的能量以及时钟脉冲、数据,都是通的,卡所需要的能量以及时钟脉冲、数据,都是通过耦合单元的电磁耦合作用传输给卡的。过耦合单元的电磁耦合作用传输给卡的。过耦合单元的电磁耦合作用传输给卡的。过耦合单元的电磁耦合作用传输给卡的。第15页/共72页n n 非接触式非接触式非接触式非接触式ICIC卡读写器卡读写器卡读写器卡读写器 典型的非接触式典型的非接触式典型的非接触式典型的非接触式ICIC卡读写器卡读写器卡读写器卡读写器(也称为也称为也称为也称为“阅读器阅读器阅读器阅读器”)包含有高频模块包含有高频模块包含有高频模块包含有高频模块(发送器和接收器发送器和接收器发送器和接收器发送器和接收器)、控制单元以、控制单元以、控制单元以、控制单元以及与卡连接的耦合元件。及与卡连接的耦合元件。及与卡连接的耦合元件。及与卡连接的耦合元件。n n 常见的卡号输出格式说明常见的卡号输出格式说明常见的卡号输出格式说明常见的卡号输出格式说明 IDID卡最常见到的五种读卡方式的卡号定义如下:卡最常见到的五种读卡方式的卡号定义如下:卡最常见到的五种读卡方式的卡号定义如下:卡最常见到的五种读卡方式的卡号定义如下:(1 1)格式)格式)格式)格式1 1 10 10位十六进制的位十六进制的位十六进制的位十六进制的ASCIIASCII字符串,即字符串,即字符串,即字符串,即1010位十六进位十六进位十六进位十六进制格式。制格式。制格式。制格式。如:某样卡读出十六进制卡号为如:某样卡读出十六进制卡号为如:某样卡读出十六进制卡号为如:某样卡读出十六进制卡号为“01026f6c3a”01026f6c3a”。第16页/共72页(2 2)格式)格式)格式)格式2 2 将格式将格式将格式将格式1 1中的后中的后中的后中的后8 8位,转换为位,转换为位,转换为位,转换为1010位十进制卡号,位十进制卡号,位十进制卡号,位十进制卡号,即即即即8H10D8H10D格式,如将格式,如将格式,如将格式,如将“026f6c3a”026f6c3a”转换为转换为转换为转换为“0040856634”0040856634”。(3 3)格式)格式)格式)格式3 3 将格式将格式将格式将格式1 1中的后中的后中的后中的后6 6位,转换为位,转换为位,转换为位,转换为8 8位十进制卡号,位十进制卡号,位十进制卡号,位十进制卡号,即即即即6H8D6H8D格式。如将格式。如将格式。如将格式。如将“6f6c3a”6f6c3a”转换为转换为转换为转换为“07302202”07302202”。(4 4)格式)格式)格式)格式4 4将格式将格式将格式将格式1 1中的倒数第中的倒数第中的倒数第中的倒数第5 5、第、第、第、第6 6位,转换为位,转换为位,转换为位,转换为3 3位十进制位十进制位十进制位十进制卡号,再将后卡号,再将后卡号,再将后卡号,再将后4 4位,转换为位,转换为位,转换为位,转换为5 5位十进制卡号,中间用位十进制卡号,中间用位十进制卡号,中间用位十进制卡号,中间用“,”分开,即分开,即分开,即分开,即“2H2H4H”4H”格式。如将格式。如将格式。如将格式。如将2H“6f”2H“6f”转换为转换为转换为转换为“111”111”,4H“6c3a”4H“6c3a”转为转为转为转为“27706”27706”。最。最。最。最终将终将终将终将2 2段号连在一起输出为段号连在一起输出为段号连在一起输出为段号连在一起输出为“111,27706”111,27706”。第17页/共72页(5 5)格式)格式)格式)格式5 5 将格式将格式将格式将格式1 1中后中后中后中后8 8位的前位的前位的前位的前4 4位,转换为位,转换为位,转换为位,转换为5 5位十进制卡号,再位十进制卡号,再位十进制卡号,再位十进制卡号,再将后将后将后将后4 4位,转换为位,转换为位,转换为位,转换为5 5位十进制卡号,中间用位十进制卡号,中间用位十进制卡号,中间用位十进制卡号,中间用“,”分开,即分开,即分开,即分开,即“4H4H4H”4H”。照此转换结果为:。照此转换结果为:。照此转换结果为:。照此转换结果为:00623,2770600623,27706 本教材中的门禁系统使用的卡格式是本教材中的门禁系统使用的卡格式是本教材中的门禁系统使用的卡格式是本教材中的门禁系统使用的卡格式是格式格式格式格式4 4。n n RS232RS232卡号输出协议卡号输出协议卡号输出协议卡号输出协议串行输出格式如下:串行输出格式如下:串行输出格式如下:串行输出格式如下:0210ASCII Data CharactersChecksum03卡片号码为卡片号码为62E3086CED,传送的,传送的HEX值如下值如下10ASCII DATA:36H,32H 45H,33H 30H,38H 36H,43H 45H,44H(6 2 H E 3 H 0 8 H 6 C H E D H)第18页/共72页CHECKSUMCHECKSUM:(62H62H)XORXOR(E3HE3H)XORXOR(08H08H)XORXOR(6CH6CH)XORXOR(EDHEDH)=08H=08H Checksum Checksum为二进制格式数据。为二进制格式数据。为二进制格式数据。为二进制格式数据。故故故故MTP-K4MTP-K4射频模块输出的完整的二进制文档如下所示:射频模块输出的完整的二进制文档如下所示:射频模块输出的完整的二进制文档如下所示:射频模块输出的完整的二进制文档如下所示:02 36 32 45 33 30 38 36 43 45 44 08 03 02 36 32 45 33 30 38 36 43 45 44 08 03 n n 串行口程序分析串行口程序分析串行口程序分析串行口程序分析 门禁系统的读卡采用串口中断方式,随时读卡,随门禁系统的读卡采用串口中断方式,随时读卡,随门禁系统的读卡采用串口中断方式,随时读卡,随门禁系统的读卡采用串口中断方式,随时读卡,随时响应。晶振必须是时响应。晶振必须是时响应。晶振必须是时响应。晶振必须是11.0592MHz11.0592MHz。(1 1)读卡单元)读卡单元)读卡单元)读卡单元 门禁系统采用门禁系统采用门禁系统采用门禁系统采用EM9913BF IDEM9913BF ID射频卡读卡器。射频卡读卡器。射频卡读卡器。射频卡读卡器。读卡模块将数据按读卡模块将数据按读卡模块将数据按读卡模块将数据按RS232RS232和和和和Wiegand26Wiegand26格式输格式输格式输格式输出。出。出。出。第19页/共72页读卡单元连接图读卡单元连接图第20页/共72页(2)波特率初值计算)波特率初值计算 晶振为晶振为11.0592MHz,串行接口工作于,串行接口工作于方式方式1,波特率为,波特率为9600bs。公式:公式:代入已知条件,计算出初值为代入已知条件,计算出初值为FDH。第21页/共72页(3)串口中断初始化程序)串口中断初始化程序SIC:ANL TMOD,#0FH;串口;串口始化子程序始化子程序 ORL TMOD,#20H MOV TH1,#0FDH MOV TL1,#0FDH SETB TR1 MOV IE,#90H MOV SCON,#50H;方式方式方式方式1 1十十十十位异步收发位异步收发位异步收发位异步收发 RET第22页/共72页(4 4)串口中断子程序,该程序中加入不死机程序)串口中断子程序,该程序中加入不死机程序)串口中断子程序,该程序中加入不死机程序)串口中断子程序,该程序中加入不死机程序ZD:PUSH ACC ZD:PUSH ACC ;中断子程序;中断子程序 PUSH 00HPUSH 00H PUSH 02H PUSH 02H MOV R0,#30H MOV R0,#30H ;首地址;首地址 MOV R2,#0BH MOV R2,#0BH ;1111个字节的个字节的ASCIIASCIILL1:ACALL LL2LL1:ACALL LL2 JB F0,LL3 JB F0,LL3 NOP NOP NOP NOP MOV R0,A MOV R0,A INC R0 INC R0第23页/共72页 DJNZ R2,LL1 DJNZ R2,LL1 POP 02H POP 02H POP 00H POP 00H POP ACC POP ACC NOP NOP MOV 0FH,#33H MOV 0FH,#33H RETI RETILL2:MOV 04H,#28HLL2:MOV 04H,#28HLL4:JNB RI,LL6LL4:JNB RI,LL6 CLR RI CLR RI MOV A,SBUF MOV A,SBUF CLR F0 CLR F0 RET RET LL6:MOV 05H,#0AHLL6:MOV 05H,#0AHLL5:DJNZ R5,LL5LL5:DJNZ R5,LL5 DJNZ R4,LL4 DJNZ R4,LL4 SETB F0 SETB F0 RET RETLL3:POP 02HLL3:POP 02H POP 00H POP 00H POP ACC POP ACC RETI RETI END END第24页/共72页4.显示电路显示电路 在门禁系统中,显示为串行静态显示方式。在门禁系统中,显示为串行静态显示方式。采用采用74LS164作为静态显示器接口,作为静态显示器接口,P1.0作为作为时钟,时钟,P1.4作为显示数据输入。作为显示数据输入。第25页/共72页 显示程序显示程序显示程序显示程序(1 1)直接显示段码程序。将)直接显示段码程序。将)直接显示段码程序。将)直接显示段码程序。将20H27H20H27H中的中的中的中的段码从左到右显示出来。段码从左到右显示出来。段码从左到右显示出来。段码从左到右显示出来。ORG 0000HORG 0000H LJMP MAIN LJMP MAIN MAIN MAIN:MOV SP,#60HMOV SP,#60H MOV 20H,#06H MOV 20H,#06H MOV 21H,#5BH MOV 21H,#5BH MOV 22H,#4FH MOV 22H,#4FH MOV 23H,#66H MOV 23H,#66H MOV 24H,#6DH MOV 24H,#6DH MOV 25H,#7DH MOV 25H,#7DH 第26页/共72页 MOV 26H,#07H MOV 26H,#07H MOV 27H,#7FH MOV 27H,#7FH LCALL ST LCALL ST SJMP$SJMP$STST:MOV R0,#20HMOV R0,#20H MOV R2,#08H MOV R2,#08HLP1LP1:MOV R1,#08HMOV R1,#08H MOV A,R0 MOV A,R0LP2LP2:RLC ARLC A MOV P1.4,C MOV P1.4,CCLR P1.0SETB P1.0DJNZ R1,LP2INC R0DJNZ R2,LP1RETEND第27页/共72页(2 2)把)把)把)把10H10H开始代码变成段码放到开始代码变成段码放到开始代码变成段码放到开始代码变成段码放到20H20H开始开始开始开始的单元中。的单元中。的单元中。的单元中。方法一:方法一:方法一:方法一:ORG 0000HORG 0000H LJMP MAIN LJMP MAIN ORG 0100H ORG 0100H MAIN MAIN:MOV SP,#60HMOV SP,#60H MOV 10H,#01H MOV 10H,#01H MOV 11H,#02H MOV 11H,#02H MOV 12H,#03H MOV 12H,#03H MOV 13H,#04H MOV 13H,#04H第28页/共72页 MOV 14H,#05H MOV 14H,#05H MOV 15H,#06H MOV 15H,#06H MOV 16H,#07H MOV 16H,#07H MOV 17H,#08H MOV 17H,#08H LCALL XIANSHI LCALL XIANSHI LCALL ST LCALL ST SJMP$SJMP$XIANSHIXIANSHI:MOV R2,#08HMOV R2,#08H MOV R0,#10H MOV R0,#10H MOV R1,#20HMOV R1,#20H 第29页/共72页LP3LP3:MOV A,R0MOV A,R0 ADD A,#06H ADD A,#06H MOVC A,A+PC MOVC A,A+PC MOV R1,A MOV R1,A INC R0 INC R0 INC R1 INC R1 DJNZ R2,LP3 DJNZ R2,LP3 RET RETDB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB 7FH,6FH,77H,7CH,39H,5EH,79H,71H 00HDB 7FH,6FH,77H,7CH,39H,5EH,79H,71H 00H ST ST:MOV R0,#20HMOV R0,#20H MOV R2,#08H MOV R2,#08H 第30页/共72页 LP1 LP1:MOV R1,#08HMOV R1,#08H MOV A,R0 MOV A,R0 LP2 LP2:RLC ARLC A MOV P1.4,C MOV P1.4,C CLR P1.0 CLR P1.0 SETB P1.0 SETB P1.0 DJNZ R1,LP2 DJNZ R1,LP2 INC R0 INC R0 DJNZ R2,LP1 DJNZ R2,LP1 RET RET END END第31页/共72页方法二:方法二:方法二:方法二:ORG 0000HORG 0000H LJMP MAIN LJMP MAINMAIN:MOV SP,#60HMAIN:MOV SP,#60H PORT EQU 0155H PORT EQU 0155H LCALL ST LCALL ST SJMP$SJMP$XIANSHIXIANSHI:MOV R2,#08HMOV R2,#08H MOV R0,#10H MOV R0,#10H MOV R1,#20H MOV R1,#20H MOV DPTR,#PORT MOV DPTR,#PORT 第32页/共72页 LP3:MOV A,R0LP3:MOV A,R0 MOVC A,A+DPTR MOVC A,A+DPTR MOV R1,A MOV R1,A INC R0 INC R0 INC R1 INC R1 DJNZ R2,LP3 DJNZ R2,LP3 RET RET ST:MOV R0,#20H ST:MOV R0,#20H MOV R2,#08H MOV R2,#08H LP1:MOV R1,#08H LP1:MOV R1,#08H MOV A,R0 MOV A,R0第33页/共72页 LP2:RLC A LP2:RLC A MOV P1.4,C MOV P1.4,C CLR P1.0 CLR P1.0 SETB P1.0 SETB P1.0 DJNZ R1,LP2 DJNZ R1,LP2 INC R0 INC R0 DJNZ R2,LP1 DJNZ R2,LP1 RET RET PORT 3FH,06H,5BH,4FH,66H,6DH,7DH,07H PORT 3FH,06H,5BH,4FH,66H,6DH,7DH,07H 7FH,6FH,77H,7CH,39H,5EH,79H,71H 00H 7FH,6FH,77H,7CH,39H,5EH,79H,71H 00H END END第34页/共72页(3 3)将压缩码变非压缩码显示出来)将压缩码变非压缩码显示出来)将压缩码变非压缩码显示出来)将压缩码变非压缩码显示出来 ORG 0100HORG 0100H MAIN MAIN:MOV SP,#60HMOV SP,#60H MOV 10H,#39H MOV 10H,#39H MOV 11H,#41H MOV 11H,#41H MOV 12H,#42H MOV 12H,#42H MOV 13H,#43H MOV 13H,#43H MOV 14H,#44H MOV 14H,#44H MOV 15H,#45H MOV 15H,#45H MOV 16H,#46H MOV 16H,#46H MOV 17H,#38H MOV 17H,#38H LCALL ASC LCALL ASC第35页/共72页 LCALL XIANSHI LCALL XIANSHI LCALL ST LCALL ST SJMP$SJMP$ASC ASC:MOV R2,#08HMOV R2,#08H MOV R0,#10H MOV R0,#10H MOV R1,#20H MOV R1,#20H LP4 LP4:MOV A,R0MOV A,R0 ANL A,#0FH ANL A,#0FH MOV R1,A MOV R1,A INC R1 INC R1 MOV A,R0 MOV A,R0 SWAP A SWAP A第36页/共72页 ANL A,#0FH ANL A,#0FH MOV R1,A MOV R1,A INC R0 INC R0 INC R1 INC R1 DJNZ R2,LP4 DJNZ R2,LP4 RET RETXIANSHI:MOV R2,#08HXIANSHI:MOV R2,#08H MOV R0,#10H MOV R0,#10H MOV R1,#20H MOV R1,#20H LP3 LP3:MOV A,R0MOV A,R0 ADD A,#06H ADD A,#06H MOVC A,A+PC MOVC A,A+PC MOV R1,A MOV R1,A第37页/共72页 INC R0 INC R0 INC R1 INC R1 DJNZ R2,LP3 DJNZ R2,LP3 RET RETDB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB 7FH,6FH,77H,7CH,39H,5EH,79H,71H 00HDB 7FH,6FH,77H,7CH,39H,5EH,79H,71H 00H ST ST:MOV R0,#20HMOV R0,#20H MOV R2,#08H MOV R2,#08HLP1LP1:MOV R1,#08HMOV R1,#08H MOV A,R0 MOV A,R0第38页/共72页LP2:RLC A MOV P1.4,C CLR P1.0 SETB P1.0 DJNZ R1,LP2 INC R0 DJNZ R2,LP1 RET END 第39页/共72页n n 卡号显示卡号显示卡号显示卡号显示 IDID卡读出卡读出卡读出卡读出1111个字节的个字节的个字节的个字节的ASCIIASCII,要显示卡号,需,要显示卡号,需,要显示卡号,需,要显示卡号,需进行数值转换。进行数值转换。进行数值转换。进行数值转换。(1 1)IDID卡读出的卡读出的卡读出的卡读出的1111个字节个字节个字节个字节ASCIIASCII码放在以码放在以码放在以码放在以30H30H开开开开始的单元,先将始的单元,先将始的单元,先将始的单元,先将ASCIIASCII码转换成码转换成码转换成码转换成1616进制数,因第一进制数,因第一进制数,因第一进制数,因第一个字节是包装头,不参与转换。个字节是包装头,不参与转换。个字节是包装头,不参与转换。个字节是包装头,不参与转换。LE:MOV R0,#30H LE:MOV R0,#30H ;ASCASC转转转转1616进进进进 制数子程序制数子程序制数子程序制数子程序 MOV R2,#0AH MOV R2,#0AH ;1010个字节个字节个字节个字节LE4:MOV A,R0LE4:MOV A,R0 ACALL LE1 ACALL LE1第40页/共72页 MOV R0,A MOV R0,A INC R0 INC R0 DJNZ R2,LE4 DJNZ R2,LE4 RET RETLE1:CJNE A,#40H,L13LE1:CJNE A,#40H,L13 SJMP LE3 SJMP LE3L13:JC LE2L13:JC LE2 ADD A,#09H ADD A,#09HLE2:ANL A,#0FHLE2:ANL A,#0FH CLR C CLR C RET RETLE3:SETB CLE3:SETB C RET RET 第41页/共72页(2 2)把上面转换的)把上面转换的)把上面转换的)把上面转换的1010个个个个1616进制数,变成进制数,变成进制数,变成进制数,变成5 5个压缩的个压缩的个压缩的个压缩的1616进制数,进制数,进制数,进制数,30H30H放最高位,放最高位,放最高位,放最高位,34H34H放最低位。放最低位。放最低位。放最低位。LB:MOV A,30H ;LB:MOV A,30H ;装配压缩装配压缩装配压缩装配压缩1616进制数子程序进制数子程序进制数子程序进制数子程序 SWAP ASWAP A ADD A,31H ADD A,31H MOV 30H,A MOV 30H,A MOV A,32H MOV A,32H SWAP A SWAP A ADD A,33H ADD A,33H MOV 31H,A MOV 31H,A NOP NOP NOP NOP第42页/共72页NOPNOPMOV A,38HSWAP AADD A,39HMOV 34H,ARET MOV A,34H SWAP A ADD A,35H MOV 32H,A MOV A,36H SWAP A ADD A,37H MOV 33H,A第43页/共72页(3 3)上面程序中,)上面程序中,)上面程序中,)上面程序中,30H30H到到到到35H35H字节是先高后低,而字节是先高后低,而字节是先高后低,而字节是先高后低,而后面调用子程序,需要先低后高,所以,先要把后面调用子程序,需要先低后高,所以,先要把后面调用子程序,需要先低后高,所以,先要把后面调用子程序,需要先低后高,所以,先要把33H33H单元中的内容送到单元中的内容送到单元中的内容送到单元中的内容送到35H35H单元中,即把单元中,即把单元中,即把单元中,即把34H,35H34H,35H里里里里2 2个压缩的个压缩的个压缩的个压缩的1616进制数变成进制数变成进制数变成进制数变成3 3个字节的压缩的个字节的压缩的个字节的压缩的个字节的压缩的1010进制数。进制数。进制数。进制数。LD:MOV 35H,33H;LD:MOV 35H,33H;压缩压缩压缩压缩1616进制数转非压缩进制数转非压缩进制数转非压缩进制数转非压缩 1010进制子程序进制子程序进制子程序进制子程序 MOV R0,#34HMOV R0,#34H MOV R7,#02H MOV R7,#02H MOV R1,#28H MOV R1,#28H LCALL LD1 LCALL LD1 RET RET 第44页/共72页LD1:MOV A,R0LD1:MOV A,R0 MOV R5,A MOV R5,A MOV A,R1 MOV A,R1 MOV R6,A MOV R6,A MOV A,R7 MOV A,R7 INC A INC A MOV R3,A MOV R3,A CLR A CLR ALD2:MOV R1,ALD2:MOV R1,A INC R1 INC R1 DJNZ R3,LD2 DJNZ R3,LD2 MOV A,R7 MOV B,#08H MUL AB MOV R3,A LD3:MOV A,R5 MOV R0,A MOV A,R7 MOV R2,A CLR C LD4:MOV A,R0 RLC A 第45页/共72页 MOV R0,A MOV R0,A INC R0 INC R0 DJNZ R2,DJNZ R2,LD4LD4 MOV A,R6 MOV A,R6 MOV R1,A MOV R1,A MOV A,R7 MOV A,R7 MOV R2,A MOV R2,A INC R2 INC R2LD5:MOV A,R1LD5:MOV A,R1 ADDC A,R1 ADDC A,R1 DA A DA A MOV R1,A INC R1 DJNZ R2,LD5 DJNZ R3,LD3 RET第46页/共72页(4 4)再把压缩的)再把压缩的)再把压缩的)再把压缩的1010进制数变成非压缩的进制数变成非压缩的进制数变成非压缩的进制数变成非压缩的1010进制数,进制数,进制数,进制数,即变成代码,为显示卡号做准备即变成代码,为显示卡号做准备即变成代码,为显示卡号做准备即变成代码,为显示卡号做准备 L11:MOV R1,#10H MOV R2,#03H MOV R0,#28HL12:MOV A,R0 ANL A,#0FH MOV R1,A INC R1 MOV