微机原理课程设计-键盘输入.doc

上传人:PIYPING 文档编号:10596701 上传时间:2021-05-25 格式:DOC 页数:20 大小:162.50KB
返回 下载 相关 举报
微机原理课程设计-键盘输入.doc_第1页
第1页 / 共20页
微机原理课程设计-键盘输入.doc_第2页
第2页 / 共20页
微机原理课程设计-键盘输入.doc_第3页
第3页 / 共20页
微机原理课程设计-键盘输入.doc_第4页
第4页 / 共20页
微机原理课程设计-键盘输入.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《微机原理课程设计-键盘输入.doc》由会员分享,可在线阅读,更多相关《微机原理课程设计-键盘输入.doc(20页珍藏版)》请在三一文库上搜索。

1、一、设计目的通过课程设计使学生更进一步掌握微机接口与通信课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。为以后学生结合专业从事微机应用设计奠定基础。二、设计的原始资料及依据(1) 查阅可编程并行芯片8255、键盘工作原理等其他相关资料。(2) 用简单的输入输出端口等硬件,输入数据、处理数据和输出数据。三、设计的主要内容及要求内容:求两个BCD数之和。要求: 一个2位BCD数存于内存,另一个2位BCD数从键盘输入,求其和,并保存到内存。四、对设计说明书撰写内容、格式、字数的要求 1.课程设

2、计说明书(论文)是体现和总结课程设计成果的载体,一般不应少于3000字。2.学生应撰写的内容为:目录、正文、参考文献等。课程设计说明书(论文)的结构及各部分内容要求可参照沈阳工程学院毕业设计(论文)撰写规范执行。应做到文理通顺,内容正确完整,书写工整,装订整齐。3.说明书(论文)手写或打印均可。手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时按沈阳工程学院毕业设计(论文)撰写规范的要求进行打印。4. 课程设计说明书(论文)装订顺序为:封面、任务书、成绩评定表、目录、正文、参考文献。五、 设计完成后应提交成果的种类、数量、质量等方面的要求;提交课程设计说明书一份。在说明书中要有设计

3、原理、硬件电路接线图、设计的程序及必要注释等。六、时间进度安排;顺序阶段日期计 划 完 成 内 容备注11.0天查阅资料及初步设计21.5天软硬件设计31.5天上机调试及运行40.5天成绩评定50.5天书写报告七、主要参考资料(文献)。1、王庆利 微型计算机机原理及应用 西安电子科技大学出版社2、周明德 微机原理与接口技术 北京航空航天大学出版社3、沈美明汇编语言程序设计(第二版)清华大学出版社沈阳工程学院课程设计 目录目录摘 要I第1章 任务描述11.1设计题目11.2设计内容11.3 设计目的11.4 设计的原始资料及依据1第2章 设计原理2第3章 主要元器件介绍33.1 可编程并行接口8

4、255简介33.1.1 8255引脚功能33.1.2 8255内部结构43.1.3 8255的工作方式43.1.4 8255的控制字53.2 键盘简介63.2.1 键盘的工作原理73.2.2 键盘输入信息的过程73.2.3键盘扫描(识别键)的过程7第4章 原程序及注解8第5章 程序流程图12第6章 程序接线图14总结15参考文献16沈阳工程学院课程设计 摘要摘 要微机接口原理是一门非常重要的计算机技术基础课程,全面介绍微机的基本结构、工作原理、硬件配置、接口期间和接口种类等。本次微机接口课程设计的主要目的是要使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机

5、应用的理解。通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。为以后学生结合专业从事微机应用设计奠定基础。在本次课程设计中大家利用课上所学的各种知识,对自己的课程设计题目进行设计。我们小组所要设计的题目是加法器。在设计的过程中主要利用可编程并行接口8255A芯片,完成从键盘输入一个2位BCD数,与另一个存于内存的2位BCD数相加求和,并将结果送到LED指示灯处显示。在程序中为了使输入的BCD码转换为指示灯处的二进制显示,我们用到了DAA加法调整指令。键盘输入的原理,是当输入一个数据时,该位置处为低电平,其他位置为高电平。这样我们就可以让程序对键盘的每一列

