简单六位数字密码锁

合集下载

简易电子密码锁(基于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文件。

【冀教版】六年级下册数学:5.2数字密码锁教案

【冀教版】六年级下册数学:5.2数字密码锁教案

2 数字密码锁教学内容教材第51~52页,数字密码锁教学提示《数字密码锁》是冀教版第十二册探索乐园中的一节实践活动课,主要是向学生渗透一些重要的数学思想方法,是通过日常生活中的一些事例,使学生初步体会数字编码方法在解决实际问题中的应用,并通过观察、比较、猜测来探索数字编码的简单方法,让学生学会运用数字进行编码,初步培养学生的抽象、概括能力。

《标准》中指出,第二学段要让学生“进一步体会数在日常生活中的作用,会运用数表示事物,并能进行交流”。

在日常生活中,数有着非常广泛的应用,在第一学段学生已经有了初步体会,特别是在一年级上册认数的时候,教材在“生活中的数”版块中就已经出现了像邮政编码、门牌号、车牌号这样的数在生活中的应用实例。

数可以用来表示数量和顺序,这一知识点学生是已经知道的,而数还可以用来编码,这对学生来说是不大熟悉的,本节课就是在学生的生活经验和已有知识的基础上,进一步体会数字编码在日常生活中的应用,并通过实践活动进行简单的数字编码,培养学生的数学思维能力。

教学目标教学目标:1.结合具体事例,经历探索数字密码的组成规律的过程。

2.掌握数字密码的组成规律,知道数字密码的一些用处。

3.体验数学活动充满着探索性和创造性,体会数字的价值。

重点、难点重点1、初步体会数字编码思想在解决实际问题中的应用,了解用符号和数字组合进行编码的方法。

难点1、尝试用数学的方法来解决实际生活中的简单问题。

教学准备教师准备:实物投影仪;多媒体课件;钥匙。

教学过程²(一)新课导入一、问题情境1.教师拿出自己的钥匙,并引出密码锁。

分别说一说在什么地方或物品见过密码锁,见过几个数字的密码锁。

师:同学们,看老师手里拿的是什么?生:钥匙。

师:对,这些都是用来开锁的钥匙。

现实生活中,还有一种锁是不用钥匙的,你们知道是什么锁吗?生:密码锁师:谁知道什么地方或物品上经常用密码锁?学生可能说出:保险柜、保险箱、旅行箱,等等。

师:看来同学们知道的不少,那谁来说一说你在什么东西上见过几个数字的密码锁学生可能会说:●我在旅行箱上见过三位数的密码锁。

冀教版六年级下册数学《数字密码锁》

冀教版六年级下册数学《数字密码锁》
10 × 10 =100(个)
01200 01201 01202 01203 01204 02105 02106 02107 02108 021 09 01210 211 01212 02113 02114 02115 02116 02117 02118 02119 01220 01221 01222 02123 02124 02125 02126 02127 02128 02129 01230 01231 01232 02133 02134 02135 02136 02137 02138 02139 01240 01241 01242 02143 02144 02145 02146 02147 02148 02149 01250 01251 01252 02153 02154 02155 02156 02157 02158 02159 01260 01261 01262 02163 02164 02165 02166 02167 02168 02169 01270 01271 01272 02173 02174 02175 02176 02177 02178 02179 01280 01281 01282 02183 02184 02185 02186 02187 02188 02189 01290 01291 01292 02193 02194 02195 02196 02197 02198 02199
10 ×1100 ×× 11000 =1000(个)
100个
重要的文件箱,一般使用六个 数字组成的密码锁。 如果每试一 组需要10秒,请你算一算试完六 码锁的密码需要多长时间?
某市私家车车牌号是由四个数字组成的,由 于私家汽车发展迅速,车辆管理部门就在四个数 字最前面增加了一个英文字母,这样可增加多少 个车牌号?

义务教育版(2024)五年级全一册第15课《简单密码易破解》课件

义务教育版(2024)五年级全一册第15课《简单密码易破解》课件
义务教育信息科技(2024)五年级
五年级上册
第15课 简单密码易破解
第1课时
第四单元 发挥算法的优势

1 通过分析密码设定规则,计算破解密码所需的重复判断次

数,估算破解密码的大致时间。

2 进一步认识循环结构,体会利用遍历法解决问题的基本思

路,了解密码设置的安全性。
第15课 课堂导入
回顾思考
第15课 学习活动
一、探究密码的破解次数
问题分析
利用破解四位数字密码的方法,可以得出破解六位数字密码的次数。 即需要6个10相乘,为一百万次。
10×10×10×10×10×10 =1 000 000次
第15课 学习活动
一、探究密码的破解次数
问题分析 任务2:六位“数字+字母”密码的破解次数
第1步:确定六位“数字+字母”密码的组合方式。 每位包括:数字0至9,共10种;
大写字母A至Z,共26种; 小写字母a至z,共26种。 第2步:计算一共有多少种组合,即所需的破解次数。 每位有10 + 26 + 26 = 62种,需要的次数是六个62相乘: 62×62×62×62×62×62 = 56 800 235 584(次) (也就是约568亿 次)
第15课 学习活动
一、探究密码的破解次数
第15课 学习活动
三、密码设置的安全性
讨论交流
日常生活中,我们设置密码时,为防止被别人识破或被计算机程序破解, 设置密码时要遵循一些基本的规则。
小组同学交流设置密码应遵循的原则,分享想法。
第15课 学习活动
三、密码设置的安全性
讨论交流 设置密码要遵循的一些原则。 1. 设置密码需要一定的长度和复杂度。例如,六位以上数字、字母 或字符的组合。 2. 密码最好包含大小写字母、数字和符号。 3. 密码不要与姓名、生日、电话号码等相同。 总之,密码是重要的个人隐私信息,要注意保护好,不要告诉他人。

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. 密码锁应用与拓展:介绍密码锁在现实生活中的应用,激发学生学习兴趣,拓展知识面。

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

简单六位数字密码锁

简单六位数字密码锁

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

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

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

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

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

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

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

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

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

数字密码锁

数字密码锁
探索乐园
你知道旅行包为 什么采用数字密
码锁吗?
探索数字密码锁
学习目标
1、了解数字密码的一般组成规律。 2、知道数字密码的用途,能解答简单数字编 码的实际问题。
学习指导
认真看课本51—52页的内容,看图看 文字,思考: 1、假如密码锁的密码是由两个数字组成 这样的密码锁,一共有多少个密码呢? 2、假如密码锁的密码是三个数字组成这 样的密码锁,一共有多少个密码呢? 3、试着总结数字密码锁的组成规律。
(时间预设6分钟)
假Hale Waihona Puke 数字锁的密码是由两个数字组成
的,每格都可以出现0、1、2、3、4、5、6、7、
8、9十个数字,这样的数字锁一共有多少个密码
呢?
例如:用0打头得到的10个密码是:
00 01 02 03 04
05 06 07 08 09
由两个数字组成的密码共有: 10×10=100(个)
如果数字锁的密码是由三个数字 组成的,每格都可以出现0、1、2、3、4、5、6、7、 8、9十个数字,这样的数字锁一共有多少个密码呢?
由三个数字组成的密码共有: 10×10×10=1000(个)
数字密码锁的组成规律:
由几个数字组成密码, 组成密码的总数就是 几个10相乘
阅读材料
一个由三个数字组成的密码锁,在这1000个密 码中,只有一个密码才能打开。知道密码的人,很 容易就能把密码锁打开,不知道密码的人,要想偷 偷打开锁,就得一个不漏地一个个去试,先000, 001,002……一直试到999。这样就可能会试 1000次,才能打开。如果每试一个数花费10秒, 请你试着算一算:试1000次至少要花费多长时间?
10×10×10×10×26=260000(个) 答:可增加2600000个车牌号。

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 个计数器。

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

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

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

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

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

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

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

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

六位密码锁

六位密码锁

#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数字密码锁(教案)

冀教版六年级数学下册5.2数字密码锁(教案)

2 数字密码锁教学内容教材第51~52页,数字密码锁教学提示《数字密码锁》是冀教版第十二册探索乐园中的一节实践活动课,主要是向学生渗透一些重要的数学思想方法,是通过日常生活中的一些事例,使学生初步体会数字编码方法在解决实际问题中的应用,并通过观察、比较、猜测来探索数字编码的简单方法,让学生学会运用数字进行编码,初步培养学生的抽象、概括能力。

《标准》中指出,第二学段要让学生“进一步体会数在日常生活中的作用,会运用数表示事物,并能进行交流”。

在日常生活中,数有着非常广泛的应用,在第一学段学生已经有了初步体会,特别是在一年级上册认数的时候,教材在“生活中的数”版块中就已经出现了像邮政编码、门牌号、车牌号这样的数在生活中的应用实例。

数可以用来表示数量和顺序,这一知识点学生是已经知道的,而数还可以用来编码,这对学生来说是不大熟悉的,本节课就是在学生的生活经验和已有知识的基础上,进一步体会数字编码在日常生活中的应用,并通过实践活动进行简单的数字编码,培养学生的数学思维能力。

教学目标教学目标:1.结合具体事例,经历探索数字密码的组成规律的过程。

2.掌握数字密码的组成规律,知道数字密码的一些用处。

3.体验数学活动充满着探索性和创造性,体会数字的价值。

重点、难点重点1、初步体会数字编码思想在解决实际问题中的应用,了解用符号和数字组合进行编码的方法。

难点1、尝试用数学的方法来解决实际生活中的简单问题。

教学准备教师准备:实物投影仪;多媒体课件;钥匙。

教学过程²(一)新课导入一、问题情境1.教师拿出自己的钥匙,并引出密码锁。

分别说一说在什么地方或物品见过密码锁,见过几个数字的密码锁。

师:同学们,看老师手里拿的是什么?生:钥匙。

师:对,这些都是用来开锁的钥匙。

现实生活中,还有一种锁是不用钥匙的,你们知道是什么锁吗?生:密码锁师:谁知道什么地方或物品上经常用密码锁?学生可能说出:保险柜、保险箱、旅行箱,等等。

师:看来同学们知道的不少,那谁来说一说你在什么东西上见过几个数字的密码锁学生可能会说:●我在旅行箱上见过三位数的密码锁。

冀教版数学六年级下册第五单元《探索乐园》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。

6位好记的拼音数字组合号

6位好记的拼音数字组合号

6位好记的拼音数字组合号摘要:一、引言二、拼音数字组合号的定义与特点三、六个好记的拼音数字组合号1.1234562.6789013.2581364.4567895.1357926.345678四、拼音数字组合号的实际应用五、总结正文:一、引言随着社会的发展和科技的进步,人们在生活中对数字的依赖越来越强。

为了方便记忆和使用,人们将数字与拼音相结合,形成了独特的拼音数字组合号。

本文将介绍什么是拼音数字组合号,以及六个好记的拼音数字组合号。

二、拼音数字组合号的定义与特点拼音数字组合号是将数字与拼音相结合的一种编码方式。

它的特点是以数字为基础,通过拼音赋予数字特定的含义,使其更易于记忆和使用。

拼音数字组合号可以应用于各种场景,如电话号码、车牌号、门牌号等。

三、六个好记的拼音数字组合号1.123456这个拼音数字组合号源于一个流行的手机解锁密码,由于其简单易记,被广泛应用于各种场景。

这个组合号的拼音含义为“一、二、三、四、五、六”,简单明了,便于记忆。

2.678901这个拼音数字组合号为“六、七、八、九、零、一”,它的特点是将数字0 也融入其中,使其更具有代表性。

这个组合号在生活中也较为常见,易于记忆。

3.258136这个拼音数字组合号为“二、五、八、一、三、六”,它是由数字和拼音组合而成,具有较高的代表性。

这个组合号在生活中较为常见,易于记忆和使用。

4.456789这个拼音数字组合号为“四、五、六、七、八、九”,它的特点是将数字1-9 都融入其中,使其更具有全面性。

这个组合号在生活中较为常见,易于记忆。

5.135792这个拼音数字组合号为“一、三、五、七、九、二”,它是由数字和拼音组合而成,具有较高的代表性。

这个组合号在生活中较为常见,易于记忆和使用。

6.345678这个拼音数字组合号为“三、四、五、六、七、八”,它是由数字和拼音组合而成,具有较高的代表性。

这个组合号在生活中较为常见,易于记忆和使用。

四、拼音数字组合号的实际应用拼音数字组合号在生活中有着广泛的应用,如电话号码、车牌号、门牌号等。

  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.1 电路原理单片机最小系统。

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

3.2 电路原理图图3.2 电路原理图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 设计体会通过这次课程设计和设计中遇到的问题,我积累了一定的经验,刚开始做设计时总是会犯一些错误,只有经过不停的改错不停的编译才能得到正确的程序。

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

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

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

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

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

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

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

整个过程都需要我充分利用所学的知识进行思考、借鉴。

相关文档
最新文档