微机课程设计--小区楼道开门控制系统(编辑修改稿)内容摘要:

9 总体软件设计说明 总初始化 : 主要由自检包括蜂鸣器, L0L15LED 灯,还有八位 LED7 段数码管。 还有 U3, U5 芯片的初始化,和一些要用到的单元进行初始化。 拆字 及 显示 内容送显缓 子程序 : 对要进行显示的内容进行拆字, 当为基本进程( 01H)让实时钟 3AH、 3BH、 3CH 单元进行拆字,为其他进程时,不进行拆字,直接把需显示的内容直接送给数码管显示缓存单元。 键盘扫描子程序: 利用反转法得键码再进行查表得出对应的键号,还有按下数字键做出相应事情,按下功能键置某位以便识别。 按键声处理子程序 :当检测到有按键按下时,会发出短促的声音。 定时器 T0 中断服务子程序: 此字程序是对时间进行计时,以致能时钟显示 调用房间处理子程序 : 当 输入数据为三位以内的时候,需要将数据按移位的顺序将数字存入数据缓存单元,并完全在数码管上显示数据,等到输入数 据为三位时,要进行跟房号( 101601,102602)对比 , 正确时要开启对讲信号灯,此时也有可能是密码输入的前三位。 调用密码处理子程序 : 当输入数据位大于三位时,即为输入密码状态,在此过程中,要对不同的进程下,对功能键(确定,撤销,退格)和数字键进行识别,并作出不同的处理动作。 只有在输入为六位时,才进行先用户密码后管理员密码的比对 ,符合用户密码,作出开启开门信号控制灯,为管理员密码时,为时钟修改做准备。 显示更新子程序: 三种显示状态:正常显示时钟,闪烁显示某位其它照常显示,对输入的数字进行显示。 有显示一 位数字,一直到能显示六位数字,其中前三位可以直接看见,后三位看不见真正的数字,只显示“ ”符号(直接将要显示的内容先存储在数据缓存单元,在送到数码管显示缓冲单元)。 《微机应用设计与实践》课程设计 10 调用时钟修改子程序 : 当密码比对为管理员密码时,先进入时钟修改界面进行时钟修改,而后进行用户密码修改。 对 PB 口输入并消抖子程序 : 对 PB 口的输入进行滚动消抖,就是按下按钮后,只有检测到五次地电平数据都相等时,才把这次电平存入新态 2EH 中,2EH 单元的内容推进前态 2FH 单元中。 独立按键 PB07 的检测且对应控制门控位 子程序 : 设置为 PB 为按下时为有 效,且当相应的房号输入正确后,按下相应的 PB 按键时开启开门控制灯。 非基本时钟显示界面 无操作 30S 返回子程序 : 无按键操作时,无论数码管显示什么,不为时钟显示时,只要延时 30s 后,自动会返回时钟显示。 报警子程序 : 由于该子程序较小,故直接放在以上需要报警的子程序里面。 第 四章、 系统资源分配说明 硬件资源分配 本次课程设计 小区楼道开门控制系统 的硬件电路主要由键盘输入模块,数码管显示控制模块, LED 灯显示模块,蜂鸣器模块组成。 根 据实验电路板来设计各个模块的资源分配,使用一片 AT89C51 芯片作为主驱动的芯片,并使用 82C55 芯片对 I/O 引脚进行扩展,由 82C55 的 C 口(地址为 FEFE)作为键盘的输入模块,由 82C55 的 A 口(地址为 FEFC)字段码输入口和 B 口(地址为 FEFD)字位码输入口共同组成数码管显示控制模块,由89C51 的 P1 口作为 LED 灯的显示模块,由 作为蜂鸣器的驱动模块。 《微机应用设计与实践》课程设计 11 硬件资源分配 名称 实现的功能 房间号对应的 LED 灯 PB0 PB5 住户开门按键 LED 灯 房间号 PB7 外接开门按钮 L0 101 K0 输入 0 L1 201 K1 输入 1 L2 301 K2 输入 2 L3 401 K3 输入 3 L4 501 K4 输入 4 L5 601 K5 输入 5 L7 开门信号指示灯 K6 输入 6 L8 102 K7 输入 7 L9 202 K8 输入 8 L10 302 《微机应用设计与实践》课程设计 12 K9 输入 9 L11 402 KA 确定键 L12 502 KB 撤消 键 L13 602 KC 退格键 接蜂鸣器 键盘 表 AT89C51 片内的数据存储空间的范围是 00H7FH,其中 00H1FH 为 4 组通用工作寄存器区, 20H2FH 的 16 个单元的 128位可进行位寻址, 30H7FH 为用户的 RAM 区,所以,选择 29H2FH 作为滚动滤波的地址单元 1CH:存放进程单元 1DH,1EH,1FH:为用户密码存储单元 2DH,2EH,2FH:为管理员密码存储单元 22H:为 101~ 601 各用户对讲标志位 23H:为 102~ 602 各用户对讲标志位 16H ~ 1BH: 六位输入数字缓存单元 :为确定键标志位 : 为撤销键标志位 : 为退格键标志位 29H~ 2FH:开关量及消抖动 30H~ 37H:显缓 38H~ 3CH:实时钟 4EH,4FH:为 30s 无键按下返回子程序的存放新旧态 50H~ 56H:为利用软件延时控制单元 64H,65H:为键盘扫描的新态和旧态的存放单元 进程码安排: 0 1 2 3 4 5 6 7 8 9 确定 撤销 退格 无 无 无 《微机应用设计与实践》课程设计 13 基本时钟进程: 01H 输房号进程: 10H、 11H、 12H 输密码进程: 13H、 14H、 15H 设时钟进程: 20H~ 25H 设住户开门密码: 30H~ 35H 第 五章、 局 部程序设计说明 ( 包含 数码管自检程序 ) 单片机上电后,第一步,调用 30ms 的延时程序,使实验板上的各个芯片都能完成复位功能,第二步,让蜂鸣器响 1 秒以检测蜂鸣器的好坏,接着给八个数码管置亮码,驱动八个数码管全亮,检测数码管能否正常显示,第三步,对两片外扩的 8255 芯片的接口模式以及工作方式进行 初始化,第四步,对显示缓冲单元以及存放时钟的单元进行初始化,以确定上电后八个数码管显示数据,第五步,将定时计数器 T1 赋初值,开启定时计数中断,所赋值的初值要实现定时计数器 T1 精确定时,在数码管上显示精确时钟信号,第六步,对所用到的存储单元进行初始化,例如,存放用于用户初始密码单元( 1 DH1FH),存放用于管理员初始密码单元( 2 DH2FH), 数码管缓存单元 ( 30H37H),标志单元( 22H,23H),循环次数存放单元( 50H56H)。 模块 CZ:MOV A,1CH。 对进程单元内容进行判断,只有 (1CH)=01H 时才进行拆字 CJNE A,01H,CZN。 MOV R0,3AH。 显示内容送显缓子程序 (拆字子程序 )。 置时钟数据单元首地址 (秒单元 ) MOV R1,30H。 置显示缓冲单元首地址 (对应于最右显示位 ) CZ1:MOV A,@R0。 取当前数据单元 BCD 码 ANL A,0FH。 保留低 4 位(个位) MOV @R1,A。 送显缓当前个位单元 INC R1。 指向显缓当前十位单元 MOV A,@R0。 再取当前数据单元 BCD 码 ANL A,0F0H。 保留高 4 位 ( 十位 ) SWAP A。 交换到低 4 位 MOV @R1,A。 送显缓当前十位单元 INC R1。 指向显缓下一个个位单元 INC R1 INC R0。 指向下一个时钟数据单元 《微机应用设计与实践》课程设计 14 CJNE R0,3DH,CZ1。 未完继续 MOV 32H,10H。 32H 单元显示“ ”,对应的值为 10H MOV 35H,10H。 35H 单元显示“ ”,对应的值为 10H CZN:RET。 子程序返回 工作原理 : 只有当进程单元为 01H(为显示时钟进程 ),才进行拆字,其他进程直接把需要显示的数据送到数码管显示缓存单元( 30H37H) ,拆字时,将实时钟 的 单 元 ( 3AH,3BH,3CH ) 对 应 的 各 自 拆 完 后 存 放 于(30H,31H),(32H,33H),(34H,35H)。 利用。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。