(完整版)微机毕业课程设计--小区楼道开门控制系统.doc_第1页
(完整版)微机毕业课程设计--小区楼道开门控制系统.doc_第2页
(完整版)微机毕业课程设计--小区楼道开门控制系统.doc_第3页
(完整版)微机毕业课程设计--小区楼道开门控制系统.doc_第4页
(完整版)微机毕业课程设计--小区楼道开门控制系统.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微机应用设计与实践课程设计设计题目小区楼道开门控制系统系别专业班级学生姓名学号指导教师2012 年 07 月 05日目录一、设计任务1.1设计课题 .1.2设计目的 .1.3设计任务 .1.4基本设计要求 .1.5扩展功能提示 .1.6设计环节及进程安排 .二、总体方案设计与方案论证2.1总体方案设计 .2.2方案论证及选择 .三、总框图及总体软件设计说明3.1总流程图 .3.2总体软件设计说明 .四、系统资源分配说明4.1 硬件资源分配.4.2 片内系统资源存储空间分配.五、局部程序设计说明5.1入口程序初始化 .5.2拆字及显示内容送显缓模块.5.3显示更新子程序 .5.4消抖动子程序模块

2、 .5.5有按键时发出按键声子程序模块.5.6无按键后30 秒自动返回到时钟状态模块 .5.7定时器 T1中断服务模块 .5.8房间处理模块 模块 .六、系统功能与操作说明6.1 系统功能描述及操作说明.七、存在问题与程序改进说明7.1按键处理问题 .7.2房号输入问题 .7.3修改密码问题 .7.3延时问题 .八、设计总结.九、参考文献.附录、源程序.第一章设计任务1.1 设计课题: 小区楼道开门控制系统1.2 设计目的:通过小型微机应用产品的设计与调试过程,运用微机原理及接口技术课程所学的基本知识,在设计中加以应用,进而得到理解、巩固和提高发展,通过实践的过程学习与掌握分析与解决实际问题的

3、方法与手段,提高设计、编程与调试的实际动手能力,作为工程技术工作的一次基本训练。1.3 设计任务:设计一个以单片机为核心的楼道开门装置,该装置平时显示时钟信息,也可加入按照一定的节拍交替显示环境温度数据功能,住户通过输入由物业管理员预先设置的密码开启楼道门,住户也可输入房号开启与相应住户之间的对讲门铃并可由住户发来开门信号。装置可由管理员设置新的通行密码、时钟等参数。本课程设计环节进行编程并在单片机实验板上模拟调试实现。1.4 基本设计要求:1、八位 LED 7段数码管显示时钟、密码输入界面、房号输入面以及设定修改参数界面信息。2、基本显示模式为按照24 小时制动态显示时、分、秒实时钟信息。3

4、、44 键盘用于操作及输入参数, 应回馈短促的按键音以提供良好的操作手感。4、住户输入 6 位密码过程为了保密而逐位仅显示“ - ”符号,按“确定”键后在住户输入正好 6 位密码的情况下进行密码核对,密码吻合则输出开门驱动控制信号, 5 秒钟后撤销,输入位数不符或密码不吻合则发出相应提示音。5、住户输入 3 位房号( 101601、102 602)过程逐位如实显示数码,按“确定”键后在房号符合的情况下发出开启与相应住户之间的对讲门铃的控制信号,该信号维持1 秒钟后撤销,此后住户若发来开门信号,则输出开门驱动控制信号,5 秒钟后撤销,输入的房号不符则发出相应提示音。6、设置一个外接的“开门”按钮

5、开关,安装于门内用于人员出来时开门操作,检测到该按钮压下后,发出开门驱动控制信号,5 秒钟后撤销。对开关量输入信号须进行软件消抖动处理。7、输入管理员密码( 6 位)经判断吻合的话,进入设定时钟、住户开门密码参数界面,先设定时钟参数,按“确定”键后保存新时钟数据转入设定住户开门密码参数,期间按“取消”键则不保存且退出设定界面,设定参数的过程可用闪烁方式指示当前修改位。8、非基本显示模式下无操作时间超过30 秒钟后自动恢复为基本的显示时钟状态。1.5 功能扩展提示:(选做)1、开机进行接口部件及数码显示器、指示灯、讯响器等自检。2、在基本显示模式下,每隔一定的时间,穿插显示环境温度信息,包括温度

