400 likes | 631 Views
学习情境 5 简易电子号码锁的设计与实现. 天津职业大学电信学院. 3. 主要内容. 用户要求. 1. 硬件电路设计. 2. 软件设计. 3. 软件设计. 硬件电路设计. 学习情境. 逻辑关系. 用户要求. 简易电子号码锁的设计与实现. 用户要求. 显示部件. 基本要求. 七段数码管 显示. 密码为 5 位的数字密码,且密码不可更改. 初始状态下显示屏显示“ HELLO” ,并保持显示 5 秒后清屏。 如果密码输入错误则显示“ ERROR”, 并保持显示 5 秒后清屏。
E N D
学习情境5 简易电子号码锁的设计与实现 天津职业大学电信学院
3 主要内容 用户要求 1 硬件电路设计 2 软件设计 3
软件设计 硬件电路设计 学习情境 逻辑关系 用户要求 简易电子号码锁的设计与实现
用户要求 显示部件 基本要求 七段数码管 显示 密码为5位的数字密码,且密码不可更改 • 初始状态下显示屏显示“HELLO”,并保持显示5秒后清屏。 • 如果密码输入错误则显示“ERROR”,并保持显示5秒后清屏。 • 如果密码输入正确则显示“RIGHT”,并保持显示5秒后清屏
硬件电路设计 系统方案设计 硬件电路设计 具体可分为 硬件方案确定 总设计电路原理图(SCH)
系统方案设计 系统方案设计理论图
硬件方案确定 非常重要,需反复修改 时钟电路 并口 扩展电路 硬件方案 复位电路 数码管显示 电路设计 矩阵键盘 设计
键盘的 选择 键盘电路 设计 硬件方案确定––矩阵键盘设计 输入需要0~9十个数字键, 除此之外还应该有 清屏键和密码确认键。 因此至少需要12个按键, 所以选择4*3矩阵键盘。 键盘的电路设计
硬件方案确定 –数码管显示电路设计–器件选择 根据用户要求可知:显示单元使用七段数码管进行显示,数码管显示可分为:共阳型LED数码显示器和共阴型LED数码显示器,即: 共阴型与共阳型LED数码显示器 在此选择共阴型LED数码显示器(也可以选择共阳型的) 注意
硬件方案确定 –显示电路设计–数码管显示电路(1) 是指当显示器显示某一个字符时,相应段的发光二极管处于恒定的导通或截止状态,直到需要显示另一个字符为止。 静态显示接口 静态显示接口
基本 原理 硬件方案确定 –显示电路设计–数码管显示电路(2) 循环扫描,分时选通各显示器的公共极,使各个显示器轮流导通。当扫描速度达到一定程度时,人眼认为是各个显示器同时发光。 动态显示接口 利用人眼的“视觉暂留”效应 动态显示接口
硬件方案确定 –显示电路设计–数码管显示电路(3) 74LS244芯片引脚图 注意 综合考虑显示内容和接口连线的数量,先选择动态显示接口连接
硬件方案确定 –并口扩展电路设计–可编程输入输出接口8255A芯片(1)
硬件方案确定 –并口扩展电路设计–8255A芯片(2) 8255A芯片端口操作状态
硬件方案确定 –并口扩展电路设计–8255A芯片(3) 8255A芯片方式控制字
硬件方案确定 –并口扩展电路设计–8255A芯片(4) 8255A芯片端口C置位/复位控制字
硬件方案确定 –并口扩展电路设计–8255A芯片(5) • 8255A芯片工作方式 方式0:基本输入、输出方式。 PA、PB、PC口均可作为普通的I/O使用; 输出数据被锁存,输入不被锁存。 方式1:选通输入、输出方式 PA、PB口均可作为普通的I/O口使用;输入和输出均有锁存。 PC口配合用于连接状态控制信号。 方式2:双向传送方式 PA口可用于双向传送; PC7~PC3配合用于连接状态控制信号; PB口和PC2~PC0可由编程选定为方式1和方式0
OBF:输出缓冲器满信号。当为低电平是8255告知外设有数据可OBF:输出缓冲器满信号。当为低电平是8255告知外设有数据可 供输出,它由WR上升沿使其为低,由ACK使其为高。 IBF: 输入缓冲器满信号。 为高时,告知外设数据以输入完毕由 STB使其为高、有效,由RD上升沿使其为低。 ACK:外设应答信号。为低时,外设已将数据自8255取走。 STB:外设来的选通信号。为低时,将外设数据输入8255A。 硬件方案确定 –并口扩展电路设计–8255A芯片(6) 8255A芯片工作方式
硬件方案确定 –并口扩展电路设计–8255A芯片(7) 8255A芯片工作方式0基本输入
硬件方案确定 –并口扩展电路设计–8255A芯片(8) 8255A芯片工作方式0基本输出
硬件方案确定 –并口扩展电路设计–8255A芯片(9) 8255A芯片工作方式1基本输入
硬件方案确定 –并口扩展电路设计–8255A芯片(10) 8255A芯片工作方式1基本输出
硬件方案确定 –并口扩展电路设计–8255A芯片(11) 8255A芯片工作方式2双向传输方式
工作方式 由以上设计可知,键盘和显示器至少需要20根信号线,而8255A共有三个并口,所以根据实际情况选择其工作在方式0下。 • 接口地址的确定 由8255A与单片机的接口电路可知PA、PB、PC和控制寄存器口地址分别为:7CH、7DH、7EH和7FH 硬件方案确定 –并口扩展电路–8255A与AT89S52的接口电路 74LS373芯片 8255A与AT89S52的接口电路
硬件方案确定 –并口扩展电路–8255A与键盘接口电路(1) 8255A与键盘接口电路 8255A与LED显示器的接口电路 注意 其中74LS244的引脚分配连接情况如下页所示
硬件方案确定 –并口扩展电路–8255A与键盘接口电路(2) 74LS373芯片 8255A与AT89S52的接口电路
硬件方案确定 –并口扩展电路–8255A与键盘接口电路(3) PB口输出代码 方式控制字的确定 由以上设计可知,8255A工作在方式0,其PA口为输入口, PB和PC口为输出口。故其方式控制字为:90H。 引出问题:如何将控制字送至控制寄存器。 74LS244引脚分配
解决方法:采用外部传送指令MOVX MOVX 指令格式 方式控制字送 至控制寄存器 硬件方案确定 –并口扩展电路–8255A与键盘接口电路(4) MOVX A, @Ri MOVX A, @DPTR MOVX @Ri , A MOVX @DPTR , A MOV R0,#7FH MOV A,#90H MOVX @R0 ,A
硬件方案确定 –时钟\复位电路设计 时钟电路设计图 复位电路设计图
系统总设计电路原理图(SCH) 见Word文档(请点击) 系统方案电路设计理论图
软件设计 软件方案设计 软件设计 具体可分为 软件方案确定 总程序流程图
软件方案 软件方案设计 显示内容选择模块 按键中断模块 显示功能模块 5秒延时子程序 延时模块
引出 问题 按键是机械触点,当触点断开、闭合时,会有抖动,一般抖动时间为ms级,但是单片机的处理速度为us级,因此该抖动将会导致单片机对按键的误读数。 按键有时灵敏, 有时不灵敏 方案确定 ––按键中断模块––抖动问题 根据电路原理图可知当按键按下时,INT0引脚上出现一个下降沿, 此时将产生一个中断信号。 如何保证单片机读出按键值得正确性? 实际工程中的问题: 按键抖动问题 产生的原因 产生的现象 复位电路设计图
解决方法 软件去抖 原理:第一次检测到键按下时,调用一延时10ms程序,然后再去检测该键,确定其是否按下,按键的抖动时间一般在5-10ms之间,而人对按键的操作时间在几百ms到几秒之间。延时10ms并不会影响对按键的判别。 用双稳态电路、单稳态电路、滤波电路等。 方案确定 ––按键中断模块––抖动问题 软件去抖 硬件去抖 硬件去抖
方案确定 ––按键中断模块––程序设计 按键中断模块程序流程图(请单击)
方案确定 ––显示内容选择模块 显示内容选择模块流程图
方案确定 ––显示子程序 显示子程序流程图
方案确定 ––5秒延时模块 采用定时器中断来实现。 实现方案 5秒延时模块程序流程图
主程序流程图 主程序流程图