1《微机应用设计与实践》课程设计设计课题酒店电子保险箱2012年01月07日2目录一、设计任务与实现目标..............................错误!未定义书签。1.4基本设计要求:...............................错误!未定义书签。1.5功能扩展提示:(选做)........................错误!未定义书签。设计说明书内容纲要:............................................4二、总体设计方案与方案论............................错误!未定义书签。2.1系统总体框架.................................错误!未定义书签。2.2设计方案与方案论证...........................错误!未定义书签。2.3方案选择.....................................错误!未定义书签。2.4方案论证.....................................错误!未定义书签。三、总框图及总体软件设计说明........................错误!未定义书签。3.1总流程图.....................................错误!未定义书签。3.2总体软件设计说明.............................错误!未定义书签。四、系统资源分配说明................................错误!未定义书签。4.1硬件资源分配.................................错误!未定义书签。4.2微处理器内部存储单元分配及数据定义说明.......错误!未定义书签。五、局部程序设计说明................................错误!未定义书签。5.1拆字模块.....................................错误!未定义书签。5.2错误提示:显示“E”..........................错误!未定义书签。5.3显示模块.....................................错误!未定义书签。5.4键盘扫描模块.................................错误!未定义书签。5.5并字模块描述:...............................错误!未定义书签。5.6开门以及门闩模块描述:.......................错误!未定义书签。5.7密码修改描述:...............................错误!未定义书签。5.8功能键流程图:...............................错误!未定义书签。5.912S无动作描述:.............................错误!未定义书签。5.1015分钟锁键描述:..........................错误!未定义书签。5.11精确时钟流程图:............................错误!未定义书签。六、系统功能与操作说明..............................错误!未定义书签。七、调试记录及调试结果..............................错误!未定义书签。1.拆字模块......................................错误!未定义书签。2.错误显示模块..................................错误!未定义书签。3.显示刷新......................................错误!未定义书签。4.键盘获取......................................错误!未定义书签。5.并字调试......................................错误!未定义书签。6.匹配调试与开门调试............................错误!未定义书签。7.门闩开关调试..................................错误!未定义书签。8.管理员控制码输入..............................错误!未定义书签。9.密码修改......................................错误!未定义书签。10.时间调校.....................................错误!未定义书签。八、设计总结........................................错误!未定义书签。附件1:程序......................................................25附件2:原理图……………………………………………………………………393一、设计任务1.1设计课题:酒店电子保险箱1.2设计目的:通过小型微机应用产品的设计与调试过程,运用《微机原理及接口技术》课程所学的基本知识,在设计中加以应用,进而得到理解、巩固和提高发展,通过实践的过程学习掌握分析与解决实际问题的方法与手段,提高设计、编程与调试的实际动手能力,作为工程技术工作的一次基本训练。1.3设计任务:设计一个以单片机为核心的酒店电子保险箱,能在酒店客房中提供给客户使用。具有密码开锁,密码修改、密码输入安全设置、保险箱使用时间等功能。编程并在单片机实验板上模拟调试实现。1.4基本设计要求:1、开机进行接口部件及数码显示器、指示灯、讯响器等自检。2、密码分为管理员密码和用户密码:管理员密码为8位0~9的数字,而用户密码为6位0~9的数字。3、设置“0”~“9”的数字键及“OP”、“LO”、和“CL”等功能键。对按键输入的信号须进行软件消抖处理。4、保险箱的门有两种状态:打开状态和闭合状态。5、工作模式:(1)常态:数码管显示时钟。(2)开锁模式:需输入6位数字为0~9的用户密码或输入8位数字为0~9的管理原密码进行开锁。然后按“OP”键开门。(3)用户修改密码模式:在保险箱开门状态下,由用户自行输入6位数字为0~9的密码作为新密码,用户初始密码为000000。(4)管理员操作模式:保险柜开门状态下输入8位0~9的管理员密码,可以进行调校实时钟、恢复用户初始密码和修改管理员密码、设置保险箱使用日期等功能。6、常态下,八位LED7段数码管显示时钟信息可包括小时、分钟、秒钟。7、常态下,当保险箱关门状态下,只要按下0~9的数字键则进入密码输入状态,每按一个数字键使数码管从左到右逐次显示“—”。8、如果输入密码6位后按“OP”键则与用户密码进行匹配,匹配一致则开锁;如果输入密码8位后按“OP”键则与管理员密码进行匹配,匹配一致则进入管理员操作模式。9、在密码输入状态下,输入未满6位或8位数字密码,按“OP”键则不作响应。10、输入的用户密码如果匹配一致则驱动电动开门电磁铁线圈通电1S,用户拉门把可以打开保险箱;如果输入不正确,则提示“E”,3S后返回常态,等待下一轮的密码输入。11、密码输入过程可以按“CL”键取消输入返回常态。12、用户可以在保险箱开门状态下,通过输入6位0~9的数字后按“LO”键进行设置新的用户密码。13、当保险箱处于开门状态下,输入管理员密码后按OP键进入管理员操作模式下,输入01功能码代表修改管理员密码;输入02功能码代表恢复用户初始密码;输入03功能码代表实时钟的调校设置,利用数字3和数字4按键实现对时和分钟的增量式调校,持续按键超0.5S时实现快调功能;按“CL”键退出4管理员操作模式。1.5功能扩展提示:(选做)1、非常态下12S内无按键操作则自动返回常态;2、管理员操作模式下,03代表设置保险箱使用日期功能,如果开始日期和结束日期均为0:0:0,表示日期不受限制;04代表查询本次开箱前5次的日期和时间。3、如果连续五次输入用户密码错误则报警且锁键15分钟;4、其他功能扩展。1.6设计环节及进程安排:1、布置课题,明确任务、总体方案设计2天2、基本功能控制程序设计及调试3天4、程序功能完善、改进、扩展3天5、答辩及编写设计说明书2天设计说明书内容纲要:1、.设计任务2、总体方案设计与方案论证3、总框图及总体软件设计说明4、系统资源分配说明5、局部程序设计说明6、系统功能与操作说明7、调试记录及调试结果8、课程设计总结9、附录:源程序清单(详细注释)计算机系统结构教研室2012年12月5二、总体设计方案与方案论2.1系统总体框架酒店电子密码箱按键扫描拆字送显缓更新显示开门动作锁键管理员部分密码修改用户部分共用部分无操作门闩动作时钟部分密码匹配取消退格输入送缓存无操作模式管理员操作进入进入操作模式修改用户密码修改管理员密码用户密码初始错误动作时间调校《微机原理及接口技术》课程设计62.2设计方案与方案论证整个程序采用标志位引导方式实现程序功能,并且将程序模块化,循环扫描各服务子程序。更新模块---数码管动态扫描子程序取显示缓冲单元的内容,找到其在段码表中的段码值及位置即键号,分别对应传送到82C55的A、B口,使所得值显示在数码管上。时钟显示模块当常态标志位为0时,数码管上显示时钟,格式为时-分-秒,将双字节时钟单元拆字并传送到显缓30H-37H对应的各个单元。键盘扫描模块采用线反转法获得行列码,在键码表中找到对应的行列码的位置即键号,并采用滚动滤波法对按键进行消除抖动。新键号存在2EH,旧态放在2FH单元中。密码匹配模块在密码匹配允许下进行密码比对。密码修改模块在密码修改允许下进行密码修改。开门及门闩模块根据开门标志位决定对电磁铁线圈通电1S与否。门闩是一个输入器件。用户部分有键按下,转为非常态,等待下一位密码输入,为6位密码则进入用户模块操作。管理员部分输入密码为8位则进入管理员模块操作。01、02、03为管理员功能模块。12S无操作返回及其他拓展部分在常态下,若没有按键按下,开始计时,时间到12S左右,程序返回常态。若有则重置定时初值。密码输入出错五次,进行锁键。2.3方案选择拆字部分:方案一:只要检测到按键按下则显示“—”,否则显示实时钟。方案二:给定单元作为模式选择、判断。拆字时按照不同模式给以不同程序段处理。常态:实时钟显示;开锁态:显示“—”;管理员状态:显示功能号码或“—”、或实时钟。密码存储部分:方案一:单个存储单元储存单位密码。方案二:由于只用到简单数码键作为密码,所以可以使用并字将两个密码存储在同一个单元。《微机原理及接口技术》课程设计72.4方案论证拆字部分:方案一程序简单,占用存储单元较少。方案二程序较长,所需存储单元单元较多。但是,考虑到用户的需求,尤其是老年用户的记忆需要。所以牺牲一定存储单元是有必要的。综上所述,选择方案二。密码存储部分:方案一:代码编写简单。方案二:代码编写较之前复杂。在密码类型简单情况以及RAM单元够用情况下,没有太大优势。但是在密码类型较多以及RAM单元紧张情况下,优势非常明显。并且为后期的拓展提供了方便。综上所述,选择方案二。三、总框图及总体软件设计说明3.1总流程图开始初始化设置错误显示子程序显示刷新子程序键盘按键获取子程序键盘消抖子程序密码输入子程序拆字子程序并字子程序密码匹配子程序开门子程序密码修改子程序时间设置子程序门闩开关程序《微机原理及接口技术》课程设计83.2总体软件设计说明本设计采用汇编语言编程。系统在上电复位后,程序开始运行,经过初始化,在无任何操作的情况下,八位数码管显示实时钟。程序循环时对键盘进行扫描。常态有键按下时,当键号为0到9这十个数码键时则输入密码锁的密码。非常态时,不同的功能键对应不同处理,同时,12秒无按键按下,返回常态显示实时钟。当密码输入满六位或者八位