6、值(保留一位小数)与温度单位符号“oC”,设选用的温度传感变送器将检测的0 oC+100 oC 温度成比例变换为05V电压信号。3、判别错误密码输入三次则封锁密码开门功能五分钟,以限制无止境地探测密码,此后管理员可通过断电后重新上电解除封锁的限制。4、管理员密码修改功能,应判断输入两遍的新密码一致的情况下才替换密码。5、其他功能扩展。1.6 设计环节及进程安排:1、布置课题,明确任务、总体方案设计1天2、基本功能控制程序设计及调试3天3、程序功能完善、改进、扩展3天4、答辩及编写设计说明书3天第二章总体方案设计与方案论证2.1 总体方案设计根据设计要求,把各个功能按模块式进行编写,注意模块之间

7、的联系。总体有以下几个模块:有定时器0 中断服务子程序、程序的总初值化(自检包括蜂鸣器, L0-L15 和数码管)、主流程程序。主流程对各个基本子模块进行反复循环调用,其中基本子模块包括:拆字及显示内容送显缓子程序、键盘扫描子程序、调用房间处理子程序(包含对应驱动L0-15 灯子程序)、调用密码处理子程序(对应驱动开门并延时灯子程序)、调用时钟修改子程序、调用用户密码修改子程序(包含修改住户开门密码界面子程序)、对 PB口输入并消抖子程序、独立按键PB0-7 的检测且对应控制门控位子程序、非基本时钟显示界面无操作30S返回子程序、显示更新子程序、按键声处理子程序。每个模块联系密切,相辅相成。2

8、.2 方案论证2.2.1LED数码管显示方式:LED 数码管为常用的输出外设,基本运行模式时,2 路电压值通过它来巡回的显示;节拍设定模式的显示;扩展电压显示模式时,2 路电压同时的显示;扩展时间显示模式时,实时钟的显示。实验板上的LED数码管为是 8 段共阳极的。( 1)、 LED静态显示方式LED 显示器工作于静态显示方式时,各位的共阳极连接在一起并接+5V,每位的段码线分别与一个8 位的锁存器输出相连。静态显示方式虽然接口编程容易,但是占用口线较多,如果要增加显示器的位数,则需要增加 IO 口的数目,而该设计中需要用到8 个 LED数码管,单片机的IO 口又是有限的,所以静态显示方式不能

9、采用。(2)、LED动态显示方式将所有显示位的段码线的相应段并联在一起,由一个8 位IO 口控制,而各位的共阳极由相应的IO线控制,形成各位的分时选通,即为LED动态显示方式。采用这种方式虽然牺牲了单片机的时间,但是换取了IO端口的减少。2.2.2 数码管自检方案的选择:方案一:通过逐一检查一个数码管的每段是否正常,逐个数码管进行检查,达到自检目的。这种方法效果很好观察,是一种不错的选择,但不好实现。方案二:让八段数码管都亮“8. ”这种方案程序较为简单,显示效果也比较好。只要在总初始化上给30H37H赋全亮的立即数( 0CH),再调用显示更新子程序,大约保留显示2s 左右,即可判断数码管是否

10、正常,与第一种相比较容易实现。2.2.3 消抖动方案选择 :消抖动的方案包含有硬件方法( 电容滤波法、 RS 触发器消抖电路 ) ,消除抖动的软件方法 ( 表决法、滚动滤波法、调用软件延时子程序) 。方案一:延时消抖动。通过在按键执行动作后, 加入一个延时子程序,延时结束后再检测一下按键的动作,以此来达到消抖动的目的。即检测出键闭合后执行一个延时程序, 产生 5ms10ms的延时 , 让前沿抖动消失后再一次检测键的状态 , 如果仍保持闭合状态电平, 则确认为真正有键按下。当检测到按键释放后 , 也要给 5ms10ms的延时 , 待后沿抖动消失后才能转入该键的处理程序。在键数较少时可用硬件方法消

