项目训练三门禁系统.docx

上传人:b****5 文档编号:5116387 上传时间:2022-12-13 格式:DOCX 页数:29 大小:105.29KB
下载 相关 举报
项目训练三门禁系统.docx_第1页
第1页 / 共29页
项目训练三门禁系统.docx_第2页
第2页 / 共29页
项目训练三门禁系统.docx_第3页
第3页 / 共29页
项目训练三门禁系统.docx_第4页
第4页 / 共29页
项目训练三门禁系统.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

项目训练三门禁系统.docx

《项目训练三门禁系统.docx》由会员分享,可在线阅读,更多相关《项目训练三门禁系统.docx(29页珍藏版)》请在冰豆网上搜索。

项目训练三门禁系统.docx

项目训练三门禁系统

文件排版存档编号:

[UYTR-OUPT28-KBNTL98-UYNN208]

 

项目训练三门禁系统

项目训练三门禁系统

一、目的要求

1.掌握门禁系统的概念。

2.掌握非接触式IC卡门禁系统的组成。

3.通过门禁系统的训练,掌握串行静态显示的方法。

4.掌握卡号显示方法。

5.进一步掌握单片机的使用技巧和方法。

二、任务目标

利用单片机AT89S52构成一非接触式IC卡门禁系统,要求实现如下功能:

1.程序控制开锁

当读卡器检索到合法IC卡时,由CPU提供一个低电平信号,因为,AT89S52单片机复位是高电平有效,并且实际电路必须有看门狗电路,一旦出现故障,也需高电平复位,因此,采用低电平作为控制门的开有效信号。

2.出门按钮开锁

按钮按下,给出一个开关信号,此时门锁同样被打开。

3.从消防安全考虑,如果发生意外或危险,只要断开电源,门锁同样可以被打开。

4.读卡显示

当读卡器检索到合法射频卡时,七段数码管可以显示出此卡的卡号,以便识别出持卡人身份。

5.蜂鸣器报警

当门锁处于开启状态时,超过延时时间,蜂鸣器发出蜂鸣,以提示用户及时关门。

6.工作指示灯

红色指示灯提示电源正常供电。

绿色指示灯提示门锁工作状态,刷卡合法,绿色指示灯亮。

三、工具器材

直流电源5V/500、门禁系统套件、编程器、PC机等。

四、预备知识

随着科学的进步、社会的发展,人们对生活质量有了更高的要求,对安全防范有了更多的需求,如何有效地控制人员的出入成了一个新的课题。

为此应运而生的门禁控制系统在众多安防产品中脱颖而出。

门禁系统顾名思义,就是对出入口通道进行管制的系统,是一种管理人员进出的数字化管理系统。

门禁系统由门禁控制器、门禁读卡器、卡片、电控锁以及相应的软件、电源和其他相关门禁设备等组成。

目前非接触式IC卡门禁系统应用广泛。

本训练项目将以天大银河科技有限公司研制的门禁系统为载体,重点讲解门禁系统的控制核心——AT89S52单片机。

(一)非接触式IC卡门禁系统框图

非接触式IC卡门禁系统包括读写器、中央控制电脑的软件管理系统、中央控制电脑与读写器之间的数据传输三部分。

其中读写器是核心,包括MCU、复位电路、时钟电路、报警及工作指示电路、显示电路、键盘、数据存储等主控模块及非接触式IC卡读写模块和电锁驱动部分。

非接触式IC卡门禁系统框图如图所示。

门禁系统采用AT89S52单片机作为控制核心,采用射频卡完成刷卡进门,按钮出门功能。

其工作流程见图所示。

(二)门禁系统中单片机口的资源分配

为实现门禁系统的功能,需读卡:

2条线(,INT1);键盘:

3条线(,,);门控:

6条线(上锁,门态,出门开关,音量,灯);存储:

3条线(,,);通讯:

5条线(RXD,TXD,,,INT0);显示:

2条线(,)。

表门禁系统I/O口资源分配

显示键

申请

通讯

通讯

读卡

显示

出门按钮

蜂鸣器

指示灯

门态

上锁

SCL

SDA

“0”有效

“0”响

“1”亮

“1”上锁

24C64

其中,存储芯片选用24C64,通信芯片选用75176。

控制通讯芯片75176,“0”:

收、“1”:

