简单六位数字密码锁

合集下载

简易电子密码锁(基于51单片机)报告

简易电子密码锁(基于51单片机)报告

简易电子密码锁设计&我的设计思想联想到日前在安全技术防范领域,具有防盗报警功能的电子密码控制系统逐渐代替传统的机械式密码控制系统,并结合近期的学习过程和一些参考书籍,完成了简易的电子密码锁设计学习。

电子密码控制是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。

电子密码控制不论性能还是安全性都已大大超过了机械类结,具有良好的应用前景。

一、设计目的与内容设计了一个简易电子密码锁,可按要求从矩阵键盘输入6位数密码如“080874”,输入过程中有按键音提示。

当密码输入正确并按下确认键(“OK”键)后,发光二极管被点亮。

二、工作原理与基本操作过程介绍采用80C51为核心的单片机控制。

利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,进行电子密码锁的设计。

(1)键盘的人工编码给每个按键指定一个按键值,报告设定按键S1~S9对应的按键值分别为“1~9”,S10为数字“0”,S11为“OK”,S12~S16对应的按键值分别为12~16。

(2)根据按键值,指定每个按键对应的输入数字和信息。

如下表为每个按键代表的数字和输入信息。

当键盘扫描程序扫描到S10键被按下时,将其代表的按键值“0”通知CPU,CPU根据事先的规定,就会知道输入的数字是“0”。

矩阵键盘中每个按键所代表的数字和输入信息(3)输入数字和密码对比。

先将设定的密码用一个数组保存,报告中用的密码“080874”和“OK”确认信息可以用如下数组保存:Unsigned char D[ ]={0,8,0,8,7,4,11};在主程序接收到数字和信息后,通过逐位对比的方法进行判断。

输入的数字经对比正确时,程序才会继续顺序执行,否则,程序拒绝继续执行。

(4)执行预期功能。

如果输入密码正确,执行预期功能,报告设计为点亮P3.0口引脚LED。

三、电路图设计(Proteus绘制)四、程序设计(C语言)矩阵式键盘实现的电子密码锁程序#include<reg51.h> //包含51单片机寄存器定义的头文件sbit P14=P1^4; //将P14位定义为P1.4引脚sbit P15=P1^5; //将P15位定义为P1.5引脚sbit P16=P1^6; //将P16位定义为P1.6引脚sbit P17=P1^7; //将P17位定义为P1.7引脚sbit sound=P3^7; //将sound位定义为P3.7unsigned char keyval; //储存按键值/************************************************************** 函数功能:延时输出音频**************************************************************/ void delay(void){unsigned char i;for(i=0;i<200;i++);}/************************************************************** 函数功能:软件延时子程序**************************************************************/ void delay20ms(void){unsigned char i,j;for(i=0;i<100;i++)for(j=0;j<60;j++);}/************************************************************** 函数功能:主函数**************************************************************/ void main(void){unsigned char D[ ]={0,8,0,8,7,4,11}; //设定密码EA=1; //开总中断ET0=1; //定时器T0中断允许TMOD=0x01; //使用定时器T0的模式1TH0=(65536-500)/256; //定时器T0的高8位赋初值TL0=(65536-500)%256; //定时器T0的高8位赋初值TR0=1; //启动定时器T0keyval=0xff; //按键值初始化while(keyval!=D[0]) //第一位密码输入不正确,等待;while(keyval!=D[1]) //第二位密码输入不正确,等待;while(keyval!=D[2]) //第三位密码输入不正确,等待;while(keyval!=D[3]) //第四位密码输入不正确,等待;while(keyval!=D[4]) //第五位密码输入不正确,等待;while(keyval!=D[5]) //第六位密码输入不正确,等待;while(keyval!=D[6]) //没有输入“OK”,等待;P3=0xfe; //P3.0引脚输出低电平,点亮LED}/**************************************************************函数功能:定时器0的中断服务子程序,进行键盘扫描,判断键位**************************************************************/void time0_interserve(void) interrupt 1 using 1 //定时器T0的中断编号为1,使用第一组寄存器{unsigned char i;TR0=0; //关闭定时器T0P1=0xf0; //所有行线置为低电平“0”,所有列线置为高电平“1”if((P1&0xf0)!=0xf0) //列线中有一位为低电平“0”,说明有键按下delay20ms(); //延时一段时间、软件消抖if((P1&0xf0)!=0xf0) //确实有键按下{P1=0xfe; //第一行置为低电平“0”(P1.0输出低电平“0”)if(P14==0) //如果检测到接P1.4引脚的列线为低电平“0”keyval=1; //可判断是S1键被按下if(P15==0) //如果检测到接P1.5引脚的列线为低电平“0”keyval=2; //可判断是S2键被按下if(P16==0) //如果检测到接P1.6引脚的列线为低电平“0”keyval=3; //可判断是S3键被按下if(P17==0) //如果检测到接P1.7引脚的列线为低电平“0”keyval=4; //可判断是S4键被按下P1=0xfd; //第二行置为低电平“0”(P1.1输出低电平“0”)if(P14==0) //如果检测到接P1.4引脚的列线为低电平“0”keyval=5; //可判断是S5键被按下if(P15==0) //如果检测到接P1.5引脚的列线为低电平“0”keyval=6; //可判断是S6键被按下if(P16==0) //如果检测到接P1.6引脚的列线为低电平“0”keyval=7; //可判断是S7键被按下if(P17==0) //如果检测到接P1.7引脚的列线为低电平“0”keyval=8; //可判断是S8键被按下P1=0xfb; //第三行置为低电平“0”(P1.2输出低电平“0”)if(P14==0) //如果检测到接P1.4引脚的列线为低电平“0”keyval=9; //可判断是S9键被按下if(P15==0) //如果检测到接P1.5引脚的列线为低电平“0”keyval=0; //可判断是S10键被按下if(P16==0) //如果检测到接P1.6引脚的列线为低电平“0”keyval=11; //可判断是S11键被按下if(P17==0) //如果检测到接P1.7引脚的列线为低电平“0”keyval=12; //可判断是S12键被按下P1=0xf7; //第四行置为低电平“0”(P1.3输出低电平“0”)if(P14==0) //如果检测到接P1.4引脚的列线为低电平“0”keyval=13; //可判断是S13键被按下if(P15==0) //如果检测到接P1.5引脚的列线为低电平“0”keyval=14; //可判断是S14键被按下if(P16==0) //如果检测到接P1.6引脚的列线为低电平“0”keyval=15; //可判断是S15键被按下if(P17==0) //如果检测到接P1.7引脚的列线为低电平“0”keyval=16; //可判断是S16键被按下for(i=0;i<200;i++) //让P3.7引脚电平不断取反输出音频{sound=0;delay();sound=1;delay();}}TR0=1; //开启定时器T0TH0=(65536-500)/256; //定时器T0的高8位赋初值TL0=(65536-500)%256; //定时器T0的高8位赋初值}五、用Proteus软件进行仿真利用Keil软件进行编译通过后,生成hex文件。