11、抖动。常利用电容的放电延时,采用并联电容法。方案二:滚动滤波消抖动。 比较几个连续的电平值, 相等则将其存起来与原态相比,假如该状态与原态不等就认为按键有动作。在本次程序设计中采用了这种消抖动。用几个连续的单元存放最近几次的电平值,比较几个电平值,若相等则存起来与原态相比较,若新态与原态不等则认为一次电平变化。该子程序简单,速度快,所以选择该方案。2.2.4延时时间的选择 :由于主程序要不断地循环,在每个子模块中不允许调用软件延时子程序。在这边有两种方法可实现延时;第一,就是累计主程序循环时间(一个周期大概 10ms),然后借助 DJNZ指令,对某个单元的内容进行减1 不为0,返回继续计时,只

12、有将这个单元的内容减到等于0 时,才执行下面的内容,这样就起到了延时的效果。第二,就是借助定时器中断服务子程序。第三章、总框图及总体软件设计说明3. 1 总流程图3.2 总体软件设计说明总初始化 :主要由自检包括蜂鸣器, L0-L15LED 灯,还有八位 LED7段数码管。还有 U3,U5 芯片的初始化, 和一些要用到的单元进行初始化。拆字及显示内容送显缓子程序:对要进行显示的内容进行拆字,当为基本进程( 01H)让实时钟 3AH 、3BH、3CH 单元进行拆字,为其他进程时,不进行拆字,直接把需显示的内容直接送给数码管显示缓存单元。键盘扫描子程序: 利用反转法得键码再进行查表得出对应的键号,

13、还有按下数字键做出相应事情,按下功能键置某位以便识别。按键声处理子程序 :当检测到有按键按下时,会发出短促的声音。定时器 T0 中断服务子程序: 此字程序是对时间进行计时, 以致能时钟显示调用房间处理子程序:当输入数据为三位以内的时候,需要将数据按移位的顺序将数字存入数据缓存单元,并完全在数码管上显示数据,等到输入数据此时也有可能是密码输入的前三位。调用密码处理子程序: 当输入数据位大于三位时, 即为输入密码状态,在此过程中,要对不同的进程下,对功能键(确定,撤销,退格)和数字键进行识别,并作出不同的处理动作。只有在输入为六位时,才进行先用户密码后管理员密码的比对,符合用户密码,作出开启开门信

14、号控制灯,为管理员密码时,为时钟修改做准备。显示更新子程序: 三种显示状态:正常显示时钟,闪烁显示某位其它照常显示,对输入的数字进行显示。有显示一位数字,一直到能显示六位数字,其中前三位可以直接看见,后三位看不见真正的数字,只显示“ -”符号(直接将要显示的内容先存储在数据缓存单元,在送到数码管显示缓冲单元)。调用时钟修改子程序:当密码比对为管理员密码时,先进入时钟修改界面进行时钟修改,而后进行用户密码修改。对 PB 口输入并消抖子程序:对 PB 口的输入进行滚动消抖,就是按下按钮后,只有检测到五次地电平数据都相等时,才把这次电平存入新态 2EH 中, 2EH 单元的内容推进前态2FH 单元中

15、。独立按键 PB0-7 的检测且对应控制门控位子程序:设置为 PB为按下时为有效,且当相应的房号输入正确后,按下相应的PB 按键时开启开门控制灯。非基本时钟显示界面无操作30S 返回子程序: 无按键操作时,无论数码管显示什么,不为时钟显示时,只要延时30s 后,自动会返回时钟显示。报警子程序: 由于该子程序较小,故直接放在以上需要报警的子程序里面。第四章、系统资源分配说明4.1 硬件资源分配本次课程设计小区楼道开门控制系统的硬件电路主要由键盘输入模块,数码管显示控制模块,LED 灯显示模块,蜂鸣器模块组成。根据实验电路板来设计各个模块的资源分配,使用一片AT89C51 芯片作为主驱动的芯片,并

