小型数字系统设计报告(硬件)

  • 格式:doc
  • 大小:677.00 KB
  • 文档页数:12

河北工程大学科信学院课程设计说明书(2011 /2012 学年第 1 学期)课程名称:小型数字系统设计(1)题目:密码锁(硬件)专业班级:学生姓名:学号:指导教师:赵建明、高艳芬设计周数:1周二〇一一年十二月二十日一、设计目的通过课程设计进一步加深对基础理论和基本知识的理解,掌握相关软硬件应用系统设计开发的基本方法,提高解决实际问题和创新实践的能力。

利用单片机原理及应用、计算机组成原理、微型计算机技术、嵌入式系统等课程理论知识进行实践。

同时,学会查寻资料、方案比较,进一步拓展在生产工艺及工程设计方面的实际知识。

二、设计功能要求要求使用4X4行列式键盘作为输入,扩展6个LED数码管。

具体要求如下:1. 开机时数码管显示“000000”,初始化密码为“123456”,密码可以更改,并保存在RAM中。

2. 按下“#”,则显示全部清零为“000000”。

3. 随时可以输入数值,并在LED数码管上实时显示,当键入一个新数值时,原来显示的数字左移一位,并在最右边的一位上显示出新键入的键值,键值为0~9。

4. 按下“D”键,则表示确定键按下,则进行密码对比,如相符则在LED数码管上显示“======”以示通过;如不符,则显示“------”。

5. 按下“*”键,如当前在已经通过密码验证的状态,则根据当前输入的号码更新原有的密码;如当前在尚未通过密码验证状态,则显示“------”。

6. 按下“A”键,如当前在已经通过密码验证的状态,则显示当前的密码;如当前在尚未通过密码验证状态,则显示“------”。

7. 按下“C”键,退出通过密码验证状态,进入尚未通过验证状态。

三、设计方案采用一种是用以AT89C51为核心的单片机控制方案。

利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。

其原理图如下所示:89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器,俗称单片机。

单片机的可擦除只读存储器可以反复擦除100次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本。

89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

AT89C51的主要特性与MCS-51 兼容4K字节可编程闪烁存储器寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24MHz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路芯片管脚说明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)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。

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:来自反向振荡器的输出。

1602LCD介绍1602LCD是应用范围最广的带背光字符型液晶模块,它可以显示两行,每行16个字符,广泛用于各种便携式仪器仪表中。

通过实验掌握液晶模块的驱动方法。

它的封装为SIP16,管脚分布如下图:管脚功能1602字符型LCD通常有14引脚线或16引脚线,多出来的两条是背光电源线Vcc(15脚)和地线GND(16脚),其控制原理和14脚的LCD完全一样。

其各个管脚功能如下表所示:显示地址1602LCD指令说明1602液晶模块内部的控制器共有11条控制指令(0为低电平,1为高电平)指令1:清显示,指令码01H,光标复位到地址00H位置。

指令2:光标复位,光标返回到地址00H。

指令3:光标和显示模式设置I/D:光标移动方向,高电平右移,低电平左移。

S:屏幕上所有文字是否左移或者右移,高电平表示有效,低电平则无效。

指令4:显示开关控制。

D:控制整体显示的开与关。

高电平表示开显示,低电平表示关显示。

C:控制光标的开与关。

高电平表示有光标,低电平表示无光标。

B:控制光标是否闪烁。

高电平闪烁,低电平则不闪烁。

指令5:光标或显示移位S/C:高电平时移动显示的文字,低电平时移动光标。

指令6:功能设置命令DL:高电平时为4位总线,低电平时为8位总线。

N:低电平时为单行显示,高电平时为双行显示。

F:低电平时显示5*7的点阵字符,高电平时显示5*10的点阵字符。

指令7:字符发生器RAM地址设置。

指令8:DDRAM地址设置。

指令9:读忙信号和光标地址BF:为忙标志位,高电位表示忙,此时模块不能接收命令或者数据,低电平则表示不忙。

指令10:写数据。

指令11:读数据。

AT24C04芯片本设计中为了在系统掉电时能够保存系统设置的密码,使用了具有IC总线接口的E2PROM的24C04芯片来保存密码锁的密码。

其电路原理图如下:AT24C04芯片特性:AT24C04是美国Atmel公司的低功耗CMOS型E2PROM,内含256×8位存储空间,具有工作电压宽(2.5~5.5 V)、擦写次数多(大于10000次)、写入速度快(小于10 ms)、抗干扰能力强、数据不易丢失、体积小等特点。

而且他是采用了I2C总线式进行数据读写的串行器件,占用很少的资源和I/O线,并且支持在线编程,进行数据实时的存取十分方便。

AT24C04中带有的片内地址寄存器。

每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。

所有字节均以单一操作方式读取。

为降低总的写入时间,一次操作可写入多达8个字节的数据。

I2C总线是一种用于IC器件之间连接的二线制总线。

他通过SDA(串行数据线)及SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件。

管脚功能:SCK 串行时钟:AT24C04串行时钟输入管脚用于产生器件所有数据发送或接收的时钟,这是一个输入管脚。

SDA 串行数据/地址:AT24C04双向串行数据/地址管脚用于器件所有数据的发送或接收,SDA是一个开漏输出管脚,可与开漏输出或集电极开路输出进行线或(wire-OR)。

A0、 A1、 A2 器件地址输入端:这些输入脚用于多个器件级联时设置器件地址,这些脚悬空时默认值为0。

当使用AT24C04时最大可级联8个器件。

如果只有一个 AT24C04被总线寻址,这三个地址输入脚(A0、A1、A2 )可悬空或连接到Vss,如果只有一个AT24C02被总线寻址这三个地址输入脚(A0、 A1、 A2)必须连接到Vss。

WP写保护:如果WP管脚连接到Vcc,所有的内容都被写保护只能读。

当WP管脚连接到Vss或悬空允许器件进行正常的读/写操作。

四、硬件电路设计Ⅰ键盘电路设计使用矩阵键盘,所以本设计4*4采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。

其硬件电路图如下所示:每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×M个按键的键盘。

在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。

当确认有按键按下后,下一步就要识别哪一个按键按下。

对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。