实现六位简单计算器课程设计报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

课程设计报告(2013--2014年度第1学期)名称:微机原理及应用题目:8255/273实现六位简单计算器院系:控制与计算机工程学院班级:创新自1101学号:1111190215学生姓名:苏晴指导教师:杨国田设计周数:一周同组人:庄登祥成绩:日期:2014年1月4日《微机原理及应用》课程设计任务书一、目的与要求1.通过对微机系统分析和具体设计,使学生加深对所学课程的理解。2.培养学生分析问题、解决问题的能力。3.培养学生对微型计算机应用系统的基本设计能力。4.要求学生掌握汇编语言程序设计的基本方法,学会典型接口的基本设计方法。二、主要内容1.选定课程设计参考题目及分工负责部分2.对要求的微机应用系统进行设计,画出系统结构框图、系统接线图。3.用所设计的微机系统进行典型程序的设计并上机进行调试。4.写出设计报告,要求文字整洁、语言通顺、制图规范、程序完整正确。三、进度计划序号设计内容完成时间备注1选择课程设计题目,查阅相关资料2013.12.302进行软硬件设计2013.12.313上机调试2014.1.2、34撰写设计报告2014.1.45演示及答辩2014.1.4四、设计成果要求1.系统硬件设计合理,软件编程达到设计要求。2.系统硬件结构图和软件流程图绘制清楚规范。3.设计报告完整规范。五、考核方式根据课程设计报告书撰写情况及答辩情况采用五级记分制评定成绩。学生姓名:苏晴指导教师:杨国田2014年1月4日一、课程设计的目的与要求目的:在微机原理及应用课程中分别学过了微机原理各个基本组成模块的原理和编程技术的基础上,综合应用各部分知识,在实验室现有设备的情况下,设计一个具有一定功能的应用系统,达到对各部分知识加深理解、融会贯通的目的,并进一步锻炼学生的动手能力和综合分析能力,同时培养学生的团队精神。要求每个同学独立完成自己分担的部分,整体方案可以组内同学讨论确定。要求:能完成六位十进制数的加、减、乘、除运算,操作过程与普通计算器相同,即先输入一个操作数,然后按下“+”“—”“×”“÷”键,再输入下一个操作数,按等号键开始运算并显示结果,若结果超过六位,则显示“E”。二、分工及任务:庄登祥负责硬件架构、算法架构,苏晴负责显示管理按键管理,庄登祥、苏晴共同负责主程序编写三、设计正文将可编程外围接口芯片8255A与键盘和七段LED连接,通过对8255A编程及对键盘的操作实现计算功能:键盘码包括数字0~9、运算符号+-*/=和清零“CL”键,通过键盘依次输入第一个运算数字、运算符号、第二个运算数字、“=”,在七段LED灯上显示运算结果,期间数字输入有误可按“CL”键之后重新输入。四、设计流程图加号?减号?乘号?除号?等号?清零?设加标志设减标志设乘标志设除标志进行加减乘除运算,保存结果清零显示器是否溢出?出》?结果为E放键?有标志?清零显示器,清标志保存数据显示扫描开始8255初始化有无按键?显示扫描是数字键?N[键入文档的引述或关注点的摘要。您可将文本框放置在文档中的任何位置。可使用“文本框工具Y[键入文档的引述或关注点的摘要N[键入文档的引述或关注点的摘要。N[键入文档的引述或关注点的摘要。您可将文N[键入文档的引述或关注点的摘要。您可将文本框放置N[键入文档的引述或关注点的摘要。您可将文本框放置在文档中N[键入文档的引述或关注点的摘要。您可将文本框放置在文档中的任何位Y[键入文档的引述或关注点的摘要。您可将文本框放置在文档中的任何Y[键入文档的引述或关注点的摘要。您可将文本框放置在文档中的任何位置。可Y[键入文档的引述或关注点的摘要。您可将文本框放置在文档中的任何Y[键入文档的引述或关注点的摘要。您可将文本框放置在文档Y[键入文档的引述或关注点的摘要。您可将文本框放Y[键入文档的引述或关注点的摘要。您可将Y[键入文档的引述或关注点的摘要。您可将文本框放Y[键入文档的引述或关注点的摘要。您可将文本框放置在文档中的任何位置。可使用“文本Y[键入文档的引述或关注点的摘要。您可将文本框放置在文档中的任何位置。可使N[键入文档的引述或关注点的摘要。您可将文本框放置在文档中的任何位置。可使N[键入文档的引述或关注点的摘要。您可将文本框放置在文档中的任何位置N[键入文档的引述或关注点的摘要。您可将文N[键入文档的引述Y[键入文档的引述五、各部分原理1、6位数码管原理及其功能每位数码由八段发光二极管构成,这八个发光段分别称为a,b,c,d,e,f,g,dp;数码管分为共阳和共阴两种,共阳数码管的所有二极管的正极相连,负极引线,输入0时有效;共阴数码管的所有二极管负极相连,正极引线,输入1时有效;通过控制不同段的点亮和熄灭,以显示所要得到的数字七段LED的输出功能也是通过8255的并行输出实现;仿真时我们采用的是共阳数码管。2、8255引脚功能说明:RESET:复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。PA0~PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。PB0~PB7:端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。PC0~PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。CS:片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许8255与CPU进行通讯。RD:读信号线,当这个输入引脚为低电平时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。WR:写入信号,当这个输入引脚为低电平时,允许CPU将数据或控制字写8255。D0~D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。8255的读写控制:8255的读/写控制逻辑电路接受CPU发来的控制口号RD、WR、RESET和地址信号A1~A0。然后根据命令端口,控制信号的要求,将端口的数据读出选信CPU或者将CPU送来的数据写入端口,各端口的工作状态。通过用输出指令对8255A的控制字寄存器编程,写入设定工作方式的控制字,可以让3个数据口以不同的方式工作,端口A可工作于3种方式的任一种,端口B只能工作于方式0和方式1,端口C除了用于输入输出端口外,还能配合A口和B口工作,为这两个端口的输入输出操作提供联系信号3、8086处理器当引脚接高电平时,CPU工作于最小方式(单处理器系统方式,适合于较小规模的应用)。此时,引脚功能如下:(1)AD15~AD0:分时复用的存储器或端口的地址和数据总线。传送地址时为单向的三态输出,而传送数据时为双向三态输入/输出。(2)IO/M存储器/输入、输出控制信号(输出、三态):它用于区分CPU当前是访问存储器还是访问输入/输出端口。高电表示访问存储器,说明当前要进行CPU与存储器之间的数据传送。低电平表示访问输入/输出设备。表示当前要进行CPU与I/O端口之间的数据传送。在DMA时,它被置为浮空。(3)WR/LOCK(输出,低电平有效,三态):信号有效,即为低电平时,表示CPU正在执行存储器或I/O写操作,在写周期中,WR在T2、T3、Tw期间都有效。在DMA时,WR被置为浮空。(4)INTA:可屏蔽中断响应信号,输出,低电平有效。CPU通过信号对外设提出的可屏蔽中断请求做出响应。为低电平时,表示CPU已经响应外设的中断请求,即将执行中断服务程序。(5)ALE:地址锁存允许信号,输出,高电平有效。CPU利用ALE信号可以把AD15~AD0地址/数据、A19/S6~A16/S3地址/状态线上的地址信息锁存在地址锁存器中。(5)DT:数据发送/接收信号,输出,三态。DT/信号用来控制数据传送的方向。DT/为高电平时,CPU发送数据到存储器或I/O端口;DT/为低电平时,CPU接收来自存储器或I/O端口的数据。(6)DEN:数据允许控制信号,输出,三态,低电平有效。信号用作总线收发器的选通控制信号。当为低电平时,表明CPU进行数据的读/写操作。(7)HOLD:总线保持请求信号,输入,高电平有效。在DMA数据传送方式中,由总线控制器8237A发出一个高电平有效的总线请求信号,通过HOLD引脚输入到CPU,请求CPU让出总线控制权。(8)HLDA:总线保持响应信号,输出,高电平有效。HLDA是与HOLD配合使用的联络信号。在HLDA有效期间,HLDA引脚输出一个高电平有效的响应信号,同时总线将处于浮空状态,CPU让出对总线的控制权,将其交付给申请使用总线的8237A控制器使用,总线使用完后,会使HOLD信号变为低电平,CPU又重新获得对总线的控制权。(9)RD:读控制信号,三态,输出。当RD=0时,表示CPU执行存储器或I/O端口的读操作。是对内存单元还是对I/O端口读取数据,取决于M/IO信号。在执行DMA操作时,RD被浮空。(10)READY:“准备好”信号线,输入。该引脚接受被寻址的内存或I/O端口发给CPU的响应信号,高电平时表示内存或I/O端口已准备就绪,CPU可以进行数据传输。CPU在T3状态开始对READY信号采样。若检测到READY为低电平,表示内存或I/O端口尚未准备就绪,则CPU在T3状态之后自动插入等待状态Tw,直到READY信号变为高电平,内存或I/O端口已准备就绪,CPU才可以进行数据传输。4.74LS138译码器(1)当选通端S1、S2、S3为有效时,可将地址端(A0、A1、A2)的二进制编码在Y0至Y7对应的输出端以低电平译出。比如:A2A1A0=110时,则Y6输出端输出低电平信号。(2)若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。(3)可用在8086的译码电路中,扩展内存。74LS273锁存器(1)MR为使能端,为低电平时,可传送数据(2)D0-D7是数据输入端,Q0-Q7是锁存数据输出端(3)CLK是时钟输入端,在一个信号的上升沿,锁存数据在使用74LS273时,应注意由于8086的数据是下降沿有效的,应在CLK输入端加一个反相器5、键盘原理键盘使用来获取用户按键操作的,采用矩阵键盘,假设为行列数为n,则行列组合可获取n*n不同的键值。通过行列扫描来获取键值,扫描原理分为3种,以4*4矩阵键盘为例,0输入有效,分别如下:1.行(列)输入0000,检测列(行),若出现0,记下列(行)数;然后列(行)输入000,检测行(列),若出现0,记下行(列)数;则通过行列数可得出矩阵键盘上对应的键被按下;2.行输入0111,检测列,若出现0记下列数,则可得出,第一行上相应的列的按键被按下;然后行依次输入1101,检测列,与上同3.列输入0111,检测行,过程与2类似在实际扫描矩阵键盘中,具体扫描步骤如下:1.行输入0000,检测行,若有按键按下,进行2,否则循环执行12.采用3种方法中的一种进行键盘扫描3.有键按下,延时几十毫秒左右,重读结果4.若按键信号还在,则此次按键非抖动,计算键值储存结果5.循环检测,等到按键信号消除,则此次按键操作完成本设计中,没有考虑多个按键同时按下的可能,这是待完善之处6.仿真电路图六、算法架构讨论:本设计完成的计算器中,还有许多不完美之处,一个比较好的计算器应该更加智能化,因此,我们找一个学生用的智能计算器进行实验。下面讨论中,算符特指实际运算的符号;加减乘除指从键盘获得的按键,可能是算符,也可能是一个数的正负号;满足运算条件指有一个算符和两个参与运算的当前数以及能触发运算的按键操作首先,是连续计算,当然智能计算器是能区分运算符号优先级别的,在4*4矩阵键盘计算器中,计算的连续性应该体现在按下出现下一个算符,在满足运算的条件下,应立即能将之前的式子计算出来,并能显示;其次,是正负号,正负号便是加减号,比如我们按下+6+-6,智能计算器

1 / 38
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功