简易计算机系统设计资料

上传人:我** 文档编号:114650603 上传时间:2019-11-12 格式:DOCX 页数:22 大小:471.22KB
返回 下载 相关 举报
简易计算机系统设计资料_第1页
第1页 / 共22页
简易计算机系统设计资料_第2页
第2页 / 共22页
简易计算机系统设计资料_第3页
第3页 / 共22页
简易计算机系统设计资料_第4页
第4页 / 共22页
简易计算机系统设计资料_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《简易计算机系统设计资料》由会员分享,可在线阅读,更多相关《简易计算机系统设计资料(22页珍藏版)》请在金锄头文库上搜索。

1、成绩 Xxxxxxxxxxx课程设计说明书(论文)题 目 简易计算器系统设计 课 程 名 称 微型计算机原理与接口技术 二 级 学 院 xxxxxxxxxx 专 业 xxxxxxxxxx 班 级 xxxxxxxxxxxxxxxxxxxxxx学 生 姓 名 xxxxxxxxxxxx 设 计 地 点 xxxxxxx 指 导 教 师 xxxxxxxxxxx 设计起止时间: 2016年6 月13日至2016 年6 月24 日 目录 一、设计任务与要求3二、设计思路3三、硬件电路设计10四、软件编程设计11五、仿真与调试15六、结论与心得18七、参考文献18简易计算器系统设计一、设计任务与要求1、可以进

2、行十进制数四则运算。用按键输入数据;具有清零和复位功能;具有连续运算功能。2、在设计中可以引用所需的参考资料,避免重复工作,加快设计进程,但必须和题目的要求相符合,保证设计的正确。学会掌握和使用各种已有的技术资料,不要盲目地、机械地抄袭资料,必须具体分析,使设计质量和设计能力都获得提高。要在老师的指导下制定好自己各环节的详细设计进程计划,按给定的时间计划保质保量的完成个阶段的设计任务。设计中可边设计,边修改,软件设计与硬件设计可交替进行,问题答疑与调试和方案修改相结合,提高设计的效率,保证按时完成设计工作并交出合格的设计报告。二、设计思路根据本次设计的设计目的及设计要求,可有下列两种方案:1.

3、 方案1 模拟简易计算器主要由键盘输入和LED数码管显示两部分组成,其界面如图1所示:要设计一个模拟计算器,要用到可编程并行I/O接口芯片8255A,主要要解决8255A与键盘接口和8255A与LED数码管接口的问题。1.1 8255A与键盘接口键盘是计算器的输入设备,通过键盘把数据和操作命令输入到计算器,实现人机对话。目前使用的键盘分为编码键盘和非编码键盘。编码键盘带有必要的硬件电路,能自动提供按键的ASC编码,并能将数据保持到新键按下为止,还有消除抖动和防止多键、串键等保护装置。编码键盘软件简短,它根据编码就能识别是什么键按下,但硬件电路复杂,价格较贵。 非编码键盘仅仅是按行、列排列起来的

4、矩阵开关,其他的工作如识别键、提供代码、去抖动等由软件来解决。为了识别键盘上的闭合键,通常可以采用两种方式:行扫描法和行反转法。(1)行扫描法行扫描法识别按键的原理如下:首先判别是否有键按下。将所有行线置成0电平,然后通过列线输入全部列值,如果读入的列值全是1,则说明没有任何一个键按下;反之,如果读入的列值不全是1,着说明有键按下。也就是说,在键盘识别的开始先进行全扫描,若有键按下,则必须判别是哪个按键被操作。第二步确定哪个键被按下。一旦发现有键按下,就转入采用逐行扫描的办法来确定是那一个键被按下。先扫描第一行,即使它输出0电平,其余的行线为高电平1,然后读入列值。如果读入的列值中有一位为低电

