基于MSP430单片机指纹保险柜软件的实现 论文

更新时间:2023-05-13 22:37:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于MSP430单片机指纹保险柜软件的实现

基于MSP430单片机指纹保险柜软件的实现

发布时间:2009-7-28 阅读次数:738 字体大小: 【小】 【中】【大】

作者: 赵晓玲 (辽宁机电职业技术学院,辽宁 丹东118002)

出处: 国外电子元器件

1 引 言

近几年来单片机技术飞速发展,各种新型号的单片机层出不穷,在家电、控制、仪表等领域起到了举足轻重的作用。MSP430是一款具有超低功耗、丰富的片内外围模块、软件对硬件灵活控制等特点的单片机,特别适用于由电池供电的应用。本文介绍了一种以MPS430单片机为控制核心的指纹保险柜的工作原理,重点讨论实现指纹保险柜功能的软件设计。

2 指纹保险柜的工作原理

指纹保险柜不用钥匙或密码,仅凭指纹实现保险柜的安全控制。指纹保险柜的原理图如图1所示。

图l中的"控制电路"部分为指纹门锁的控制中心。它从"指纹比对模块"部分取得指纹比对的结果数据,如指纹比对成功,"控制电路"向机械锁芯中的"动作部分"发出开锁的信号。同时监测动作的执行情况与锁的开/关状态。

除此以外,"控制电路"还可控制"指纹比对模块"部分进行指纹录入/删除,并对整个电路的工作状态进行管理控制,对错误进行报警等。

本指纹保险柜具有机械自动触发、锁定功能。一旦门被打开,就关断控制电路,其余工作交予机械部分管理。

3 系统软件设计

3.1 系统分析

系统分析是整个程序设计工作的基点,应根据系统功能进行结构化设计,即将整个程序分为若干个模块,通过主程序将各个模块有机地组织起来。指纹保险柜的系统程序主要由主程序、按键模块、控制模块、显示模块、计时模块和串口通讯模块组成。

下面以按键模块为例,分析该模块详细设计过程。

本指纹保险柜控制电路可存储30个指纹数据,其中包含1个管理者和29个普通用户的指纹数据。它们之间的管理关系为0号管理者管理普通用户群。0号管理者的指纹数据存储于固定的位置00,其他位置为普通用户位置。按键模块分为按键查询和按键管理两部分。

基于MSP430单片机指纹保险柜软件的实现

1)按键查询。保险柜具有4个按键,其中,上电键用于为系统加电;录入键用于控制电路执行录入指纹的功能,即将指纹以数据形式存入保险柜中:删除键用于控制电路执行删除数据指纹的功能:而全清键用于使控制电路执行删除全部数据指纹的功能。本模块应判断是否有按键按下,并判断出是哪一个按键按下。

2)按键管理。根据按键查询程序获得的按键值进行相应的动作处理。按下上电键时,蜂鸣器发出一声短促的鸣叫,表示系统已经加电的绿色电源指示灯亮。按下录入键时,窗口内的绿灯亮,表示处于录入数据指纹状态。正常情况下,一个指纹录入时应该划过取指器3次,每次划过后,绿色灯闪动一次,蜂鸣器鸣响一声。成功划过取指器3次后,绿色发光管闪亮,蜂鸣器长鸣一声,表示该指纹已经录入到指纹锁内。当用户手指划过取指器的速度过快、过慢或手指对窗口的压力不够时,蜂鸣器发出2声短鸣,表示此次手指划动不合格,不予记录,应该重新划动。超时无操作,指纹保险柜会自动断电。按下删除键时,窗口内的绿色与红色灯同时亮,表示进入删除数据指纹状态。然后输入要删除的指纹,比对通过后,红色灯熄灭,蜂鸣器鸣响一声,表示此时该指纹已经从指纹锁内删除。按下全清键不动,3秒钟后蜂鸣器发出一声长鸣,继续按全清键,直到发出3声长鸣,表示锁内存储的指纹已被全部清空。

3.2 软件流程

对于复杂系统的程序设计,应在系统分析基础上用直观、易懂的流程图表示程序结构的设计。按键管理模块的流程图如图2所示,其中指纹录入子模块的流程图如图3所示。

基于MSP430单片机指纹保险柜软件的实现

3.3 源程序

本系统的开发软件采用IRA公司的IAR Em-bedded Workbench集成开发环境,它可以编辑、汇编和编译汇编语言和C语言源文件,并且其汇编语言和C语言具有相同格式的头文件.给开发带来了很大的灵活性。C语言具有编程简单、可移植等优点。下面为按键管理模块中的部分代码。

函数名:managen_key(unsigned char key_flag)

功 能:按键管理

说 明:

调 用:baojing_beii(),send_comm_Uasrt0()

入口参数:uart_buf[],key_flag,template_number,key

返回值:无

void managen_key(unsigned char key_flag)

{

unsigned int j;

unsigned char i;

uart_r_num=0x0;

uart_r_flag=0x0;

j = 60000; //延时

do(j--);

while(j !=0);

switch(key_flag) //根据按键返回值进行不同的处理

{

... //其它按键的处理过程

基于MSP430单片机指纹保险柜软件的实现

case 0x5: //按键为全清键

{

LIGHT_OUT |= RED_LIGHT;

if(send_comm_Uasrt0(0x24,key-1)==0x1)//如果存储的指纹被清空 {

key=0x0; //设置数码管显示值"00"

init_led(); //调用初始化LED程序

led_num(key); //调用LED显示转换程序

tmeer_flash = 0x01; //调用启动定时程序使LED闪烁"00" Timeer();

baojing_beii(0x1,0x10);//调用报警程序启动蜂响器 }

LIGHT_OUT &= ~RED_LIGHT;

break;

}

}

}

本文来源:https://www.bwwdw.com/article/807e.html

Top