6位数字密码大全

6位数字密码大全

6位数字密码大全首先,我们需要明白一个概念,那就是一个安全的密码应该是由数字、大小写字母和特殊符号组成的组合,这样才能大大增加密码的复杂度,提高破解的难度。

但是在某些情况下,我们可能只能使用数字作为密码,因此,我们需要找到一些6位数字密码的组合,来确保密码的安全性。

以下是一些常见的6位数字密码组合:1. 123456。

2. 000000。

3. 111111。

4. 654321。

5. 121212。

6. 777777。

7. 888888。

8. 999999。

9. 666666。

10. 555555。

以上这些密码组合都是非常常见的,很多人会选择这样简单的数字组合作为自己的密码。

但是,这些密码组合非常容易被破解,因此我们在设置密码的时候一定要避免使用这些常见的组合。

接下来,我们来看一些相对安全一些的6位数字密码组合:1. 135790。

2. 246810。

3. 987654。

4. 159357。

5. 369258。

6. 753951。

7. 852147。

8. 456123。

9. 654321。

10. 147258。

以上这些密码组合相对来说比较不容易被破解,因为它们的组合看起来比较随机,不容易被人猜到。

当然,即使是这样的密码组合,我们在设置密码的时候也需要注意一些规则,比如避免使用连续的数字、重复的数字等等。

最后,我们还可以通过一些特殊的方式来设置6位数字密码,比如通过自己的生日、纪念日、电话号码等个人信息来设置密码,这样的密码组合对于别人来说是比较难猜到的。

但是需要注意的是,这样的密码组合也存在被猜到的风险,因此在设置密码的时候一定要慎重考虑。

总的来说,一个安全的6位数字密码应该是比较随机的组合,避免使用常见的组合,同时也要避免使用个人信息来设置密码。

希望大家在设置密码的时候能够注意这些问题,保护好自己的个人信息和财产安全。

VHDL密码锁(6位串行输入).doc

VHDL密码锁(6位串行输入).doc

VHDL密码锁(6位串行输入)《电子设计自动化》课程设计题目:数字密码锁电路(1.1)院(系)信息科学与工程学院专业 15通信工程届别班级学号姓名任课老师数字密码锁电路,难度系数1.1实验要求设计一个密码锁,有6位十进制数字密码,串行输入;能设置密码;有开锁和错误指示(LED);如果连续输错三次,则一刻钟内不能再开锁。

本设计的各个模块由相应的VHDL程序具体实现,并在Quartus Ⅱ9.0环境下进行了整体电路的模拟仿真,最终实现“密码锁设计”的要求。

实验设计要求6位串行输入,并且由于实验板输入键位的有限,还同时增加了输入密码与设置密码键位的重叠,使密码锁电路输入输出形成一个反馈,通过对输出的判断,让电路自动识别输入的数字是设置的密码还是输入的密码。

在程序初始载入实验板时,还要让密码锁的初始设置密码和输入密码相同,从而达到能够初始设置密码的逻辑要求。

同时因为实验板输出的LED灯有限,还要求设计的密码锁电路的显示能够在输入密码、设置密码和倒计时之间灵活智能选择,从而达到满足使用的要求。

密码锁在输入三次错误密码后需要开始一个一刻钟即900秒的倒计时,则需要设计一个逻辑电路使电路能够在输入和错误倒计时之间自由变化。

此为本实验设计的主要难点和创新。

目录1.系统设计 (4)2.单元电路设计 (7)3.软件设计 (12)4.系统测试 (23)5.结论 (24)6.参考文献 (24)7.附录 (25)8.其他 (26)系统设计设计要求:设计一个密码锁,有6位十进制数字密码,串行输入;能设置密码;有开锁和错误指示(LED);如果连续输错三次,则一刻钟内不能再开锁。

系统设计方案:先设计1.0难度的密码锁,此时不需要一刻钟计时模块。

该电路首先需要一个输入模块,由于实验板的限制,安排两个键位作为输入,分别实现6个密码位的选择和对确定位密码的输入,所以在输入模块之前,还需要通过计数器来分别得到两个输入;之后设计一个密码合成及选择模块,将得到的6个4位的密码相加得到一个24位的密码,方便之后的比较,同时需要在输入模块添加一个选择,分别确定此时的输入信息是设置密码还是输入密码;将得到的24位设置密码和输入密码分别放到一个确认模块,起到输入确认并且使初始信息清零的作用;最后将两个24位数据放入比较模块,确定密码锁的状态,状态的显示由LED灯实现;输出显示LED模块从输入模块之前接出,显示当前电路的输入;同时,在计数器之前需要加入消抖模块,使实验板能够稳定输入;在LED模块之前需要添加译码器,以输出正确显示。

6位密码锁课程设计

6位密码锁课程设计

6位密码锁课程设计一、课程目标知识目标:1. 学生能够理解密码锁的基本原理,掌握6位密码锁的构造和功能。

2. 学生能够运用数学逻辑思维,分析密码的组合方式和可能性。

3. 学生能够运用所学知识,解释日常生活中类似密码锁的加密技术应用。

技能目标:1. 学生能够运用逻辑推理和数学方法,设计出具有较高安全性的6位密码锁。

2. 学生能够运用所学知识,解决与密码锁相关的实际问题,提高解决问题的能力。

3. 学生能够通过小组合作,进行有效沟通与协作,共同完成密码锁的设计与验证。

情感态度价值观目标:1. 培养学生对密码学及信息安全领域的兴趣,激发学生的求知欲和探索精神。

2. 培养学生严谨、细心的学习态度,提高学生对安全意识的认识。

3. 培养学生团队协作精神,学会尊重他人意见,共同为达成目标而努力。

本课程针对六年级学生的认知特点,以实际生活中的密码锁为载体,结合数学和逻辑思维,引导学生掌握密码锁的基本原理和设计方法。

课程注重培养学生的实践能力和创新意识,同时强化学生的安全意识,提升综合素质。

通过本课程的学习,学生能够将所学知识应用于实际生活,为未来的学习和发展奠定基础。

二、教学内容1. 密码锁原理介绍:讲解密码锁的基本工作原理,包括密码的设置、存储和比对过程。

- 教材章节:第三章《数据的表示与加密》- 内容列举:数字编码、加密算法初步介绍2. 6位密码锁设计:分析6位密码的组合方式和可能性,探讨如何设计出安全性高的密码。