6、进行扫描,当找到对应列时再对行进行扫描,当扫描到相应位置时确定该位置的键值。做加法后的结果输出,会显示在LED指示灯上,在程序中设定8255A芯片的C下口进行输入,将A口和B口作为输出口,并将B口连接到LED指示灯的接线端上,从而,可以将输入的BCD数的值与相加的结果显示出来。关键字 微机接口、可编程并行接口8255A芯片、LED指示灯、键盘I沈阳工程学院课程设计 第1章 任务描述第1章 任务描述1.1设计题目加法器设计11.2设计内容内容:求两个BCD数之和。要求: 一个2位BCD数存于内存,另一个2位BCD数从键盘输入,求其和,并保存到内存。1.3 设计目的通过课程设计使学生更进一步掌握微

7、机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。为以后学生结合专业从事微机应用设计奠定基础。1.4 设计的原始资料及依据查阅可编程并行芯片8255、键盘工作原理等其他相关资料。用简单的输入输出端口等硬件,输入数据、处理数据和输出数据。16沈阳工程学院课程设计 第2章 设计原理第2章 设计原理我们在这次课设选择了加法器的设计,认为加法器是我们生活中随处可见的工具,加法器的主要原理应用到键盘扫描原理、数据的输入与输出和LED的显示等等。对于加法器,我们首先想到的是实现它的最基本的

8、加法功能。而又对于计算机专业来说,我们身边接触到得数据不仅仅是简单的十进制而已。为了解决这个问题,我们小组在汇编时运用了将十进制强行转换为二进制的DAA语句,使加法的结果转换为机器识别的二进制数据,再经由LED指示灯的亮灭情况来读出加法的和。数据的输入,我们采用的是小键盘扫描列的方法来识别闭合键,要求矩阵式键盘的行线和列线分别接在可编程输入与输出接口。先扫描列中第一列的对应的几行是否按键按下,若没有则选择第二列进行相同的扫描,如果没有则依次列数增加进行对应行值扫描,扫描到后,最终把读入的行值和从列端口读出的列值合成键号,根据键号就可以判断是哪行哪列的值被按下了。数据的并行输入与输出,我们选择了

9、可编程的并行接口芯片8255,选用芯片的C下口作为数据的输入端,A口和B口作为数据的输出端,B口是用来控制将数据输出到LED灯上的,最终将数据的和保存到相应的寄存器中,再由寄存器发送结果到LED指示灯上,从而正确的读出结果,实现加法的功能。沈阳工程学院课程设计 第3章 主要元器件介绍第3章 主要元器件介绍3.1 可编程并行接口8255简介3.1.1 8255引脚功能RESET:复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。CS:片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许8255与CPU进行通讯。RD:读信号线,当这个

10、输入引脚为低电平时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。WR:写入信号,输入引脚为低电平时,允许CPU将数据或控制字写入8255。D0D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。PA0PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。PB0PB7:端口B输入输出线,一个8位的I/O锁存器, 一个8位的输入输出缓冲器。PC0PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入缓

11、冲器。端口C可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。A1、A0:端口地址总线,8255中有端口A、B、C和一个内部控制字寄存器,共4个端口,由A0、A1输入地址信号来寻址。8255的引脚图如图3.1所示。图3.1 8255引脚图3.1.2 8255内部结构8255内部结构如图3.2所示。图3.2 8255内部结构图3.1.3 8255的工作方式并行接口是以数据的字节为单位与I/O设备或被控对象之间传递信息。在实际应用中凡是CPU与外设之间同时需要传递两位以上信息时均需采用并行接口。可编程

12、并行通信接口(8255A)是一个具有两个8位(A口和B口)和两个4位(C口)并行输入/输出端口的接口芯片,为了适应多种数据传送方式的要求8255A设置了3种工作方式:方式0为基本输入输出方式,方式1为选通输入输出方式,方式2为双向传送方式。本次为满足设计需要,将8255A设置为方式0,方式0的多种数据传送方式如表3.1所示。 表3.1 方式0的多种数据传送方式A 组B组A口(PA0-PA7)C口(PC4-PC7)B口(PB0-PB7)C口(PC0-PC3)入入入入入入入出入入出入入入出出入出入入入出入出入出出入入出出出出入入入出入入出出入出入出入出出出出入入出出入出出出出入出出出出3.1.4

