当前位置:文档之家› 6位数字密码锁控制器

6位数字密码锁控制器

得分:_______ 南京林业大学研究生设计报告2011 ~ 2012 学年第一学期课程名称:微机控制与自动化报告题目:六位数字密码锁控制器学号:作者:联系电话:任课教师:二○一一年十二月六位数字密码锁控制器一、设计目的:随着社会的发展,单片机市场已经形成一个规格齐全、品种繁多的大家族,用户有非常大的选择余地。

单片机的应用十分广泛,在工业控制领域、家电产品、智能化仪器仪表、计算机外部设备,特别是机电一体化产品中,都有非常重要的用途。

本设计作为微机原理与自动化的课程作业,泥实现以下目的:1.通过自主编程,以熟悉80c51单片机的控制及编程方法;2.通过设计与编程,熟悉单片机与外设的连接方法;3.通过使用protel绘画电路图,熟悉protel软件;4.熟悉液晶显示器的使用方法。

二、设计实现的功能:1.通过0~9十个数字键实现六位密码的设置,验证和修改,在密码输入错误时系统会自动报警,可按复位键重新输入密码。

2.通过LED七段数码管显示密码。

三、设计所需的芯片器材ATMEL公司的AT89C51单片机,74LS273的8D锁存器,74LS244的8位三态缓冲器,LED显示器、按键若干。

四、总体方案设计1.总体框图设计选用AT89C51单片机,加上相应的按键、晶振、复位、显示电路,并进行各种软件的设计。

密码锁控制器的总体设计框图如图1所示。

2. 显示控制方案在构成多位LED显示时,点亮数码管的方式有静态显示和动态显示两种。

静态显示方式:LED的静态显示是指当数码管显示某一字符时,相应段的发光二极管处于恒定地导通或截止状态,直到显示另一字符为止。

静态显示方式各位可独立显示。

由于各位分别由一个8位I/O接口控制段选码,故在同一时间里,每一位显示的字符可以各不相同。

这种显示方式接口,较小的电流即可获得较高的亮度,且占用CPU 时间少,编程简单,便于监测和控制。

图1 总体设计框图动态显示方式:LED 动态显示就是利用单片机依次输出每一位数码管的段选码和对应于该位数码管的位选控制信号,一位一位轮流点亮各七段数码管。

对每位数码管来说,每隔一段时间点亮一次,如此循环。

利用人眼的“视觉暂留”效应,只要每位显示间隔足够短就可以给人一同时显示的感觉。

在动态显示方式中,同一时刻,只有一位LED 数码管在显示,其他各位是关闭的。

在段选码和位选码每送出一次后,应保持1ms 左右,这个时间应根据实际情况而定。

不能太小,因为发光二极管从导通到发光有一定的延时,导通时间太小,发光太弱人眼无法看清。

但也不能太大,因为毕竟要受限制于临界闪烁频率,而且此时间越长,占用CPU 时间也越多。

在这里我选用动态显示方案,74LS273作为LED 显示器字段口,位选由AT89C51中P1.0~P1.5控制。

图2 动态显示电路图 AT89C51 最 小 应 用 系统 按键电路晶振电路复位电路 LE D 动 态 显 示3.键盘控制方案键盘分为独立式键盘和行列式键盘,独立式键盘接口电路配置灵活,硬件结构简单,工作可靠但每个按键必须占用一跟I/O接口线,I/O接口线浪费较大,在单片机应用系统中,有时只需要几个简单的按键向系统输入信息,可将按键直接在一根I/O接口线上,故只在按键数量不多时采用。

而行列式键盘每条行线与列线在交叉处不直接相通,而是通过一个按键加以连接,当按键较多时可采用行列式键盘以节省I/O接口。

本设计选用独立式键盘。

图3 独立式键盘电路图4.软件总体设计方案对于软件我的设计思路是:①要有键盘扫描子程序,按下的功能键和数字键的扫描后,送数字键处理程序、开锁程序、密码设定程序进行下一步动作。

并对功能键和复位键设置有效的标志以便于应用。

②要有数字处理程序,以下是数字处理程序,将6位密码放入40H~45H单元,并调用显示子程序。

③要有开锁程序,开锁程序首先判断密码是否为6位,如不是,重新扫描按键。

如是6位,将密码进行逐位比较,密码正确则开锁,密码错误报警并复位,重新设置密码。

④要有密码设置程序,将6位密码写入M24C01中后锁死密码锁并调子程序显示密码。

⑤要有显示子程序,当键入一个数值或符号时显示程序要把这个键入的数字或字符显示出来。

5. 电路原理图图4 电路原理总图五、硬件模块设计1. AT89C51单片机的简介AT89C51是MCS-51系列单片机的典型产品,我就这一代表性的机型进行系统的讲解。

AT89C51单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在分别加以说明:①中央处理器中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。

②数据存储器(RAM)AT89C51内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。

图5 单片机内部结构示意图③程序存储器(ROM)AT89C51共有4KB掩膜ROM,最大可扩展64K字节,用于存放用户程序,原始数据或表格。

④定时/计数器:AT89C51有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。

⑤并行输入输出(I/O)口:AT89C51共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。

⑥中断系统AT89C51具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。

