硬件系统设计 1)控制系统主要由单片机应用电路、存储器接口电路和显示接口电路组成。 其中,单片机AT89C51是系统的核心。 它主要负责控制各部分的协调。 2)硬件组成及所需器件:本系统的核心器件是AT89C51。 其外围连接复位电路、上拉电阻、数码管、按钮、扬声器。 其元件为:晶体振荡器X1、电容器C1、C2、C3和电阻器RP1。 P3.0和P3.1由裁判控制,分别是停止键和开始键。 P1.0-P1。 是8组响应的输入端口。 P2.0–P2.3口为数码管的段选口。 位选择端口使用P0.0–P0.6 的输出端口和外部中断。 0、1和P3.3、P3.4答题时间调整端口,实现各队计时及加减调整,外部中断0、1实现答题时间调整。 P3.4P3.5分别实现时间加一和减一。 控制系统采用Proteus进行实时预防。 集成调试环境集成了编辑器、编译器和调试器,支持软件仿真,支持项目管理功能,并具有支持所有数据类型的强大观察窗口。 系统仿真还采用PROTEUS软件,通过仿真可以充分展示所设计系统的功能,对程序调试很有帮助。 一、设计要求 1、题目:电子密码锁 选择题目后,首先在proteus上进行软件仿真设计,在仿真实现的基础上,要求完成部分硬件模块的制作和系统联调。 具体要求请参见选题。
设计流程:根据课题功能需求查阅相关文献制定电路原型,选择电路元件,绘制原理图,电路软件仿真分析,验证设计方案实际部分,硬件制作,系统联调,撰写设计报告 时间安排:选题完成后,您安排时间审核课题信息,设计原理方案,然后进行软件模拟(可以使用自己的电脑或在实验室开放时间段预约)在实验室进行模拟实验)。 完成上述工作后,预约第一阶段检查验收。 验收通过后,持导师验收签字单到实验中心领取硬件生产设备。 调试完成后,指导老师签字验收。 最后写出课程设计总结报告并提交给实验中心。 2、密码锁的具体设计要求:数字密码,通过键盘输入正确的密码即可更改密码或开锁; 密码输入错误3次,电路将连续报警; 解锁信号输出端口由发光二极管指示。 同时,输入密码后必须按确认按钮才有效。 1、可设置密码,并且断电保存密码; 2.按下按钮时,会发出蜂鸣声; 3、设置新密码前需要验证旧密码; 主动部分:密码以密文形式存储在内存中(加密方式可采用DES算法) 可选器件:51系列单片机、24C01、7段LED数码管、74LS244或74LS240、非门等2设计方案本设计采用以AT89S52为核心的单片机控制方案。 利用单片机灵活的编程设计和丰富的IO口,以及其控制的准确性,不仅可以实现基本的密码锁功能,还可以增加功率调节存储、声光提示,甚至远程控制功能。
原理如图1-2所示。 图 2-1 单片机控制方案 键盘功能及工作原理 PC 键盘功能主要包括按键识别、去抖、按键重键处理、发送扫描码、自动重发、接收键盘命令、处理命令等。键盘包括编码键盘和非编码键盘键盘。 编码键盘编程简单,但硬件电路复杂,价格较高; 非编码键盘采用软件实现按键识别、编码转换、去抖等功能,硬件电路简单,价格便宜。 非编码键盘广泛应用于现代微型计算机系统中。 PC键盘大多采用18列二维矩阵行列结构。 行扫描方法用于识别按下的按键。 本设计采用矩阵键盘,也可以减少键盘与单片机接口时占用的线数。 这种方法通常在key较多的情况下使用。 原理如图2-2所示。 开锁控制电路 89S52 单片机串口显示电路 矩阵键盘控制输入错误锁定键盘延时报警控制电路 图 2-2 列键盘原理电路图 一条水平线(行线)和一条垂直线(列线)各交叉点不相连,但通过一个按键连接,利用这种行列式矩阵结构,只需要N根列线就可以组成一个有NM个按键的键盘。 在这种矩阵键盘、非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认是否有按键的程序段。 确认按下按钮后,下一步就是识别按下的是哪个按钮。 识别key的方法通常有两种:一种是常用的逐行扫描查询方法; 另一种是速度更快的线反转方法。
对比图2-3所示的44键盘来说明线路反转的工作原理。 首先判断键盘上是否有按键按下。 单片机的I/O口向键盘发送全扫描字,然后读取线路状态进行判断。 方法是:向行线输出全扫描字00H,将所有列线置为低电平,然后将列线的电平状态读入累加器。 如果按下某个按钮,总会有一根行线电平被拉至低电平,因此并非所有行线都为1。确定按下键盘上的哪个键是通过将列线设置为低电平column来实现的列,然后检查行输入状态。 方法是:依次向列线发送低电平,然后检查所有行线的状态。 如果全部为1,则按下的键不在该列; 如果不是全部为1,则按下的键一定在这一列中。 就是与零电平行线交点处的键。 按钮操作面板如图2-3所示。 共有10个数字键和6个功能键。 键盘上还有3个指示灯和一个蜂鸣器。 图2-3 按键操作面板图 89s51D0D1D2D3D4D5D6D7D8D9D105.1K 按键包括数字键和功能键。 数字键包括0-9键,用于密码输入。 功能键包括密码修改键和确认键。 具体函数定义如下。 按键名称 功能说明 1-9 数字键 输入密码 确认键 密码输入 完整密码 修改键 修改密码 删除键 向前删除一位数字 2、硬件设计根据实验要求采用4列矩阵行结构。 89c51单片机有4个端口,使用端口P1的低四位作为行扫描线,高四位作为列扫描线。
消除抖动和重密钥处理的软件设计:利用软件上的延时程序消除抖动; 采用后按键优先处理,即同时按下多个按键时,仅重复发送最后按下的按键的扫描码。 程序包括键盘扫描子程序、发送键码子程序、发送数据子程序、接收命令子程序、主程序等。键盘扫描子程序用于扫描按键状态,并将按下按键的位置号存储到缓冲区中。 发送键码子程序用于将缓冲键的连接码或断开码发送到计算机键盘接口或存在键盘密码缓冲区。 发送数据子程序用于向计算机键盘接口发送数据; 接收命令子程序用于接收来自计算机键盘接口的键盘命令; 主程序用于系统初始化、子程序调度、锁定状态显示等。 3、显示电路设计考虑到实验室只能提供四位阴极LED显示管,所以只设计了四位密码在设计过程中。 LED显示管电路连接图如下图所示。 图中1234为位选择码,低电平有效。 在每一位前面加一个反相器作为驱动器,然后连接到单片机P2口的低四位。 。 段选择代码连接到两个74LS240作为驱动器。 74LS240还具有反相作用,因此在编程时做了特殊处理。 段选择码的8位连接到单片机的P1。 4、开锁及修改密码单元通过单片机发送至开锁执行机构,电路驱动电磁锁关闭,从而达到开锁的目的。 原理如图2-5所示。 图2-5 密码锁开锁机构示意图。 当用户输入的密码正确且在规定时间内(普通用户要求在12s内输入正确密码,管理员要求在5s内输入正确密码),单片机将输出开门信号送到开锁驱动电路,驱动电磁锁达到开门的目的。
实际电路如图2-5所示。 本设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁。 如果发光二极管亮,则表示锁已解锁; 如果熄灭,则表示锁未解锁。 按密码修改键后,系统会要求您输入原密码。 如果正确,请输入新密码。 如果密码修改成功,单片机 P3.1 连接的 LED 会亮起 3 5. 系统原理框图 图 2-7 系统原理框图 51 系列单片机 LED 显示 ROM 存储复位电路 晶振电路 点亮发光二极管单片机单片机设计 整体电路图如图 2-8 所示: 图 2-8 密码锁仿真模型 图 3 设计流程 1. 模块介绍 本计量计价系统的软件设计分为以下几个模块: (1)主程序模块 主程序主要完成初始化、设置中断向量、检查按钮是否按下、调用显示等功能。主程序流程图如下所示。 (2)键盘扫描识别子程序键盘采用查询方式,放置在主程序中。 当没有按键按下时,微控制器循环主程序。 一旦按下某个键,就转到相应的子程序进行处理,处理结束。 再次返回。 (3)比较密码时,功率调整存储服务程序需要读取AT24C02程序,将芯片中存储的数据读入RAM中,然后与输入的密码进行比较。 修改密码时,需要将输入的密码保存到AT24C02 中。 (4) 显示子程序 (5) 延时模块 2、程序流程图 (1) 主程序流程图和密码修改程序流程图如图3-1 所示。 如图3-2所示。
3、程序用C语言编写 3.1 主程序 void main() unsignedint key=0;lock=3; 更改时间1=0; 更改时间=0; 在里面(); //ROM初始化 if(!readcode(0)) {chgtime=0; 启动初始化调用并显示启动定时识别按钮。 所有按钮都已按下吗? 超时?比较密码,开门时自动清除。 按F2开始定时输入密码并将其存储在缓冲区中。 再次输入比对密码。 请致电 24C02。 调用显示屏并按F2 退出。 图 3-1 主程序流程图 图 3-2 修改密码流程图 10 write_add(0,chgtime ); 延迟(100); savecode(1,6,password1);} for(i=0;i100;i++) init_dpy(5,hello);//开机显示信息