测控系统课程设计.docx
- 文档编号:4797527
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:23
- 大小:220.84KB
测控系统课程设计.docx
《测控系统课程设计.docx》由会员分享,可在线阅读,更多相关《测控系统课程设计.docx(23页珍藏版)》请在冰点文库上搜索。
测控系统课程设计
摘要
本设计主要针对楼层单元门禁系统的设计与研究。
设计采用单片机芯片AT89C51作为主控芯片;通过4x4矩阵键盘,实现密码的输入与主要功能的选择;通过AT24C1024实现密码的存储与断电保护;通过LCD1602实现必要的显示。
设计从硬件电路和软件两方面全面的分析了门禁系统,硬件电路组成主要包括:
密码输入模块、密码存储模块、显示模块、报警模块和开锁模块等部分。
设计具有很强实用性,并且,在现实生活中应用很广泛。
关键词:
AT89C51LCD1602门禁系统AT24C1024
引言
随着科学技术的发展和科技的进步,人们对于高科技服务于生活的要求也越来越高,然而人们感受着高科技给他们带来的极大便利的同时,也带来了许多不安全因素。
例如,运用高科技手段进行盗窃、抢劫等犯罪行为与日俱增。
怎样才能使安全防范措施跟得上科技的发展?
仅依靠单一的物理防范远远不够的。
于是智能门禁系统应运而生。
智能门禁系统是一种综合性的多学科的高科技技术集合,它涉及电子、机械、光学、计算机技术、通信技术、生物统计学等诸多新技术领域。
1 门禁系统的分类
1.1按照门禁系统的设计原理分类
1.独立一体机:
这种门禁系统是控制器自带读卡器的方式,优点是价格便宜,便于安装,缺点是部分控制线必须露在门外,出门无须卡片或密码即可出门,安全性较差。
2.控制器与读卡器分体的:
此种门禁系统控制器安装在室内,只有读卡器输入线露在室外其它所有控制线均在室内,而读卡器传递的是数字信号,因此,若无有效卡片或密码任何人都无法进门。
较于独立一体机贵,但是安全性较之有很大的提高,以后门禁系统的首选。
门禁控制器与读卡器分开的方式中,又有单机型控制器和联网型控制器。
1.单机型控制器:
适于用小系统或安装位置集中的单位,通常采用RS485通讯方式,优点是投资小,通讯线路专用。
缺点一旦安装好就不能方便地更换管理中心的位置,不易实现网络控制和异地控制。
2.网络型:
此类产品的通讯方式采用的是网络常见的TCP/IP协议。
优点是控制器与管理中心是通过局域网传递数据的,管理中心位置可以随时变更,不需要重新布线安装,很容易实现网络控制和异地控制。
适用于大系统或安装位置分散的系统中,缺点是系统的通讯部分的稳定依赖于局域网的稳定。
1.2按照门禁系统的进出识别方式
1.密码识别:
通过检验输入密码是否正确来识别进出权限。
优点是操作方便,无须携带卡片且成本低;缺点是同时只能容纳3组密码,容易泄漏,安全性很差且只能单向控制和无进出记录。
2.卡片识别:
通过读卡或读卡加密码方式来识别进出权限,按卡片种类又分为:
(1)磁卡
优点:
成本较低,安全性一般,可联微机有开门记录
缺点:
卡片是接触式刷卡,设备有磨损,使用寿命较短,卡片容易复制,不易双向控制,且信息容易因外界磁场丢失,使卡片无效。
(2)射频卡
优点:
卡片与读卡器间是非接触方式,开门方便安全且寿命较长。
安全性高,可联机使用,有开门记录,可以实现双向控制,卡片很难被复制。
2门禁系统的发展
最近几年随着感应卡技术,生物识别技术的发展,门禁系统得到了飞跃式的发展,进入了成熟期,集成了微机自动识别技术和现代安全管理措施为一体,涉及电子、机械、光学、计算机技术、通讯技术、生物技术等诸多技术。
它是解决重要部门出入口实现安全防范管理的有效措施。
适合各种机要部门,如银行、宾馆、机房、军械库、机要室、办公间、智能化小区、工厂等。
在数字技术网络化的今天,门禁系统早已超出了单纯的门道及钥匙管理,已经逐渐发展成为一套完整的出入管理系统。
目前,国内外研制和使用的门禁系统主要集中在感应门禁系统和生物识别门禁系统。
在生物识别门禁系统中又以指纹门禁系统应用最为广泛。
随着计算机图像处理和模式识别理论以及大规模集成电路技术的不断发展与成熟,指纹自动识别系统的体积不断缩小,其价格也将不断降低。
3.门禁控制系统的功能
(1)刷卡记录:
当人员进/出门时需持卡在读卡器前进行读卡,读卡器读取信息后,将信息传送到主机,主单片机判断该信息的合法性,并可发出警报。
(2)信息显示功能:
选用带液晶读卡器,还可显示时钟,刷卡指示等信息。
(3)记录存档及查询功能:
主机会将刷卡信息、日期、时间等数据保存以供查询或直接传输到电脑进行处理。
所有读卡资料均有电脑记录。
(4)密码键盘功能:
如果用户想刷卡后按密码才允许进入。
卡+密码的操作方式目的在于用于对安全性要求更加高的场合。
连续3次密码输入错误键盘自动锁住。
(5)异常报警功能:
门户的状态和行为,都可实时反映到控制室的电脑中,当门打开的时间过长,非法闯入、门锁被破坏等情况出现时,可以实现计算机报警。
(6)系统扩展性好,具有联网功能:
模块化的组网方式,集合RS422和IIC总线传输的优势,使系统的组网方式更加灵活,系统的扩展更加方便。
任务与分析
任务
设计一楼层单元门禁系统,能实现楼层住户密码开锁或呼叫开锁,能显示操作状态,阻止陌生人进入,能输出报警及显示。
设计完整的电路原理图和编写相关程序。
用MCS-51系列单片机或其它CPU作为控制器设计一完整控制系统,需包括以下内容:
各楼层需实现呼叫及对讲;
用LCD1602显示或用LED显示;
有密码输入按键;
有声音及报警输出;
当断电时能维持24小时正常工作。
用PROTEUS仿真其中一个功能。
任务分析:
第一步:
选择AT89C51单片机作为主控芯片
第二步:
设计4x4矩阵键盘,实现密码的输入控制
第三步:
选用AT24C1024芯片,实现密码存储,断电保护;
第四步:
选用LCD1602作为显示,实现设计具有现实功能的要求
第五步:
设计开锁电路,实现开锁功能
第六步:
设计报警电路,实现报警功能
通过完成以上六步,即可设计出完整的门禁系统。
设计方案
门禁系统的设计主要包括:
键盘输入模块、显示模块、存储模块、报警电路、开锁电路的设计。
下文,将会对各个模块的硬件设计和软件部分进行详细的论述与讨论。
第一部分是硬件电路的设计,第二部分是相关程序软件的编写。
第一部分:
硬件电路的设计
1控制芯片AT89C51及附属电路
1.1AT89C51的介绍和引脚封装
AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
其引脚及封装如下所示:
图1AT89C51引脚图
AT89C51提供以下标准功能:
4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
1.2复位电路
根据应用的要求,复位操作通常有两种基本形式:
上电复位和按钮复位‘
最简单的上电复位电路。
工作原理为:
上电瞬间RC电路充电,RST引脚端出现正脉冲,只要RST端保持两个时钟周期以上的高电平,就能是单片机有效的复位。
如图2所示的上电与按钮复位电路,常采用的是上电与按钮复位电路。
图2上电与按钮复位电路
1.3晶振电路
51系列的单片机的时钟信号通常用两种电路形式得到,即内部振荡方式和外部振荡方式。
在引脚XTAL1和XTAL2外接晶体振荡器,就构成了内部振荡电路,如图3所示。
图中C1、C2起稳定振荡频率、快速起振的作用,电容值一般为5pF~30pF。
晶体振荡选用6MHz、12Mhz或24Mhz,采用串口时常使用11.0592MHz。
内部振荡所得到的时钟信号比较稳定,应用比较多。
外部振荡方式把已有的时钟信号引入单片机内。
图3晶振电路
2键盘输入模块
由于独立式键盘只适合于按键较少的场合,否则占用的端口太多,按键较多时,通常采用行列式键盘电路。
但由于行列式键盘的管理程序较为复杂,需要采用键盘扫描技术,常用的键盘扫描技技术方式有扫描法、线反转法、状态矩阵法。
所以本设计主要采用4x4矩阵键盘。
扫描方式采用线反转法。
2.1键抖动及消除键抖动
键盘是有若干个按键组成的,它是单片机最简单的输入设备。
用户通过键盘输入数据和指令,实现简单的人机对话。
“键”就是一个简单的开关,当键按下时,相当于开关闭合,当键松开时,相当于开关断开。
键在闭合和断开时会存在抖动现象,键的抖动时间一般为5ms~10ms,键抖动一次可能造成一次按键的多次闭合、释放的问题。
所以应采用措施消除抖动的影响。
应用中有采用硬件去抖动和软件去抖动两种方法,常采用的软件去抖动的方法。
软件去抖动即使,软件延时5ms~10ms的方法来消除抖动的影响。
当单片机检测到有键闭合的时候,先延时5ms~10ms,然后再检测按键的状态,如果仍然是闭合状态,则认为真正有按键按下。
当需要检测按键释放时,也可以采用同样的方法。
2.2矩阵键盘
图44x4矩阵键盘
2.3线反转扫描法
I/O端分为行线和列线,按键跨接在行线和列线上,键按下时,行线和列线将发生短路。
过程如下:
(1)先从P1端口的高4位输出低电平(列)。
低4位输出高电平(行),即P1=0x0f,从P1口读取键盘状态。
这时如果低4位中只要有一位出现“0”,说明此行中有按键按下。
各行中有键按下从P1口读取的数值依次是:
0EH、0DH、0BH、07H。
(2)再从P1口的低4位输出低电平(列)。
高4位输出高电平(行),即P1=0xf0,从P1口读取键盘状态。
这时如果高4位中只要有一位出现“0”,说明此列中有按键按下。
各列中有键按下从P1口读取的数值依次是:
E0H、D0H、B0H、70H。
(3)将两次读取的特征值,进行组合,得到当前按键的特征码。
3密码存储模块
3.124C02C介绍
24C02C串行E2PROM是基于I2C-BUS的存储器件,遵循二线制协议,由于其具有抗干扰能力强、接口方便,体积小,数据掉电不丢失等特点,在仪器仪表及工业自动化控制中得到大量的应用。
24C02C中带有的片内地址寄存器。
每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。
所有字节均以单一操作方式读取。
I2C总线是一种用于IC器件之间连接的二线制总线。
通过SDA(串行数据线)及SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件。
24C02C正是运用了I²C规程,使用主/从机双向通信,主机(通常为单片机)和从机均可工作于接收器和发送器状态。
主机产生串行时钟信号(通过SCL引脚)并发出控制字,控制总线的传送方向,并产生开始和停止的条件。
无论是主机还是从机,接收到一个字节后必须发出一个确认信号ACK。
管脚描述:
SCL为串行时钟:
串行时钟输入管脚用于产生器件所有数据发送或接收的时钟
SDL为串行数据/地址:
双向串行数据/地址管脚用于器件所有数据的发送或接收SDL,
A0、A1、A2为器件地址输入端:
当使用24C02时最大可级联8个器件,如果只有一个24C02被总线寻址,这三个地址输入脚A0、A1、A2可悬空或连接到Vss。
WP为写保护:
如果WP管脚连接到Vcc所有的内容都被写保护只能读当WP,管脚连接到Vss或悬空,允许器件进行正常的读/写操作。
管脚图如图5所示。
图524C02C引脚图
3.224C02C电路连接图
图624C02C连接图
4显示模块
了解系统的运行与工作状态显示器是不可缺少的,显示器是一个典型的输出设备并且它的实际应用也是极为广泛的,几乎所有的电子产品都会使用到显示器其差别仅在于显示器的结构类型不同而已。
最简单的显示器可以是LED发光二极管或者数码管。
1602型LCD显示模块具有体积小,功耗低,显示内容丰富等特点。
1602型LCD可以显示2行16个字符,有8位数据总线D0~D7和RS,R/W,EN三个控制端口,工作电压为5V,并且具有字符对比度调节和背光功能。
4.1LCD1602引脚图
图7LCD1602引脚图
基本操作程序:
读状态:
令RS=L,RW=L,E=H输出:
D0~D7=状态字
读数据:
令RS=H,RW=H,E=H输出:
无
写指令:
令RS=L,RW=L,D0~D7=指令码,E=高脉冲输出:
D0~D7=数据
写数据:
令RS=H,RW=L,D0~D7=数据,E=高脉冲输出:
无
4.2LCD1602显示电路
图8显示电路
5报警及开锁电路
5.1开锁电路
开锁步骤如下:
首先按下键盘上的开锁按键,然后利用键盘上的数字键0-9输入密码,最后按下确认键。
当用户输入密码后,单片机自动识别密码,如果密码不符。
具体电路如图所示。
5.2报警电路
图蜂鸣电路
第二部分相关程序软件的编写
为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每一部分叫做一个模块。
把一个程序分成具有多个明确任务的程序模块,分别编制、调试后再把它们连接在一起形成一个完整的程序。
1键扫描程序举例
ucharkeyscan()
{
ucharscan1,scan2,keycode,j;
P1=0xf0;
scan1=P1;
if((scan1&0xf0)!
=0xf0)//判键是否按下
{
delaykeyms(10);//延时10ms
scan1=P1;
if((scan1&0xf0)!
=0xf0)//二次判键是否按下
{
P1=0x0f;
scan2=P1;
keycode=scan1|scan2;//组合成键编码
for(j=0;j<=15;j++)
{
if(keycode==key_code[j])//查表得键值
{
key=j;
return(key);
}
}
}
}
elseP1=0xff;
return(16);
}
2LCD1602显示程序举例
voiddelay1(uintx)
{
uinta,b;
for(a=x;a>0;a--)
for(b=100;b>0;b--);
}
voidwrite_command(ucharcommand)
{
P0=command;
lcdrs=0;
lcden=0;
delay(10);
lcden=1;
delay(10);
lcden=0;
}
voidwrite_date(uchardate)
{
P0=date;
lcdrs=1;
lcden=0;
delay(10);
lcden=1;
delay(10);
lcden=0;
}
voidlcd_init()
{
write_command(0x38);
delay(20);
write_command(0x0f);
delay(20);
write_command(0x06);
delay(20);
write_command(0x01);
delay(20);
}
324C02C相关程序举例
uchara;
//voiddelay()
//{;
//;}
voidstart()//开始信号
{
sda=1;
delay();
scl=1;
delay();
sda=0;
delay();
}
voidstop()//停止
{
sda=0;
delay();
scl=1;
delay();
sda=1;
delay();
}
voidrespons()//应答
{
uchari;
scl=1;
delay();
while((sda==1)&&(i<250))i++;
scl=0;
delay();
}
voidinit()
{
sda=1;
delay();
scl=1;
delay();
}
voidwrite_byte(ucharch)
{
uchari,temp;
temp=ch;
for(i=0;i<8;i++)
{
temp=temp<<1;
scl=0;
delay();
sda=CY;
delay();
scl=1;
delay();
}
scl=0;
delay();
sda=1;
delay();
}
ucharread_byte()
{
uchari,k;
scl=0;
delay();
sda=1;
delay();
for(i=0;i<8;i++)
{
scl=1;
delay();
k=(k<<1)|sda;
scl=0;
delay();
}
returnk;
}
voidwrite24c08date(ucharaddress,ucharch)
{
start();
write_byte(0xa0);
respons();
write_byte(address);
respons();
write_byte(ch);
respons();
stop();
delayms(8);
}
ucharread24c08date(ucharaddress)
{
ucharch;
start();
write_byte(0xa0);
respons();
write_byte(address);
respons();
start();
write_byte(0xa1);
respons();
ch=read_byte();
stop();
returnch;
delayms(8);
}
voidmemory_init()
{
uchari;
for(i=0;i<100;i++)
{
write24c08date(i,0);
delayms(8);
}
}
4主程序
voidmain()
{
ucharnumber=0,number1=0;
lcd_init();
relay=1;
for(number=0;number<6;number++)//24c02里面取出正确的密码
{
keyvalue4[number]=read24c08date(1+number);
delayms(5);
}
for(number=0;name[number]!
='\0';number++)
{
write_date(name[number]);
delayms(10);
}
write_command(0x0c);
write_command(0x80+0x40);
for(number=0;name1[number]!
='\0';number++)
{
write_date(name1[number]);
delayms(10);
}
write_command(0x0f);
write_command(0x80+0x40+4);
i=0;
while
(1)
{
keyscan();
if((keyscan()==0)|(keyscan()==1)|(keyscan()==2)|(keyscan()==3)|(keyscan()==4)|(keyscan()==5)|(keyscan()==6)|(keyscan()==7)|(keyscan()==8)|(keyscan()==9))
{
inputcode();
}
elseif(keyscan()==11)//密码确认
{
i=0;
for(number=0;number<6;number++)//输入密码与正确密码比较
{
if(keyvalue[number]==keyvalue4[number])number1++;
}
if(number1==number)
{
number1=0,number=0;
keyvalue_init();
rightkey();
}
elseif(number1!
=number)
{
number1=0,number=0;
keyvalue_init();
errorkey();
}
delayms(800);//////等待。
防抖
}
elseif(keyscan()==14)//密码初始化
{
beepon();
memory_init();
}
elseif(keyscan()==15)//密码重置键
{
beepon();
resetcode();
}
}
}
ucharkey;
unsignedcharcodekey_code[]={
0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,
0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77};
voiddelaykeyms(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
5仿真运行
5.1系统进入运行时的图,如下所示
图运行时的结果
5.1当密码输入错误时,将不能打开门,LCD1602显示密码错误,运行结果如下图:
图密码输入错误的运行结果
5.2当密码输入正确是,系统识别之后,密码门将会打开,运行结果如下图:
图密码输入正确时的运行结果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 测控 系统 课程设计