基于单片机的电子密码锁设计(5)

2019-04-22 13:58

第四章 系统软件设计

因设计主要是作用汇编语言来开发的51单片机项目程序,所以首先必须有一个可以在Windows XP或Windows vista操作系统下执行的汇编语言编译器,本设计采用Keil编译器进行编程,因为它可以支持一系列的51单片机。

开初始化 旧密新密存入再次输入重模式识别按手密码输设置完毕密码比开

图4.1 主程序的流程图

4.1主程序模块

主程序主要是完成系统初始化、设置中断向量、检查有无键按下、以及调用显示等等。主程序部分如下所示:

void main() {

uchar m=0; EA=1; EX0=1;

18

IT0=0; LED=0; LED1=0;

InitLCD();//初始12864

ClearScreen(0);//清屏 SetStartLine(0);//显示开始行

while(1)

{ jianpan(); if(flag==2) {

}

if(m==3)

{ }

if(flag==1) {

}

} }

void EX_INT0() interrupt 0 { }

shizhi();

delay(2000);

4.2 键盘扫描及识别子程序

键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。其程序流程如图4.2所示

键盘部分程序如下: key:

;键盘程序名称

call ks

;调用子程序ks

19

jnz k1 jmp key

;判断是否有键按下 ;跳回键盘程序

ks:mov p1,#0f0h; mov a,p1; xrl a,#0f0h; ret;

图4.2 键盘扫描程序流程图

20

4.3系统模块密码设置子程序

由于设计是分模块化进行,所以子程序是整体软件系统的组成部分,子程序不但可以使程序化整为零,使其复杂简单化,同时也方便阅读,修改等,每个功能模块都有它自己的子程序,在本设计中是用LCD显示数据,所以就要用到显示子程序,设计中用的是矩阵键盘,所以就用到键盘扫描子程序,例如还有显示初始化子程序、LCD忙检测子程序、关闭状态显示子程序、开锁状态显示子程序、密码输入及修改状态显示子程序、密码输入错误后的提示子程序等。如下图为密码修改子程序流程图

选旧密码新密码存入缓重新再次输是否大比较密锁返

图4.3 设置密码子程序

4.4程序调试

在硬件支持的环境下,用proteus设计好的电路,Keil编好的程序编译成芯片可识别的S51文件,利用PC机写进proteus程序图芯片内进行仿真测试,并对其出现的错误进行修改,由图4.4~图4.8可看出最终调试成功。

21

图4.4 keil编译程序成功

图4.5 keil生成hex文件

图4.6 proteus调用keil的hex文件进行仿真

22


基于单片机的电子密码锁设计(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2017《医学影像诊断学》试题汇编(含答案)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: