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

数字电路课程设计设计报告课题名称:密码锁设计成员1:王家口设计成员2:张清海设计成员3:王海鹏密码锁目录1、设计项目综述 (2)1.1设计任务 (2)1.2任务和要求 (2)2、设计方案及分析 (3)2.1设计方案及方案比较 (3)2.2程序框图 (4)2.3实际电路图 (4)3、总结 (5)3.1设计中遇到的问题及解决方法 (5)3.2设计方案中需要改进的地方 (6)3.3这次设计中的收获和教训 (5)简易电子密码锁的设计一、设计项目综述:1、1、设计任务设计一个六位密码的数字密码锁。
1、2、任务和要求(1)重置密码功能:能实现密码锁重新设置新密码。
(2)密码开锁功能:模拟出输入正确密码后,密码锁能顺利打开,可利用指示灯或声音来表示。
(3)警报功能:要求实现密码开锁时,连续输入3次错误密码后,开启警报。
二、设计方案及分析2、1设计方案及方案比较数电1、第一方案用JK触发器和双联开关组成,要按顺序输入密码,但其密码修改电路机械化,且开关过多,连线较多,操作较繁琐。
2、第二方案用74HC573锁存器为密码设定电路和修改电路,这方案可以便捷地设定密码和修改密码,但密码的输入要用到8个控制开关且密码输入不分顺序。
3、第三方案用74ls194芯片接成的移位寄存器,但用到脉冲信号。
考虑到复杂程度、密码锁的精确性和器材配置单片机4、第四方案设计方案:本设计采用10f04xe单片机作为核心,包括矩阵键盘接口电路、密码锁的控制电路和输出显示电路等三部分。
键盘部分包括键盘扫描时序产生电路;键盘扫描;弹跳消除;键盘译码;按键存储。
程序控制包括数字按键的数字输入;存储及清除;功能按键的功能设计;移位寄存器的设计与控制;密码清除、变更、存储;激活开锁电路;密码核对;解除电锁电路。
输出显示电路的设计:LCD显示。
(1)密码数据输入:每按一个数字键,在显示器上显示一个“-”最多可设置6位密码。
(2)密码设置:每按一个数字键,就输入一个数值,并在显示器上的最右方显示出该数值,并将先前已经输入的数据依序左移一个第3页共6页数字位置。
微机原理课程设计++多功能密码锁

微机原理课程设计++多功能密码锁第一篇:微机原理课程设计++多功能密码锁微机原理课程设计报告学院:专业:班级:姓名:指导老师:设计任务:多功能密码锁目录一、设计目标二、设计要求三、整体功能描述四、硬件设计功能模块 1.键盘 2.中断控制 3.计时 4.按键响应 5.报警 6.储存器及片选 7.整机电路五、程序流程图六、程序清单七、设计总结一、设计目标1.密码锁在输入密码正确的条件下输出开锁电平,控制电控锁开启,同显示O字样。
2.当输入密码错误时,发出错误警告声音,同时显示C字样。
3.当六次误码输入的条件下,产生报警电平报警。
4.还可以实现对密码的修改,修改成功后,蜂鸣器发出确认音。
二、设计要求1、选用8088和适当的存储器及接口芯片完成相应的功能。
2、用LED显示器显示电子锁的当前状态。
3、画出详细的硬件连接图。
4、给出程序设计思路、画出软件流程图。
5、给出地址分配表。
6、给出所有程序清单并加上必要注释。
7、完成设计说明书(列出参考文献,所用器件型号)。
三、整体功能描述本设计为多功能密码锁,使用存储器保存密码防止断电后密码丢失。
工作时按下按键蜂鸣器会发出声音提示按键有效并在数码管有“--”闪烁字样,若相隔1分钟无按键按下,则清零。
在输入密码正确的条件下输出开锁电平,控制电控锁开启,同时显示O字样。
开锁后可按下“复位/修改密码键”实现修改密码功能的转入,之后先输入密码再输入同样的密码确认才可成功修改,修改成功后蜂鸣器会发出三声,数码管“O”闪烁三次提示修改密码成功。
当输入密码错误时,发出错误警告声音,同时显示FF字样,当输入密码错误次数累积够6次后,蜂鸣器会产生90秒的报警声响进行报警。
四、硬件设计功能模块本设计使用了8088、8259A、8255、8253、A28F512、74LS138、74LS148、地址锁存器、数码管以及74系列逻辑门、蜂鸣器、开关等芯片与元器件,实现了键盘输入、中断控制、计时、按键响应、开锁及报警等功能模块。
单片机 矩阵键盘实验 实验报告