16、使用 82C55 芯片对 IO 引脚进行扩展,由 82C55 的 C 口(地址为 FEFE )作为键盘的输入模块,由 82C55 的 A 口(地址为FEFC )字段码输入口和B 口(地址为FEFD )字位码输入口共同组成数码管显示控制模块,由89C51 的 P1 口作为 LED 灯的显示模块,由P3.2作为蜂鸣器的驱动模块。硬件资源分配名称实现的功能房间号对应的 LED 灯PB0- PB5住户开门按键LED 灯房间号PB7外接开门按钮L0101K0输入 0L1201K1输入 1L2301K2输入 2L3401K3输入 3L4501K4输入 4L5601K5输入 5L7开门信号指示灯K6输入 6

17、L8102K7输入 7L9202K8输入 8L10302K9输入 9L11402KA确定键L12502KB撤消键L13602KC退格键P3.2 接蜂鸣器键盘表01234.2 片内系统4567资源存储空89确定撤销间分配退格无无无AT89C51 片内的数据存储空间的范围是00H-7FH,其中 00H-1FH 为 4 组通用工作寄存器区, 20H-2FH 的 16 个单元的 128 位可进行位寻址, 30H-7FH 为用户的 RAM区,所以,选择29H-2FH 作为滚动滤波的地址单元1CH:存放进程单元1DH,1EH,1FH:为用户密码存储单元2DH,2EH,2FH:为管理员密码存储单元22H:为

18、 101601 各用户对讲标志位23H:为 102602 各用户对讲标志位16H 1BH: 六位输入数字缓存单元26H.0: 为确定键标志位26H.1:为撤销键标志位26H.2:为退格键标志位29H2FH:开关量及消抖动30H37H:显缓38H3CH:实时钟4EH,4FH:为 30s 无键按下返回子程序的存放新旧态50H56H:为利用软件延时控制单元64H,65H: 为键盘扫描的新态和旧态的存放单元进程码安排:基本时钟进程: 01H输房号进程: 10H、11H、 12H输密码进程: 13H、14H、 15H设时钟进程: 20H25H设住户开门密码: 30H35H第五章、局部程序设计说明5.1

19、入口程序初始化(包含数码管自检程序 )单片机上电后, 第一步,调用 30ms 的延时程序, 使实验板上的各个芯片都能完成复位功能, 第二步,让蜂鸣器响 1 秒以检测蜂鸣器的好坏,接着给八个数码管置亮码,驱动八个数码管全亮,检测数码管能否正常显示,第三步,对两片外扩的 8255 芯片的接口模式以及工作方式进行初始化,第四步,对显示缓冲单元以及存放时钟的单元进行初始化,以确定上电后八个数码管显示数据,第五步,将定时计数器T1 赋初值,开启定时计数中断,所赋值的初值要实现定时计数器T1 精确定时,在数码管上显示精确时钟信号,第六步,对所用到的存储单元进行初始化,例如,存放用于用户初始密码单元(1 D

20、H-1FH ),存放用于管理员初始密码单元(2DH-2FH ),数码管缓存单元(30H-37H),标志单元( 22H,23H ),循环次数存放单元(50H-56H )。5.2 拆字及显示内容送显缓子程序模块CZ:MOV A,1CH;对进程单元内容进行判断,只有(1CH)=01H 时才进行拆字CJNE A,#01H,CZN;MOV R0,#3AH ; 显示内容送显缓子程序 (拆字子程序 )。置时钟数据单元首地址 (秒单元 )MOV R1,#30H;置显示缓冲单元首地址 (对应于最右显示位 )ANL A,#0FH;保留低 4 位(个位)MOV R1,A;送显缓当前个位单元INC R1;指向显缓当前