- 教材章节:第四章《简单的加密技术》- 内容列举:排列组合、概率统计在密码设计中的应用3. 实践操作:分组进行密码锁设计实践,让学生亲身体验设计过程,提高实际操作能力。

- 教材章节:第五章《实践活动》- 内容列举:动手制作简易密码锁、分析密码锁的破解方法4. 密码锁应用与拓展:介绍密码锁在现实生活中的应用,激发学生学习兴趣,拓展知识面。

- 教材章节:第六章《密码学在日常生活中的应用》- 内容列举:密码锁在银行、手机等领域的应用案例教学内容按照上述安排,注重理论与实践相结合,逐步引导学生掌握密码锁相关知识。

数字密码锁

数字密码锁
1000 ×10 ÷3600 ≈2.8小时
读一读 想一想
重要的文件箱,一般使用由六个数字组成的密码锁。
某市私家车车牌号是由四个数字组 成的,由于私人汽车发展迅速,车辆管 理部门就在四个数字最前面增加了一个 英文字母。这样可增加多少个车牌号?
车牌目前没有字母O,没有字母I,因为字 母O和I与数字0、1相似,所以车牌中没有。但 各地公安系统曾经用O,比如:京O;沪O等等, 有些地方已经取消,但还有保留的。
如果密码锁的密码是由三个数字 组成的,那么0、1、2、3、4、5、6、7、8、9这十个 数字就能组成1000个密码。
你能根据两个数字组成100个密码推 算出这个结果吗?试一试!
想一想
一个由三个数字组成密码的密码锁,一共有1000 个密码。
如果每试一组密码花费10秒,你知道试1000次 最长需要几小时呢?
练一练:
1.电话号码从六位升为七位,可增 加多少用户?从七位升为八位呢? 2.三个数字密码和三个字母密码哪 个更安全?为什么?
1、结合具体事例,经历了探索数 字编码的过程。
2、了解了数字密码的编码规律, 能解答简单数字编码的实际问题。
3、知道了数字密码的用途。
Hale Waihona Puke 学习目标:1.结合具体事例,经历探索数字编码的过程。 2.了解数字密码的编码规律,能简单解答数 字密码的实际问题。 3.知道数字密码的用途,体会数学的价值,树 立学好数学的信心。
1、假如密码锁的密码是由两个 数字□□组成的,每格都可以出现0、 1、2、3、4、5、6、7、8、9十个数 字。
这样的密码锁一共有多少个密码?

三彪智能密码锁f2说明书

三彪智能密码锁f2说明书

三彪智能密码锁f2说明书三彪智能密码锁F2说明书一、产品概述三彪智能密码锁F2是一款高端智能密码锁,采用先进的指纹识别、密码输入和钥匙开锁三种方式,能够保障您的家庭和办公室的安全。

本产品具有防水、防撬、防盗等多种功能,并且支持多组指纹录入,方便多人使用。

二、产品特点1. 三种开锁方式:支持指纹识别、密码输入和钥匙开锁三种方式,满足不同用户的需求;2. 多组指纹录入:可录入多组指纹,方便多人使用;3. 高安全性:采用先进的指纹识别技术,识别率高且安全性好;4. 防撬设计:锁身和锁舌采用加固设计,防撬性能强;5. 防水设计:经过特殊处理,具有一定的防水性能,适用于室内和室外使用;6. 防盗报警:密码输入错误达到一定次数或指纹识别失败,会自动触发报警功能,保障您的家庭和办公室的安全;7. 低电提醒:当电池电量低时,会自动发出低电报警提醒,及时更换电池。

三、产品参数1. 尺寸:XXXXX2. 重量:XXXXX3. 材质:XXXXX4. 电源电压:XXXXX5. 工作温度:XXXXX6. 密码位数:6位数字密码7. 指纹识别时间:小于1秒8. 电池寿命:约一年,取决于使用频率和电池品质四、使用方法1. 指纹录入:按照说明书中的步骤录入指纹,每组指纹最多可以录入10个;2. 密码设置:按照说明书中的步骤设置密码,密码长度为6位数字;3. 钥匙开锁:使用配套的钥匙进行开锁;4. 开锁操作:根据所选择的开锁方式进行操作,指纹识别时请将手指按在指纹传感器上,等待识别成功后即可开锁;5. 低电提醒:当电池电量低时,会自动发出低电报警提醒,请及时更换电池。

五、注意事项1. 请妥善保管好钥匙,避免钥匙丢失或被盗;2. 避免将锁暴露在阳光直射和雨水浸泡的环境中,以免影响产品的使用寿命;3. 避免使用尖锐物品撬动或击打锁体,以免损坏锁体;4. 请勿将产品暴露在高温或低温环境中,以免影响产品的性能;5. 如有其他问题,请及时联系售后服务中心。

PLC六位密码锁

PLC六位密码锁

课程名称:可编程控制器技术及应用设计题目:基于PLC的六位密码锁设计院系:电气工程系专业:电子信息工程年级:20 09级*名:**指导教师:***西南交通大学峨眉校区2012 年 4 月13 日课程设计任务书专业电子信息工程姓名李垚学号20098157开题日期:2012 年 3 月 1 日完成日期:2012 年 6 月15 日题目基于PLC的六密码锁设计一、设计的目的1) 设计出PLC控制的密码锁程序;2) 掌握PLC的编程软件编程平台、定时器、计数器、传送指令、主子程序等有关指令的编程方法;3)熟悉PLC与上机通讯、软件调试的方法;4)培养大学生的综合设计能力、分析问题与解决问题的能力。

二、设计的内容及要求1)设计内容:用PLC设计一个6位密码锁,实现对重要场所的安全门控。

2)设计要求:A、输入密码正确时,执行开门信号。

B、输入密码错误3次以上时报警,密码输入正确后取消报警。

C、重设密码。

三、指导教师评语四、成绩指导教师(签章)年月日摘要:本设计是采用西门子PLC来设计密码程序的,程序中应用到了近20 个计数器。

设计的密码锁外观图类似于银行取款机台上的键盘。

给人感觉就和那种输入密码的过程一样。

其实不然,本设计中采用了计数器控制的特点,每个计数器的次数设定为几次那么所对应的按键就要按几次。

本设计分为开锁环节和解锁环节,开锁环节设定六个按键有效,解锁环节设定了七个按键有效,这样一来设定的开锁密码位数就大于等于六位了,解锁密码位数就大于等于七位。

要看计数器设定的次数而定。

如果密码锁报警的话必须先输入解锁密码,后输入开锁密码方能开锁。

设计背景:随着人们生活水平的提高,如何实现家庭放到这一问题也变得尤其的突出,传统的机械锁由于其结构的简单,被撬的事件屡见不鲜,同时,季节所一般配有金属钥匙,带起来太重,万一弄丢了,所可能就没用了。