发;控制通讯申请信号,“0”:

申请、“1”:

不申请;INT0控制通信的AB线,B2=0时接通、B2=1时断开。

单片机口资源的具体分配见表。

(三)各部分电路原理分析

非接触式IC卡门禁机工作过程为当刷卡时,蜂鸣器响一下,如卡权限获得允许,显示模块显示卡号,同时继电器动作将门锁打开,指示灯点亮,延时一段时间后继电器再次动作将门锁锁闭,指示灯熄灭;当按下出门按钮时,继电器动作将门锁打开,指示灯点亮,延时一段时间后继电器再次动作将门锁锁闭,指示灯熄灭。

当遇到非法卡时,该系统不显示卡号,门锁不开。

原理电路如图所示。

1.门控锁电路

门控锁电路如图所示。

偏置电阻R3与三级管Q16、Q6构成复合驱动电路以提高驱动能力,控制锁的开与闭。

当为高电平时Q16导通,Q6截止,此时继电器的控制线圈为开路,继电器不动作。

门锁接于继电器常闭端,门锁闭合,门处于锁死状态。

当口输出低电平时Q16截止,Q6导通,此时继电器的控制线圈闭合,继电器动作。

继电器常闭端断开,门锁打开,门处于打开状态。

2.蜂鸣器电路

蜂鸣器电路由蜂鸣器、三极管Q1、Q2及电阻R2组成。

电路如图所示。

当输出高电平时,Q1导通,Q2截止,蜂鸣器回路开路,蜂鸣器不响。

当输出高电平时,Q1截止,Q2导通,蜂鸣器回路闭合,蜂鸣器发出响声。

3.串行口在门禁系统中的应用

门禁系统读卡采用串口中断方式。

a)非接触式射频卡的基本原理

每个卡片内都有一个小芯片和感应线圈。

价格低廉、国内最普及的EMID卡,大都为瑞士nEM或台湾GK公司的4100、4102系列IC芯片+线圈+卡基封装而成。

每张卡有且只有一个唯一的、不可更改和复制的ID内码(64位2进制加密的永不重复的卡号),因其安全可靠、价格低廉而大量应用于身份识别、产品防伪等领域。

b)非接触式IC卡系统的构成与特点

非接触式IC卡(也称为“应答器”)是射频识别系统的电子数据载体,卡中嵌有耦合元件和微电子芯片。

在读写器的响应范围之外,非接触式IC卡处于无源状态。

通常,非接触式IC卡没有自己的供电电源(电池),只是在读写器响应范围之内,卡才是有源的,卡所需要的能量以及时钟脉冲、数据,都是通过耦合单元的电磁耦合作用传输给卡的。

c)非接触式IC卡读写器

典型的非接触式IC卡读写器(也称为“阅读器”)包含有高频模块(发送器和接收器)、控制单元以及与卡连接的耦合元件。

由高频模块和耦合元件发送电磁场,以提供非接触式IC卡所需要的工作能量以及发送数据给卡,同时接收来自卡的数据。

d)常见的卡号输出格式说明

ID卡最常见到的五种读卡方式的卡号定义如下(其中H指十六进制Hex,D指十进制Dex):

(1)格式1

10位十六进制的ASCII字符串,即10位十六进制格式。

如:

某样卡读出十六进制卡号为“01026f6c3a”。

格式

(1)是读卡器输出的最基本格式,其它几种格式都是基于这种格式转换而成的。

(2)格式2

将格式1中的后8位,转换为10位十进制卡号,即8H—10D格式,如将“026f6c3a”转换为“00”。

(3)格式3

将格式1中的后6位,转换为8位十进制卡号,即6H—8D格式。

如将“6f6c3a”转换为“07302202”。

(4)格式4

将格式1中的倒数第5、第6位,转换为3位十进制卡号,再将后4位,转换为5位十进制卡号,中间用“,”分开,即“2H+4H”格式。

如将2H—“6f”转换为“111”,4H—“6c3a”转为“27706”。

最终将2段号连在一起输出为“111,27706”。

(5)格式5

将格式1中后8位的前4位,转换为5位十进制卡号,再将后4位,转换为5位十进制卡号,中间用“,”分开,即“4H+4H”。

照此转换结果为:

00623,27706

本教材中的门禁系统使用的卡格式是格式4。

