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

矩阵键盘实验报告姓名佘成刚学号 2010302001班级 08041202时间 2016.01.20一、实验目的1.学习矩列式键盘工作原理;2.学习矩列式接口的程序设计。
二、实验设备普中HC6800ESV20开发板三、实验要求要求实现:用4*4矩阵键盘,用按键形式输入学号,在数码管上显示对应学号。
四、实验原理工作原理:矩阵式由行线和列线组成,按键位于行、列的交叉点上。
如图所示,一个 4*4 的行、列结构可以构成一个由 16 个按键的键盘。
很明显,在按键数量较多的场合,矩阵式键盘与独立式键盘相比,要节省很多的 I/0 口。
(1)矩阵式键盘工作原理按键设置在行、列交节点上,行、列分别连接到按键开关的两端。
行线通过下拉电阻接到 GND 上。
平时无按键动作时,行线处于低电平状态,而当有按键按下时,行线电平状态将由与此行线相连的列线电平决定。
列线电平如果为低,行线电平为高,列线电平如果为高,则行线电平则为低。
这一点是识别矩阵式键盘是否被按下的关键所在。
因此,各按键彼此将相互发生影响,所以必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。
(2)按键识别方法下面以3 号键被按下为例,来说明此键是如何被识别出来的。
前已述及,键被按下时,与此键相连的行线电平将由与此键相连的列线电平决定,而行线电平在无键按下时处于高电平状态。
如果让所有列线处于高电平那么键按下与否不会引起行线电平的状态变化,始终是高电平,所以,让所有列线处于高电平是没法识别出按键的。
现在反过来,让所有列线处于低电平,很明显,按下的键所在行电平将也被置为低电平,根据此变化,便能判定该行一定有键被按下。
但我们还不能确定是这一行的哪个键被按下。
所以,为了进一步判定到底是哪—列的键被按下,可在某一时刻只让一条列线处于低电平,而其余所有列线处于高电平。
当第 1 列为低电平,其余各列为高电平时,因为是键 3 被按下,所以第 1 行仍处于高电平状态;当第 2 列为低电平,其余各列为高电平时,同样我们会发现第 1 行仍处于高电平状态,直到让第 4 列为低电平,其余各列为高电平时,因为是 3 号键被按下,所以第 1 行的高电平转换到第 4 列所处的低电平,据此,我们确信第 1 行第 4 列交叉点处的按键即3 号键被按下。
微机原理课程设计++多功能密码锁

微机原理课程设计++多功能密码锁第一篇:微机原理课程设计++多功能密码锁微机原理课程设计报告学院:专业:班级:姓名:指导老师:设计任务:多功能密码锁目录一、设计目标二、设计要求三、整体功能描述四、硬件设计功能模块 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点亮以及数码管显示按键的编码。
通过本次实验,受益匪浅,使我对使用单片机编写算法与程序有了更深入的认识,同时丰富了课堂学习的内容,也使我更加热爱自己所学的专业。
密码锁实验报告doc

密码锁实验报告篇一:电子密码锁实验报告密码锁实验报告一,实验目的1. 学习8051定时器时间计时处理、跑马灯、按键扫描及LED数码管显示的设计方法。
2. 设计任务及要求利用实验平台上8个LED数码管,按键,跑马灯实现设置密码,密码锁的功能二,实验要求基本要求:1:用4×4矩阵键盘组成0-9数字键及确认键和删除键。
2:可以自行设定或删除8位密码。
3:用5位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开,此处用绿色led发光二极管亮一秒钟做为提示,若密码不正确,禁止按键输入3秒,同时用红色led发光二极管亮三秒钟做为提示;若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。
三,实验基本原理利用单片机定时器完成计时功能,定时器0计时中断程序每隔0.05s中断一次并当作一个计数,设定定时1秒的中断计数初值为20。
为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要译码器,数据锁存器等较多硬件,可采用动态显示法实现LED显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。
由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管看起来总是亮的,从而实现了各种显示。
四,实验设计分析针对要实现的功能,采用AT89S51单片机进行设计,AT89S51 单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash 只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结构。
这样,既能做到经济合理又能实现预期的功能。
1在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。
程序可分为闹钟的声音程序、时间显示程序、日期显示程序,秒表显示程序,时间调整程序、闹钟调整程序、定时调整程序,延时程序等。
微机原理课程设计 电子密码锁