电子锁保密性高,密码泄露了,换个密码,锁照样能用;使用灵活性好,安全系数高,能够防止不法分子多次试探密码;性价比好,因此,密码锁受到了广大用户的青睐。

简单六位数字密码锁

简单六位数字密码锁

简单六位数字密码锁 This manuscript was revised on November 28, 2020目录第1章绪论设计任务(1)设置七个键位,分别是确认,数字1,数字2,数字3,数字4,数字5,数字6,工作有提示(设通电状态为红灯亮)。

(2)在单片机内部预设六位密码,在使用密码解锁器时,要按预设的密码依次输入才能完成解锁。

预设密码以外的数字都不能解开密码锁(如输入非6位或输入6位与预设密码不同的数字)。

(3)输入密码时,数码管同步显示输入的数字。

(4)输入正确后,有解锁提示(设为绿灯亮),输入错误后也有提示(设为红灯闪烁和鸣笛警告)(5)输入错误后可以重输,要有复位功能。

设计要求利用AT89S52单片机的P2端口的连接到7个按键开关上,分别是输入键数字1,数字2,数字3,数字4,数字5,数字6和确认键,接蜂鸣器。

启动时,按下电源开关,红色指示灯长亮,输入密码,而数码管显示输入的相应数字,然后按下确认键,若密码正确,绿灯亮,数码管熄灭,弱密码错误,红灯闪烁,蜂鸣器响,发出警报。

第2章系统方案设计硬件设计思想键盘设计本设计使用7按键,从上到下,从左至右依次设为确认键,数字1,数字2,数字3,数字4,数字5,数字6,用来输入密码,如下图图键盘仿真图数字显示设计使用共阳极七段数码管来显示输入的数字,图如下:图显示仿真图检验密码电路设计使用LED灯和蜂鸣器来提示输入的密码是否正确,若密码正确,绿灯亮,若密码错误,红灯闪烁,蜂鸣器响,电路如图:图密码验证系统仿真图软件设计思想电子密码锁工作的主要过程是从键盘开始输入密码,同时LED显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。

密码的设定,在此程序中密码是固定的,预设的密码为"532416"共6位密码。

在单片机内部预设六位密码,在使用密码解锁器时,要按预设的密码依次输入才能完成解锁。

预设密码以外的数字都不能解开密码锁(如输入非6位或输入6位与预设密码不同的数字)输入密码时,数码管要在单片机的控制下同步显示输入的数字。

六年级下册数学课件5.2 数字密码锁 l 冀教版 (共15张PPT)

六年级下册数学课件5.2 数字密码锁 l 冀教版 (共15张PPT)
26×10×10×10×10=260000个
答:可增加260000个车牌号。
返回
一张存折的密码由6个数字组成,每个数字都是 0-9这十个数字中的一个,只有当6个数字与所 设定的密码相同时,才能将款取出。他最多试 多少次才能找到正确的密码?
我忘了最后两个数字是几了, 但肯定都不是“0”和“9”。
(10-2)2-1=63(次)

12、要记住,你不仅是教课的教师,也是学生的教育者,生活的导师和道德的引路人。12:53:0412:53:0412:53Friday, August 13, 2021
13、He who seize the right moment, is the right man.谁把握机遇,谁就心想事成。21.8.1321.8.1312:53:0412:53:04August 13, 2021
答:他最多试63次才能找到正确的密码。
返回
某一天的课程表要排入品德、语文、数学、音 乐、书法、英语共六节课。如果第一节课不排 音乐,共有多少种不同的排课表的方法?
5×5×4×3×2×1=600(种) 答:共有600种不同的排课表的方法。
返回
从甲城到乙城的快速列车,除起点和终点外, 途中还要停靠5个车站,这趟列车一共有多少种 不同的车票?
5×10×10×1=500(次)
答:最多要500次才能打开。
返回
某城市的电话号码由7个数字组成,其中第一 个数字不为0,也不为1。这个城市不出现重复 数字的电话号码共有多少个?
8×9×8×7×6×5×4=483840(个)
答:这个城市不出现重复数字的电话号 码共有483840个。
返回
课堂小结
这节课你们都学会了哪些知识?
数字密码锁

数字密码锁(说课课件)-六年级下册数学冀教版

数字密码锁(说课课件)-六年级下册数学冀教版

教随学堂方练案习介绍
4.一张存折的密码由6个数字组成,每个数字都是0~9
这十个数字中的一个,只有当6个数字与所设定的密 码相同时,才能将款取出。他最多试多少次才能找到 正确的密码?
教随学堂方练案习介绍
思考题: 从0-9中选取四个的数,可以组成( ) 个没有重复数字的四位数
06
说板书设计
教板学书方设案计介绍
教探探学究究方新三案知位介数绍密码
课件出示问题2:如果密码锁的密码是由 三个数字□□□组成的,那么0、1、2、3、4、 5、6、7、8、9这十个数字就能组成1000个密 码。你能根据两个数字组成100个密码推算出 这个结果吗?试一试!
教师谈话并告诉学生用三个数字组成1000 个密码,鼓励学生尝试进行推算。交流学生推 算的方法,说明结果的准确性。
02
说教学目标
教育学教目学标分析
01
02
03
03
说重难点
教说学重特难点分析
01
02
初步体会数字编码
思想在解决实际问题中
的应用,了解用符号和
数字组合进行编码的方
法。
04
说教学方法
教说学教特法点学分法析
01
02
谈话法 讨论法 启发法
05
说教学过程
教 情育景教导学入分析
1、生活中的数学 数学知识来源于生活,一开始,教师拿出自己的钥匙, 并引出密码锁。分别说一说在什么地方或物品见过密码锁, 见过几个数字的密码锁。 2、故事引入 提出兔博士的问题,师生交流。 师:那谁知道旅行箱上为什么用密码锁,而不是钥匙 锁呢?
样的数字锁一共有(
)个密码。
(2)假如数字锁的密码是由三个数字组成
的,每格都可以出现0-9这十个数字中的任意一个,

六位密码锁

六位密码锁