13、8255的控制字 1.方式选择控制字8255方式选择控制字的格式如图3.3所示。图3.3 8255的方式选择控制字2.端口C置位/复位控制8255在和CPU传输数据的过程中,经常将端口C的某几位作为控制字或状态位来使用,从而配合端口A或端口B的工作,在8255初始化时,端口C按位置位/复位控制字可以单独设置端口C的某位位0或为1,该控制字的作用是指定口的8位中的任意一位置成高电平输出或低电平输出。它的格式及每位的定义如表3.2所示。表3.2 8255的C口按位置位/复位控制字D7=0D6D5D4D3D2D0标志位不用(一般置0)C口的选择000=C口位0001=C口位1010=C口位2011=

14、C口位3100=C口位4101=C口位5110=C口位6111=C口位71=置位0=复位3.2 键盘简介键盘是微机系统和其他实时控制系统中广泛使用的一种基本输入设备。按键实际上就是一个开关;对大多数键盘而言,为了减少与微机间的连线,简化结构,按键被排成行和列的矩阵形式,称为矩阵键盘。矩阵键盘根据识别键和键盘扫描实现方式的不同又分为两类:编码键盘和非编码键盘。编码键盘主要是用硬件来实现键的识别和扫描,它功能强,可靠,但硬件复杂,一般微机系统使用编码键盘。非编码键盘主要是用软件方法来识别键和绎键,本次课程设计主要应用非编码键盘的基本工作原理,及键盘控制程序的编制方法。3.2.1 键盘的工作原理通常

15、可采用两种方法来识别键盘上的闭合键:即行(列)扫描与行反转法,本次课程设计采用的是行(列)扫描法,其基本思想是:将行线接输入端口,列线接输出端口。先将所有的列线输出低电平(A口),读入行线的值(C口),若此时行线上的值全为1,说明无键按下;若有某位为0,则说明对应列上有键按下,这时改变列扫描码,使列线逐行为0,依次输出列扫描码,读入行值。当读入某一行线的值为0时,则可根据此时的列扫描码和行线的值唯一的确定按键的位置,同时也就确定了该键的扫描码。3.2.2 键盘输入信息的过程CPU检查是否有键按下;扫描检查各行和列,找到被按键的键号;将键号转换成计算机能识别的代码并转入相应的键盘处理程序。3.2

16、.3键盘扫描(识别键)的过程识别是否有键按下:方法是使PA0PA3输出全为0,读C口(行值)PC0PC3,PC0PC3中只要有一位为0,就说明有键按下,因为由于上拉电阻接+5V的作用,无键按下时,列线被置成高电平。当某键被按下,该键所在行线和列线接通,所以,当列线为低电平时,对应的行线也为低电平。消抖动:抖动就是键按下时由于手工操作,键的闭合和断开之间回跳几下才能稳定到闭合的位置,这就称为抖动。抖动问题不解决回引起对闭合键的错误识别,所以当判别出有键按下时应消除抖动。消除抖动的常用方法是在检测到有键按下后,延迟一段时间(通常为20ms),再检查该键是否仍然被按着,若是,才真正认为有键按下,而不

17、是干扰。确定是哪个键被按下:即确定被按下键的行列号,因此可采用上述的行列扫描法。根据找到的键号,转去执行该键功能的子程序。沈阳工程学院课程设计 第4章 源程序及注解第4章 原程序及注解MY8255_A EQU 0600HMY8255_B EQU 0602HMY8255_C EQU 0604HMY8255_CON EQU 0606HSSTACK SEGMENT STACKDW 16 DUP(?)SSTACKENDSDATA SEGMENTb DB 0 ;存2位BCD数的高位i DB 0 ; 十位标识x DB 01000100B y DB 0DATA ENDSCODE SEGMENT ASSUME