21、十位单元ANL A,#0F0H;保留高 4 位(十位)SWAP A;交换到低 4 位MOV R1,A;送显缓当前十位单元INC R1;指向显缓下一个个位单元INC R1INC R0;指向下一个时钟数据单元CJNE R0,#3DH,CZ1;未完继续MOV 32H,#10H;32H 单元显示“ -”,对应的值为 10HMOV 35H,#10H;35H 单元显示“ -”,对应的值为 10HCZN:RET;子程序返回工作原理:只有当进程单元为01H( 为显示时钟进程 ),才进行拆字,其他进程直接把需要显示的数据送到数码管显示缓存单元(30H-37H ),拆字时,将实时钟的单元(3AH,3BH,3CH

22、)对应的各自拆完后存放于(30H,31H),(32H,33H),(34H,35H); 利用 R0 指向实时钟单元, R1 指向数码管显示缓存单元,逐次的将时钟高低字节拆开后分别存放于高低位单元。5.3 显示更新子程序模块源程序如下:DISP:MOV R0,#30H;显示更新子程序。置显示缓冲单元首地址MOV R3,#01H;字位码初值(从最右位起)MOV A,R3DISP1:MOV DPTR,#0FEFDH; 8255-B 口(字位码输出口)MOVX DPTR,A;输出当前字位码JNB 21H.5,DISP2;判断是否有输入正确管理员密码,如无跳转MOV A,R0CJNE A,5FH,DISP

23、2 ;跟 5FH中的内容比较哪位需要闪烁JB 21H.6,DISP2;判断该位要显示还是不显示MOV A,#0FFH;显示空格LJMP NEXTPCADD A,#TAB-NEXTPC ;加 TAB与 NEXTPC差址NEXTPC:MOV DPTR,#0FEFCH; 8255-A口(字段码输出口)MOVX DPTR,A;LCALL D1MS;INC R0;输出字段码保持显示 1 毫秒指向下一显示缓冲单元MOV A,#0FFH;关掉段码MOVX DPTR,AMOV A,R3;取出字位码JB ACC.7,DISP3;判已显示到最左位否RL A;未完 , 字位码左移 1 位MOV R3,A;回存新字位

24、码LJMP DISP1;转下一位的显示驱动DISP3:RETTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ; 显示字段码表。 0 9DB 0BFH,0FFH,00H;-,空格 , 全亮 工作原理: 显示模块的作用是将显示缓存的单元(30H 37H)中的内容在数码显示管上显示出来。首先将显示缓存第一个单元中的内容( 30H)的字段码送入到82C55 的 B 口,之后将右边第一位的位码送入到82C55 的 A 口,则 30H 单元中的内容可以显示在显示数码管的最左边,在利用循环控制语句就可以将30H37H 中的内容从左到右依次显示在数码管上

25、了。5.4 消抖动子程序用几个连续的单元存放最近几次的电平值,比较几个电平值,若相等则存起来与原态相比较,若新态与原态不等则认为一次电平变化。源程序清单如下:XDPB : MOV 2FH,2EH;PB口输入并消抖子程序。原新态存为前态MOV2DH,2CH;前 4 次输入的电平值前推至2AH2DH单元MOV 2CH,2BHMOV 2BH,2AHMOV 2AH,29H;29H-2FH递存MOV DPTR,#0FDFDH; 输入 PB07新电平值存 29H单元MOV 29H,A;存入首单元MOVA,2DH; 比较近 5 次输入的电平值不一致则新态照旧CJNE A,2CH,XDRCJNE A,2BH,

26、XDRCJNE A,2AH,XDRCJNE A,29H,XDR;取 29H-2CH与2DH分别比较MOV 2EH,A;递存XDR:RET;循环子程序说明:执行这条子程序时,先把前4 次输入的电平值前推至2AH2DH单元,然后从地址 0FDFDH中读取 P0 到 P7的值,然后对 29H,2AH,2BH,2CH,2DH这五个单元进行比较,只有这五个单元的内容一样时,才能把2DH中的内容存入 2EH中,这样就比较有效地避免开关量抖动的影响了。5.5有按键时发出按键声子程序AJYHANDLE: MOV A,65H;判断是否是( 65H)=10H 且( 64H) 10H,有则说明有新键按下,否则无键按