#include "reg51.h"sbit buzzer=P3^1;sbit relay=P3^2;void key_scan();//声明按键扫描函数void key_compare();//声明按键比较函数void LCD_PutString(unsigned char x,unsigned char y,unsigned char code *s); void ClrScreen();//清屏函数void LCD_flag(); //闪烁函数unsigned char table[4][4]={{0,1,2,3},{4,5,6,7},{8,9,10,11},{12,13,14,15},} ; unsigned char store_secret[3]={4,6,8};unsigned char store_temp[10];unsigned char h,l,i=0;unsigned char Error_time=0; //输入密码错误次数sbit RS=P2^2;sbit RW=P2^1;sbit EN=P2^0;sbit PSB=P2^4;/*------------------------------------------延时函数-------------------------------------------*/void delay(unsigned int z){unsigned int i,j;for(i=0;i<z;i++)for(j=0;j<123;j++);}/*------------------------------------------12864的设置-------------------------------------------*/bit LCD12864_ReadBusy(){bit result;RS = 0;RW = 1;EN = 1;delay(5);result = (bit)(P0&0x80);EN = 0;return(result);}void LCD12864_write_com(unsigned char com){RS=0;delay(5);RW=0;P0=com;delay(5);EN = 1;delay(5);EN = 0;}void LCD12864_write_data(unsigned char dat){RS = 1;delay(5);RW=0;P0=dat;delay(5);EN = 1;delay(5);EN = 0;}/*------------------------------------------12864的初始化-------------------------------------------*/void Init_LCD(){PSB = 1;LCD12864_write_com(0x01);LCD12864_write_com(0x0c);LCD12864_write_com(0x01);LCD12864_write_com(0x30);}/*------------------------------------------------显示字符串x:横坐标值,范围0~8y:纵坐标值,范围1~4------------------------------------------------*/void LCD_PutString(unsigned char x,unsigned char y,unsigned char code *s) {switch(y){case 1: LCD12864_write_com(0x80+x);break;case 2: LCD12864_write_com(0x90+x);break;case 3: LCD12864_write_com(0x88+x);break;case 4: LCD12864_write_com(0x98+x);break;default:break;}while(*s>0){LCD12864_write_data(*s);s++;// delay(50);}}/*------------------------------------------------清屏------------------------------------------------*/void ClrScreen(){LCD12864_write_com(0x01);delay(5);}/*********************************************************闪烁函数*********************************************************/ void LCD_flag(){LCD12864_write_com(0x08);delay(400);LCD12864_write_com(0x0c);delay(400);LCD12864_write_com(0x08);delay(400);LCD12864_write_com(0x0c);delay(400);LCD12864_write_com(0x08);delay(200);LCD12864_write_com(0x0c);delay(5);LCD12864_write_com(0x01);delay(5);}/*------------------------------------------按键比较函数-------------------------------------------*/void key_compare(){ClrScreen();delay(20);if(store_secret[0]==store_temp[0]&&\store_secret[1]==store_temp[1]&&\store_secret[2]==store_temp[2]){LCD_PutString(2,2,"恭喜您!");LCD_PutString(1,3,"身份已验证!");delay(3000);ClrScreen();LCD_PutString(0,2,"主人欢迎您回家!");relay=1;delay(10000);relay=0;delay(5000);}else{Error_time++;if(Error_time==1){LCD_PutString(2,1,"对不起!");LCD_PutString(0,2,"您的密码有误!");LCD_PutString(0,3,"您还有2 次机会!");delay(3000);}else if(Error_time==2){LCD_PutString(2,1,"对不起!");LCD_PutString(0,2,"您的密码有误!");LCD_PutString(0,3,"您还有1 次机会!");delay(1000);}else if(Error_time==3){LCD_PutString(2,1,"对不起!");LCD_PutString(1,2,"您已输错3 次!");LCD_PutString(2,3,"键盘已锁!");LCD_PutString(1,4,"请稍后再试...");buzzer=1;delay(20000);Error_time=0;buzzer=0;}}ClrScreen();}void key_scan(){while(1){LCD_PutString(2,1,"密码锁");LCD_PutString(0,2,"请您输入密码:");P1=0xf0;//根据开发板原理图,先进行列扫描,高位全部为1,低位为0 if(P1!=0xf0){delay(5);if(P1!=0xf0){switch(P1&0xf0){case 0xe0:l=0;break;case 0xd0:l=1;break;case 0xb0:l=2;break;case 0x70:l=3;break;}}P1=~P1;//进行行扫描switch(P1&0x0f){case 0x07:h=0;break;case 0x0b:h=1;break;case 0x0d:h=2;break;case 0x0e:h=3;break;}while(P1!=0x0f);if(table[h][l]==10){key_compare();}else if(table[h][l]==11){if(i==0)i=3;i=i-1;store_temp[i]=0; //把之前那个值清零LCD12864_write_com(0x88+i);LCD12864_write_data(' '); //显示一个空的位置}else{store_temp[i]=table[h][l];LCD12864_write_com(0x88+i); //按键值LCD12864_write_data('*');store_temp[i]=table[h][l];i++;if(i>2)i=0;}}}}void main(){buzzer=0;relay=0;Init_LCD();LCD12864_write_com(0x80);key_scan();}。

冀教版数学六年级下册第五单元《探索乐园》5.2 数字密码锁PPT课件

冀教版数学六年级下册第五单元《探索乐园》5.2 数字密码锁PPT课件
260000个车牌号。
返回
数字密码锁
一张存折的密码由6个数字组成,每个数字都是 0-9这十个数字中的一个,只有当6个数字与所 设定的密码相同时,才能将款取出。他最多试 多少次才能找到正确的密码?
我忘了最后两个数字是几了, 但肯定都不是“0”和“9”。
(10-2)2-1=63(次)
答:他最多试63次才能找到正确的密码。
返回
数字密码锁
某一天的课程表要排入品德、语文、数学、音 乐、书法、英语共六节课。如果第一节课不排 音乐,共有多少种不同的排课表的方法?
5×5×4×3×2×1=600(种) 答:共有600种不同的排课表的方法。
返回
数字密码锁
从甲城到乙城的快速列车,除起点和终点外, 途中还要停靠5个车站,这趟列车一共有多少种 不同的车票?
返回
数字密码锁
电话号码从六位升为七位,可增加多少万用 户?从七位为八位数?
电话号码首位不能是0,首位只能是1-9中的任 意一个数字,其余各位可以有10种选择,因此 六位号码供9×10×10×10×10×10=900000户。
原有900000 现有9000000
从六位到七位,增加了8100000户
原有9000000 现有90000000
10×10×10=1000(个)
你能根据两个数字组成100个密码 推算出这个结果吗?试一试!
每个数字打头都能组成100个密码, 10个数字就可以组成1000个密码。
返回
数字密码锁
一个由三个数字组成密码的密码锁,一共有 1000个密码。在这1000个密码中,只有一个密 码能将锁打开。知道密码的人,很容易就能把 密码锁打开;不知道密码的人,要想偷偷打开 锁,就得一个不漏地去试,先000,001, 002……一直试到999。这样就可能要试1000次, 才能把锁打开。

6位数电子密码锁

6位数电子密码锁