5、平0,则说明在此行的一个行、列交叉处有键被按下。如果读入的列值全是1,说明这一行所有按键都未被按下。接着扫描第二行。依次类推,逐行扫描,直到扫完全部的行线为止。若在扫描的过程中,发现非全1的列值,就能找出被按下的键。 (2)行反转法行反转法识别闭和键时,要将行线接一个并行口,先让它工作在输出方式下;将列线也接一个并行口,先让它工作在输入方式下。程序使CPU通过输出端口,向各行线上全部送低电平0,然后读入列线的值(列值),如果此时有某一键被按下,则必定会使某一列线为0,输入的列值其中某一位为0。然后,程序在对两个并行端口进行方式设置,使行线工作在输入方式,列线工作在输出方式。利用输出指令,使列线

6、全部输出为0 值。再从行线输入行线值(行值)。行值中闭合键所对应的位必然为底电平0。利用这种反转法,可得到一对行值和列值,每一个按键唯一对应一组行值和列值,行值和列值组合起来可以形成一个按键的识别码。(3)在扫描键盘的过程中,应注意解决以下问题:键抖动:当用手按下一个键时,往往会出现按键在闭合和断开位置之间跳几下才稳定到闭合状态的情况;在释放一个键时,也会出现类似的情况,这就是抖动。这种抖动经常发生在键被按下或抬起的瞬间,一般持续几毫秒到几十毫秒,随键的结构不同而不同。在扫描键盘过程中,必须想办法消除键抖动,否则会引起错误。消除键抖动可以用硬件电路来实现,它利用RS触发器来锁定按键状态,以消除

7、按键的影响。简单的方法是利用软件延时来消除键的抖动。也就是说,一旦发现有键按下,就延时20ms以后再去检测按键的状态,这样就避开了键发生抖动的那一段时间,再读按键状态,数据可靠。重键:重键是指一个以上的按键同时按下而产生的不确定或错误问题。出现重键时,读取的键值必然出现有一个以上的0。于是就产生了到底是否给予识别哪一键的问题。解决重键可采取的方法有:一是无效处理,当发现有一个以上按键同时按下时,认为此次按键输入无效。二是等待释放,将最后释放的按键作为有效键处理。三是硬件封锁,当发现有一按键按下时,硬件电路即刻封锁其他按键的输入直到该键处理完毕。应防止按一次键而产生多次处理的情况:这种情况的发生

8、是由于键扫描速度和键处理速度较快,当某一个按下的按键还未及时释放时,键扫描程序和键处理程序已执行了多遍,这样由于程序执行和按键动作不同步,而造成一次键有多个键输入的错误状态。为了避免发生这种情况,必须保证按一次键,CPU只对该键作一次键处理,为此,在键扫描程序中不仅要检测是否有键按下,在有键按下的情况下,作一次键处理;而且在键处理完毕后,还应检测按下的键是否释放,只有当按下的键释放以后,程序才继续往下执行。这样每按一次键,只有一次键处理,使两者达到了同步。 8*2键盘是一种行列式键盘,如图2所示图中有8行2列,8根行线与PB口相连,2根列线与PC口的PC6、PC7相连按键设置在行、列交交点处(

9、数字或字符为其键号),行、列线分别连接到按键开关的两端。当列线通过上拉电阻接+5V时,接被钳位在高电平行列式键盘电路状态。键盘中有无按键按下是由列线送入全扫描字、列线读入行线状态来判断的。这就是:被行线所有I/O线均置成低电平,然后读入列线电平状态。如果有键按下,总会有一根列线电平被拉至低电平,从而时列线输入不全为1。 键盘中哪一个键是由行线逐行置成低电平后,检查列线输入状态予以确定的。其方法是:依次给行线送低电平,然后查所有行线状态,如果全为1,则所按下之键必在此行。而且与0电平行线相交的交点上的那个键。键盘的工作方式采用编程扫描的工作方式,即通过调用子程序来响应键输入的要求,在按键扫描子程

