微机原理课题设计实验报告之矩阵式键盘数字密码锁

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微机系统与应用课程设计报告

班级:

学号:

姓名:

实验地点:E楼Ⅱ区311

实验时间:

矩阵式键盘数字密码锁设计

一 . 实验目的

1.掌握微机系统总线与各芯片管脚连接方法,提高接口扩展硬件电路的连

接能力。

2.初步掌握键盘扫描,密码修改和计时报警程序的编写方法。

3.掌握通过矩阵式键盘扫描实现密码锁功能的设计思路和实现方法。二.实验内容

矩阵式键盘数字密码锁设计,根据设定好的密码,采用4x4矩阵键盘实现密码的输入功能。当密码输入正确之后,锁就打开(绿灯亮),10秒之后,锁自动关闭(红灯亮);如果连续输入三次密码不正确,就锁定按键5秒钟,同时发出报警(黄灯闪),5秒后,解除按键锁定,恢复密码输入。

数字密码锁操作键盘参考上面设定,也可以自行设计键盘。用户初始密码为“123456”,系统加电运行后,密码锁初始状态为常闭(红灯亮),用户可以选择开锁或修改密码:

如果选择开锁就按“Open”键,系统提示输入密码,输入用户密码+“#”键后,如果密码正确,就打开锁(绿灯亮),系统等待10秒,然后重新关闭密码锁,若密码错,提示重新输入,连续三次错误,提示警告词同时报警(黄灯闪),锁定键盘5秒,然后重新进入初始状态;

如果选择修改密码就按”Modify Secret”键,系统提示输入旧密码,输入旧密码+“#”键后,如果正确,系统提示输入新密码,输入新密码+“#”后,新密码起效,重新进入初始状态;如果旧密码错,不能修改密码,密码锁直接进入初始状态。

三.实验基本任务

1)具有开锁、修改用户密码等基本的密码锁功能。

2)对于超过3次密码密码错误,锁定键盘5秒,系统报警。5秒后解除锁定。

4)通过LCD字符液晶和LED指示灯(红,绿,黄)实时显示相关信息。

5)用户密码为6位数字,显示采用“*”号表示。

6)码锁键盘设计合理,功能完善,方便用户使用。

本次实验还做了附加的任务

( 1)增加了管理员(Admin)功能,如果用户忘记密码可向管理员求助。管理员密码为8位数字(系统内预先已设定),管理员按“Admin”键后,系统提示输入管理员密码,输入管理员密码+“#”键后,如果正确,系统自动恢复用户初始

密码为“123456”;如果错误,程序停止运行,系统退出。

2)增加了输入清除功能(*),在输入密码过程中,如果中途按下“*”键,则清除前面的输入,开始重新输入密码。(2)增加组合键(Shift )功能,使系统的密码选择范围除数字外,另外增加

3)a,b,c,d,e,f,g,h,i,j 等10个字母。数字直接输入,字母“Shift ”+“字母”。 四 . 实验设计方案

实验用到8255作为并行接口设备,用以ISA 总线与外设的连接,本次用的是8255的A 口作为输出口,C 口的高4位与B 口是输入,C 口低4位是输出口,所以控制住设置为ox8a ,8253作为时钟器,作为控制提示灯的时间闪烁,8255的A 口接键盘的rom ,B 口接col ,地址线都连接在总线下面的芯片上接口,其他的读写控制线都接入ISA 总线上。 如下图的接线设置

LED 灯,4x41、 连接至2、 3、 将DRV 模块JS8(CS)连接至0010H-0017H 地址空间;

4、 将LCD 模块的控制总线与总线连接,并将片选CS 接至018H-01FH 地址空间;

5、 8255和键盘的连线,他们之间的连接关系如下:

6、8255和TRL的连线,他们之间的连接关系如下:

7、时钟源的/64同8253的CLK0连接。

8、8253的OUT0同JS7的B0连接。

9、8253的GATE0同JS3的K7连接。(高电平选通)

六.程序流程图

其中软硬件初始化流程如图1所示

图1. 初始化流程密码锁程序运行流程如图2所示

图2 密码锁程序流程其中密码输入模块详细流程如图3

图3. 输入模块流

七.主要代码

unsigned char kbscan(){

u nsigned char stmp[2]="*";

f or (int i=0;i<1;i++) OutByte(0xde09, stmp[i]);

}

int main(int argc, char* argv[]) n");

Guanlisum=0;

Mimasum=0;

Errorcount=0;

Modify=false;

Newmima=false;

goto Start_Position; 实验心得通过这次微机课题设计实验,使我学到了不少实用的知识,更重要的是做实验的过程,思考问题的方法,这与其他的实验师通用的,真正使我受益匪浅。

在做实验之前,我没有完全将课本上的理论知识掌握透彻,但在老师的讲解中,以及实践中对这些知识的理解有了很大一步的掌握。对汇编语言的编程和微机系统的芯片有了比较深刻的认识。

相关文档
最新文档