e)RS232卡号输出协议

串行输出格式如下:

02

10ASCIIDataCharacters

Checksum

03

(a)9600bps,N,8,1

即波特率9600bPS;数据位元:

8bits;停止位元:

1。

(b)PIN5:

TX非反相输出。

(c)PIN6:

TX反相输出。

(d)卡片号码为62E3086CED,传送的HEX值如下

10ASCIIDATA:

36H,32H45H,33H30H,38H36H,43H45H,44H

(62HE3H08H6CHEDH)

CHECKSUM:

(62H)XOR(E3H)XOR(08H)XOR(6CH)XOR(EDH)=08H

Checksum为二进制格式数据。

故MTP-K4射频模块输出的完整的二进制文档如下所示:

02363245333038364345440803

f)串行口程序分析

读卡是随机的,不确定的,并且软件开销大,会降低响应速度,因此不能采用查询方式。

故门禁系统的读卡采用串口中断方式,随时读卡,随时响应。

晶振必须是。

(1)读卡单元

图读卡单元连接图

门禁系统采用EM9913BFID射频卡读卡器。

电路如图所示。

读卡模块将数据按RS232和Wiegand26格式输出。

EM9913BF各引脚功能见表。

表EM9913BF各引脚功能

引脚号

引脚名称

I/O

说明

1

DC5V

输入

+5V直流输入

2

ANT

输入

线圈引脚输入

3

NC

空引脚

4

GND

输入

接地

5

NC

空引脚

6

ENLED

输入

指示灯控制线,低电平使用

7

ENBEEP

输入

蜂鸣器控制线,低电平使用

8

OK_SD

输出

Wiegand26数据输出指示

9

BZ

输出

蜂鸣器信号线

10

D0

输出

Wiegand26数据DATA0输出

11

D1

输出

Wiegand26数据DATA1输出

12

LED

输出

指示灯信号输出

13

TXD

输出

RS232数据输出

(2)波特率初值计算

晶振为,串行接口工作于方式1,波特率为9600b/s。

公式:

代入已知条件,计算出初值为FDH。

(3)串口中断初始化程序

SIC:

ANLTMOD,#0FH;串口始化子程序

ORLTMOD,#20H

MOVTH1,#0FDH

MOVTL1,#0FDH

SETBTR1

MOVIE,#90H

MOVSCON,#50H;方式1十位异步收发

RET

(4)串口中断子程序,该程序中加入不死机程序

ZD:

PUSHACC;中断子程序

PUSH00H

PUSH02H

MOVR0,#30H;首地址

MOVR2,#0BH;11个字节的ASCII

LL1:

ACALLLL2

JBF0,LL3

NOP

NOP

MOV@R0,A

INCR0

DJNZR2,LL1

POP02H

POP00H

POPACC

NOP

MOV0FH,#33H

RETI

LL2:

MOV04H,#28H

LL4:

JNBRI,LL6

CLRRI

MOVA,SBUF

CLRF0

RET

LL6:

MOV05H,#0AH

LL5:

DJNZR5,LL5

DJNZR4,LL4

SETBF0

RET

LL3:

POP02H

POP00H

POPACC

RETI

END

4.显示电路

在门禁系统中,显示串行静态显示方式。

采用74LS164作为静态显示器接口,作为时钟,作为显示数据输入。

如图所示。

图门禁系统中的串行显示电路

g)显示程序

(1)直接显示段码程序。

将20H—27H中的段码从左到右显示出来。

ORG0000H

LJMPMAIN

MAIN:

MOVSP,#60H

MOV20H,#06H

MOV21H,#5BH

MOV22H,#4FH

MOV23H,#66H

MOV24H,#6DH

MOV25H,#7DH

MOV26H,#07H

MOV27H,#7FH

LCALLST

SJMP$

ST:

MOVR0,#20H

MOVR2,#08H

LP1:

MOVR1,#08H

MOVA,@R0

LP2:

RLCA

MOV,C

CLR

SETB

DJNZR1,LP2

INCR0

DJNZR2,LP1

RET

END

(2)把10H开始代码变成段码放到20H开始的单元中。

方法一:

ORG0000H

LJMPMAIN

ORG0100H

MAIN:

MOVSP,#60H

MOV10H,#01H

MOV11H,#02H

MOV12H,#03H