10、序中完成下述功能:判断键盘上有无键按下。其方法是先使PB7PB00,然后读PC6、PC7的状态,若为全1则键盘中无键按下;若不全为1,则说明键盘中有键按下。去除按键的机械抖动影响。可作这样的处理:当判断有键按下后,软件延时一段时间后再判断键盘状态,如果仍为键按下状态,则认为有一个确定的键按下,否则按按键抖动处理。求按下键的键值及键号。键盘上的每一个键都对应一个键值。键盘中键号排列没有规律,不能通过对键值直接运算得到键号。因此必须先判断按下键是使PC70还是PC6=0,然后再查为零的列线上键按时其8位键值中是否有一位为零,若为零则可得到键值。求按下键值及键号的目的是使程序转到相应的地址去完成该键

11、的操作。一般,对数字键就是直接将该号送到显示缓冲区进行显示,对功能键则必须先找到完成该功能键处理子程序的入口地址,并转去执行该键的命令。因此,当键号求到后,还必须找到功能键处理程序入口。 为保证键闭合一次CPU仅进行一次键功能操作。程序中需要等待键释放以后再将键号送累加器AH。1.2 8255A与LED数码管接口发光二级管数码显示器简称为LED(Light Emitting Diode)数码显示器,它由七段发光二级管组成。这种显示器价格低廉、体积小、功耗低,而可靠性有很好,因此,从单板微型机、袖珍计算机到许多微型机控制系统及数字化仪器都用LED作为输出显示。LED数码管的主要部分是七段发光二极

12、管,如图3所示。这七段发光二极管分别称为a、b、c、d、e、f、g,有的产品还附带有一个小数点h,通过7个发光段的不同组合,可以显示09和AF共16个字母数字或其它异形字符。 LED数码管有共阳极、共阴极两种结构,如图4所示。如为共阳极结构,则共用的阳极应接高电平,各段则输入低电平,方为有效。如为共阴极结构,共用的阴极必须接低电平,而各段处于高电平时便发光。表1表示了共阴极与共阳极结构字符0F的编码表。编码的低位为a,高位为g。表1:七段LED编码表显示数字编码共阴极共阳极0123456789ABCDEF.3FH06H5BH4FH66H6DH7DH07H7FH67H77H7CH39H5EH79

13、H71H80HC0HF9HA4HB0H99H92H82HF8H80H98H88H83HC6HA1H86H8EH7FH要实现计算器的显示功能,需要用6位七段LED数码管来实现多位显示。在这种方案中,硬件上用公共的驱动电路来驱动各数码管;软件上用扫描方法实现数字显示。由于要显示6位十进制数,因此采用6位七段LED动态显示电路,需要一个8位I/O口和一个6位I/O口,其中8位I/O控制段选码,6位I/O控制位选。进行6位字符显示时,采用扫描显示方式,即在每一瞬间只使某一位显示相应字符,在此瞬间,段选控制I/O输出相应字符段选码,位选控制I/O口在该显示位送入选通电平(共阴极送低电平,共阳极送高电平)

14、,以保证该位显示相应字符,如此轮流,使每位显示该位应显示字符,并保持延迟一段时间(15ms),以造成视觉暂留效果,不断循环送出相应的段选码、位选码,就可以获得视觉稳定的显示状态。只要CPU通过段控制端口送出段代码,然后通过位控制端口送出位代码,指定的数码管便显示相应的数字。如果CPU顺序地输出段码和位码,依次让每个数码管显示数字,并不断地重复,当重复频率达到一定程度,利用人眼的视觉暂留特性,从数码管上便可见到相当稳定的数字显示。图5是一个由8255A控制的6位共阴极显示系统,A口输出LED字符7段代码信息,C口输出6个LED位选信号,由程序控制依次使Q0Q5低电平轮流有效,使得LED0LED5轮流显示。2. 方案2 用汇编语言编写程序实现应用程序的功能,从而实现简易计算器汇编程序的设计与实现。2.1 使用设备含有Windows汇编编译环境的MASM软件及Office 2003软件的计算机一台。2.2 参数定义在本程序中,定义了变量B1B8用来显示提示信息的8个参数。定义了变量X和Y用来保存输入的操作数。定义了变量C用来保存除法运算中的余数。定义了变量D用来保存输入的操作符。定义了变量E等于

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号