模拟密码锁 完整版 JJ
- 格式:doc
- 大小:364.50 KB
- 文档页数:17
第一章单片机系统板说明一、概述单片机实验开发系统是一种多功能、高配置、高品质的MCS-51单片机教学与开发设备。
适用于大学本科单片机教学、课程设计和毕业设计以及电子设计比赛。
该系统采用模块化设计思想,减小了系统面积,同时增加了可靠性,使得单片机实验开发系统能满足从简单的数字电路实验到复杂的数字系统设计实验,并能一直延伸到综合电子设计等创新性实验项目。
该系统采用集成稳压电源供电,使电源系统的稳定性大大提高,同时又具备完备的保护措施。
为适应市场上多种单片机器件的应用,该系统采用“单片机板+外围扩展板”结构,通过更换不同外围扩展板,可实验不同的单片机功能,适应了各院校不同的教学需求。
二、单片机板简介本实验系统因为自带了MCS-51单片机系统,因此没有配置其他单片机板,但可以根据教学需要随时配置。
以单片机板为母板,并且有I/O接口引出,可以很方便的完成所有实验。
因此构成单片机实验系统。
1、主要技术参数(1)MSC-51单片机板板上配有ATMEL公司的STC89C51芯片。
STC89C51资源:32个I/O口;封装DIP40。
STC89C51开发软件:KEIL C51。
2、MSC-51单片机结构(1)单片机板中央放置一块可插拔的DIP封装的STC89C51芯片。
(2)单片机板左上侧有一个串口,用于下载程序。
(3)单片机板的四周是所有I/O引脚的插孔,旁边标有I/0引脚的脚引。
(4)单片机板与各个模块配合使用时,可形成—个完整的实验系统。
三、母板简介主要技术参数(1)实验系统电源实验系统内置了集成稳压电源,使整个电源具有短路保护、过流保护功能,提高了实验的稳定性。
主板的右上角为电源总开关,当把220V交流电源线插入主板后,打开电源开关,主板得电工作。
为适用多种需要,配置了+5V,+12V,—5V电压供主板和外设需要,通过右上角的插针排和插孔输出到外设。
此外,还设有螺旋保险插孔保护实验箱。
(2)RS232接口RS232接口通过MAX232芯片实现与计算机的串行通讯,通过接口引出信号。
模拟自动取款机设计方案1. 设计目的《面向对象程序设计课程设计》是计算机科学与技术专业和软件工程专业集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。
其目的在于加深对面向对象程序设计中基础理论和基本知识的理解,培养学生的实践能力,促进理论与实践的结合。
通过课程设计,让学生能够熟练进行面向对象编程,建立对象模型,降低软件的复杂性,改善软件的重用性和维护性,提高软件的生产效率,全面掌握面向对象编程技术。
2. 设计要求1、掌握使用一种面向对象程序设计语言如Borland C++或Visual C++等。
2、培养调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。
3、通过课程设计,要求学生在指导教师的指导下,独立完成实习课题的全部内容,包括:⑴ 通过调查研究和上机实习,收集和调查有关技术资料。
⑵ 掌握设计课题的基本步骤和方法。
⑶ 根据课题的要求进行上机实验调试。
4、课程设计完成后,提交课程设计报告3. 设计方案3.1 .设计题目:模拟自动取款机(ATM)运用C++语言描述ATM机类和银行卡类,每个类均包含数据成员和成员函数,并运用对象的引用和友元类的知识。
注重面向对象程序设计理论知识的理解与实际的动手编程能力。
运用面向对象的理念实现模拟自动取款机使用过程中的界面和用户交互过程。
本课程设计要实现的主要功能如下:1. 查询银行卡余额;2. 取款;3. 修改银行卡密码;4. 退出系统。
3.2.系统特点321.系统实现:1. 核对密码:核对用户输入的密码是否正确;2. 修改密码:修改银行卡密码;3. 取款:取款;4. 查询信息:查询余额;5. 退出系统:操作完成退出;6. 锁机吞卡:操作不当如:密码输入错误超过3次,银行卡将被锁。
4.设计内容4.1.层次分析1.主程序流程图:2■类结构图:BankCardATM类为BankCard类的友元类ATM -times: int-totalmoney:float-leftmoney:float-oncemoney float-& BankCardAtATM : BankCard+ATM (& bc: BankCard)+ welcome()+ checkpasswd(char n[],char pwd[])+changepasswd()+ fetchmoney()+information()+exitATM()+functionshow()+lock()+Clear()42核心算法主要核心算法:取款,修改密码。
仿真密码锁课程设计一、课程目标知识目标:1. 学生能理解密码锁的基本原理,掌握电子密码锁的组成结构及其功能。
2. 学生能描述仿真密码锁的设计过程,了解程序设计中的条件判断和循环结构。
3. 学生掌握基本的电子元件使用,如按钮、LED灯和蜂鸣器,并能运用到密码锁的制作中。
技能目标:4. 学生通过动手实践,能够操作相关的电子设备,进行仿真密码锁的组装与编程。
5. 学生能够运用逻辑思维和问题解决能力,设计并实现一个具备基本功能的仿真密码锁。
6. 学生通过团队协作,提高沟通与配合能力,共同完成密码锁的制作任务。
情感态度价值观目标:7. 学生培养对工程技术和创新设计的兴趣,增强探究未知领域的热情。
8. 学生在项目实施过程中,体验科学研究的严谨性,形成精益求精的工作态度。
9. 学生通过课程学习,认识到科技在生活中的应用,增强学以致用的意识,培养创新精神和实践能力。
二、教学内容本课程将围绕以下教学内容展开:1. 密码锁原理介绍:包括密码锁的工作原理、电子密码锁的组成及其功能。
- 相关教材章节:第三章“电子密码锁的基础知识”2. 电子元件知识:学习按钮、LED灯、蜂鸣器等基础电子元件的使用方法。
- 相关教材章节:第二章“常用电子元件”3. 程序设计基础:介绍条件判断、循环结构等基本编程概念。
- 相关教材章节:第五章“基础程序设计”4. 仿真密码锁设计与制作:指导学生进行仿真密码锁的组装、编程与调试。
- 相关教材章节:第六章“项目实践:仿真密码锁设计与制作”5. 团队协作与沟通:培养学生团队协作能力,提高沟通与配合技巧。
- 相关教材章节:附录“团队合作与沟通技巧”教学安排与进度:- 第一周:学习密码锁原理,了解电子密码锁的组成。
- 第二周:学习基础电子元件知识,熟悉相关元件的使用。
- 第三周:掌握程序设计基础,为密码锁编程做准备。
- 第四周:分组进行仿真密码锁设计与制作,期间穿插团队协作与沟通技巧训练。
- 第五周:完成仿真密码锁的制作,进行作品展示与评价。
解锁密码小游戏游戏名称:解锁密码目标:解锁密码是一款益智游戏,玩家的目标是通过解密密码来打开锁定的箱子。
每个箱子都有一个独特的密码,玩家需要通过猜测正确的数字组合来解锁箱子并获得奖励。
规则:1. 游戏开始时,玩家将面对一个锁定的箱子,并被要求输入一个四位数的密码。
2. 密码由数字0-9组成,且每个数字只能使用一次。
例如,密码可以是1234或7890。
3. 玩家每次输入一个密码后,游戏会给出一些提示来帮助玩家猜测正确的密码。
4. 如果玩家猜测的数字正确且位置正确,则游戏会给出一个"O"的提示。
5. 如果玩家猜测的数字正确但位置错误,则游戏会给出一个"X"的提示。
6. 如果玩家猜测的数字都不正确,则游戏不会给出任何提示。
7. 玩家需要根据提示不断调整猜测,直到猜测出正确的密码为止。
玩法:1. 玩家开始游戏后,会看到一个四位数的密码输入框。
2. 玩家可以通过点击数字按钮来输入猜测的数字,然后点击确认按钮来提交猜测。
3. 游戏会根据玩家的猜测给出相应的提示,玩家需要根据提示来调整下一次的猜测。
4. 玩家可以根据自己的推理和记忆来尝试不同的数字组合,以便更快地找到正确的密码。
5. 玩家可以使用策略和技巧来提高猜测的效率,例如根据提示排除一些数字或尝试一些常见的密码组合。
6. 当玩家猜测出正确的密码时,箱子将会打开,玩家将获得奖励并进入下一关卡。
术语和技巧:1. 密码:由四个数字组成的猜测目标。
2. 提示:"O"表示猜测的数字正确且位置正确,"X"表示猜测的数字正确但位置错误。
3. 排除法:根据提示排除一些不可能的数字组合,以缩小猜测范围。
4. 常见密码:一些常见的密码组合,如1234、0000、8888等,可以作为猜测的起点。
创造性和想象力:1. 玩家可以尝试不同的密码组合和猜测策略,如按照某种规律逐渐递增或递减猜测的数字。
2. 玩家可以根据提示和自己的推理来猜测密码,例如根据之前的提示来判断哪些数字可能是正确的。
2020年7⽉1⽇更新C2000-A2-SAA0402-JJ3 使⽤说明书Ethernet ⇋ 4AI + 2AO0-5/0-10V远程 I/O 模块 — 以太⽹型模拟量模块深圳市中联创新⾃控系统有限公司Shenzhen United Innovation Automatic Control System Co., Ltd.24445568810111213131414141414141414141416161617171919202121262627283031⽬录⽬录1. 快速使⽤1.1. 使⽤前准备1.2. 设备接线1.3. 软件设置及设备调试1.3.1. 设备搜索及参数设置1.3.2. 设备调测2. 硬件说明2.1. 技术参数2.2. 产品外观2.3. 指⽰灯2.4. 端⼝说明2.5. 尺⼨2.6. 安装⽅式3. 产品功能3.1. AI 采集3.2. AO 输出3.3. 其他功能3.3.1. AI 采样率设置3.3.2. AI 模块滤波参数3.3.3. AI 模块采样范围3.3.4. AI ⼯程量⾼(低)点标定3.3.5. AO 上电值3.3.6. AO ⼯程量⾼(低)点标定4. 软件操作4.1. 软件安装4.2. 软件界⾯及功能介绍4.3. 软件使⽤4.3.1. 设置设备参数4.3.2. 设备状态查看4.3.3. 设备参数修改4.3.4. 远程设置5. 通信协议5.1. 寄存器列表5.2. 协议应⽤范例5.2.1. 读AI ⼯程量(0x03)5.2.2. 读AI 原始值(0x03)5.2.3. 设置AO ⼯程量(0x10)6. 装箱清单7. 产品服务【版权声明】©2000 - 2020 中联创新版权所有【商标声明】及其它中联创新服务相关的商标均为深圳市中联创新⾃控系统有限公司及其关联公司所有。
本⽂档涉及的第三⽅主体的商标,依法由权利⼈所有。
【免责声明】本⽂档仅提供有关康耐德产品的信息。
沈阳工程学院微机原理及应用课程设计成绩评定表系(部):电气工程系班级:发电本093 学生姓名:文鹏中文摘要随着科学技术的发展和高新技术的广泛应用,电子技术在国民经济的各个领域所起的作用越来越大,并深深地渗透到人们的生活、工作、学习的各个方面。
同时在工业领域,为防止他人误操作而利用电子锁进行加密的机械控制也得到了广泛的应用。
本设计就是利用8255、8254、电子发声单元和发光二极管等制作了一款多功能密码锁。
在输入密码正确的条件下,控制电控锁开启(用发光二极管亮来代替),同时显示”O”字样;当输入密码错误时,发出错误警告声音,同时显示”C”字样,并报警。
密码锁的设计,硬件方面,最难的就是键盘值的确定及LED数码管的显示,本设计采用扫描法来解决键值读取;软件方面,最主要的则是取出键盘输入值,和已知密码比对等。
关键字:模拟密码锁,扫描法,密码比对目录课程设计任务书课程设计成绩评定表中文摘要 (I)1 总体设计 (1)1.1 模拟密码锁原理 (1)1.2 初步设计思路 (1)2 硬件设计 (2)2.1 LED数码块模板 (2)2.2 按键模块 (4)2.3 报警模块和发光二级管模块 (5)3 软件设计 (6)3.1 软件概要设计 (6)3.2 功能模块详细设计 (6)3.3 程序流程图 (9)4 系统测试分析 (11)总结体会 (12)致谢 (13)参考文献 (14)1 总体设计1.1模拟密码锁的原理是:从键盘输入一组密码,CPU把该密码和设置密码比较,对则将锁打开,显示“O”字样,同时数码灯亮;错则LED显示“C”字样,并发出声音报警。
1.2初步设计思路如下:1.输入密码用矩形键盘。
2.LED数码管显示输入密码,采扫描法确定具体按键。
3.用发光二极管模拟锁的情况,锁时发光二极管灭,打开时发光二极管亮。
4.输入密码错误时报警。
软件的设计主要包括矩形键盘键值的读取、LED扫描输出程序、密码判断程序和报警程序。
系统硬件电路图如1.1所示:图1.1 系统硬件电路2 硬件设计根据设计思路,硬件电路可通过实验平台上的一些功能模块电路组成,由于实验平台上的各个功能模块已经设计好,用户在使用时只要设计模块间电路的连接,因此,硬件电路的设计及实现相对简单。
硬件电路由LED数码管显示模块、按键模块、发光二极管电路和蜂鸣器模块组成。
2.1 LED数码块模板实验平台上提供一组四个LED数码管。
七段LED数码管由名称为abcdefg的7个笔画段和一个圆点dp组成,这7个笔画段在点亮时,可以显示数字和一些简单的西文字符。
本设计用8255的PB口作为输出,和7段LED数码管的abcdefg和dp相连,8255的A口低四位PA0~PA3和LED列线连接,共同来控制内容的显示。
数码灯的示意图如图2.1所示。
图2.1 LED数码管正面图本程序是用的共阳极,从上图可以看出,要使数码管显示数字,有两个条件:(1)要在COM端加正电源;(2)要使(a、b、c、d、e、f、g、dp)端接低电平或”0”,这样才能显示。
LED数码管上显示的数字,必须经过转换,才能显示正确的字样。
常用字符共阴极、共阳极时的段码即编码表,如表2.1所示。
表2.1 段码表本设计中,LED数码管的连线如图2.2所示。
由于a、b、c、d、e、f、g、dp分别和8255B口的PB0~PB7相连(8255的控制字假设初始化为81H)。
那么假如我现在已经选中了一个数码管,如果我要输出一个‘0’,那么我只要写下如下代码段:MOV DX,MY8255_B ; MY8255_B为B口的端口地址MOV AL,3FHOUT DX,AL这样,即可在该选中数码管上显示一个字符‘0’。
图2.2 LED灯示意图2.2 按键模块实验平台提供了2*4的矩阵键盘。
为了检测键盘是否有键按下及具体按下了那个键,本设计使用列扫描法。
分两步:(1)查询是否有键按下将所有列线置成低电平0,然后通过行线输入全部行值,若读入的行值全是1,则说明没有任何一个键按下;若读入的行值不全是1,则说明有键按下。
也就是说,在键盘识别的开始先进行全扫描,若有键按下,则必须判别是哪个键按下。
(2) 一旦发现有键按下,则采用逐列扫描的办法来确定究竟是那个键被按下。
先扫描第一列,也就是使它输出低电平0,其余的列线为高电平1,然后读入行值。
若读入的行值中有一位为低电平0,则说明在此行的一个行、列交叉处有键被按下。
若读入的行值全是1,则说明这一列所有键都未被按下。
接着扫描第二列。
依此类推,直到扫描完全部的行线为止。
若在扫描过程中发现非全1的行值,就能找出被按下键的位置。
在处理按键模块中,必须要解决的问题是,如何解决键抖动、重键、一次按键多次处理,及键值的确定。
前面三个问题,用软件的方法,很容易实现。
可以用多次扫描,延时来消除干扰。
而键值的确定,也使用了一点儿技巧。
键的行列值不是该键所对应的键值,那么CPU如何根据行、列值得到所按下键的键值呢?最方便的方法是利用按键所在的行、列值,形成一个查表值。
然后,查表得到相应的键值。
本设计用8255的C口低四位PC0~PC3连接键盘的行线,接收键盘的输入;A口的低四位PA0~PA3作为和数码管及键盘的共阴极线连接。
键盘物理结构示意图如图3.3。
图2.3 键盘物理结构键盘和8255的电路连线如图2.4所示。
图2.4 键盘电路和8255的连接图2.3报警模块和发光二极管模块报警模块由SPK电子发声单元和8254组成。
当密码输入错误时,8254发出方波脉冲,驱使电子发声单元发声。
发光二极管也是用8255输出来驱动亮灭。
8255的A口高四位和发光二极管连接。
当输入密码正确的时候,灯亮,以示锁打开,就是给PC4~PC7赋值。
3 软件设计3.1软件概要设计模拟密码锁的设计,最重要也是最难的部分,就是软件的设计。
很多地方都要采用技巧性的东西。
如按键次数的确定,键盘抖动的消除等等。
密码锁工作的主要过程是PC屏幕输出提示开始输入密码,通过2*4键盘输入密码,同时LED显示密码输入情况,按下3次键后判断密码的正确性,作出开锁或报警处理。
3.2功能模块详细设计根据程序功能,程序大致分为键盘键值读取显示,密码判断和开锁或报警处理几个大的子过程。
(1)键盘键值读取程序键盘键值读取程序包括键盘扫描、消除抖动、键译码等内容。
本设计采用了扫描法。
因为键盘为机械开关,容易引入抖动。
为了消除抖动干扰,在程序中要加入消除抖动的部分。
因此程序的布局就显得很重要。
为了防止键抖动、重复响应,在初步扫描是否有键按下时,都是调用CALL DIS、CALL CLEAR、CALL CCSCAN,即是显示,清屏,扫描,重复两次,然后再跳转到获取具体键值的代码段。
(2)LED数码显示程序LED数码显示器是一种应用很普遍的显示器。
程序主要负责把要显示的数字或字母对应的显示码送到相应的LED显示管。
显示子程序如下:DIS PROC NEAR ;显示键值子程序PUSH AX ;以缓冲区存放的键值为键值表偏移找到键值并显示MOV SI,3000HMOV DL,0F7HMOV AL,DLAGAIN: PUSH DXMOV DX,MY8255_AOUT DX,AL ;设置X1~X4,选通一个数码管MOV AL,[SI] ;取出缓冲区中存放键值MOV BX,OFFSET DTABLEAND AX,00FFHADD BX,AXMOV AL,[BX] ;将键值作为偏移和键值基地址相加得到相应的键值 MOV DX,MY8255_BOUT DX,AL ;写入数码管A~DpCALL DALLYINC SI ;取下一个键值POP DXMOV AL,DLTEST AL,01H ;判断是否显示完?JZ OUT1 ;显示完,返回(jz:zf = 1跳转)ROR AL,1MOV DL,ALJMP AGAIN ;未显示完,跳回继续OUT1: POP AXRETDIS ENDP(3)密码判断程序当按下3次键后,按键计数值count为6,则跳转到密码比对代码段。
从3003H开始处,读取键盘数输入据,与预先设定的密码逐位比较,就可以判断输入密码的正确性。
代码段如下:pwd: ;从开辟的缓冲区内读出键盘输入的值,和已知密码逐个比对mov si,3003hmov di,offset pwdmov al,[si]mov bl,[di]cmp al,blje next1jmp show1next1:mov si,3002hmov al,[si]mov bl,[di+1]cmp al,blje next2jmp show1next2:mov si,3001hmov al,[si]mov bl,[di+2]cmp al,blje next3jmp show1next3:mov si,3000hmov al,[si]mov bl,[di+3]cmp al,blje show2jmp show1(4)开锁和报警程序通过8255的A口高四位输出,控制发光二极管的亮灭。
用8254控制电子发声单元鸣叫。
发声子程序如下:ring procBEGINr:MOV SI,OFFSET FREQ_LIST ;装入频率表起始地址MOV DI,OFFSET TIME_LIST ;装入时间表起始地址PLAY: MOV DX,0FH ;输入时钟为1.0416667MHz,1.0416667M = 0FE502HMOV AX,0E502HDIV WORD PTR [SI];取出频率值计算计数初值,0F4240H / 输出频率MOV DX,MY8254_COUNT0OUT DX,AL ;装入计数初值MOV AL,AHOUT DX,ALMOV DL,[DI] ;取出相对时间,调用延时子程序CALL DALLYrADD SI,2INC DICMP WORD PTR [SI],0 ;判断是否到悄?JE BEGINrMOV AH,1 ;判断是否有按键按下?INT 16HJZ PLAYQUITr: MOV DX,MY8254_MODE ;退出时设置8254为方式2,OUT0置0 MOV AL,10HOUT DX,ALMOV AX,4C00H ;返回到DOSINT 21Hring endp3.3程序流程图由程序的功能模块详细设计可得程序流程图,如图3.3。
流程图4 系统测试分析系统完成后,连线测试。
结果如下:(1)编译、连接、运行程序,按下PC键的F2键,退出,返回到DOS。
(2)按下PC键的F1键,PC屏幕上打印信息,提示转入4*4键盘输入。
(3)在键盘上输入密码540262,开锁。
发光二极管亮,模拟锁打开,LED显示字符“O”,以示开锁成功。
O表示Open.(4)在键盘上输入其它6位数字,开锁失败。