电子密码锁毕业设计论文 下载本文

河南城建学院本科毕业设计论文 系统的软件设计

3.2 子程序的设计

3.2.1 自检子程序

开始 30H→38H 移位次数6→R0 08H→P1显示 移位 NO R0=0? YES NO (38H)=0? YES 关闭自检 返回

图3.2 自检子程序流程图

自检子程序说明:进入自检子程序后先把循环次数30 赋给38H 单元,把移位次数6 赋给R0,再把08H 赋给P2 口显示,把08H 移位后再赋给P2 口,循环6 次完成一次显示,循环显示完30 次完成自检。

13

河南城建学院本科毕业设计论文 系统的软件设计

3.2.2 键盘扫描子程序

开始 初始化 输入扫描码 YES 防抖 YES 取出键值 YES 跳转相应子程序 YES 第四列按键 NO 下一行 NO 超过四行 YES 第三列按键 NO 第二列按键 NO 第一列按键 NO

图3.3 键盘扫描子程序流程图

键盘扫描程序说明:给键盘所连接的P2 口赋扫描码,例如:MOV P2,#0FEH, 则扫描最后一行按键。写入这个扫描码后P2 口的高4 位写入“1”,被设为输入状态,低4位中只有P2.0 为“0”。而P2 口的高4 位通过按键与低4 位相连,所以此时从P2 口的高4位就可以读入低4 位的数据。与被按下的键相连接的高位口,读入的数据为“0”,其它高位口读入的为“1”从而识别出是哪一个按键

14

河南城建学院本科毕业设计论文 系统的软件设计

被按下。随后再依次对P2 口写入FDH、FBH、07H,分别扫描第三、第二、第一行,这样交替循环便可完成对4×4 键盘的扫描。

3.2.3 移位子程序

开始 (34H)→ (35H) (33H)→ (34H) (32H)→ (33H) (31H)→ (32H) (30H)→ (31H) 相应数据→(30H) 返回

图 3.4 移位子程序流程图

移位程序说明:进入移位子后就把30H 到35H 六个单元里的数据向右移一位,移位完毕后把35H 单元里的数据推出去,把30H 单元空出。

15

河南城建学院本科毕业设计论文 系统的软件设计

3.2.4 显示子程序

开始 循环次数40 →(3AH) (30H) → P2 (31H) → P2 (32H) → P2 (33H) → P2 (34H) → P2 (35H) → P2 NO 3AH减一为0? YES 返回

图 3.5 显示子程序流程图

显示程序说明:进入显示子程序后把显示次数40 次赋给3AH 单元,把30H 到35H 六个单元里的数据赋给P2 口显示完一次,显示完40 次返回。

16