基于单片机的6位电子密码锁的设计内容摘要:
和 FLASH 存储单元, AT89C51 单片机为许多嵌入式控制系统提供了一种灵活行高且价廉的方案。 主要特性 8031 CPU 与 MCS51 兼容 4K 字节可编程 FLASH 存储器 (寿命: 1000 写 / 擦循环 ) 全静态工作: 0Hz24KHz 三级程序存储器保密锁定 128*8 位内部 RAM 32 条可编程 I/O 线 两个 16 位定时器 /计数器 6个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 图 3— 1 管脚说明 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口输出地址的毕 业 设 计 - 6 - 高八位。 在给出地址 “1” 时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时, P2 口输出其特殊功能寄存器的内容。 P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。 P3 口: P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL门电流。 当 P3 口写入 “1” 后,它们被内部上拉为高电平,并用作输入。 作为输入,由于外部下拉为低电平, P3 口将输出电流( ILL)这是由于上拉的缘故。 P3口也可作为 AT89C51 的一些特殊功能口,如下表所示: 管脚 备选功能 : RXD(串行输入口) TXD(串行输出口) /INT0(外部中断 0) /INT1(外部中断 1) T0(记时器 0 外部输入) T1(记时器 1 外部输入) /WR(外部数据存储器写选通) /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 保持低电平时,则在此期间外部程序存储器( 0000HFFFFH),不管是否有内部程序存储器。 注意加密方式 1时, /EA 将内部锁定为 RESET;当 /EA 端保持高电平时,此间内部程序存储器。 在 FLASH 编程期间,此引脚也用于施加 12V 编程电源( VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 毕 业 设 计 - 7 - 震荡特性 XTAL1 和 XTAL2 分别为反向放大器的输入和输出。 该反向放大器可以配置为片内振荡器。 石晶振荡和陶瓷振荡均可采用。 如采用外部时钟源驱动器件, XTAL2 应不接。 有余输入 至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 芯片擦除 整个 PEROM 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持 ALE 管脚处于低电平 10ms 来完成。 在芯片擦操作中,代码阵列全被写 “1” 且在任何非空存储字节被重复编程以前,该操作必须被执行。 此外, AT89C51 设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。 在闲置模式下, CPU 停止工作。 但 RAM,定时器,计数器,串口和中断系统仍 在工作。 在掉电模式下,保存 RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。 4 4 矩阵键盘 如图所示,本系统采用 4 4 矩阵键盘, 16 个按键分为输入数字键: *、 0、 、 9;功能键 lock、 modify、 cel、 Enter。 矩阵键盘。 图 3— 2 毕 业 设 计 - 8 - 复位电路 图 3— 3 时钟电路工作后,在 REST 管脚上加两个机器周期的高电平,芯片内部开始进行初始复位(如图 3— 3)。 振荡电路 图 3— 4 本设计晶振选择频率为 12MHZ,电容选择 30pF 如图( 3- 4)。 经计算得单片机工作胡机器周期为: 12( 1247。 12M) =1us。 数码管 毕 业 设 计 - 9 - 图 3- 5 本设计采用两个 4位 8段共阴极数码管。 由于由单片机直接驱动的直流电流不够,数码管亮度显得不足,所以加上三极管 S9013 用以放大电流。 因为 LED数码管合适的驱动电流大约为 9mA到 20mA左右 ,为了适 LED数码管工作电流在 10mA 左右,具体计算如下: Ib=()/27K= 103A Ie= Ib (β+1)=10 mA 使用的 9013 的放大倍数 β 为 100. 图3- 6 发光二极管 LED 毕 业 设 计 - 10 - 图 3-7 由于 LED使用 P0口驱动要加上上拉电阻如图 3- 7。 电动锁 图 3-8 由于电动锁使用 P0 口驱动要加上上拉电阻如图 3- 8。 蜂鸣器 毕 业 设 计 - 11 - 图 3- 9 由于蜂鸣器使用 P0 口驱动要加上上拉电阻如图 3- 9。 完整电路图 毕 业 设 计 - 12 - 图 3— 9 使用到的元器件列表 毕 业 设 计 - 13 - 元器件 规格 /型号 数量 四位八段共阴数码管 3461AFR1B10 1 四位八段共阴数码管 SR42036 1 三极管 SR9013 8 三极管 S965 1 电阻 27k 8 电阻 10k 1 电阻 1k 4 电解电容 瓷片电容 30pF 2 单片机 AT89C51 1 表 3— 1 第 4 章 软件程序设计 本 系统程序部分使用 C 语言编写, C 语言是一种高级程序设计语言,它的优点是简毕 业 设 计 - 14 - 洁明了 、可移植性高。 主要完成,开始时数码管显示提示“ INPUT”输入密码。 输入密码后按下确认键,系统会将所输入与系统密码进行比对。 若输入密码正确则显示“ PASS”开锁。 然后可以选择上锁或者修改密码。 开锁后,按下上锁“ LOCK”键,系统上锁并返回;选择修改密码则可以对系统进行修改密码操作。 在修改密码前要输入正确旧的密码。 正确输入旧密码之后,会有提示输入两次新密码,若两次密码一致,则修改成功。 期间操作出现失误,系统会返回初始状态,操作错误 超过 3 次,系统会锁定键盘,并报警用以防止恶意试探密码。 软件设计流程图 毕 业 设 计 - 15 - 图 4— 1 具体功能软件实施 开始等待流程 系统开始一直显示提示“ INPUT” ,并判断有否按键,当有键按下跳出等待。 开始 输入密码 正确否。 开锁 判断按键 LOCK Modify 键 上锁 结束 输入密码 正确否。 输入新密码 再次输入 一致否。 修改密码 Yes No No Yes No Yes 毕 业 设 计 - 16 - 图 4— 2 密码检查功能 本系统使用数组 PASSWORD[6]存储密码 ,系统初始化对数组负值 PASSWORD[6]={5,6,7,9,10,11}相当于键盘上的 1, 2, 3, 4, 5, 6。 输入密码的时候,先将输入的每一位密码分别放置在数组 check[6]中,然后再将 check[6]与 PASSWORD[6]的每一位分别对照。 若每一位都相等,密码检查通过。 开始 显示“ INPUT” 判 断是 否有按键。 结束 No Yes 毕 业 设 计 - 17 - 图 4— 3 显示功能 本系统使用共阴极数码管显示(如图 3- 5)。 选码由 P3 口输出高电平有效,选位由 P1 口输出低电平有效。 显示原理如下图及下表: 图 4— 4 4 位数码管上的管脚 单片机输出管脚 a 11 b 7 c 4 d 2 e 1 f 10 g 5 h 3 开始 输入一位密码,数码管显示“-” K=6? k=0 按键为CEL? 结束 Yes No No Yes 毕 业 设 计 - 18 - 表 4— 1 显示方式分别有静态显示与动态显示两种。 在显示提示信息如:输入密码“ INPUT” ,操作通过“ PASS” ,操作错误“ ERROR” ,输入旧密码“ OLD” ,输入新密码“ NE” ,再次输入“ AGAIN”等信息时使用的是动态显示。 由于 8个显示器的段码同名端是连接在一起的,如 果选码的管脚(本系统中为 P1)都为0,那么 8 个显示器则显示同一字符。 要使各个数码管出现不同字符必须采用“分时动态扫描”的方法显示。 即每次点亮一个 LED 显示器,延时一段时间再点亮下一个 LED 显示器„„周而复始, 8个 LED 显示器轮流动态扫描。 利用人视觉余辉的暂留效应,看起来好像几个显示器上“同时”显示不同的字符。 如子程序 view_input_password(): void view_input_password(void) { for(i=0。 i200。 i++) {P3=0X48。 P1=0XFe。 }//第四个显示器显示 I for(i=0。 i200。 i++) {P3=0X43。 P1=0X7F。 }//第五个显示器显示 N for(i=0。 i200。 i++) {P3=0XCD。 P1=0XBF。 }//第六个显示器显示 P for(i=0。 i200。 i。基于单片机的6位电子密码锁的设计
相关推荐
T1 记时器 1 外部输入 /WR 外部数据存储器写选通 /RD 外部数据存储器读选通 P3 口同时为闪烁编程和编程校验接收 一些控制信号。 RST:复位输入。 当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 行驱动模块 行驱动电路的选择如果采取并口输入,会占用大量 I/O 口资源。
SEN将不被激活。 E A/VPP:访问外部程序存储器控制信号。 为使能从 0000H到 FFFFH的外部程序存储器读取指令, EA 必须接 GND。 为了执行内部程序指令, EA应该接 VCC。 在 flash编程期间, EA也接收 12伏 VPP电压。 XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2:振荡器反相放大器的输出端。 晶振特性
生育基础管理和服务工作,推进基层计划生育工作网络建设;组织实施全区计划生育目标管理责任制考核,承担区人口和计划生育领导小组办公室具体工作。 希望大家给予支持 ! 一、我个人认为我的主要优势有以下几点: 具有较强的适应能力。 17 年不同的工作岗位和工作环境,丰富了我的人生阅历,也促使我养成了乐于学习、适应性强、善于接受新鲜事物的好习惯。 具有很强的协作意识。 无论是在本科室内部工作,还是
6 种 状态,按照其 输入信号 翻译成对应的输出信号。 在图 1 中, 74138 是一种 4 线 —16 线译码器 , 4 个输入端 ABCD 共有 16 种状态组合( 0000—1111),可译出 16 个输出信号 D0—D15。 它 有 2 个使能输入端,当 G2 与 G1 均为 0,译码器处于工作状态,输出低 电平。 当译码器被禁止时, G1 G2 输 入 高电平。 其输入输出
制电路的外接电路包括单片机的晶振电路、复 位电路。 89S51单片机内含有一个高增益的反相放大器,通过 XTAL XTAL2 外接作为反馈元件的晶体后,构成自激振荡器,所以 89S51单片机正常工作时需要外接晶振和微调电容 ,本设计的单片机的晶振电路的外围电路由一个 12MHZ的晶振和两个 33PF的电容组成。 本设计的复位电路采用 最简单的上电复 位电路,上电复位电路的工作原理为:上电瞬间,
验收合格后方可进行下道工序。 砼工程 ⑴ 水泥进场后须做复试,经复试合格后由试验室下达配合比。 施工中严格掌握各种材料的用量,并在搅拌机前进行标识,注明每立方米、每盘用量。 同时搅拌时,须车车进磅,做好记录。 ⑵ 浇筑前,对模板内杂物及油污、泥土清理干净。 ⑶ 投料顺序:石子→水泥→砂子。 ⑷ 本工程均采用插入式振捣器,一次浇筑厚度不宜超过振捣器作用部分长度的 倍