18、 CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV DX,MY8255_CON ;写8255控制字 MOV AL,89H ;A,B口为输出,C口为输入 OUT DX,ALMOV AL,xMOV DX,MY8255_B OUT DX,AL ;在LED单元显示存入内存中的一个BCD数BEGIN: CALL CCSCAN ;调用显示子程序JNZ INK1 ;扫描 JMP BEGININK1: CALL DALLY ;延时 CALL CCSCAN ;再次扫描,消抖动 JNZ INK2 ;有键按下,转到INK2 JMP BEGIN;=;确定按下键的位置;=I

19、NK2: MOV CH,0FEH MOV CL,00H COLUM: MOV AL,CH MOV DX,MY8255_A OUT DX,AL MOV DX,MY8255_C IN AL,DXL1: TEST AL,01H ;扫描第一行输出是否为0 JNZ L2 ;当第一行输出为1是转到L2继续执行 MOV AL,00H ;当第一行为0时,说明该行有键按下,该行第一个键键值0 JMP KCODEL2: TEST AL,02H ;扫描第二行输出是否为0 JNZ L3 ;当第二行输出为1是转到L3继续执行 MOV AL,04H ;当第二行为0时,说明该行有键按下,该行第一个键键值4 JMP KCOD

20、EL3: TEST AL,04H ;扫描第三行输出是否为0 JNZ L4 ;当第三行输出为1是转到L3继续执行 MOV AL,08H ;当第三行为0时,说明该行有键按下,该行第一个键键值8 JMP KCODEL4: TEST AL,08H ;扫描第四行输出是否为0 JNZ NEXT ;当第四行输出为1是转到NEXT继续执行 MOV AL,0CH ;当第四行为0时,说明该行有键按下,该行第一个键键值12KCODE: ADD AL,CL ;取得键入的数放入AL中 CALL PUTBUF PUSH AXKON: CALL CCSCAN ;扫描键盘 JNZ KON POP AXNEXT: INC CL

21、 ;如果第一列没有扫描到按键,则转到第二列扫描 MOV AL,CH TEST AL,08H JZ BEGIN ROL AL,1 MOV CH,AL JMP COLUM;=;键盘扫描子程序;= CCSCAN: MOV AL,00H MOV DX,MY8255_A OUT DX,AL MOV DX,MY8255_C IN AL,DX NOT AL AND AL,0FH ;列线中是否有0 RET;=; 延时子程序;=DALLY: PUSH CX MOV CX,00F0HAA2: PUSH AX POP AX LOOP AA2 POP CX RETDALLY1: PUSH CX MOV CX,9FFF

22、HAA3: PUSH AX POP AX LOOP AA3 POP CX RET ;=;存键盘值到相应位的缓冲中;=PUTBUF: CMP i 0 ;判断先前是否有输入过数字 JNZ D1 ROL AL,4 ;将键盘输入的第一个数左移4位 MOV b,AL ;用笔来保存第二个BCD数的高4位 MOV DX,MY8255_B OUT DX,AL MOV i,1H ;已经输入过一个数 JMP end1D1: MOV i,0 ;将i值清空,说明一个完整的2位BCD数已从键盘输入 ADD AL,b ;用AL来保存用键盘输入的BCD数 MOV DX,MY8255_B OUT DX,AL ;将键盘输入的B

23、CD数显示在LED指示灯上 CALL DALLY1 CALL DALLY1 CALL DALLY1 CALL DALLY1CALL DALLY1 CALL DALLY1 CALL DALLY1 CALL DALLY1CALL DALLY1 CALL DALLY1 CALL DALLY1 CALL DALLY1ADD AL,x ;计算两个2位BCD数的和DAA ;将AL中的和调整为8421格式MOV DX,MY8255_BOUT DX,AX ;在LED指示灯上显示和 MOV y,AL ;将和保存到内存CALL DALLY1 CALL DALLY1 CALL DALLY1 CALL DALLY1C

24、ALL DALLY1 CALL DALLY1 CALL DALLY1 CALL DALLY1MOV AL,xMOV DX,MY8255_B OUT DX,AL ;再次显示保存在内存中的一个BCD数,作为提示方便下次计算end1:RETCODE ENDSEND START沈阳工程学院课程设计 第5章 程序流程图第5章 程序流程图键盘扫描的流程图如图5.1所示。YNNN有行线为“0”?有行线为“0”?跳转相应程序入口YY开始所有列均已扫描?无键按下将键盘所有列线置0列号=0将行号对应的列线置0,其余列线为1对应列号行号形成键值列号加1图5.1 键盘扫描流程图加法器总流程图,如图5.2所示。NYNY

