一、实验目的
二、实验内容与要求
(2)设置退格键,以便删除输入错误的密码;
(3)在输入的密码时数码管上只显示8,并根据输入位数依次横移;
(4)设置确认键,当确认键按下后,判断输入密码是否正确;
(5)当输入密码正确时,点亮发光二极管;当输入密码不正确时,发光二极管不亮并且蜂鸣器报警,重新输入,当三次密码输入不正确时,系统应锁定键盘10s。
2.提高要求
三、实验报告要求
5.设计结果和体会(包括遇到的问题及解决的方法)
四、总体设计
五、硬件设计
各个模块的详细说明:
1.LED数码管模块
实验平台上提供一组六个LED数码管。插孔CS1用于数码管段选的输出选通,插孔CS2用于数码管位选信号的输出选通。本设计用6个数码管来动态显示时分秒,动态显示的定时时间由8253定时/计数器来实现。8253主要是实现每位显示时间1ms,由8253的计数器0来实现。Clk0接实验平台分频电路输出Q6,f=46875hz。GATE0接8255的PA0,由8255的PA0输出来控制计数器的起停。OUT0接8259的IRQ2,定时完成请求中断,进入中断服务程序。软件在中断服务程序中LED数码管显示。
8255 PB1 PC |
|
8259 |
2.按键模块
3.报警模块和发光二极管模块
报警模块由蜂鸣器驱动电路和8255组成。选择一只压电式蜂鸣器,压电式蜂鸣器工作时约需要100mA驱动电流。蜂鸣器电路如图4所示。当8255的PB0口输出为高电平时,蜂鸣器产生蜂鸣音,8255输出为低电平时,蜂鸣器不发声。
发光二极管也是用8255输出来驱动亮灭。
图3 蜂鸣器电路
六、软件设计
电子密码锁工作的主要过程是LED数码管提示开始输入密码,通过键盘输入密码,同时LED显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。当输入密码连续输入错误3次时,锁定键盘10s。
根据程序功能,程序主要分为以下几部分:
a)
键盘键值读取程序包括键盘扫描、xx抖动、键译码等内容。按键的识别主要有两种方法:行反转法和行扫描法。因为键盘为机械开关,容易引入抖动。为了xx抖动干扰,在程序中要加入xx抖动的部分。
b)
c)
d)
通过8255相应位的输出数据然后延时一段时间就可以控制发光二极管的亮灭和蜂鸣器的鸣叫。
2.程序流程图
1)
2)
已投稿到: |
|
---|