27、下直接跳出子程序CJNE A,#10H,AHHMOV A,64HCJNE A,#10H,AHHCLR P3.2DJNZ 50H, AHH;软件延时30ms,主流程大概10msMOV 50H,#3SETB P3.2AHH:RET工作原理:首先先识别有键按下,但(65H)=10H且( 64H) 10H 才是有键按下,再对蜂鸣器进行清0,利用软件延时, 50H 单元控制延时时间(主流程大约为10ms),延时 30ms。5.6无按键后 30 秒自动返回到时钟状态WCZ:MOV A,1CH;判断3AH的前后态来计时CJNE A,#01H,WCZKMOV 4DH,#30RETWCZK:MOV R6,65H

28、CJNE R6,#10H,WCZ3MOV R6,64HCJNE R6,#10H,WCZ3MOV 4EH,3AHMOV A,4EHCJNE A,4FH,WCZ1RETWCZ1:MOV 4FH,4EHDJNZ 4DH,WCZ2MOV 1CH,#01HMOV 3EH,#80HMOV P1,#0FFHWCZ3:MOV 4DH,#20WCZ2:RET工作原理:只有在非时钟显示情况下, 利用秒单元 3AH,4EH,4 FH用于存放实时钟的新旧态,当新旧态不同时,说明有1s 时间,在利用一个控制次数的4DH来控制延时时间5.7 定时器 T1 中断服务子程序 :IT1P:PUSH ACC;定时器 1 服务子程

29、序。保护现场PUSH PSWINC 38H;每 200uS 加 1MOV A,38HCJNE A,#50,DONE;满 10mS?MOV 38H,#0;200uS 计数单元清 0INC 39H;每 10mS 加 1MOV A,39HCJNE A,#100,DONE;满 1S?MOV 39H,#0;10mS 计数单元清 0MOV A,3AH;秒单元(按 BCD 码)加 1ADD A,#1DA AMOV 3AH,ACJNE A,#60H,DONE;满 1 分钟?MOV 3AH,#0;秒单元清零MOV A,3BH;分钟单元(按 BCD 码)加 1ADD A,#1DA AMOV 3BH,ACJNE A

30、,#60H,DONE;满 1 小时?MOV 3BH,#0;分钟单元清零MOV A,3CH;小时单元(按 BCD 码)加 1ADD A,#1DA AMOV 3CH,ACJNE A,#24H,DONE;满24 小时?MOV 3CH,#0;小时单元清零DONE:POP PSW;恢复现场POP ACCRETI;中断返回进行加 1.当 38H 单元满 36 时,就对 39H 单元内容加 1,同时对 38H 单元清 0,重新计数。当 39H 单元的内容满 100 时,就对 3AH 单元内容加 1,同时对 39H 单元清 0,重新计数 .当 3AH 单元的内容满 60 时,就对 3BH单元内容加 1,同时对

31、 3AH 单元清 0,重新计数 . 当 3BH 单元的内容满 60 时,就对 3CH 单元内容加 1,同时对 3BH 单元清 0,重新计数 . 当 3CH 单元的内容满 24 时,只对 3CH 单元内容清 0,回到初始继续这样循环下去。5.8 房间处理模块工作原理:对应房号输入处理的流程图如上所示,通过在不同的进程里面来判断是否是功能键 (确定键,退格键,撤消键)或者数字键(0-9 ),在 01H 进程里,是功能键时直接返回(进程改为 01H), 数字键时,将数据送到数据缓存单元 16H(进程改为 01H) ;在 10H进程里,是功能键的确定键时,直接返回,进程改为 01H,为撤消键时,直接返

