因此在选用时要多加比较 合理选择
以期获得最佳的性价比
一般来说在选取单片机时从下面几个方面考虑:性能、存储器、运行速度、IO口、定时计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性
除了以上的一些的还有一些最基本的比如:中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等
在开发过程中单片机还受到:开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素
基于以上因素本设计选用单片机AT89S51作为本设计的核心元件 利用单片机灵活的编程设计和丰富的IO端口 及其控制的准确性 实现基本的密码锁功能
在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制 外接AT24C02芯片用于密码的存储 外接LCD1602显示器用于显示作用 当用户需要开锁时
先按键盘开锁键之后按键盘的数字键0-9输入密码 密码输完后按下确认键 如果密码输入正确则开锁
不正确显示密码错误重新输入密码
当三次密码错误则发出报警;当用户需要修改密码时 先按下键盘设置键后输入原来的密码
只有当输入的原密码正确后才能设置新密码 新密码输入无误后按确认键使新密码将得到存储 密码修改成功
第二章 主要元器件 2.1主控芯片AT89S51
单片机AT89S51功能介绍
AT89S51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM-Falsh Programmable and Erasable Read Only Memory)的低电压 高性能CMOS8位微处理器 俗称单片机
该器件采用ATMEL高密度非易失存储器制造技术制造 与工业标准的MCS-51指令集和输出管脚相兼容
由于将多功能8位CPU和闪烁存储器组合在单个芯片中 ATMEL的AT89S51是一种高效微控制器
为很多嵌入式控制系统提供了一种灵活性高且价廉的方案 AT89S51芯片引脚图如图2-1所示 主要特性:
·与MCS-51 兼容
·4K字节可编程闪烁存储器 ·寿命:1000写擦循环 ·数据保留时间:10年
·全静态工作:0Hz-24Hz ·三级程序存储器锁定 ·128*8位内部RAM ·32可编程IO线
·两个16位定时器计数器 ·5个中断源 ·可编程串行通道
·低功耗的闲置和掉电模式 ·片内振荡器和时钟电路 管脚说明:
下面按其引脚功能分为四部分叙述这40条引脚的功能
1、主电源引脚VSS和VSS AT89S51芯片引脚图
VSS--(40脚)接+5V电压; VSS--(20脚)接地
2、外接晶体引脚XTAL1和XTAL2
XTAL1(19脚)接外部晶体的一个引脚 在单片机内部
它是一个反相放大器的输入端 这个放大器构成了片内振荡器 当采用外部振荡器时 对HMOS单片机
此引脚应接地;对SHMOS单片机 此引脚作为驱动端
XTAL2(18脚)接外晶体的另一端 在单片机内部
接至上述振荡器的反相放大器的输出端 采用外部振荡器时 对HMOS单片机
该引脚接外部振荡器的信号
即把外部振荡器的信号直接接到内部时钟发生器的输入端;对XHMOS 此引脚应悬浮
3、控制或与其它电源复用引脚RSTVPD、ALEPROG、PSEN和EAVPP ①RSTVPD(9脚)当振荡器运行时
在此脚上出现两个机器周期的高电平将使单片机复位
推荐在此引脚与VSS引脚之间连接一个约8.2k的下拉电阻 与VSS引脚之间连接一个约10μF的电容 以保证可靠地复位
VSS掉电期间
此引脚可接上备用电源
以保证内部RAM的数据不丢失
当VSS主电源下掉到低于规定的电平
而VPD在其规定的电压范围(5±0.5V)内 VPD就向内部RAM提供备用电源
②ALEPROG(30脚):当访问外部存贮器时
ALE(允许地址锁存)的输出用于锁存地址的低位字节 即使不访问外部存储器
ALE端仍以不变的频率周期性地出现正脉冲信号 此频率为振荡器频率的16 因此
它可用作对外输出的时钟 或用于定时目的 然而要注意的是
每当访问外部数据存储器时 将跳过一个ALE脉冲
ALE端可以驱动(吸收或输出电流)8个LS型的TTL输入电路 对于EPROM单片机(如8751) 在EPROM编程期间
此引脚用于输入编程脉冲(PROG)
③PSEN(29脚):此脚的输出是外部程序存储器的读选通信号 在从外部程序存储器取指令(或常数)期间 每个机器周期两次PSEN有效 但在此期间
每当访问外部数据存储器时
这两次有效的PSEN信号将不出现
PSEN同样可以驱动(吸收或输出)8个LS型的TTL输入
④EAVPP(引脚):当EA端保持高电平时 访问内部程序存储器
将自动转向执行外部程序存储器内的程序 当EA保持低电平时
则只访问外部程序存储器 不管是否有内部程序存储器 对于常用的8031来说 无内部程序存储器 所以EA脚须常接地
这样才能只选择外部程序存储器
对于EPROM型的单片机(如8751) 在EPROM编程期间
此引脚也用于施加21V的编程电源(VPP)
4.控制或与其它电源复用引脚 RSTVpd ALEPROG
PSEN 和EAVpp
RSTVpd 当振荡器运行时
在此引脚上出现两个机器同期的高电平(由低到高跳变) 将使单片机复位
在 VSS掉电期间 此引脚可接上备用电源
由 Vpd向内部 RAM提供备用电源 以保持内部RAM中的数据
ALEPROG 正常操作时为ALE功能(允许地址钱存) 提供把地址的低字节锁存到外部锁存器
ALE引脚以不变的频率(振荡周期的16)周期性地发出正脉冲信号 因此
它可用作对外输出的时钟 或用于定时目的 但要注意
每当访问外部数据存储器时 将跳过一个 ALE脉冲
ALE端可以驱动(吸收或输出电流)八个 LSTTL电路 对于 EPROM型单片机 在 EPROM编程期间
此引脚接收编程脉冲(PROG功能)
PSEN 外部程序存储器读选通信号输出端
在从外部程序存储器取指令(或数据)期间;PSEN 在每个机器周期内两次有效 PSEN 同样可以驱动八个LSTTL输入
EAVpp EA为内部程序存储器和外部程序存储器选择端 当EA为高电平时
访问内部程序存储器(PS值小于4K) 当EA为低电平时
则访问外部程序存储器 对于EPROM型单片机 在EPROM编程期间
此引脚上加21VEPROM编程电源(Vpp)
5、输入输出(IO)引脚P0、P1、P2、P3(共32根) ①P0口(39脚至32脚):是双向8位三态IO口 在外接存储器时
与地址总线的低8位及数据总线复用
能以吸收电流的方式驱动8个LS型的TTL负载
②P1口(1脚至8脚):是准双向8位IO口 由于这种接口输出没有高阻状态 输入也不能锁存
故不是真正的双向IO口
P1口能驱动(吸收或输出电流)4个LS型的TTL负载 对8052、8032
P1.0引脚的第二功能为T2定时计数器的外部输入 P1.1引脚的第二功能为T2EX捕捉、重装触发 即T2外部控制端
对EPROM编程和程序验证时 它接收低8位地址
③P2口(21脚至28脚):是准双向8位IO口 在访问外部存储器时
它可以作为扩展电路高8位地址总线送出高8位地址 在对EPROM编程和程序验证期间 它接收高8位地址
P2可以驱动(吸收或输出电流)4个LS型的TTL负载
④P3口(10脚至17脚):是准双向8位IO口 在MSS-51中
这8个引脚还用于专门功能 是复用双功能口
P3能驱动(吸收或输出电流)4个LS型的TTL负载
作为第一功能使用时 就作为普通IO口用
功能和操作方法与P1口相同 作为第二功能使用时 各引脚的定义如表所示
值得强调的是
P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能 表2-1 P3口管脚备选功能 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(外部数据存储器写选通)