/**************************************************************** WYDZ-51实验板 ** 六位数电子密码锁4*4键盘(密码可改) ** 通电显示------,密码由TABLE读取132888 ** 为内定密码这样可以防止停电后无密码用 ** 按*清除为000000欲改密码先按密码再按# ** 输入密码后按D若密码相同P2.3反转一次 ** 否则显示为------ * * 要显示密码按住C即可放开后显示000000 ** SW1 = 1 | SW2= 2 | SW3= 3 | SW4 = A未定义 ** SW6 = 4 | SW7= 5 | SW8= 6 | SW9 = B未定义 ** SW11 = 7 | SW12= 8 | SW13= 9 | SW14= C显示密码 ** SW16 =*清除 | SW17= 0 | SW18= 重设密码 | SW19= D开锁 ** 程序制作:LBQ691477940** 26/10/08 00:41 * ***************************************************************/; 主程序DULA BIT P2.6WELA BIT P2.7ORG 0000HMOV R7,#00H ;时DJNZ R7,$MOV R7,#16 ;内定密码在表格的起始地址为第16个开始MOV R6,#06H ;内定六个密码MOV R1,#35H ;内定密码取码指针L1: MOV A,R7 ;MOV DPTR,#TABLE ;MOVC A,@A+DPTR ;MOV @R1,A ;六个密码分别存入35H-30H单元DEC R1 ;存下一个地址INC R7 ;取下一个DJNZ R6,L1START: ;SETB P2.0 ;置P2.0口MOV R4,#06H ;清除显示器存放地址40H-45HMOV R0,#40H ;CLEAR: MOV @R0,#16 ;显示------INC R0 ;DJNZ R4,CLEAR ;;4*4&4*3键盘子程序;将pn.0-pn.3作out4横,pn.4-pn.7作in4竖L2: MOV R3,#0F7H ;扫描初值(Pn.3=0)MOV R1,#00H ;取码指针初值L3: MOV A,R3 ;开始扫描MOV P3,A ;将扫描值out Pn口MOV A,P3 ;读入Pn口值,判断是否有键按下?MOV R4,A ;存入R4,以判断是否放开了SETB C ;C=1MOV R5,#04H ;扫描Pn.4-Pn.7;若为4*3则mov r5,#03h并pn.4不用L4: RLC A ;将按键值带c左移一位JNC KEYIN ;判断C=0?是则有键按下转KEYININC R1 ;C=1则无键按下,将取码指针加1DJNZ R5,L4 ;4竖扫描完了?CALL DISPMOV A,R3 ;扫描值载入SETB C ;C=1RRC A ;扫描下一横(Pn.3-Pn.0)MOV R3,A ;存回扫描寄存器JC L3 ;C=1?是则未扫完JMP L2 ;C=0则4横已扫描完KEYIN: MOV A,R1 ;将键值送AXRL A,#04H ;是否按C=SW14键JZ X3 ;是则显示密码MOV A,R1 ;XRL A,#00H ;是否按D=SW19键JZ X4 ;是则比较密码,正确开门MOV R7,#30 ;消除抖动D1: MOV R6,#248DJNZ R6,$DJNZ R7,D1D2: MOV A,P3 ;读入P3口值XRL A,R4 ;与上次读入值比较相同A=0JZ D2 ;ACC=0则相等,表示键未放开MOV A,R1 ;己放开,取码指针载入AMOV DPTR,#TABLE ;数据指针到TABLEMOVC A,@A+DPTR ;到TABLE取码MOV R7,A ;取得的键值迸R7XRL A,#0FH ;是否按#=SW18JZ SET0 ;是则设定新密码MOV A,R7 ;键值送AXRL A,#0EH ;是否按*JZ START ;是则清除MOV A,R7 ;键值送AXRL A,#0AH ;A=SW4键未设定键JZ L2 ;MOV A,R7 ;键值送AXRL A,#0BH ;B=SW9键未设定键JZ L2 ;MOV A,R7 ;键值送AXCH A,40H ;现按键值存入(40H)XCH A,41H ;旧(40H)值存入(41H)XCH A,42H ;旧(41H)值存入(42H)XCH A,43H ;旧(42H)值存入(43H)XCH A,44H ;旧(43H)值存入(44H)XCH A,45H ;旧(44H)值存入(45H)CALL DISP ;调用显示子程序JMP L2 ;X3: JMP DISP2 ;X4:JMP COMP ;调用比较子程序SET0: MOV R2,#06H ;六个密码MOV R0,#40H ;按键显示地址MOV R1,#30H ;密码存放地址E1: MOV A,@R0 ;40H存入30H....45H存入35HXCH A,@R1 ;INC R0 ;INC R1 ;DJNZ R2,E1 ;CALL DELAY ;时E2: JMP START ;COMP:MOV R1,#45H ;按键显示地址MOV R0,#35H ;密码存放地址MOV R2,#06H ;六个密码C1: MOV A,@R1 ;XRL A,@R0 ;JNZ C3 ;不同则清除DEC R1 ;相同比较下一个密码DEC R0 ;DJNZ R2,C1 ;CLR P2.3 ;使其OUT高电平令电子锁打开MOV R2,#255 ;时0.1秒C2: MOV R6,#255DJNZ R6,$DJNZ R2,C2SETB P2.3 ;将本行去掉将所有已注释行去掉{;逗号C3: JMP START ;;欲显示密码值DISP2: MOV R0,#35H ;密码存放地址CALL DISP1 ;调用显示子程序1MOV A,P3 ;C键放开否?没有继续显示XRL A,R4 ;JZ DISP2 ;CALL DELAY ;JMP STARTDELAY: MOV R7,#03 ;显示器扫描时间D3: MOV R6,#248DJNZ R6,$DJNZ R7,D3RETDISP: MOV R0,#45H ;显示地址指针45HDISP1: MOV A,@R0 ;载入D6显示值MOV DPTR,#TABMOVC A,@A+DPTRSETB DULAMOV P0,ACLR DULASETB WELAMOV P0,#1CLR WELACALL DELAYDEC R0MOV A,@R0 ;载入D5显示值MOV DPTR,#TABMOVC A,@A+DPTRSETB DULAMOV P0,ACLR DULASETB WELAMOV P0,#2CLR WELACALL DELAYDEC R0MOV A,@R0 ;载入D4显示值MOV DPTR,#TABMOVC A,@A+DPTRSETB DULAMOV P0,ACLR DULASETB WELAMOV P0,#4CLR WELACALL DELAYDEC R0MOV A,@R0 ;载入D3显示值MOV DPTR,#TABMOVC A,@A+DPTRSETB DULAMOV P0,ACLR DULASETB WELAMOV P0,#8CLR WELACALL DELAYDEC R0MOV A,@R0 ;载入D2显示值MOV DPTR,#TABMOVC A,@A+DPTRSETB DULAMOV P0,ACLR DULASETB WELAMOV P0,#10HCLR WELACALL DELAYDEC R0MOV A,@R0 ;载入D1显示值MOV DPTR,#TABMOVC A,@A+DPTRSETB DULAMOV P0,ACLR DULASETB WELAMOV P0,#20HCLR WELACALL DELAYRET ;TABLE: DB 0DH,0FH,00H,0EH ; 1 /2 / 3 /ADB 0CH,09H,08H,07H ; 4 / 5 / 6 /BDB 0BH,06H,05H,04H ; 7 / 8 / 9 /显示密码DB 0AH,03H,02H,01H ;清除 / 0 /重设密码/开锁DB 01H,03H,02H,08H,08H,08H ;内定密码;其实TABLE中的值可以不这样安排;只要和键盘相对应即可;若按的是键盘上的Pn.3与Pn.7组成的开关一定是TABLE中的第1个值 ;若按的是键盘上的Pn.3与Pn.6组成的开关一定是TABLE中的第2个值 ;若按的是键盘上的Pn.3与Pn.5组成的开关一定是TABLE中的第3个值 ;如此类推Pn.1与Pn.7组成的开关一定是TABLE中的第9个值;如此类推Pn.0与Pn.7组成的开关一定是TABLE中的第13个值;若按的是键盘上的Pn.0与Pn.4组成的开关一定是TABLE中的第16个值 ;Pn.3与Pn.7或.6或.5或.4接开关分别为;Pn.2与Pn.7或.6或.5或.4接开关分别为;Pn.1与Pn.7或.6或.5或.4接开关分别为;Pn.0与Pn.7或.6或.5或.4接开关分别为TAB: ;显示表格DB0C0H;0DB0F9H;1DB0A4H;2DB0B0H;3DB099H;4DB092H;5DB082H;6DB0F8H;7DB080H;8DB090H;9DB088H;ADB083H;bDB0C6H;CDB0A1H;dDB086H;EDB08EH;FDB 0BFH ;-END。

