ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:393.28KB ,
资源ID:27357620      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/27357620.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理课程设计简易密码键盘的设计.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机原理课程设计简易密码键盘的设计.docx

1、微机原理课程设计简易密码键盘的设计一 . 题意分析及解决方案1、课程设计名称及内容应用 STAR ES598PCI单板开发机系列接口芯片设计一套密码键盘包含 10个数字键, 一 个确认键,一个取消键(1 每次输入 6位密码,按确定键,密码正确后蜂鸣器响一下表示密码正确,密码 错误后红灯闪烁(2 可按下取消键取消所有输入(3 密码三次错误后蜂鸣器急促响达三分钟,不允许输入2、题意需求分析通过本设计给定的内容和要求,可以得出以下:本设计主要完成时对用户输入的 6位 (09的密码进行核对,以及根据输入的密码的正确性作出相应的处理。密码键盘在实际生活中应用十分广泛,要实现它必须解决以下问题:(1 输入

2、部分 此部分也是用户唯一的可见部分并有用户输入 6位密码及修改, 由于使 用的是密码键盘,在此不能使用标准键盘,本实验采用倒序,即小键盘上标识的 0键则实际输入的 9键, 1键对应 8键(2 实现用户输入的密码与预先设定密码的比较(3 应根据比较结果的正确性完成相应的处理工作3、解决问题的思路及方法硬件部分(1 为了实现用户输入数据, 应向用户提供键盘, 此键盘应能够满足输入 09十个 数字及一个确定键或一个取消键,由于 8255A 的端口只有三个(A 口 B 口 C 口为了不使用户盲输(即不显示输入的数据还需要将输入的数据输出 (使 用密码键盘必须使用户输入的密码显示出来, 因为用户使用密码

3、键盘时输入的 数和键盘上标识的数并不相等, 整个键盘上每个键对应的数值只有密码键盘的 设计者自己知道 ,此时如使用 8255A 则端口数不够,经讨论后使用 8279A , 8279A 芯片时一种通用的可编程的键盘 /显示接口部件,用 8279A 作为键盘 /显示器接口则可以实现对键盘、显示自动扫描,因此用 8279A 行线和列线配 合确定用户输入的 6位密码及确认键和取消键(2 由于密码比较后, 对密码是否正确都需要使用蜂鸣器给出相应提示, 因此应对 蜂鸣器的响声频率作出改变,此应用 8253A 芯片对蜂鸣器的响声频率设定, 另外当密码错误且次数小于三次时,红灯闪烁所以要应用逻辑笔,同时用 8

4、253A 定时向逻辑笔输入低电平,以使红灯闪烁。软件部分根据题意要求接口芯片使用的是 8279A 和 8253A ,软件部分应完成对两者的初始化 使 8279A 处于接受数据状态,即使 8279A 工作于键盘工作方式,当需输出用户 输入的数据时应使 8279A 设置于显示工作方式(8个字符,左端口显示软件部分还应实现关键部分:用户输入的密码与设定密码的比较及处理设置 8253A 当密码正确后用计数器 0使蜂鸣器响声相对频率较高,用计数器 1控 制密码输入错误三次后蜂鸣器频率相对较高, 计数器 2在密码错误 (次数小于 3 时,向逻辑笔输出低电平,使红灯闪烁二、硬件设计1、选择器件 74LS13

5、8译码器1 74LS138译码器在本设计中的作用扫描计数器采用编码工作方式2 74LS138译码器的功能分析74LS138是 3/8译码器, 即对 3个输入信号进行译码。 得到 8个输出状态。 G1,G2A,G2B, 为数据允许输出端, G2A,G2B 低电平有效。 G1高电平有效。 A,B,C 为译码信号输出端, Y0Y7为译码输出端,低电平有效。 74LS138管脚图 功能表3 74LS138译码器的技术参数极限值电源电压 -7V输入电压 -7V工作环境温度 -070贮存温度 -651502、选择器件 74LS2401 74LS240译码器在本设计中的作用本设计实验中主要是为增加 LED

6、的驱动电流2 74LS240译码器的功能分析74LS240 TTL 八反相三态缓冲器 /线驱动器引出端符号 :1A , 2A 输入端G1, G2三态允许端 (低电平有效 1Y8Y输出端逻辑图: 逻辑表:3 74LS240译码器的技术参数 表 2-13 74LS240技术参数3、选择器件蜂鸣器1蜂鸣器在本设计中的作用在本实验中,蜂鸣器用作将 8253产生的不同频率装换为不同的音调的声音。2蜂鸣器的功能分析扬声器是将电能转化成声能, 并将声能辐射到空气中去的一种电声转换器件。 当输入端 输入一定频率的方波时,在 RC 震荡电路的作用下,蜂鸣器会发出一定频率的声音。 8253A 有六种工作方式,在本

7、次实验中我们用到了方式 0和方式 3: 1. 方式 0(技术结束产生中断方式 0为程序启动,只计数 /定时一次的工作方式,下图为其时序图: 2. 方式 3(方波发生器如下图所示是方式 3的时序图。在这种方式下,可以从 OUT 得到对称的方波输出。当装入的计数值 N 为偶数时,则前 N/2计数过程中, OUT 为高电平; 后 N/2计数过程中 OUT 为低电平,计数过程连续进行。若 N 为奇数,则(N+1 /2计数过程中, OUT 保持高电平; 而(N-1 /2计数期间, OUT 为低电平。 3 8253的技术参数 数据名称 符号 测试条件 MAXMIN 单位 输入低电压 VIL0.8-0.5V

8、 输入高电压 VIH VCC+0.5 2.4 V 输出低电压 VOL0.45 2.4 V 输出高电压 VOH V 输入负载电流 IIL10 A 输出浮动电流 IOFL VIN=VCC 0V 10 A 电源电流 VCCVOUT=VCC 0.45V140MA6、选择芯片 8279A18279A 在本次设计中的作用8279A 用来接收用户输入的 6位密码及确定键和取消键2 芯片 8279的功能分析8279A 芯片是一种通用的可编程的键盘 /显示接口,单个芯片就能完成键盘和 LED的显示控制两种功能,可与任何 8位机接口相连,若 8279A 作为键盘 /显示接口,则可实现a. 方 式 3 计 数 值

9、为 偶 数 时 的 波 形 a. 方 式 0 正 常 计 数对键盘、 显示器的自动扫描, 它能同时完成键盘输入和显示控制两种功能。 键盘接口电路可 最多控制 64个按键或传感器组成的阵列,可自动消除开关抖动、自动识别键码并具有多键 同时按下保护功能。显示接口电路采用自动扫描方式工作,最多可连接 16位 LED 显示器。 采用该芯片设计键盘与显示接口电路可简化程序, 从而减少 CPU 运行时间, 提高工作效率。 (1数据缓冲器及 I/O控制数据缓冲器为双向缓冲器, 连接内、 外总线, 用于传送 CPU 和 8279之间的命令或数据。 I/O控制线实现 CPU 对 8279内部各种寄存器、缓冲器读

10、写数据和读写控制命令进行控制。 (2控制与定时寄存器及定时控制控制与定时寄存器用于寄存键盘及显示工作方式控制字以及其它操作方式控制字。该寄 存器接收并锁存 CPU 送来的命令,然后通过译码产生相应的控制信号,从而完成相应的控 制功能。定时与控制电路由 N 个基本计数器组成,其中,第一个计数器是一个可编程 N 级 分频器, N 可由软件编程在 231间取值。该分频器将外部时钟 CLK 分频得到内部所需的 100kHz 时钟,再经分频为键盘提供适当的扫描频率和显示时间。3 FIFO/传感器 RAM 及其状态寄存器FIFO/传感器 RAM 是一个双重功能的 88位 RAM 。在键盘或选通工作方式时,

11、它是 FIFO RAM ,其输入 /输出遵循先入后出的原则。此时, FIFO 状态寄存器存放 FIFO 的工作状态, 若 FIFO 不空, IRQ 信号为高电平,向 CPU 申请中断。在传感器矩阵方式工作时, 该存储器用于存放传感器矩阵中每一个传感器的状态。 在此方式 中,若检出传感器发生变化,则 IRQ 信号变为高电平,向 CPU 申请中断。4显示 RAM 和显示地址寄存器显示 RAM 用于存储显示数据,容量为 168。在显示过程中,存储的显示数据轮流从显示 寄存器输出。显示寄存器分为 A 、 B 两组, OUTA30、 OUTB30。它们即可以单独送数, 也可以组成一个 8位的字, OUT

12、 A 输出高 4位, OUTB 输出低 4位。显示寄存器的输出与 显示扫描配合,轮流驱动被选中的显示器件,实现稳定的动态显示。显示地址寄存器用来寄存 CPU 读 /写显示 RAM 的地址,它可以由命令设定,也可以设置成 在每次读出或写入之后自动递增。8279的操作方式是通过 CPU 对 8279送入命令时来实现编程的。当数据选择端 A0置 1时, CPU 对 8279写入数据为命令字,读出的数据为状态字。8279共有八条命令。其功能及命令字定义分述如下。1. 键盘 /显示方式设置命令字命令格式:D7 D6 D5 D4 D3 D2 D1 D00 0 0 D D K K K其中:D7、 D6、 D

13、5=000方式设置命令特征位。D D (D4、 D3 :来设定显示方式,其定义如下:00:8个字符显示,左入口00:16个字符显示,左入口00:8个字符显示,右入口00:16个字符显示,右入口所谓左入口,即显示位置从最左一位(最高位开始,以后逐次输入的显示字符逐个 向右顺序排列; 所谓右入口,即显示位置从最右一位(最低位开始,以后逐次输入的显 示字符时,已有的显示字符逐个向左顺序移动。KKK (D2、 D1、 D0 :用来设定七种键盘、显示工作方式:000 编码扫描键盘,双键锁定001 译码扫描键盘,双键锁定010 编码扫描键盘, N 键轮回011 译码扫描键盘, N 键轮回100 编码扫描传

14、感器矩阵101 译码扫描传感器矩阵110 选通输入,编码显示扫描111 选通输入,译码显示扫描双键锁定与 N 键轮回是多键按下时的两种不同的保护方式。 双键锁定为两键同时按下 提供的保护方法。 再消颤周期里, 如果有两键同时按下, 则只有其中一个键弹起, 而另一个 键保持在按下位置时,才被认可。 N 键轮回为 N 键同时按下的保护方法。当有若干键按下 时,键盘扫描能够根据发现他们的顺序,依次将它们的状态送入 FIFO RAM中。2. 程序时钟命令命令格式:D7 D6 D5 D4 D3 D2 D1 D00 0 1 P P P P P其中:D7、 D6、 D5=001为时钟命令特征位。PPPPP

15、(D4、 D3、 D2、 D1、 D0用来设定外部输入 CLK 端的时钟进行分频的分频 数 N 。 N 取值为 231。例如外部时钟频率为 2MHZ , PPPPP 被置为 10100(N=20 ,则对输 入的外部时钟 20分频,以获得 8279内部要求的 100KMZ 的基本频率。3. 读 FIFO/传感器 RAM 命令命令格式:D7 D6 D5 D4 D3 D2 D1 D00 1 0 AI X A A A其中:D7D6D5 =010为读 FIFO/传感器 RAM 命令特征位。该命令字只在传感器方式时使用。在 CPU 读传感器 RAM 之前, 必须使用这条命令来设定传感器 RAM 中的 8个

16、地址 (每个地 址一个字节 。AAA (D2、 D1、 D0为传感器 RAM 中的八个字节地址。AI (D4为自动增量特征位。当 AI=1时,每次读出传感器 RAM 后地址自动加 1使地 址指针指向下一个存储单元。这样,下一个数据便从下一个地址读出,而不必重新设置读 FIFO/传感器 RAM 命令。在键盘工作方式中,由于读出操做严格按照先入先出顺序,因此,不需使用此命令。 4. 读显示 RAM 命令命令格式:D7 D6 D5 D4 D3 D2 D1 D00 1 1 AI A A A A其中:D7D6D5 =011为读显示 RAM 命令字的特征位。该命令用来设定将要读出的显示 RAM 地址。AA

17、AA (D3、 D2、 D1、 D0用来寻址显示 RAM 命令字的特征位。由位显示 RAM 中 有 16个字节单元故需要 4位寻址。AI (D4为自动增量特征位。当 AI=1时,每次读出后地址自动加 1指向下一地址。 5. 写显示 RAM 命令命令格式:D7 D6 D5 D4 D3 D2 D1 D01 0 0 AI A A A A其中:D7D6D5 =100为写显示 RAM 命令字的特征位。 在写显示器 RAM 之前用该命令用来设 定将要写入的显示 RAM 地址。AAAA (D3、 D2、 D1、 D0为将要写入的存储单元地址。AI (D4为自动增量特征位。当 AI=1时,每次写入后地址自动加

18、 1指向下一次写入地 址。6. 显示禁止写入 /消隐命令特征位命令格式:D7 D6 D5 D4 D3 D2 D1 D01 0 1 X IWA IWB BLA BLB其中:D7D6D5 =101为显示禁止写入 /消隐命令特征位。IW/A、 IW/B(D3、 D2为 A 、 B 组显示 RAM 写入屏蔽位。由于显示寄存器分成 A 、 B 两组, 可以单独送数, 故用两位来分别屏蔽。 当 A 组的屏蔽位 D3=1时, A 组的显示 RAM 禁止写入。因此,从 CPU 写入显示器 RAM 数据时,不会影响 A 的显示。这种情况通常在 采用双 4位显示器时使用。 因为两个双四位显示器是相互独立的。 为了

19、给其中一个双四位显 示器输入数据而又不影响另一个四位显示器,因此必须对另一组的输入实行屏蔽。BL/A、 BL/B(D1、 D0为消隐显示位。用于对两组显示输出消隐。若 BL=1时,对应 组的显示输出被消隐。当 BL=0时,则恢复显示。7. 清除命令命令格式:D7 D6 D5 D4 D3 D2 D1 D01 1 0 CD CD CD CF CA其中:D7D6D5 =110清除命令特征位。CDCDCD (D4D3D2 用来设定清除显示 RAM 方式。 共有四种消除方式, 见表 6-10-1。 CF (D1用来置空 FIFO 存储器,当 =1时,执行清除命令后, FIFO RAM 被置空,使 中断输

20、出线复位。同时,传感器 RAM 的读出地址也被置 0。CA (D0为总清的特征位。它兼有 CD 和 CF 的联合效能。在 CD=1时,对显示的清 除方式由 D3、 D2的编码决定。清除显示 RAM 约需 160S 。 在此期间 FIFO 状态时的最高位 DU=1, 表示显示无效。 CPU 不能向显示 RAM 写入数据。四、状态格式与状态字8279的 FIFO 状态字,主要用于键盘和选通工作方式,以指示 FIFO RAM 中的字符数 和有无错误发生。其格式为:D7 D6 D5 D4 D3 D2 D1 D0DU S/E O U F N N N其中:DU (D7为显示无效特征位。当 DU=1表示显示

21、无效。当显示 RAM 由于清除显示或 全清命令尚未完成时, DU=1。表 6-10-1 CD 位定义的清除方式D4 D3 D2 清除方式0 将显示 RAM 全部清零1 0 将显示 RAM 清成 20H (A 组 =0010; B 组 =00001 1 将显示 RAM 全部置 10 不清除(若 CA=1,则 D3、 D2仍有效3 芯片 8279的技术参数 三、硬件设计分析 1. 硬件连接图 2、连接分析在实验中用到这两片芯片,采用了不同的片选线, 8253采作 CS4片选, 8279使用 CS5片选,在编程中也对它们的端口地址进行了不同的编码。 8253的各个记数器中的门控信号 均与高电平连接,

22、 每个记数器的时钟信号的频率依据程序要求的不同而不同, 在本实验中三 个时钟的频率分别为 1593、 62.5K ,采用这些频率可以实现设计要求。输出端也由要求来确 定,分别用于控制蜂鸣器和红灯的工作。 8279部分的片选线由 CS5确定,输入时钟为 2M , A 、 B 、 C 、 D 信号线分别与键盘区对应相连。四、软件部分的实现1 、系统运行流程图2 、 控制程序设计思想说明简易密码键盘的主要功能是实现 8279扩展的密码键盘,通过输入数据同初始设置的密 码比较, 若密码比较相同则蜂鸣器鸣响, 密码比较错误则红灯闪烁, 若密码三次错误后蜂鸣 器急促鸣响 3分钟, 且不允许输入。 其中,

23、初始设置为六位数字的密码, 数据的键入通过扩 展的小键盘来实现, 当输入的数据在 0-9之间时, 输入正常并把数据寄存在缓冲区 BUFFER 中,当扫描到的数据为 10时,则执行取消功能,即取消所有输入。程序比较检验是否有 6次输入,若有则执行确认功能,即执行密码比较子程序。其中, 主程序为键盘的扫描读取从键盘输入的数据, 即将扫描的键码值转化为相应的键 号值,数据键为 0-9,功能键有确认取消键。子程序有密码比较调用蜂鸣器和红灯的显示 输出的程序。源程序如下:.MODEL TINYPCIBAR3 EQU 1CHV endor_ID EQU 10EBHDevice_ID EQU 8376.ST

24、ACK 100.DA TAIO_Bit8_BaseAddress DW ?msg0 DB BIOS 不支持访问 PCI $msg1 DB 找不到 Star PCI9052板卡 $msg2 DB 读 8位 I/O空间基地址时出错 $KEYCOUNT DB ?KEY DB 7 DUP (?FLAG DB ?COUNT DB 30HLED_TAB DB 90H,080H,0f8H,82H,92H,99H,0B0H,0A4H DB 0F9H,0C0H,88H,83H,0C6H,0A1H,86H,8EH COM_ADDR DW 00C3HT0_ADDR DW 00C0HT1_ADDR DW 00C1HT

25、2_ADDR DW 00C2HCMD_8279 DW 00B1HDA TA_8279 DW 00B0H.CODESTART: MOV AX,DATAMOV DS,AXNOPCALL InitPCICALL ModifyAddressCALL INIT8279MOV KEYCOUNT,0MOV SI,0START11: CALL SCAN_KEYJNC START11XCHG AL,KEYCOUNTINC ALCMP AL,7JNZ START2MOV FLAG ,30HCALL COMPCMP FLAG ,31HJZ RIGHTCALL WRONGEE: MOV KEYCOUNT,0MOV S

26、I,0CALL INIT8279_1JMP START11START2: XCHG AL,KEYCOUNTCALL KEY_NUMLEA BX,LED_TABXLA TCALL WRITE_DATAJMP START11START_EXIT: JMP $RIGHT:MOV DX,COM_ADDRMOV AL,10H ; 选择通道 0,方式 0,二进制记数 OUT DX,ALMOV DX,T0_ADDRMOV AL,7EHOUT DX,ALJMP EXITSCAN_KEY PROC NEARMOV DX,CMD_8279IN AL,DXREAD_FIFO: AND AL,7JZ NO_KEYRE

27、AD: MOV AL,40HOUT DX,ALMOV DX,DA TA_8279IN AL,DXCMP AL,0CAHJZ EEMOV BL,ALSUB BL,0C9HNEG BLADD BL,30HMOV KEYSI,BLINC SISTCSCAN_KEY1: RETNO_KEY: CLCJMP SCAN_KEY1SCAN_KEY ENDPWRONG PROC NEARMOV BL,COUNTINC BLMOV DX,COM_ADDRMOV AL,7EH ; 选择通道 1,方式 3,二进制记数 OUT DX,ALMOV DX,T1_ADDRMOV AL,7EHOUT DX,ALMOV AL,

28、7EHOUT DX,ALCMP BL,33HJNZ RETUMOV DX,COM_ADDRMOV AL,0A0H ; 选择通道 2,方式 0,二进制记数 OUT DX,ALMOV DX,T2_ADDRMOV AL,7EHOUT DX,ALMOV AL,7EHOUT DX,ALJMP START11RETU:MOV COUNT,BLRETWRONG ENDP;8279初始化INIT8279 PROC NEAR MOV DX,CMD_8279MOV AL,34H OUT DX,ALMOV AL,0OUT DX,ALRETINIT8279ENDPINIT8279_1 PROC NEARCALL CL

29、EARMOV AL,90HOUT DX,ALRETINIT8279_1 ENDPCLEAR PROC NEARMOV DX,CMD_8279MOV AL,0DEHOUT DX,ALWAIT1: IN AL,DXTEST AL,80HJNZ WAIT1RETCLEAR ENDPKEY_NUM PROC NEARAND AL,3FHRETKEY_NUM ENDPWRITE_DATA PROC NEAR MOV DX,DA TA_8279OUT DX,ALRETWRITE_DATA ENDPCOMP PROC NEARCMP KEY0,31HJNZ MMECMP KEY1,32HJNZ MMECMP

30、 KEY2,33HJNZ MMECMP KEY3,34HJNZ MMECMP KEY4,35HJNZ MMECMP KEY5,36HJNZ MMEMOV FLAG,31HMME:MOV AL,ALRETCOMP ENDPInitPCI PROC NEARMOV AH,00H MOV AL,03H INT 10H ; 清屏 MOV AH,0B1HMOV AL,01HINT 1AHCMP AH,0JZ InitPCI2LEA D X,msg0 InitPCI1:MOV AH,09H INT 21HJMP ExitInitPCI2:MOV AH,0B1H MOV AL,02HMOV CX,Device_ID MOV DX,V endor_I

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1