《微机课程设计小区楼道开门控制系统方案.docx》由会员分享,可在线阅读,更多相关《微机课程设计小区楼道开门控制系统方案.docx(25页珍藏版)》请在优知文库上搜索。
1、将立工功考核FujianUniversityofTechnology微机应用设计与实践课程设计设计题目小区楼道开门控制系统系另U专业班级学生学号指导教师2012年07月05日一、设计任务1.1 设计课题31.2 设计目的31.3 设计任务3L4基本设计要求31.5 扩展功能提示41.6 设计环节与进程安排4二、总体方案设计与方案论证1 .1总体方案设计52 .2方案论证与选择5三、总框图与总体软件设计说明3 .1总流程图74 .2总体软件设计说明9四、系统资源分配说明5 .1硬件资源分配104.2片系统资源存储空间分配12五、局部程序设计说明5. 1入口程序初始化135.2拆字与显示容送显缓模
2、块135. 3显示更新子程序145. 4消抖动子程序模块155. 5有按键时发出按键声子程序模块165. 6无按键后30秒自动返回到时钟状态模块165. 7定时器Tl中断服务模块176 .8房间处理模块模块错误!未定义书签。5.9密码处理子模块195.10时钟修改子模块205.11用户密码修改子模块20六、系统功能与操作说明6.1系统功能描述与操作说明21七、存在问题与程序改进说明7.1按键处理问题227.2房号输入问题227.3修改密码问题227.3延时问题22八、设计总结23九、参考文献23附录、源程序24第一章设计任务1.l设计课题:小区楼道开门控制系统1.2设计目的:通过小型微机应用产
3、品的设计与调试过程,运用微机原理与接口技术课程所学的基本知识,在设计中加以应用,进而得到理解、巩固和提高发展,通过实践的过程学习与掌握分析与解决实际问题的方法与手段,提高设计、编程与调试的实际动手能力,作为工程技术工作的一次基本训练。1.3设计任务:设计一个以单片机为核心的楼道开门装置,该装置平时显示时钟信息,也可加入按照一定的节拍交替显示环境温度数据功能,住户通过输入由物业管理员预先设置的密码开启楼道门,住户也可输入房号开启与相应住户之间的对讲门铃并可由住户发来开门信号。装置可由管理员设置新的通行密码、时钟等参数。本课程设计环节进行编程并在单片机实验板上模拟调试实现。1.4基本设计要求:1、
4、八位LED7段数码管显示时钟、密码输入界面、房号输入面以与设定修改参数界面信息。2、基本显示模式为按照24小时制动态显示时、分、秒实时钟信息。3、4X4键盘用于操作与输入参数,应回馈短促的按键音以提供良好的操作手感。4、住户输入6位密码过程为了而逐位仅显示”符号,按“确定”键后在住户输入正好6位密码的情况下进行密码核对,密码吻合则输出开门驱动控制信号,5秒钟后撤销,输入位数不符或密码不吻合则发出相应提示音。5、住户输入3位房号(IOI601、102602)过程逐位如实显示数码,按“确定”键后在房号符合的情况下发出开启与相应住户之间的对讲门铃的控制信号,该信号维持1秒钟后撤销,此后住户若发来开门
5、信号,则输出开门驱动控制信号,5秒钟后撤销,输入的房号不符则发出相应提示音。6、设置一个外接的“开门”按钮开关,安装于门用于人员出来时开门操作,检测到该按钮压下后,发出开门驱动控制信号,5秒钟后撤销。对开关量输入信号须进行软件消抖动处理。7、输入管理员密码(6位)经判断吻合的话,进入设定时钟、住户开门密码参数界面,先设定时钟参数,按“确定”键后保存新时钟数据转入设定住户开门密码参数,期间按“取消”键则不保存且退出设定界面,设定参数的过程可用闪烁方式指示当前修改位。8、非基本显示模式下无操作时间超过30秒钟后自动恢复为基本的显示时钟状态。1.5功能扩展提示:(选做)1、开机进行接口部件与数码显示
6、器、指示灯、讯响器等自检。2、在基本显示模式下,每隔一定的时间,穿插显示环境温度信息,包括温度值(保留一位小数)与温度单位符号“oC”,设选用的温度传感变送器将检测的0oC+100OC温度成比例变换为05V电压信号。3、判别错误密码输入三次则封锁密码开门功能五分钟,以限制无止境地探测密码,此后管理员可通过断电后重新上电解除封锁的限制。4、管理员密码修改功能,应判断输入两遍的新密码一致的情况下才替换密码。5、其他功能扩展。1.6设计环节与进程安排:1、布置课题,明确任务、总体方案设计1天2、基本功能控制程序设计与调试3天3、程序功能完善、改进、扩展3天4、答辩与编写设计说明书3天第二章总体方案设
7、计与方案论证2.1总体方案设计根据设计要求,把各个功能按模块式进行编写,注意模块之间的联系。总体有以下几个模块:有定时器O中断服务子程序、程序的总初值化(自检包括蜂鸣器,L0-L15和数码管)、主流程程序。主流程对各个基本子模块进行反复循环调用,其中基本子模块包括:拆字与显示容送显缓子程序、键盘扫描子程序、调用房间处理子程序(包含对应驱动LOT5灯子程序)、调用密码处理子程序(对应驱动开门并延时灯子程序)、调用时钟修改子程序、调用用户密码修改子程序(包含修改住户开门密码界面子程序)、对PB口输入并消抖子程序、独立按键PB0-7的检测且对应控制门控位子程序、非基本时钟显示界面无操作30S返回子程
8、序、显示更新子程序、按键声处理子程序。每个模块联系密切,相辅相成。2.2方案论证2.2.ILED数码管显示方式:1.ED数码管为常用的输出外设,基本运行模式时,2路电压值通过它来巡回的显示;节拍设定模式的显示;扩展电压显示模式时,2路电压同时的显示;扩展时间显示模式时,实时钟的显示。实验板上的LED数码管为是8段共阳极的。、LED静态显示方式1.ED显示器工作于静态显示方式时,各位的共阳极连接在一起并接+5V,每位的段码线分别与一个8位的锁存器输出相连。静态显示方式虽然接口编程容易,但是占用口线较多,如果要增加显示器的位数,则需要增加I/O的数目,而该设计中需要用到8个LED数码管,单片机的I
9、/O口又是有限的,所以静态显示方式不能采用。(2)、LED动态显示方式将所有显示位的段码线的相应段并联在一起,由一个8位I/O口控制,而各位的共阳极由相应的I/O线控制,形成各位的分时选通,即为LED动态显示方式。采用这种方式虽然牺牲了单片机的时间,但是换取了I/O端口的减少。2. 2.2数码管自检方案的选择:方案一:通过逐一检查一个数码管的每段是否正常,逐个数码管进行检查,达到自检目的。这种方法效果很好观察,是一种不错的选择,但不好实现。方案二:让八段数码管都亮“8.”这种方案程序较为简单,显示效果也比较好。只要在总初始化上给30H37H赋全亮的立即数(OCH),再调用显示更新子程序,大约保
10、留显示2s左右,即可判断数码管是否正常,与第一种相比较容易实现。3. 2.3消抖动方案选择:消抖动的方案包含有硬件方法(电容滤波法、RS触发器消抖电路),消除抖动的软件方法(表决法、滚动滤波法、调用软件延时子程序)。方案一:延时消抖动。通过在按键执行动作后,加入一个延时子程序,延时结束后再检测一下按键的动作,以此来达到消抖动的目的。即检测出键闭合后执行一个延时程序,产生5msIOnlS的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要给5msIOmS的延时,待后沿抖动消失后才能转入该键的处理程序。在键数较少时可用硬件方法消抖动。常
11、利用电容的放电延时,采用并联电容法。方案二:滚动滤波消抖动。比较几个连续的电平值,相等则将其存起来与原态相比,假如该状态与原态不等就认为按键有动作。在本次程序设计中采用了这种消抖动。用几个连续的单元存放最近几次的电平值,比较几个电平值,若相等则存起来与原态相比较,若新态与原态不等则认为一次电平变化。该子程序简单,速度快,所以选择该方案。2. 2.4延时时间的选择:由于主程序要不断地循环,在每个子模块中不允许调用软件延时子程序。在这边有两种方法可实现延时;第一,就是累计主程序循环时间(一个周期大概IOms),然后借助DJNZ指令,对某个单元的容进行减1不为0,返回继续计时,只有将这个单元的容减到
12、等于0时,才执行下面的容,这样就起到了延时的效果。第二,就是借助定时器中断服务子程序。第三章、总框图与总体软件设计说明3. 1总流程图返回主流层3.2总体软件设计说明总初始化:主要由自检包括蜂鸣器,L0-L15LED灯,还有八位LED7段数码管。还有U3,U5芯片的初始化,和一些要用到的单元进行初始化。拆字与显示容送显缓子程序:对要进行显示的容进行拆字,当为基本进程(OIH)让实时钟3AH、3BH、3CH单元进行拆字,为其他进程时,不进行拆字,直接把需显示的容直接送给数码管显示缓存单元。键盘扫描子程序:利用反转法得键码再进行查表得出对应的键号,还有按下数字键做出相应事情,按下功能键置某位以便识
13、别。按键声处理子程序:当检测到有按键按下时,会发出短促的声音。定时器TO中断服务子程序:此字程序是对时间进行计时,以致能时钟显示调用房间处理子程序:当输入数据为三位以的时候,需要将数据按移位的顺序将数字存入数据缓存单元,并完全在数码管上显示数据,等到输入数据为三位时,要进行跟房号(101-601,102-602)对比,正确时要开启对讲信号灯,此时也有可能是密码输入的前三位。调用密码处理子程序:当输入数据位大于三位时,即为输入密码状态,在此过程中,要对不同的进程下,对功能键(确定,撤销,退格)和数字键进行识别,并作出不同的处理动作。只有在输入为六位时,才进行先用户密码后管理员密码的比对,符合用户
14、密码,作出开启开门信号控制灯,为管理员密码时,为时钟修改做准备。显示更新子程序:三种显示状态:正常显示时钟,闪烁显示某位其它照常显示,对输入的数字进行显示。有显示一位数字,一直到能显示六位数字,其中前三位可以直接看见,后三位看不见真正的数字,只显示”符号(直接将要显示的容先存储在数据缓存单元,在送到数码管显示缓冲单元)。调用时钟修改子程序:当密码比对为管理员密码时,先进入时钟修改界面进行时钟修改,而后进行用户密码修改。对PB口输入并消抖子程序:对PB口的输入进行滚动消抖,就是按下按钮后,只有检测到五次地电平数据都相等时,才把这次电平存入新态2EH中,2EH单元的容推进前态2FH单元中。独立按键
15、PBO-7的检测且对应控制门控位子程序:设置为PB为按下时为有效,且当相应的房号输入正确后,按下相应的PB按键时开启开门控制灯。非基本时钟显示界面无操作30S返回子程序:无按键操作时,无论数码管显示什么,不为时钟显示时,只要延时30s后,自动会返回时钟显示。报警子程序:由于该子程序较小,故直接放在以上需要报警的子程序里面。第四章、系统资源分配说明4.1 硬件资源分配本次课程设计小区楼道开门控制系统的硬件电路主要由键盘输入模块,数码管显示控制模块,LED灯显示模块,蜂鸣器模块组成。根据实验电路板来设计各个模块的资源分配,使用一片AT89C51芯片作为主驱动的芯片,并使用82C55芯片对I/O引脚进行扩展,由82C55的C(地址为FEFE)作为键盘的输入模块,由82C55的A(地址为FEFe)字段码输入口和B口(地址为FEFD)字位码输入口共同组成数码管显示控制模块,由89C51的PI口作为LED灯的显示模块,由P3.2作为蜂鸣器的驱动模块。硬件资源分配名称实现的功能房间号对应的LED灯PBO-PB5住户开门按键LED灯房间号PB7外接开门按钮LO101KO输入OLl201Kl