数字密码锁设置教程

数字密码锁设置教程

数字密码锁设置教程数字密码锁是一种安全便捷的锁具,可以用于保护个人物品和重要文件的安全。

本教程将向您介绍如何正确设置数字密码锁,以确保您的物品得到最好的保护。

第一步:了解数字密码锁的基本原理数字密码锁是通过正确输入预设的数字密码来解锁的。

通常,密码锁设有一个键盘,您需要在上面输入正确的密码才能打开锁。

每个数字密码锁都有一套默认设置的密码,但为了加强安全性,建议您修改密码并设置自己的独特密码。

第二步:进入设置模式首先,找到数字密码锁上的设置按钮。

通常,这是一个小型的按钮或凹槽,您可以使用针或细小的工具按下它。

按下设置按钮后,屏幕或指示灯会发出一些信号,表明您已进入设置模式。

第三步:修改密码在进入设置模式后,您需要根据数字密码锁的说明书或屏幕上的指示,选择“修改密码”选项。

一旦进入此选项,您将被要求输入当前的默认密码。

根据锁具的设置不同,可能需要按下“确认”或“确定”键。

第四步:输入新密码在输入当前密码验证通过后,您可以开始输入新密码。

请注意,密码长度通常是有限制的,通常在4-8位之间。

您可以使用数字组合、字母、符号或它们的结合来设置密码,以增加安全性。

确保记住您所设置的密码,并将其保存在安全的地方。

第五步:确认新密码输入新密码后,数字密码锁会要求您再次输入一遍以确保一致性。

这是为了防止误操作和输入错误。

请务必输入正确。

第六步:保存密码并退出设置模式一旦您成功地设置了新密码并确认一致,数字密码锁会显示或发出一些信号,表示您的设置已被接受并成功保存。

然后,您可以按下退出、取消或返回按钮,以退出设置模式。

第七步:测试密码在成功设置新密码后,您应该进行测试以确保密码可以正常使用。

输入您刚刚设置的新密码,并确认一致后,锁具应解锁并打开。

如果密码输入错误,数字密码锁会发出警示声音或显示错误信息。

第八步:定期更换密码为了保护安全,建议您定期更换密码。

不要使用简单的数字组合(例如“1234”)或容易被猜到的密码(例如生日)。

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

目录第1章绪论 (1)1.1 设计任务 (1)1.2 设计要求 (1)第2章系统方案设计 (2)2.1 硬件设计思想 (2)2.2软件设计思想 (3)第3章电路设计 (4)3.1 电路原理 (4)3.2 电路原理图 (4)第4章程序设计 (5)4.1流程图 (5)4.2 算法描述 (5)第5章程序清单与仿真结果 (6)5.1 程序清单 (6)5.2 仿真结果 (14)第6章设计总结 (17)6.1 设计体会 (17)参考文献 (18)致谢 (19)实物展示..................................... 错误!未定义书签。

第1章绪论1.1 设计任务(1)设置七个键位,分别是确认,数字1,数字2,数字3,数字4,数字5,数字6,工作有提示(设通电状态为红灯亮)。

(2)在单片机内部预设六位密码,在使用密码解锁器时,要按预设的密码依次输入才能完成解锁。

预设密码以外的数字都不能解开密码锁(如输入非6位或输入6位与预设密码不同的数字)。

(3)输入密码时,数码管同步显示输入的数字。

(4)输入正确后,有解锁提示(设为绿灯亮),输入错误后也有提示(设为红灯闪烁和鸣笛警告)(5)输入错误后可以重输,要有复位功能。

1.2 设计要求利用AT89S52单片机的P2端口的P2.0--P2.6连接到7个按键开关上,分别是输入键数字1,数字2,数字3,数字4,数字5,数字6和确认键,P2.7接蜂鸣器。

启动时,按下电源开关,红色指示灯长亮,输入密码,而数码管显示输入的相应数字,然后按下确认键,若密码正确,绿灯亮,数码管熄灭,弱密码错误,红灯闪烁,蜂鸣器响,发出警报。

第2章系统方案设计2.1 硬件设计思想2.1.1 键盘设计本设计使用7按键,从上到下,从左至右依次设为确认键,数字1,数字2,数字3,数字4,数字5,数字6,用来输入密码,如下图图2.1 键盘仿真图2.1.2 数字显示设计使用共阳极七段数码管来显示输入的数字,图如下:图2.2 显示仿真图2.1.3 检验密码电路设计使用LED灯和蜂鸣器来提示输入的密码是否正确,若密码正确,绿灯亮,若密码错误,红灯闪烁,蜂鸣器响,电路如图:图2.3 密码验证系统仿真图2.2软件设计思想电子密码锁工作的主要过程是从键盘开始输入密码,同时LED显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。

密码的设定,在此程序中密码是固定的,预设的密码为"532416"共6位密码。