MOV13H,#04H

MOV14H,#05H

MOV15H,#06H

MOV16H,#07H

MOV17H,#08H

LCALLXIANSHI

LCALLST

SJMP$

XIANSHI:

MOVR2,#08H

MOVR0,#10H

MOVR1,#20H

LP3:

MOVA,@R0

ADDA,#06H

MOVCA,@A+PC

MOV@R1,A

INCR0

INCR1

DJNZR2,LP3

RET

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H

DB7FH,6FH,77H,7CH,39H,5EH,79H,71H00H

ST:

MOVR0,#20H

MOVR2,#08H

LP1:

MOVR1,#08H

MOVA,@R0

LP2:

RLCA

MOV,C

CLR

SETB

DJNZR1,LP2

INCR0

DJNZR2,LP1

RET

END

方法二:

ORG0000H

LJMPMAIN

MAIN:

MOVSP,#60H

PORTEQU0155H

LCALLST

SJMP$

XIANSHI:

MOVR2,#08H

MOVR0,#10H

MOVR1,#20H

MOVDPTR,#PORT

LP3:

MOVA,@R0

MOVCA,@A+DPTR

MOV@R1,A

INCR0

INCR1

DJNZR2,LP3

RET

ST:

MOVR0,#20H

MOVR2,#08H

LP1:

MOVR1,#08H

MOVA,@R0

LP2:

RLCA

MOV,C

CLR

SETB

DJNZR1,LP2

INCR0

DJNZR2,LP1

RET

PORT3FH,06H,5BH,4FH,66H,6DH,7DH,07H

7FH,6FH,77H,7CH,39H,5EH,79H,71H00H

END

(3)将压缩码变非压缩码显示出来。

ORG0100H

MAIN:

MOVSP,#60H

MOV10H,#39H

MOV11H,#41H

MOV12H,#42H

MOV13H,#43H

MOV14H,#44H

MOV15H,#45H

MOV16H,#46H

MOV17H,#38H

LCALLASC

LCALLXIANSHI

LCALLST

SJMP$

ASC:

MOVR2,#08H

MOVR0,#10H

MOVR1,#20H

LP4:

MOVA,@R0

ANLA,#0FH

MOV@R1,A

INCR1

MOVA,@R0

SWAPA

ANLA,#0FH

MOV@R1,A

INCR0

INCR1

DJNZR2,Lp4

RET

XIANSHI:

MOVR2,#08H

MOVR0,#10H

MOVR1,#20H

LP3:

MOVA,@R0

ADDA,#06H

MOVCA,@A+PC

MOV@R1,A

INCR0

INCR1

DJNZR2,LP3

RET

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H

DB7FH,6FH,77H,7CH,39H,5EH,79H,71H00H

ST:

MOVR0,#20H

MOVR2,#08H

LP1:

MOVR1,#08H

MOVA,@R0

LP2:

RLCA

MOV,C

CLR

SETB

DJNZR1,LP2

INCR0

DJNZR2,LP1

RET

END

h)卡号显示

ID卡读出11个字节的ASCII,要显示卡号,需进行数值转换。

(1)ID卡读出的11个字节ASCII码放在以30H开始的单元,先将ASCII码转换成16进制数,因第一个字节是包装头,不参与转换。

其程序如下:

LE:

MOVR0,#30H;ASCⅡ转16进制数子程序

MOVR2,#0AH;10个字节

LE4:

MOVA,@R0

ACALLLE1

MOV@R0,A

INCR0

DJNZR2,LE4

RET

LE1:

CJNEA,#40H,L13

SJMPLE3

L13:

JCLE2

ADDA,#09H

LE2:

ANLA,#0FH

CLRC

RET

LE3:

SETBC

RET

(2)把上面转换的10个16进制数,变成5个压缩的16进制数,30H放最高位,34H放最低位。

LB:

MOVA,30H;装配压缩16进制数子程序

SWAPA

ADDA,31H

MOV30H,A

MOVA,32H

SWAPA

ADDA,33H

MOV31H,A

NOP

NOP

MOVA,34H

SWAPA

ADDA,35H

MOV32H,A

MOVA,36H

SWAPA

ADDA,37H

MOV33H,A

NOP

NOP

MOVA,38H

SWAPA

ADDA,39H

MOV34H,A

RET