一.课程设计的目的和任务1.设计目的1、了解和掌握8086,8255接口芯片以及LED灯的原理和功能。
2、能用这些接口芯片构建一个简单的系统控制对象。
3、掌握接口电路的综合设计与使用。
4、通过自己动手,进一步了解计算机得工作原理,接口技术,提高计算机硬件,软件综合应用能力,即对微机原理,接口技术,汇编语言程序设计进行综合训练。
2.设计任务1、选用8086和适当接口芯片完成相应的功能。
2、用LED灯显示电子锁的当前状态。
3、画出详细的硬件连接图。
4、给出程序设计思路、画出软件流程图。
5、给出所有程序清单并加上必要注释。
二、设计内容密码锁在开启之后需要置一个初始密码,之后输入密码并按确认键,在输入密码正确的条件下输出开锁电平,此时绿灯亮表示密码锁开启。
当输入密码错误时,红灯亮表示密码锁关闭状态。
可以继续输入密码并确认输入密码,直至密码正确则开启。
在密码输入正确之后还可以实现对密码的修改,修改密码之后按下确认修改密码键,修改成功。
三、方案选择及原理通过8255的24个接口实现密码输入,密码锁开关显示输出的功能。
应用8255的A 口的8位作为密码输入的8位,通过8个SWITCH开关控制,B口的其中两位分别接绿和红的LED灯作为输出表示密码锁的开关(绿灯亮表示密码正确开锁,红灯亮表示密码错误闭锁)。
C口的作为输入,使用其中两位分别接两个BUTTON开关,一个作为密码修改确认开关,一个作为密码输入确认开关。
四、所用器件CPU8086,地址锁存器273,译码器154,并行接口8255A,SWITCH开关,BUTTON 开关,LED灯。
主要器件简介CPU80868086是Inter系列的16位微处理器,芯片上有2.9万个晶体管,采用 HMOS工艺制造,用单一的+5V电源,时钟频率为5MHz~10MHz。
8086有16根数据线和20根地址线,它既能处理16位数据,也能处理8位数据。
可寻址的内存空间为1MB。
并行接口8255Intel 8086/8088 系列的可编程外设接口电路(Programmable Peripheral Interface)简称 PPI,型号为8255(改进型为8255A及8255A-5),具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路。
微机原理课题设计实验报告之矩阵式键盘数字密码锁