32、回(进程改为 01H),为退格键时,也直接返回(进程改为 01H),为数字键时,数据往高位滚存(到达 17H),进程加 1(变为 11H)。以此,在不同进程里判断不同按键后,做出相应的动作,当进程为 12H时,按下确定键时,要注意比对房间号,比对正确就开启对讲信号灯(进程码变为 01H),为其他键时,做出其他的相应动作。5.9 密码处理子模块工作原理:密码输入流程图如上所示,它是建立在房间处理模块的基础之上,在进程为12H时,还继续输入数字键时,必为要输入用户密码或者管理员密码,一次将数字继续往高地址的数据缓存单元缓存后返回(进程码加 1)。依次下去,退格键时,直接将数据从高位往低位滚存,最低

33、位覆盖掉(进程码减1);撤消键时,直接返回(进程码为01H)。当进程为15H 时,按下确定键时,先进行用户密码的比对,相符时开启相应的对讲信号灯(进程码变为01H),不符时再进行管理员密码的核对,相符时进入时钟修改界面,不符时直接告警(进程码变为01H)后返回。5.10 时钟修改子模块工作原理:时钟修改模块流程图如上所示,也是通过在不同的进程里面进行判断相应键后作出不同的动作,在时钟修改进程(20H-25H) , 一旦确定键按下就要直接保存修改数据于数据缓存单元,按下数字键时,要在不同进程里判断输入的数据是否符合实际情况,不符时不让该位执行修改并停留在该位修改的位置,等待修改。5.10 用户密

34、码修改子模块工作原理:在设时钟进程, 20H25H, 按下确定键,则改进程为 30H,每输入 1 位数字,则进程码加1,进程为 35H时,再输 1 位数字,进程仍为 35H。进程 35H 时,按下确定键,则保存住户开门密码,进程改为设管理员密码 40H, 30H 35H时, 按下取消键则不保存退出, 进程改为 01H。第六章、系统功能与操作说明6.1 系统功能描述1总初始化自检功能: 把由 keil 软件生成的 .HEX 文件下载到实验板上单板机中,先上电等待各芯片均上电复位后自检,先是蜂鸣器响1S后关闭,U3 和 U5 芯片初始化, L8-L15 点亮, L0-L7 点亮 1S 后熄灭,数码

35、管每段全亮大约1S 检测设备是否完好。2.自检完后显示时钟初始为08:59:45,如果不进行任何操作,一直显示时钟。当你输入正确用户密码, P1.7 会亮,延时 5s 后熄灭,输入位数不符或密码不正确都会报警。密码在界面上前三位可看见,后三位看不见(用 “”表示)。也可以通过按下 P B7(外接开门按钮)来使 P1.7 亮,同样延时 5s 后熄灭。3.用键盘做输入时,按下键的瞬间,会发出短促的按键声。4.设置了取消键,按下此键无论数码管显示什么,都会返回时钟显示。5.输入正确的房间号( 12 间)会让对应的LED (对讲门铃)亮1s后熄灭,此后再按下P B6 也可使 P1.7 点亮,同样 5s

36、后会自动熄灭。没有输入正确房间号,按下P B6,P1.7 不会亮。6.当输入出错时会报警,就是蜂鸣器响1s 后停止。7.无任何操作时,经过30s会自动返回时钟显示。8.按下输管理员按键时,就可以输入管理员密码,如果输入正确,变成时钟界面,可通过键盘进行修改时间。改完时间后按确定键,如果修改正确,则进入住户开门密码参数界面,否则返回时钟继续修改。进入住户开门密码参数界面,当你通过键盘输入六位数时,再按确定键,就把你刚才输入的六位数变成了用户密码,如果不想改用户密码按取消键即可返回时钟显示。第七章、存在问题与程序改进说明问题 1:在输入按键后,只能执行一轮解决方法: 出现这种问题的主要原因是用来作标志位的存储单元在用完之后没有及时的清零,由于执行第一轮执行时,在初始化时已经将标志位清零了,所以可以正常执行,但是在后面的程序中,如果没有软件将它清零,会导致该模块一直执行,从而造成出错。所以只要在每次用完标志位

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论