(3)上面程序中,30H到35H字节是先高后低,而后面调用子程序,需要先低后高,所以,先要把33H单元中的内容送到35H单元中,即把34H,35H里2个压缩的16进制数变成3个字节的压缩的10进制数。

LD:

MOV35H,33H;压缩16进制数转非压缩10进制子程序

MOVR0,#34H

MOVR7,#02H

MOVR1,#28H

LCALLLD1

RET

LD1:

MOVA,R0

MOVR5,A

MOVA,R1

MOVR6,A

MOVA,R7

INCA

MOVR3,A

CLRA

LD2:

MOV@R1,A

INCR1

DJNZR3,LD2

MOVA,R7

MOVB,#08H

MULAB

MOVR3,A

LD3:

MOVA,R5

MOVR0,A

MOVA,R7

MOVR2,A

CLRC

LD4:

MOVA,@R0

RLCA

MOV@R0,A

INCR0

DJNZR2,LD4

MOVA,R6

MOVR1,A

MOVA,R7

MOVR2,A

INCR2

LD5:

MOVA,@R1

ADDCA,@R1

DAA

MOV@R1,A

INCR1

DJNZR2,LD5

DJNZR3,LD3

RET

(4)再把压缩的10进制数变成非压缩的10进制数,即变成代码,为显示卡号做准备

L11:

MOVR1,#10H

MOVR2,#03H

MOVR0,#28H

L12:

MOVA,@R0

ANLA,#0FH

MOV@R1,A

INCR1

MOVA,@R0

SWAPA

ANLA,#0FH

MOV@R1,A

INCR0

INCR1

DJNZR2,L12

RET

(5)把代码变成段码。

LF:

MOVR2,#08H;代码--段码

MOVR0,#10H

MOVR1,#20H

LF1:

MOVA,@R0

ADDA,#06H

MOVCA,@A+PC

MOV@R1,A

INCR0

INCR1

DJNZR2,LF1

RET

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H

DB7FH,6FH,77H,7CH,39H,5EH,79H,71H

DB00H,40H,73H,03H,18H,23H,1CH,3DH,76H,0FH,1EH,38H

(6)调显示子程序,采用串显方法,节省资源。

XSH:

MOVR0,#20H;显示子程序

MOVR2,#08H

LP1:

MOVR1,#08H

MOVA,@R0

LP2:

RLCA

MOV,C

CLR

SETB

DJNZR1,LP2

INCR0

DJNZR2,LP1

RET

5.非接触式IC卡门禁机电路

如图所示。

(四)非接触式IC卡门禁系统参考程序

门禁系统程序主要包括读卡、数制转换、显示、合法卡比较、开锁、中断子程序、延时子程序等模块。

1.显示子程序模块

图为显示子程序流程图。

显示子程序:

XSH:

MOVR0,#20H

MOVR2,#08H

LP1:

MOVR1,#08H

MOVA,@R0

LP2:

RLCA

MOV,C

CLR

SETB

DJNZR1,LP2

INCR0

DJNZR2,LP1

RET

2.门禁系统程序

图为门禁系统程序流程图。

图显示子程序流程图

门禁系统程序清单:

ORG0000H

LJMPMAIN

ORG0023H

LJMPZD

ORG0300H

MAIN:

MOVSP,#60H

CLR;关指示灯

LCALLBEING;调显“H”子程序

M1:

LCALLSIC;调串口始化子程序

L03:

MOVA,0FH;判卡

CJNEA,#33H,L03

MOV0FH,#00H

MOV17H,#10H

ACALLL04E0;ASCⅡ转16进制数子程序

ACALLL04B0;调装配压缩16进制数子程序

ACALLL1234;调压缩16转非压缩10进制子程序

ACALLL11;压缩--非压缩

ACALLL120F;代码--段码子程序

ACALLL1261;调显示子程序

图门禁系统程序流程图

SETB开锁子程序

CLR

SETB

CLR

MOVR5,#0FFH

L8:

DJNZR5,L8

LCALLDEL;延时10S

CLR

LCALLDEL

SETB

SETB

CLR

JNB,AL

LJMPM1

AL:

CLR

LCALLDEL

SETB

RET

SIC:

ANLTMOD,#0FH;串口始化子程序

ORLTMOD,#20H

MOVTH1,#0FDH

MOVT

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1