单片机矩阵键盘实验实验报告一、实验目的本次实验的目的是掌握原理和方法,利用单片机识别矩阵键盘并编程实现键码转换功能,控制LED点亮显示。
二、实验原理矩阵键盘是一种由多路单向控制器输入行选择信号与列选择信号连接而形成的一一对应矩阵排列结构。
它广泛应用于电子游戏机、办公自动化设备、医疗仪器、家电控制及书籍检索机器等方面。
本次实验采用的矩阵键盘是一个4 x 4矩阵,用4段数码管显示按键编码,每个按键都可以输入一个代码,矩阵键盘连接单片机,实现一个软件算法来识别键码转化。
从而将键盘中的按键的按下信号转换成程序能够识别的代码,置于相应的输出结果中,控制LED点亮,从而可以实现矩阵键盘按键的转换功能。
三、实验方法1.硬件搭建:矩阵键盘(4行4列)与单片机(Atmel AT89C51)相连,选择引脚连接,并将数码管和LED与单片机相连以实现显示和点亮的功能。
2.程序设计:先建立控制体系,利用中断服务子程序识别和码值转换,利用中断服务子程序实现从按键的按下信号转换为程序能够识别的代码,然后将该代码段编写到单片机程序中,每次按下矩阵键盘按键后单片机给出相应的按键编码输出,用数码管显示,控制LED点亮。
四、实验结果经过实验,成功实现了矩阵键盘与单片机之间的连接,编写了中断服务子程序,完成了按键编码输出与LED点亮的功能。
实验完成后,数码管显示各种按键的编码,同时LED会点亮。
本次实验介绍了矩阵键盘的原理,论述了键码转换的程序设计步骤,并实验完成矩阵键盘与单片机的连接,实现用LED点亮以及数码管显示按键的编码。
通过本次实验,受益匪浅,使我对使用单片机编写算法与程序有了更深入的认识,同时丰富了课堂学习的内容,也使我更加热爱自己所学的专业。
单片机c语言程序设计---矩阵式键盘实验报告

单片机c语言程序设计---矩阵式键盘实验报告课程名称:单片机c语言设计实验类型:设计型实验实验项目名称:矩阵式键盘实验一、实验目的和要求1.掌握矩阵式键盘结构2.掌握矩阵式键盘工作原理3.掌握矩阵式键盘的两种常用编程方法,即扫描法和反转法二、实验内容和原理实验1.矩阵式键盘实验功能:用数码管显示4*4矩阵式键盘的按键值,当K1按下后,数码管显示数字0,当K2按下后,显示为1,以此类推,当按下K16,显示F。
(1)硬件设计电路原理图如下仿真所需元器件(2)proteus仿真通过Keil编译后,利用protues软件进行仿真。
在protues ISIS 编译环境中绘制仿真电路图,将编译好的“xxx.hex”文件加入AT89C51。
启动仿真,观察仿真结果。
操作方完成矩阵式键盘实验。
具体包括绘制仿真电路图、编写c源程序(反转法和扫描法)、进行仿真并观察仿真结果,需要保存原理图截图,保存c源程序,总结观察的仿真结果。
完成思考题。
三、实验方法与实验步骤1.按照硬件设计在protues上按照所给硬件设计绘制电路图。
2.在keil上进行编译后生成“xxx.hex”文件。
3.编译好的“xxx.hex”文件加入AT89C51。
启动仿真,观察仿真结果。
四、实验结果与分析void Scan_line()//扫描行{Delay(10);//消抖switch ( P1 ){case 0x0e: i=1;break;case 0x0d: i=2;break;case 0x0b: i=3;break;case 0x07: i=4;break;default: i=0;//未按下break;}}void Scan_list()//扫描列{Delay(10);//消抖switch ( P1 ){case 0x70: j=1;break;case 0xb0: j=2;break;case 0xd0: j=3;break;case 0xe0: j=4;break;default: j=0;//未按下break;}}void Show_Key(){if( i != 0 && j != 0 ) P0=table[ ( i - 1 ) * 4 + j - 1 ];else P0=0xff;}五、讨论和心得。
矩阵式键盘设计实训报告

