项目训练三门禁系统Word格式.docx
《项目训练三门禁系统Word格式.docx》由会员分享,可在线阅读,更多相关《项目训练三门禁系统Word格式.docx(29页珍藏版)》请在冰豆网上搜索。
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
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
MOV@R0,A
INCR0
DJNZR2,LL1
POP02H
POP00H
POPACC
MOV0FH,#33H
RETI
LL2:
MOV04H,#28H
LL4:
JNBRI,LL6
CLRRI
MOVA,SBUF
CLRF0
LL6:
MOV05H,#0AH
LL5:
DJNZR5,LL5
DJNZR4,LL4
SETBF0
LL3:
POP02H
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
DJNZR2,LP1
(2)把10H开始代码变成段码放到20H开始的单元中。
方法一:
ORG0100H
MAIN:
MOVSP,#60H
MOV10H,#01H
MOV11H,#02H
MOV12H,#03H
MOV13H,#04H
MOV14H,#05H
MOV15H,#06H
MOV16H,#07H
MOV17H,#08H
LCALLXIANSHI
XIANSHI:
MOVR2,#08H
MOVR0,#10H
MOVR1,#20H
LP3:
MOVA,@R0
ADDA,#06H
MOVCA,@A+PC
MOV@R1,A
INCR1
DJNZR2,LP3
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB7FH,6FH,77H,7CH,39H,5EH,79H,71H00H
MOVR1,#08H
RET
方法二:
ORG0000H
MAIN:
MOVSP,#60H
PORTEQU0155H
XIANSHI:
MOVDPTR,#PORT
LP3:
MOVCA,@A+DPTR
ST:
MOVR0,#20H
MOVR2,#08H
LP1:
MOVR1,#08H
LP2:
RLCA
PORT3FH,06H,5BH,4FH,66H,6DH,7DH,07H
7FH,6FH,77H,7CH,39H,5EH,79H,71H00H
(3)将压缩码变非压缩码显示出来。
ORG0100H
MOV10H,#39H
MOV11H,#41H
MOV12H,#42H
MOV13H,#43H
MOV14H,#44H
MOV15H,#45H
MOV16H,#46H
MOV17H,#38H
LCALLASC
ASC:
MOVR0,#10H
MOVR1,#20H
LP4:
ANLA,#0FH
SWAPA
DJNZR2,Lp4
h)卡号显示
ID卡读出11个字节的ASCII,要显示卡号,需进行数值转换。
(1)ID卡读出的11个字节ASCII码放在以30H开始的单元,先将ASCII码转换成16进制数,因第一个字节是包装头,不参与转换。
其程序如下:
LE:
ASCⅡ转16进制数子程序
MOVR2,#0AH;
10个字节
LE4:
ACALLLE1
DJNZR2,LE4
LE1:
CJNEA,#40H,L13
SJMPLE3
L13:
JCLE2
ADDA,#09H
LE2:
CLRC
LE3:
SETBC
(2)把上面转换的10个16进制数,变成5个压缩的16进制数,30H放最高位,34H放最低位。
LB:
MOVA,30H;
装配压缩16进制数子程序
ADDA,31H
MOV30H,A
MOVA,32H
ADDA,33H
MOV31H,A
MOVA,34H
ADDA,35H
MOV32H,A
MOVA,36H
ADDA,37H
MOV33H,A
MOVA,38H
ADDA,39H
MOV34H,A
(3)上面程序中,30H到35H字节是先高后低,而后面调用子程序,需要先低后高,所以,先要把33H单元中的内容送到35H单元中,即把34H,35H里2个压缩的16进制数变成3个字节的压缩的10进制数。
LD:
MOV35H,33H;
压缩16进制数转非压缩10进制子程序
MOVR0,#34H
MOVR7,#02H
MOVR1,#28H
LCALLLD1
LD1:
MOVA,R0
MOVR5,A
MOVA,R1
MOVR6,A
MOVA,R7
INCA
MOVR3,A
CLRA
LD2:
DJNZR3,LD2
MOVB,#08H
MULAB
LD3:
MOVA,R5
MOVR0,A
MOVR2,A
LD4:
DJNZR2,LD4
MOVA,R6
MOVR1,A
INCR2
LD5:
MOVA,@R1
ADDCA,@R1
DAA
DJNZR2,LD5
DJNZR3,LD3
(4)再把压缩的10进制数变成非压缩的10进制数,即变成代码,为显示卡号做准备
L11:
MOVR1,#10H
MOVR2,#03H
MOVR0,#28H
L12:
MOVA,@R0
DJNZR2,L12
(5)把代码变成段码。
LF:
MOVR2,#08H;
代码--段码
LF1:
DJNZR2,LF1
DB7FH,6FH,77H,7CH,39H,5EH,79H,71H
DB00H,40H,73H,03H,18H,23H,1CH,3DH,76H,0FH,1EH,38H
(6)调显示子程序,采用串显方法,节省资源。
XSH:
MOVR0,#20H;
显示子程序
5.非接触式IC卡门禁机电路
(四)非接触式IC卡门禁系统参考程序
门禁系统程序主要包括读卡、数制转换、显示、合法卡比较、开锁、中断子程序、延时子程序等模块。
1.显示子程序模块
图为显示子程序流程图。
显示子程序:
MOVR0,#20H
MOV,C
2.门禁系统程序
图为门禁系统程序流程图。
图显示子程序流程图
门禁系统程序清单:
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
MOVR5,#0FFH
L8:
DJNZR5,L8
LCALLDEL;
延时10S
LCALLDEL
JNB,AL
LJMPM1
AL:
RET
SIC:
ANLTMOD,#0FH;
ORLTMOD,#20H
MOVTH1,#0FDH
MOVT