




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理工大学微机原理与接口技术课程设计说明书目录摘要I1 设计要求及其简明思路11.1 设计说明11.2 设计思路12 密码输入键盘具体设计方法12.1 可编程并行接口芯片8255A基本简介12.1.1 8255A的内部结构及功能简介22.1.2 8255A的管脚分配22.1.3 8255A工作方式及其编程简介32.2 硬件接口电路原理42.2.1 键盘接口原理电路图42.2.2 键盘扫描法及程序处理的任务52.2.3 红绿灯显示电路部分62.2.4 硬件连接电路图72.3 软件设计82.3.1 软件设计思路82.3.2 程序流程图8结束语10致谢10参考文献11附录12附录1、设计程序清单12附录2、成绩评定表14武汉理工大学微机原理与接口技术课程设计说明书摘要微机原理与接口技术作为计算机科学领域的基础知识,尽管计算机科学高速发展,但基本原理依然不变,即是遵循冯诺依曼基本思想的。学习并能掌握好微机原理与接口技术这门知识是非常重要的,通过对这门知识的了解可以简单的编写一些日常中经典的控制程序。本文主要是针对接口技术方面问题的一种设计方法,通过对8255A这个可编程并行接口芯片的所学知识,来扩展一外接小键盘,并能够通过此键盘输入数据进行密码校正并带有红绿灯显示的功能。本设计主要是通过软硬件结合的方法来加以实现所要求的功能的,利用8255A端口单独作为输入/输出的功能同时实现扩展键盘和外接红绿灯显示的功能。其中,键盘键值的扫描是一个主要注意的问题,另外,密码比较和防抖延时等子程序也是一个应该关心的问题,解决了这部分关键点也就能很好的解决本设计要求。关键字:8255A 键盘 密码校验 红绿灯显示14武汉理工大学微机原理与接口技术课程设计说明书密码输入键盘1 设计要求及其简明思路1.1 设计说明本文设计要求是建立在可编程并行接口芯片8255人机交互接口之“键盘接口”技术电路基础之上的,通过8255三个并行输入/输出端口、以及利用8255的三种工作方式,来扩展一个外接小键盘,并且能通过此外接键盘输入数字进行红绿灯校验,整个电路能够实现的功能就是:键盘包括数字键“09”和功能键“确认、取消”;程序设定初始密码,当输入的密码同初始密码相同时绿灯亮,当输入的密码错误时红灯亮。1.2 设计思路本文设计的思路也就能够围绕题目要求以及所学关于8255可编程并行接口芯片的知识得出解决此题的基本方法,简明介绍如下:通过8255基本输入输出端口C口七根I/O接口线分成34行列形式外接12个键的矩阵式键盘电路,12个键的功能通过相应的程序进行控制,最终实现有09等10个数字键和确认、取消等2个功能键;另外,设定一个四位数字的初始密码,同初始密码进行比较的过程即为:从扩展的外接键盘输入数字直到按确认键后才使输入完毕输入的数据存入缓冲区、按取消即可清除之前输入的数字还可以重新输入数字直到按确认为止;输入的数据通过8255传送到CPU,再由CPU通过程序同初始密码确认比较,如果比较正确则8255通过B口输出使绿灯亮,否则红灯亮。本设计要完成的任务需要通过软、硬件设计来完成。软件设计需要实现键盘键值的读取、密码判断程序以及LED显示程序;硬件设计则需要硬件实验平台上相应的硬件电路模块,包括键盘模块、LED发光二极管显示模块。2 密码输入键盘具体设计方法 2.1 可编程并行接口芯片8255A基本简介8255A是一种通用的可编程并行I/O接口芯片,具有3个带锁存或缓冲的数据端口,可与外设并行进行数据交换。用户可用程序来选择多种操作方式,它的各端口内具有中断控制逻辑,为外设与CPU之间的信息交换提供了方便。2.1.1 8255A的内部结构及功能简介8255A芯片内部结构图如下图1所示,我们可以看到该芯片含有3个8位的控制端口,即A口、B口和C口,这三个端口可以作为CPU与外设通信时的缓冲器或锁存器,其中,一般情况下,作为缓冲器使用时就是输入接口,作为锁存器使用时是输出接口。图1 8255A的内部结构图其实,8255A的三个端口实际上只有两组控制部件,其中将C口八位分成高低各四位分别同A口、B口组合形成A组、B组两种独立的控制部件,它们可以同时接收来自读/写控制电路的命令和CPU送来的控制字。另外,8255A的数据总线缓冲器和读/写控制电路分别实现了8255A与CPU之间的联系,具体功能将在以下各节指出。2.1.2 8255A的管脚分配8255A是一个标准的40管脚芯片如图2所示,可以分为三个部分:与外设连接的I/O线,与CPU连接的总线,以及电源线。本设计中需要使用到与外设连接的各个端口,用于连接小键盘的C口和PB0口红绿显示灯。其中与CPU连接的8、9管脚决定了8255A的工作方式,本设计中采用的8255端口地址是奇地址即8255的A0、A1的管脚连接CPU的A0、A1管脚,CPU通过对8255A管脚的控制来控制其各个端口的工作方式。图2 8255A的管脚分布图2.1.3 8255A工作方式及其编程简介8255A有三种工作方式:方式0基本输入输出,方式1选通输入输出,方式2双向传输方式。本设计要使用该芯片来扩展小键盘,并实现密码校验的功能,为此,我们必须掌握8255A该芯片的编程方式,因为只有通过相应的软件来定义端口的工作方式,选择所需要的功能,硬件电路才能得以实现。首先对8255A的源程序初始化及其程序编程应该有所了解,然而对其的初始化就必须使用到8255A的各种工作方式及其端口的地址,以便进行程序的控制。为此须要了解8255A的控制命令即其方式控制字,关乎8255A的端口工作情况。其基本规格如下各表所示: 表1方式控制字 表2 A口工作方式选择 表3 A口I/O选择D7 D6 D5 D4 D3 D2 D1 D01D4输入/输出选择0A口为输出1A口为输入D6D5 A口工作方式 00 方式0 01 方式1 1 方式2 表4 C口上半部I/O选择 表5 B口工作方式选择 表6 B口I/O选择 表7 C口上半部I/O选择D0输入、输出选择0C口低4位输出1C口低4位输入D1输入/输出选择0B口为输出1B口为输出D2B口工作方式0B口为输出1B口为输入D3输入、输出选择0C口高4位输出1C口高4位输入 本设计采用B口PB0端口输出外接显示灯,当管脚信号为低电平时绿灯亮表示输入的数据同初始设置的值相同,相反当其管脚输出为高电平时红灯亮表示输入的数据同初始设置的值不同。C口外接矩阵式键盘并且采用扫描法进行键盘信息的读取,通过使用的方式不同可以得出8255A可编程并行接口芯片的控制方式,在8255A的初始化及其编程当中需要用到。2.2 硬件接口电路原理2.2.1 键盘接口原理电路图由于本题设计要求要用户扩展的键盘按键有数字键09和功能键等共12个,因此键盘电路采用独立式键盘将会占用很多的I/O线从而不实用。故采用矩阵式键盘电路来扩展带有12个按键的小键盘比较合适,根据本题要求只需34方式的矩阵即可,故其原理电路图如下图3所示: +5V 8255 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 0 1 2 3 4 5 6 7 8 9 10 11 图3 矩阵式键盘电路原理图 矩阵式键盘电路其特点是由按键组成一个矩阵,矩阵的行线和列线分别作为两个传输方向相反的I/O接口信号线,如行线作为输入接口信号线,列线作为输出接口信号线,或反之。用独立式键盘相比这种电路所需要的I/O线很少,但键盘容量很大,按题目设计要求,本设计题只需用到C口的七根输入/输出线,组成34式的矩阵即可达到要求组成带有12个按键的小键盘。2.2.2 键盘扫描法及程序处理的任务虽然矩阵式键盘对CPU的硬件资源要求不多,但相应的软件相对要复杂,目前扫描键盘识别键号的方法有两种,即扫描法和翻转法。其实现思想基本简介如下:扫描法是设定行线输出列线输入,行线逐行输出0,如果某列有按键则列线输入为0;若无键按下列线输入全部为1,这样根据行线和列线提供的信息就可以确定是哪个键被按下。翻转法实现思想是行、列线交换输入、输出,先输出一组所有为0的行值,读取列值并判断是否有0的位,后出输出所有为0的列值,读取行值并判断是否有0的位,从而两步进行确定获取键位置信息。因此,这种方法要比扫描法效率高,本设计中采用的也是翻转法进行键盘信息的读取。其中,键盘的扫描同键位的确定有如下表8所示的关系,扫描的程序将在附录中给出。表8 34行列式键盘的按键编码表 按键 键 码 按键 键 码 行值 列值 行值 列值 011101110 611011011 111101101 711010111 211101011 810111110 311100111 910111101 411011110 10(确认)10111011 511011101 11(取消)10110111其中,功能按键只需要通过相应的程序进行调用说明即可,其按键功能如下表9所示:表9 按键对应的键名及其功能 按 键 键 名 功能说明 09键 数字键用于输入密码 10键 确认键当扫描到此键时结束扫描,即输入结束 11键 取消键当扫描到此键是重新扫描,即重新输入密码键盘处理程序的任务主要包括步骤如下:键输入、键译码和键处理三步。其中,键输入是键盘处理程序最主要的工作,由于键盘的机械结构,当键按下或松开时,键将有一个抖动过程,因此键输入的首要工作就是检查键盘是否有键被按下,消除按键抖动。然后再确定被按的键在矩阵中的位置,获取键号。消除抖动的方法可以采用软件延时。延时程序将在附录中给出。2.2.3 红绿灯显示电路部分由于设计的要求,需要通过扩展小键盘来输入数据并且与初始密码进行比较,要求相同时绿灯亮,若输入的数据同初始密码不同则红灯亮。故可以通过8255A端口输入/输出的功能加上相应的程序来进行实现,本设计采用B端口的一个输出端口通过非门的选择来实现红绿灯的选择亮灭,其部分接口电路如下图图4所示:图4 红绿灯显示电路部分电路图其中,红绿灯显示的原理是:当密码比较正确时绿灯D1亮,即B口PB0输出应该为0,所以B口输出为00H;当密码比较错误时红灯D2亮,即B口即PB0输出应该为1,所以B口输出为01H。其实现红绿灯亮的部分程序段如下: MOV AL,00H ;绿灯亮 MOV DX,B_PORT OUT DX,AL MOV AL,01H ;红灯亮 MOV DX,B_PORT OUT DX,AL2.2.4 硬件连接电路图由以上分析可以知道,整体电路设计图如下图图5所示,由于proteus仿真软件中没有8086CPU,因此使用了Z80CPU来代替。另外,由于所学知识的有限只能连接出部分的电路原理图如图5所示。8255A图5 输入接口电路2.3 软件设计2.3.1 软件设计思路密码输入键盘的主要功能是实现8255A扩展的小键盘,通过输入数据同初始设置的密码比较,若密码比较的相同则绿灯亮,否则红灯亮。其中,初始设置为四位数字的密码,数据的键入通过扩展的小键盘来实现,当输入的数据在09之间时,输入正常并把数据寄存在缓冲区BUFF2中,当扫描到的数据为10时,则执行确认功能即退出扫描读数,若扫描到的数据为11时,则执行取消功能即重新扫描读取输入的数据。其中,主程序为键盘的扫描读取从键盘输入的数据,即通过扩展矩阵式键盘翻转扫描法将扫描的键码值转化为相应的键号值,数据键为09,功能键有确认取消键,也即当扫描到输入的值为10时,通过程序控制使其转化为确认的功能,当扫描到的键值为11时即实现取消的功能。子程序有消除抖动的延时程序和密码比较调用红绿灯显示输出的程序;消除抖动的延时程序,主要利用软件延时的方法即通过循环方式的控制来实现延时以消除按键的抖动。2.3.2 程序流程图由以上分析该设计分为主、子程序两部分,故主、子程序流程图分别如下图6、图7所示: 红灯亮结束开始取存密码缓冲区的偏移地址SI设置循环次数CX=4与初设密码等否 CX是否为0 或者SI为4否绿灯亮NNYY键值存入BUFF2调用密码比较子程序结束 开始8255初始化 读键盘有键按下否调用延时子程序 读取键值键值是否为11键值是否为10NY YNYN 图7 密码比较及灯显示子程序流程图 图6 主程序流程图 结束语在本次的课程设计中,整体思路比较明确、设计的步骤也比较顺畅,由于有过课程设计的基础,对说明书的书写格式也方便了许多,没有第一次时的那种种麻烦以及困难,同时通过这次的课程设计也让我对微机接口方面的知识有了进一步的了解,而且也更加熟悉了汇编语言所运行的软件环境,同时通过软件环境的调式运行可以检验自己的程序是否正确,由于本次设计涉及到硬件方面的知识,因此,也需要对硬件电路的检验也就促使自己学习仿真软件,本次设计中我主要使用的仿真软件有proteus和keil c51等两种,后者软件主要用来烧制可运行的程序以生成HEX文件,以便直接可以导入CPU来检验硬件电路的正确如否。通过本次课程设计,给我最大的收获也就在于此了,了解到更多的软件知识以及对所学的软件编程知识进行了巩固。同时,通过本次课程设计让自己明白了自己所存在的不足以及急需要加强练习的地方。首先,拿到设计要求的第一个问题就是不知道如何着手编写键盘读键的程序,虽然通过看书能够明白8255A是如何扫描键盘并读取键号信息的,但是,其中遇到很多小问题无法想明白,思维进入了死胡同似乎就转不过弯来。但是,随着不断的查找资料以及翻阅书籍慢慢明白了过来。之后,一个问题解决了另一个问题又随之而来,能够扫描也能够读取键号信息了,可是8255A所读取的键号信息又存储在哪里?后一次扫描的数据会把前一次扫描的数据覆盖,应该用什么样的程序将扫描到的数据截取出来并且存入自己设置的缓冲空间当中,最后,通过各种学习的手段问题也逐一解决的差不多了。致谢在本次的课程设计中,不仅加强了所学的知识而且了解到了不少未曾使用过的软件环境,同时,在此课程设计期间,我所遇到的问题不仅仅通过自己查阅资料而获悉,更大的帮助要来自于向馗老师、李志俊老师和班里的同学们。向馗老师建立群为大家提出问题提供了方便;李志俊作为我们的微机课程老师,由于对于我们所学知识的程度比较了解,对于我们提出的关于此次课设的问题,他也给出了我们合理解答;同学之间的讨论也更加让自己模糊的问题得以简单化、明白化,在此感谢他们。参考文献1周佩玲,彭虎,傅忠谦.微机原理与接口技术(基于16位机).北京:电子工业出版社,2005.42汤书森.微机原理接口实验与实践教程.北京:清华大学出版社,2008.73 杨文武.微机原理与接口技术实验与课程设计.城都:西南交通大学出版社,2005.104王为青、邱文勋.51单片机应用开发案例精选.北京:人民邮电出版社,2007.85 朱定华.微机原理、汇编与接口技术.北京:清华大学出版社,2005.86 /lxy/wuli/create/ziliao/danpianji/8255.htm 7 /jpkc/xiaoji/wjyl/shiyan/8255.htm附录附录1、设计程序清单A_PORT EQU 80HB_PORT EQU 81HC_PORT EQU 82HCTRL_PORT EQU 83HDATA SEGMENT BUFF1 DB 0,7,1,2 BUFF2 DB 4 DUP(0)DATA ENDSCODE SEGMENT ASSUME DS:DATA,CS:CODESTART:MOV AX,DATA MOV DS,AX LEA SI,BUFF2 MOV AL,88H ;设定行(C口低四位)输出,列(C高四位)输入 OUT CTRL_PORT,AL MOV AL,8 ;行输出为零即低四位1000,列输入信号j OUT C_PORT,AL MOV CX,200 ;设定扫描键盘读入数据的次数,可为200次NO_KEY:IN AL,C_PORT ;键盘部分程序,判断是否有键按下 AND AL,0F0H CMP AL,0F0H ;列信号是否全为1,是无键按下并返回扫描,不全为1有键按下 JZ NO_KEY CALL DELAY10MS ;有键按下调延时 IN AL,C_PORT SHR AL,1 ;把列信息移到低四位,逻辑右移空位补0 SHR AL,1 SHR AL,1 SHR AL,1 MOV DL,0 ;设置初始变量DL为0,用于计数列为0的信号即DLj MOV CX,4LOOP1:SHR AL,1 ;此循环为逐列检查,找出输出为0的列信号j JNC LOOP2 ; cf=0即移出的位为0,则跳 INC DL LOOP LOOP1LOOP2:MOV AL,81H ;设定列为输出,行为输入 OUT CTRL_PORT,AL MOV AL,0 ;列输出为0,输入行信号i OUT C_PORT,AL IN AL,C_PORT AND AL,0FH CMP AL,0FH ;检查行信号是否全为1,是返回,否继续下步 JZ LOOP2 ;若行信号全为1,则重新扫描行信号 MOV DH,0 ;设置初始行变量DH为0,用于计数行为0的信号即DHi MOV CX,3LOOP3:SHR AL,1 ;该循环为逐行检查,找出0的行信号i JNC LOOP4 INC DH LOOP LOOP3LOOP4:SHL DH,1 ;计算键号4ij SHL DH,1 ADD DH,DL ;DH为键号 CMP DH,0AH ;键号为10则结束输入 JZ FINISH CMP DH,0BH ;键号为11取消重新输入 JZ NO_KEY MOV BUFF2SI,DH ;键号为09的键则存入缓冲区BUFF2 INC SI LOOP NO_KEY ;再次扫描输入第二个数 CALL MMBJ ;调用密码比较程序 DELAY10MS PROC ;调用10毫秒延时子程序DELAY:MOV CX,2801WAIT:LOOP WAIT RETDELAY10MS ENDPMMBJ PROC ;调用密码比较子程序 MOV DI,OFFSET BUFF1 MOV SI,OFFSET BUFF2 MOV CX,4A1: MOV AL,DI CMP AL,BUFF2SI JNZ A2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学数学知识点复习与测试卷
- 客户服务满意度调查表设计
- 高考物理实验题库及实验方案
- 坡面削坡施工技术操作流程与规程
- 新版小学二年级语文期末测试题
- 小学科学章节知识点系统归纳
- 公司员工退岗申请流程模板
- 机械公差与配合标准技术手册
- 高校教育心理学考试复习笔记
- 中小企业财税筹划案例分析
- 数据安全管理员职业技能竞赛考试题库(含答案)
- 天津市2024年七年级上学期数学期中考试试卷【附答案】
- GB/T 17395-2024钢管尺寸、外形、重量及允许偏差
- 24.1.1《圆》数学人教版九年级上册教学课件
- 乳品领域:认养一头牛企业组织架构及部门职责
- 宠物乐园方案
- 自备车补贴申请表
- 注塑成型技术培训之工艺理解课件
- 信息论与编码(第4版)完整全套课件
- 广西佑太药业有限责任公司医药中间体项目环评报告书
- 汽修厂安全风险分级管控清单
评论
0/150
提交评论