一、实验目的1. 掌握矩阵式键盘的工作原理及电路设计方法。
2. 熟悉单片机与矩阵键盘的接口连接及编程技巧。
3. 提高动手实践能力,培养创新意识。
二、实验设备1. 单片机实验平台2. 矩阵键盘模块3. 数字多用表4. 编译器(如Keil51)5. 连接线三、实验原理矩阵键盘是一种常用的键盘设计方式,通过行列交叉点连接按键,从而实现多个按键共用较少的I/O端口。
矩阵键盘通常采用逐行扫描的方式检测按键状态,当检测到按键按下时,根据行列线的电平状态确定按键位置。
四、实验内容1. 矩阵键盘电路设计2. 矩阵键盘编程3. 矩阵键盘测试与调试五、实验步骤1. 电路设计(1)根据矩阵键盘的规格,确定行线和列线的数量。
(2)将行线和列线分别连接到单片机的I/O端口。
(3)在行线上串联电阻,防止按键抖动。
(4)连接电源和地线。
2. 编程(1)初始化单片机的I/O端口,将行线设置为输出,列线设置为输入。
(2)编写逐行扫描程序,逐行拉低行线,读取列线状态。
(3)根据行列线状态判断按键位置,并执行相应的操作。
3. 测试与调试(1)将编写好的程序下载到单片机中。
(2)连接矩阵键盘,观察按键是否正常工作。
(3)使用数字多用表检测行列线电平,确保电路连接正确。
(4)根据测试结果,对程序进行调试,直到矩阵键盘正常工作。
六、实验结果与分析1. 电路连接正确,按键工作正常。
2. 逐行扫描程序能够正确检测按键位置。
3. 按键操作能够触发相应的程序功能。
七、实验总结1. 通过本次实训,掌握了矩阵式键盘的工作原理及电路设计方法。
2. 熟悉了单片机与矩阵键盘的接口连接及编程技巧。
3. 提高了动手实践能力,培养了创新意识。
八、心得体会1. 在实验过程中,遇到了电路连接错误和程序调试困难等问题,通过查阅资料、请教老师和同学,最终成功解决了问题。
2. 本次实训让我深刻体会到理论知识与实际操作相结合的重要性,同时也认识到团队合作的重要性。
九、改进建议1. 在电路设计过程中,可以考虑增加去抖动电路,提高按键稳定性。
课程设计报告矩阵键盘控制[1](1)
](https://img.taocdn.com/s3/m/53226ded5ef7ba0d4a733bb6.png)
忻州师范学院《EDA技术综合性设计》课程设计报告报告题目:矩阵键盘控制接口设计所在系部:电子系所在专业:电子信息科学与技术所在班级:电本0803班姓名:徐丽娜200807211163闫爱红 200807211164武艳红200807211165贺吉盛200807211166指导教师姓名:任国凤完成时间:2011.05.26目录一概述 (3)二方案设计与论证 (3)三单元电路设计 (4)1.键盘接口消抖动元件 (4)2.时钟产生电路 (5)3.键盘扫描电路 (5)4.键盘译码电路 (5)5.寄存器_选择器模块电路 (5)6.译码模块电路 (6)四器件编程与下载 (6)五性能测试与分析 (7)六实验设备 (8)七心得体会 (8)八参考文献 (8)九附录 (9)一、概述本课程设计的基本原理是在时钟信号的控制下,使数码管上显示所按下的键值,并且能够保持直到下一个按键被按下。
首先,构思一个8×4的矩阵键盘控制顶层电路的模块划分图兼端口及内部信号定义图,再用VHDL语言编辑文本程序,需先录入底层文件(键盘接口消抖动元件DEBOUNCING的描述)再录入键盘接口电路主程序,保存编译并检查程序是否有语法错误,再仿真观察波形是否符合所预期的设计要求,当一切都满足要求后,即可将程序下载到实验箱的FLEX10K \ EPF10K10LC84-4芯片中。
正确的将脉冲源、FLEX10K \ EPF10K10LC84-4芯片、5行×6列薄膜轻触按键键盘、数码管按设计要求连接好。
再将程序下载到实验箱的FLEX10K \ EPF10K10LC84-4芯片中,则可观察到预期的实验效果,即当按下某一键时,在数码管上显示该键对应的键值。
如:当按下5时,数码管显示05。
本课程设计需设计键盘接口消抖动元件(底层文本)和矩阵键盘接口电路(顶层文本)。
在顶层文本中包含扫描信号发生模块、按键消抖动模块、按键译码模块、寄存器-选择器模块和数码管的译码模块。
矩阵键盘设计实验报告

矩阵键盘设计实验报告
矩阵键盘是一种特殊的电子输入设备,其特殊性在于每个按键可以仅由几根线连接而成。
这可以将按键尺寸缩小,同时也减少了接線复杂度。
在本次实验中,我们设计了一个4*4的矩阵键盘。
矩阵键盘的外型是4 *4的按键,其中每个按键由一个PIN组成,连接起来分别连接在一个不同的ROW与COL上。
在使用矩阵键盘时,我们将其连接到一台电脑上,通过电脑程序监视每行每列的通断状态,当一行或者一列被按下,程序会自动捕捉,来表示一个字符或者code.
首先,我们先准备一台电脑,再连接矩阵键盘的各个PIN,用8个信号线将矩阵键盘连接到单片机,再用USB线将单片机连接到电脑上,使用PL 2303驱动链接矩阵键盘和电脑终端。
单片机负责捕获ROW和COL的信号,计算并识别矩阵键盘的按键,将计算出的字符发送至电脑终端,进行小程序的检测。
在电脑端,我们使用Apple系统的终端运行.bash,编写简单的shell脚本实现对矩阵键盘信号识别。
脚本将不断检测矩阵键盘信号状态,根据捕捉到的ROW和COL信号,将其映射出字符信息,在一定时间内输出至终端。
在实验的最后,我们检验了所设计的矩阵键盘是否符合预期效果。
通过代码发送进行按键操作,能检测到正确的字符,表明矩阵键盘的设计及实现满足要求。
本次实验可以作为以后矩阵键盘的参考,深入研究程序软件,提高实验效率。
实验七 矩阵式键盘

实验七矩阵式键盘一、实验目的1.掌握矩阵式键盘处理的方法。
二、实验内容1.用4×4键盘的键值定义为0~15,并在二位LED数码管上动态显示出来。
三、实验步骤说明用4×4键盘的键值定义为0~15,并在二位LED数码管上动态显示出来。
1) 硬件P0口为字形码,P2口为字选码。
P1控制键盘,其中P1.0~P1.3为输出扫描码,P1.4~P1.7为回复码。
2)程序框架定义函数和数组void DelayMS(uchar x) ;// 延时子程序void Display(uchar y); // 显示子程序uchar keys();// 求键值子程序uchar keyno();//判断是否有键按下uchar code DSY_CODE[] = {0x28, 0x7e, 0xa2, 0x62, 0x74, 0x61, 0x21, 0x7a, 0x20, 0x60};uchar key_value=99;//按键键值//-----------------------------------------------------------------// 主程序//-----------------------------------------------------------------void main(){while(1){设置P1.0~P1.3为输入口全1,P1.4~P1.7为列值,置全0。
调显示函数,显示键值key_value如果有键按下调键值函数并赋给key_value}}//-----------------------------------------------------------------// 延时子程序//-----------------------------------------------------------------void DelayMS(uchar x){}//-----------------------------------------------------------------// 显示子程序//-----------------------------------------------------------------void Display(uchar y){显示黑屏;显示十位延时显示黑屏;显示个位延时}//-----------------------------------------------------------------// 判断是否有键按下子程序,没有返回0,有返回1//-----------------------------------------------------------------uchar keyno(){}//-----------------------------------------------------------------uchar keys();// 求键值子程序,返回键值//-----------------------------------------------------------------uchar keys(){设置P1.0~P1.3为输入口全1,P1.4~P1.7为列值,置全0。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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; 实验心得通过这次微机课题设计实验,使我学到了不少实用的知识,更重要的是做实验的过程,思考问题的方法,这与其他的实验师通用的,真正使我受益匪浅。
在做实验之前,我没有完全将课本上的理论知识掌握透彻,但在老师的讲解中,以及实践中对这些知识的理解有了很大一步的掌握。
对汇编语言的编程和微机系统的芯片有了比较深刻的认识。