单片机原理及应用课程设计 机101-6班单片机原理及应用课程设计书设计题目:电子密码锁 专 业:机械设计制造及其自动化班 级:机101-6班 姓 名:张向峰 学 号:201056501630 指导老师:刘鹏 2013年6月机电汽车工程学院1、 概述本实验利用集成电路芯片AT89C51,LED数码管以及4X4矩阵式键盘来设计密码锁将软件和硬件有机的结合起来,使得系统能够正确的开启密码,数码管能够正确的显示所设定的数字2、 设计要求A. 密码锁由4*4键盘和4 位数码管组成B. 当输入密码时,只显示8,当密码输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门打开,此处用LED发光二极管亮一秒作为提示若密码不正确,则可以重新输入密码如果连续三次输入密码错误,则禁止输入3设计流程:查阅有关文献资料→拟定电路原型→依据题目功能要求,进行电路元件选择→画出原理电路→系统硬件电路图→完成课题的程序设计→程序设计清单→写出设计报告。
4可选器件:51系列单片机、24C01、LED数码管、74LS244、非门等5.设计方案采用一种是用以AT89S51为核心的单片机控制方案利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示控制功能其原理如下图所示AT89C51晶振电路复位电路键盘输入模块密码存储模块LED显示模块开锁电路蜂鸣器报警电路各模块功能如下:1.键盘输入模块:分为密码输入按键与功能按键,用于完成密码输入功能2.密码存储模块:用于完成掉电存储功能,使修改的密码断电后仍能保存3.晶振电路:用于单片机的起振4.复位电路:完成系统的复位5.LED显示模块:用于完成对系统状态显示及操作提示功能6.开锁电路:应用发光二极管模拟开锁,完成开锁及开锁提示芯片功能介绍单片机AT89C51介绍 AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案外形及引脚排列如下图所示:图1 AT89C51引脚图AT89C51管脚说明:VCC:供电电压 GND:接地 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流当P1口的管脚第一次写1时,被定义为高阻输入P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故在FLASH编程和校验时,P1口作为第八位地址接收 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流这是由于内部上拉的缘故P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容P2口在FLASH编程和校验时接收高八位地址信号和控制信号 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流当P3口写入“1”后,它们被内部上拉为高电平,并用作输入作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故RST:复位输入当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节在FLASH编程期间,此引脚用于输入编程脉冲在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6因此它可用作对外部输出的脉冲或用于定时目的然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲如想禁止ALE的输出可在SFR8EH地址上置0此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高如果微处理器在外部执行状态ALE禁止,置位无效 /PSEN:外部程序存储器的选通信号在由外部程序存储器取指期间,每个机器周期两次/PSEN有效但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器在FLASH编程期间,此引脚也用于施加12V编程电源(VPP) XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入 XTAL2:来自反向振荡器的输出 XTAL1和XTAL2分别为反向放大器的输入和输出该反向放大器可以配置为片内振荡器石晶振荡和陶瓷振荡均可采用如采用外部时钟源驱动器件,XTAL2应不接由于输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度 整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式在闲置模式下,CPU停止工作但RAM,定时器,计数器,串口和中断系统仍在工作在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止6、 键盘功能及工作原理 键盘功能主要有按键识别、去抖、重键处理、发送扫描码、自动重发、接收键盘命令、处理命令等键盘有编码键盘和非编码键盘编码键盘程序设计简单,但硬件电路复杂,价格较高;非编码键盘用软件来实现识别键、编码转换、去抖等功能,硬件电路简单,价格便宜现代微机系统中广泛采用非编码键盘工业键盘多采用4行×4列的二维矩阵行列结构采用行扫描法识别按下的按键本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法其原理如右图所示89s51D0D1D2D3D4D5D6D7D8D9D105.1K X 45.1K X 4VCC4*4 行列式键盘原理电路图每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×M个按键的键盘。
在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段当确认有按键按下后,下一步就要识别哪一个按键按下对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法对照上图所示的4*4键盘,说明线反转个工作原理首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断方法是:向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键按键的操作面板如下图所示 按键操作面板示意图按键包括有数字键和功能键数字键包括0-9键,用于密码的输入功能键有确认键具体的功能定义如下表按键键名功能说明0-9键数字键输入密码A键确认键密码输入完成硬件设计 由实验要求采用4行×4列的矩阵行列结构89c51单片机有4个8位I/O端口,采用P1口低四位作为行扫描线,高四位作为列扫描线。
软件设计 ① 消抖及重键处理:通过软件上延时程序来消除抖动;采用后按键优先处理,即多键同时按下时,只重复发送最后按下键的扫描码② 程序包括键盘扫描子程序、发送键码子程序、发送数据子程序、接收命令子程序、、主程序等键盘扫描子程序用于扫描键状态,将被按键的位置号存入缓冲器中;发送键码子程序用于将缓冲区键的接通码或断开码发送给计算机键盘接口或者存在键盘密码缓冲区中;发送数据子程序用于将数据发给计算机键盘接口;接收命令子程序用于接收计算机键盘接口发来的键盘命令;主程序用于系统初始化,子程序调度,锁定状态的显示等7、 时钟电路设计时钟电路为单片机产生时序脉冲,单片机所有运算与控制过程都是在统一的时序脉冲的驱动下的进行的,如果单片机的时钟电路停止工作(晶振停振),那么单片机也就停止运行了当采用内部时钟时,连接方法如下图所示,在晶振引脚XTAL1(19脚)和XTAL2(18脚)引脚之间接入一个12MHZ晶振,两个引脚对地分别再接入一个电容即可产生所需的时钟信号,电容的容量一般在几十皮法,如33PF8、 复位电路设计复位是单片机的初始化操作单片机启运运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。
因而,复位是一个很重要的操作方式但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现该复位电路采用按键电平复位式复位电路当单片机已在运行当中时,按下复位键后松开,在复位引脚RET(9脚)脚持续出现24个振荡器脉冲周期(即2个机器周期)的高电平信号将使单片机复位也能使RST为一段时间的高电平,从而实现上电或开关复位的操作9、开锁单元通过单片机送给开锁执行机构,电路驱动电磁锁吸合,从而达到开锁的目的其原理如下图所示89C51开锁驱动电路指示灯密码正确?Y返回N密码锁开锁机构示意图当用户输入的密码正确而且是在规定的时间(普通用户要求在12s内输入正确的密码,管理员要求在5s输入正确的密码)输入的话,单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的目的。