2. AT89C51单片机的引脚AT89C51单片机内部总线是单总线结构,即数据总线和地址总线是公用的. AT89C51有40条引脚, 与其他51系列单片机引脚是兼容的. 这40条引脚可分为I/O接口线、电源线、控制线、外接晶体线4部分. AT89C51单片机为双列直插式封装结构, 如图6(a)所示,主要性能如图6(b)所示。

(a) AT89C51引脚分配图 (b) AT89C51主要特性图6AT89C51单机的电源线有以下两种:(1) VCC:+5V电源线。

电源线(2) GND:接地线。

AT89C51单片机的外接晶体引脚有以下两种:(1)XTAL1:片内振荡器反相放大器的输入端和内部时钟工作的输入端。

采用内部振荡器时,它接外部石英晶体和微调电容的一个引脚。

(2) XTAL2:片内振荡器反相放大器的输出端,接外部石英晶体和微调电容的另一端。

采用外部振荡器时,该引脚悬空。

外接晶体引脚。

控制线 AT89C51单片机的控制线有以下几种:(1) RST:复位输入端,高电平有效。

(2) ALE/PROG:地址锁存允许/编程线。

(3) PSEN:外部程序存储器的读选通线。

(4) EA/Vpp:片外ROM允许访问端/编程电源端。

3. AT89C51单片机复位方式单片机在开机时或在工作中因干扰而使程序失控,或工作中程序处于某种死循环状态,在这种情况下都需要复位. 复位的作用是使中央处理器CPU以及其他功能部件都恢复到一个确定的初始状态,并从这个状态重新开始工作.AT89C51单片机的复位靠外部电路实现,信号由RESET(RST)引脚输入,高电平有效,在振荡器工作时,只要保持RST引脚高电平两个机器周期,单片机即复位. 复位后,PC程序计数器的内容为0000H,片内RAM中内容不变. 复位电路一般有上电复位、手动开关复位和自动复位电路3种,如图2.3所示.(1)上电复位电路 (2)手动复位电路 (3)自动复位电路图7 单片机复位电路由于设计所需,我在这里选用手动式复位电路。

由外部扩展M24C01设定功能键控制手动式复位电路。

4. M24C01的功能串行EEPROM用M24C01,本次设计中此芯片用来存放密码,并控制开锁确认键、复位键、密码设置键等功能键的控制。

引脚含义如下:①E0、E1、E2:芯片的地址输入端。

②SDA:串行数据输入/输出端。

③SCL:串行时钟输入端。

④WC:写保护输入端,当该端为低电平时不允许向芯片写数据。

图8 M24C01管脚图5. 74LS244的功能74LS244是一种史密特触发的8位三态缓冲器,抗干扰性好。

在这里它被用作键盘控制。

它的引脚封装图如图2.5所示。

74LS244的主要性能如下:①三态输出驱动总线。

②抑制噪声设计。

③典型逻辑延时为10.5ns(输出状态不改变)/12ns(输出状态改变)。

④快速使能为12ns.⑤在较低功耗下具有很强的驱动能力。

图9 74LS244管脚图6. 74LS273的功能74LS273为8D锁存器。

当它的使能端信号有效且触发端信号有效时,输入D1~D8端的数据被锁存到8D触发器中并形成输出Q1~Q8。

74LS273的引脚封装如图10所示。

74LS273在这里作为LED显示器字段口。

图10 74LS273管脚图7. 键盘接口工作原理在单片机应用系统中,常用键盘作为输入设备,通过它将数据、内存地址、命令及指令等输入到系统中,来实现简单的人机通信。

①按键开关的去除抖动功能目前, MCS—51单片机应用系统上的按键常采用机械触点式按键,它在断开、闭合时输入电压波形如图11所示.可以看出机械触点在闭合及断开瞬间均有抖动过程,时间长短与开关的机械特性有关,一般为5~10ms。

由于抖动,会造成被查询的开关状态无法准确读出。

例如,一次按键产生的正确开关状态,由于键的抖动,CPU多次采集到底电平信号,会被误认为按键被多次按下,就会多次进行键输入操作,这是不允许的。

为了保证CPU对键的一次闭合仅在按键稳定时作一次键输入处理,必须消除产生的前沿(后沿)抖动影响。

图11 按键过程②独立式键盘的接口电路独立式键盘的接口电路:在单片机应用系统中,有时只需要几个简单的按键向系统输入信息。

这时,可将每个按键直接接在一根I/O接口线上,这种连接方式的键盘称为独立式键盘。

如图12所示,每个独立按键单独占有一根I/O接口线,每根I/O接口线的工作状态不会影响到其他I/O接口线。

这种按键接口电路配置灵活,硬件结构简单,但每个按键必须占用一根I/O线,I/O接口线浪费较大。

故只在按键数量不多时采用这种按键电路。

在此电路中,按键输入都采用低电平有效。

上拉电阻保证了按键断开时,I/O接口线有确定的高电平。

当I/O接口内部有上拉电阻时,外电路可以不配置上拉电阻。

图12 独立式键盘电路8.七段LED显示工作原理数码管结构:数码管由8个发光二极管(以下简称字段)构成,通过不同的组合可用来显示数字0 ~9、字符A ~ F及小数点“·”。

相关主题