25、开始扫描到数?数?i=0?从键盘上键入一位数将内存中的BCD数显示在LED上扫描键盘将AL中的数左移4位存入b中将b中的值输出到LED上i=1i=0,AL+b将AL+b的值输出到LED上将AL+b的值与x相加,并把结果出书大省哦LED上结束图5.2 加法器总流程图沈阳工程学院课程设计 第6章 程序接线图第6章 程序接线图程序接线图如图6.1所示。 开D0 关 及 LEDD7 显 示 单 元Y1 键数 . 盘码 . 扫显Y4 描示 及单X1 元.X4A0 PC0.A1 PC3 PA0 PA3D0 . .D7 PB0 WR PB7RD CS XA1 XA2 系 统 XD0 . . 总 . XD7线

26、 IOW# IOR#IOY0 图6.1 程序接线图沈阳工程学院课程设计 总结总结一周的微机接口课程设计过去了,在这一周中不仅是自己,相信每个小组成员都获益匪浅。起初利用汇编语言进行设计对于我们而言都是一个很陌生的学科,因为是首次接触,之前也没有什么了解,所以课程设计的一开始对整个小组而言都是很困难的。好在小组成员都富有很强的激情和执着的性格,在摸不着头脑的情况下,大家认真学习,积极配合,终于将整个系统一步步地完成下来。对于我们而言,作出这个程序并没有什么,更重要的则是这段时间对微机接口的学习过程。在这次课程设计中,我们更加深刻的了解到了8255芯片的使用方法,并且对8255芯片的各个端口都有了

27、更新的了解。在我们的设计中,主要将A口和B口及上C口作为输出口,将下C口作为输入口,并且将B口的输出端连接到LED显示灯处,以便可以看到显示灯显示的加法结果。在设计中我们还要应用到键盘的输入,对于键盘的学习并不是很多,但是通过老师的讲解,我们懂得了键盘的操作主要是通过扫描完成的。当有按键按下时,其相应位置的电位就会变为低电平,程序通过先扫描行再扫描列的方法,直到扫描到正确的位置时将该数字存入到内存中。同时,在设计中我们也加入了一些不太熟悉的汇编语言,但是通过大家的自我学习,我们也可以很好的将它们运用到我们的设计中。知识宝贵,团队精神同样可贵,我想任务分组完成就是出于这样的考虑吧,团队合作不是把

28、任务简单分开就能实现的。每个人学习知识的侧重点不尽相同,每人解决问题的思路也不一样,几个人相互讨论,相互辩论的过程中往往会产生出人意料的好想法,也许这就叫做灵感吧。当然,在微机接口这样的学科中团队精神也是尤为重要的,因为这样的设计过程就等于是一个重新学习的过程,我们在其中努力寻找自己的不足及不懂之处,当分歧达成共识,团结协作,最终才造就了一个完整的设计成果。抽到题目的时候我们也感到很迷茫,不知道如何下手。但在之后,我们就开始收集资料,我们上网下载,到图书馆检索,众多资料,纷繁复杂,真是忙的我们不可开交,但是这样的学习,同时为后面的设计也打下了坚实的基础。在这段时间里,我学到了很多知识也有很多感受,从对很多知识的一知半解,对很多相关技术不很熟悉的状态。我开始了的学习和试验,查看大量的相关资料和书籍,让自己头脑中模糊的概念逐渐清晰,使自己非常稚嫩作品一步步完善起来,每一次改进都是我学习的收获。这次实训给了我们一个很好的实践机会,锻炼了我们的意志品质和合作精神,并且真正意义上的实践加深对理论的认识,积累了经验,为以后毕业工作打下了坚实的基础。沈阳工程学院课程设计 参考文献参考文献1、王庆利 微型计算机机原理及应用 西安电子科技大学出版社2、周明德 微机原理与接口技术 北京航空航天大学出版社3、沈美明汇编语言程序设计(第二版)清华大学出版社

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1