微机系统与应用课程设计报告班级:学号:姓名:实验地点:E楼Ⅱ区311实验时间:2013.3.4-3.9矩阵式键盘数字密码锁设计一 . 实验目的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)功能,如果用户忘记密码可向管理员求助。
单片机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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机系统与应用课程设计报告班级:学号:姓名:实验地点:E楼Ⅱ区311实验时间:2013.3.4-3.9矩阵式键盘数字密码锁设计一 . 实验目的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总线上。
如下图的接线设置五.实验器材8086CPU,可编程并行接口8255,可编程定时器8253,LCD显示屏,LED 灯,4x4矩阵键盘。
电路连接关系:1、首先将8255模块的控制总线与总线连接,并将片选CS连接至000H-007H地址空间;2、将8253模块的控制总线与总线连接,并将片选CS连接至008H-00FH地址空间;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()//键盘扫描{i nt row_va[4]={0x0e,0x0d,0x0b,0x07}; //选中每一行时的A口值u nsigned char data;u nsigned char data_tmp;S leep(200); //第一次消除抖动--每次键盘扫描的时间间隔至少为200毫秒f or(int i=0;i<4;i++,i%=4){int tmp=row_va[i];OutByte(0xde00, tmp); //循环扫描第一到四行InByte(0xde01,&data);if(data==NULL) //扫描不到的情况排除掉{}else if((data&0x0f)!=0x0f) //检测这一行是否有按键被按下{Sleep(10);//第二次消除抖动--如果10ms之后还是相同的按键就执行下面的。
InByte(0xde01,&data_tmp);data_tmp=data_tmp&0x0f;if(data_tmp!=data) continue; //否则不执行下面的while(data_tmp==data)//第三次消除抖动--判断按键是否弹起。
弹起则结束循环{InByte(0xde01,&data);data=data&0x0f;Sleep(10);if(data==0x0f){Sleep(100);InByte(0xde01,&data);data=data&0x0f;}}switch(data_tmp){case 0x0e: return value[i][0];case 0x0d: return value[i][1];case 0x0b: return value[i][2];case 0x07: return value[i][3];}}}r eturn NULL;}void displayOnLcd()//在LCD上显示*号.{u nsigned char stmp[2]="*";f or (int i=0;i<1;i++) OutByte(0xde09, stmp[i]);}int main(int argc, char* argv[]) //主函数{init8255(); //初始化8255 i nit8253();I nitLCD(); //初始化LCDS leep(100);u nsigned char temp;Start_Position://-->-->--> 起始位置----起始条件O utByte(0xde02,0xFE); //红灯亮t emp = '\0'; //指令符号p rintf("please input Open!");w hile(1){int j=0;temp = kbscan(); //获取在键盘中得到的数字printf("the key:%c\n",temp);if(temp=='O'){Mimasum=0;Clear(); //清空屏幕while(1){temp = kbscan();j++;printf("第%d次键盘扫描:%c\n",j,temp);if(isnum(temp)){if(Mimasum<6){Wodemima[Mimasum]=temp;Mimasum++;displayOnLcd(); //上屏幕LCD一个*号}}else if(isoper(temp)){if(temp=='#') //密码匹配{if(Mimasum==6){if(Newmima==true) //修改密码标志为true且原密码正确--修改密码{int i;for(i=0;i<6;i++)Mimachar[i]=Wodemima[i];Newmima=false;printf("新密码为:");for(i=0;i<6;i++){printf("%c",Mimachar[i]);}printf("\n");}else if(Equal(Mimachar,Wodemima)){if(Modify==true) //Modify为true--修改密码{Newmima=true; //把修改密码标志赋值为trueModify=false;Mimasum=0;Clear(); //清空屏幕printf("输入新密码:\n"); //提示:输入新密码}else{printf("密码正确!\n");OutByte(0xde02,0x7f); //绿灯亮Sleep(10000); //绿灯亮10SOutByte(0xde02,0xFE); //红灯亮&&绿灯灭Mimasum=0;Errorcount=0;goto Start_Position; //回到最前面}}else{Errorcount++;printf("密码错误次数%d 次!!\n",Errorcount);if(Errorcount>=3) //提示重新输入的显示{OutByte(0xde02,0xFD); //黄灯亮Sleep(1000);OutByte(0xde02,0xFF); //黄灯灭Sleep(1000);OutByte(0xde02,0xFD); //黄灯亮Sleep(1000);OutByte(0xde02,0xFF); //黄灯灭Sleep(1000);OutByte(0xde02,0xFD); //黄灯亮Sleep(1000);OutByte(0xde02,0xFE); //红灯亮&&绿灯灭Mimasum=0; //初始Errorcount=0;Clear(); //清空屏幕goto Start_Position;}else{printf("请重新输入密码:\n");}}}}else if(temp=='*'){Mimasum=0; //重新输入密码Clear(); //清空屏幕}else if(temp=='A'){Guanlisum=0;Clear(); //清空屏幕printf("请输入管理员密码:\n");while(1) //输入管理员密码{temp = kbscan();printf("one次键盘扫描:%c\n",temp);if(isnum(temp)){if(Guanlisum<8){Guanlichar[Guanlisum]=temp;Guanlisum++;displayOnLcd(); //上屏幕LCD*号}}else if(isoper(temp)){if(temp=='#'&& Guanlisum==8){int i;for(i=0;i<8;i++){i f(Guanlikey[i]!=Guanlichar[i]) return 0;}Mimachar[0]='1';Mimachar[1]='2';Mimachar[2]='3';Mimachar[3]='4';Mimachar[4]='5';Mimachar[5]='6';printf("密码初始化完成.\n");Guanlisum=0;Mimasum=0;Errorcount=0;Modify=false;Newmima=false;goto Start_Position; //回到开始}else if(temp=='*'){Guanlisum=0;Clear(); //清空屏幕}}}}else if(temp=='M'){Modify=true;Mimasum=0;Clear();printf("请输入原密码:\n");}}}}}实用标准文案文档c out<<endl;e nd8255();// CloseDevice(); r eturn 0;}八. 实验心得通过这次微机课题设计实验,使我学到了不少实用的知识,更重要的是做实验的过程,思考问题的方法,这与其他的实验师通用的,真正使我受益匪浅。