在单片机内部预设六位密码,在使用密码解锁器时,要按预设的密码依次输入才能完成解锁。

预设密码以外的数字都不能解开密码锁(如输入非6位或输入6位与预设密码不同的数字)输入密码时,数码管要在单片机的控制下同步显示输入的数字。

第3章电路设计3.1 电路原理单片机最小系统。

一个AT89S52单片机做为控制电路,运用其P2口来实现密码的输入和蜂鸣器的报警,通过P0口给数码显示管高低不同电平信号,来实现输入密码的显示,P1接指示灯。

3.2 电路原理图图3.2 电路原理图第4章程序设计4.1流程图图4.1 系统流程图4.2 算法描述1、设计一个延时子程序void delayms(unsigned int t){unsigned int i,j;for(i=t;i>0;i--)for(j=114;j>0;j--);}2、主程序void init()void delayms(unsigned int t)void main()第5章程序清单与仿真结果5.1 程序清单#include<reg52.h>sbit mm1=P2^0;//密码按键1-8sbit mm2=P2^1;sbit mm3=P2^2;sbit mm4=P2^3;sbit mm5=P2^4;sbit mm6=P2^5;sbit mmok=P2^6;sbit l1=P1^0;sbit l2=P1^2;sbit fmq=P2^7;void init(){P0=0xff;//禁止数码管显示mm1=1;mm2=1;mm3=1;mm4=1;mm5=1;mm6=1;mmok=1;fmq=1;l1=1;l2=1;}void delayms(unsigned int t){unsigned int i,j;for(i=t;i>0;i--)for(j=114;j>0;j--);}void main(){unsigned char mmsr,bn,bn1,bn2,bn3,bn4,bn5;mmsr=0;bn=0;bn1=0;bn2=0;bn3=0;bn4=0;bn5=0;mmsr=1;init();while(1){if(mmsr==1){if(mm5==0) //系统8位程序密码532416 {delayms(10);if(mm5==0){bn=1;P0=0xff;//消隐P0=0x92;//显示5}}if((mm3==0)&(bn==1)){delayms(10);if((mm3==0)&(bn==1)){bn1=1;P0=0xff;//消隐P0=0xb0;//显示3}}if((mm2==0)&(bn1==1)) {delayms(10);if((mm2==0)&(bn1==1)){bn2=1;P0=0xff;//消隐P0=0xa4;//显示2}}if((mm4==0)&(bn2==1)) {delayms(10);if((mm4==0)&(bn2==1)) {bn3=1;P0=0xff;//消隐P0=0x99;//显示4}}if((mm1==0)&(bn3==1)) {delayms(10);if((mm1==0)&(bn3==1)){bn4=1;P0=0xff;//消隐P0=0xf9;//显示1}}if((mm6==0)&(bn4==1)) {delayms(10);if((mm6==0)&(bn4==1)) {bn5=1;P0=0xff;//消隐P0=0x82;//显示6 }}if(mm1==0){delayms(10);if(mm1==0){P0=0xff;//消隐P0=0xf9;//显示1}}if(mm2==0){delayms(10);if(mm2==0){P0=0xff;//消隐P0=0xa4;//显示2}}if(mm3==0){delayms(10);if(mm3==0){P0=0xff;//消隐P0=0xb0;//显示3}}if(mm4==0){delayms(10);if(mm4==0){P0=0xff;//消隐P0=0x99;//显示4}}if(mm5==0){delayms(10);if(mm5==0){P0=0xff;//消隐P0=0x92;//显示5}}if(mm6==0){delayms(10);if(mm6==0){P0=0xff;//消隐P0=0x82;//显示8}}if(mmok==0){delayms(10);if(mmok==0){if((bn==1)&(bn1==1)&(bn2==1)&(bn3==1)&(bn4==1)&(bn5==1)) //密码成功{while(1){P0=0xff;l2=0;delayms(100);}}else{while(1){P0=0xff;fmq=0;l1=0;delayms(100);l1=1;delayms(100);}}}}}}}{unsigned char mmsr,bn,bn1,bn2,bn3,bn4,bn5;mmsr=0;bn=0;bn1=0;bn2=0;bn3=0;bn4=0;bn5=0;mmsr=1;init();while(1){if(mmsr==1){if(mm5==0) //系统8位程序密码532416{delayms(10);if(mm5==0){bn=1;P0=0xff;//消隐P0=0x92;//显示5}}if((mm3==0)&(bn==1)) {if((mm1==0)&(bn3==1)) {delayms(10);if((mm1==0)&(bn3==1)){bn4=1;P0=0xff;//消隐P0=0xf9;//显示1}}if((mm6==0)&(bn4==1)) {delayms(10);if((mm6==0)&(bn4==1)){bn5=1;P0=0xff;//消隐P0=0x82;//显示6 }}if(mm1==0){delayms(10);if(mm1==0){P0=0xff;//消隐P0=0xf9;//显示1P0=0x92;//显示5}}if(mm6==0){delayms(10);if(mm6==0){P0=0xff;//消隐P0=0x82;//显示8}}if(mmok==0){delayms(10);if(mmok==0){if((bn==1)&(bn1==1)&(bn2==1)&(bn3==1)&(bn4==1)&(bn5==1)) //密码成功{while(1){P0=0xff;l2=0;delayms(100);}}else{while(1)P0=0xff;}5.2 仿真结果1,开始仿真,按下开关,红灯亮图5.1 仿真图2,输入正确的密码(532416),数码管显示相应的数字图5.2 输入数字“5”图5.3 输入数字“3”图5.4 输入数字“2”图5.5 输入数字“4”图5.6 输入数字“1”图5.7 输入数字“6”3,(正确密码)按下确认键,绿灯亮图5.8 输入正确密码状态图4,若输入错误密码,则红灯闪烁,蜂鸣器响(图内为导通状态)图5.9 输入错误密码状态图第6章设计总结6.1 设计体会通过这次课程设计和设计中遇到的问题,我积累了一定的经验,刚开始做设计时总是会犯一些错误,只有经过不停的改错不停的编译才能得到正确的程序。

这说明了作为软件编程人员是不能粗心大意的,一个程序的质量的高低与你细心与否有着一定的联系。

设计中要求有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确。

对错误的检查要求我要有足够的耐心,这对以后从事集成电路设计工作会有一定的帮助。

本次课程设计是我到目前为止觉得受益匪浅也是收获最大的一次实习。

身为通信专业的学生,设计是我们将来必需具备的技能。

而这次课程设计恰恰给我们提供了一个应用自己所学知识去勇于创新和实践的平台。

从通过理论设计,到仿真软件仿真,再到确定具体方案,再到安装实际电路,最后到调试电路、成型。

相关文档
最新文档