计算机组成原理实验系统的图形界面控制系统的总体设计方案与实现毕业论文.docx

上传人:b****2 文档编号:18885494 上传时间:2023-04-24 格式:DOCX 页数:20 大小:29.54KB
下载 相关 举报
计算机组成原理实验系统的图形界面控制系统的总体设计方案与实现毕业论文.docx_第1页
第1页 / 共20页
计算机组成原理实验系统的图形界面控制系统的总体设计方案与实现毕业论文.docx_第2页
第2页 / 共20页
计算机组成原理实验系统的图形界面控制系统的总体设计方案与实现毕业论文.docx_第3页
第3页 / 共20页
计算机组成原理实验系统的图形界面控制系统的总体设计方案与实现毕业论文.docx_第4页
第4页 / 共20页
计算机组成原理实验系统的图形界面控制系统的总体设计方案与实现毕业论文.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

计算机组成原理实验系统的图形界面控制系统的总体设计方案与实现毕业论文.docx

《计算机组成原理实验系统的图形界面控制系统的总体设计方案与实现毕业论文.docx》由会员分享,可在线阅读,更多相关《计算机组成原理实验系统的图形界面控制系统的总体设计方案与实现毕业论文.docx(20页珍藏版)》请在冰豆网上搜索。

计算机组成原理实验系统的图形界面控制系统的总体设计方案与实现毕业论文.docx

计算机组成原理实验系统的图形界面控制系统的总体设计方案与实现毕业论文

计算机组成原理实验系统的图形界面控制系统的总体设计方案与实现毕业论文

计算机组成原理实验系统的图形界面控制系统的总体设计方案与实现毕业论文目录摘要:

计算机组成原理是大学计算机教学一门重要的课程,它的工程性、技术性和实践性这些特点决定了我们在进行课堂教学的同时必须对于实验教学予以重视。

这是一门抽象的实验课程,从而决定了教学的难度,如果能够像看动画一样直观的看到实验系统内部的数据流动,那么就能更好的理解实验更好的促进教学。

随着高级程序设计语言的出现,方便的工具的问世,计算机图形学的发展,图形程序的开发变得越来越容易。

有了这些,设计一个和硬件系统配合的软件平台变得可行。

本文将要讨论一下如何设计一个可配合教学的动画。

本文给出了使用工具VC++6.0开发一个计算机组成原理实验系统的图形界面控制系统的总体设计方案与实现。

首先进行系统的概要设计,论证了可行性,接着简单介绍开发工具,然后叙述了开发过程中用到的重要知识,最后分析整个软件系统的结构、功能设计与实现。

关键字:

计算机组成原理,动画,VC++6.0第一章前言1.1研究的背景和目的随着计算机的普及,计算机成为人们生活中不可缺少的部分,如今各个高校都开设了计算机课程。

计算机组成原理课程作为计算机课程的基础专业课,它的工程性、技术性和实践性决定了这门课程仅仅依靠课堂教学是远远不够的,于是计算机硬件实验成为计算机教学的一个重要教学环节。

但是,目前的计算机组成原理实验主要依靠实验箱,通过开关进行输入,信号灯观察输出。

这种方法很抽象,对教学的效果和进度都有很大影响,如果能够以图形的方式显示出计算机内部的数据流动情况就会方便学生的理解,友好的界面让操作简单,让同学们在轻松的环境下做好实验,同时能够增加同学们的学习兴趣。

另外,市场上虽然有很多类似的产品出售,但是价格一般在几千元,对于一般的学校很难承担的起。

在这种情况下,一方面实验老师的教学任务繁重,不仅要做好实验教学前的备课,还要提前熟悉所用设备及其维护工作,而且根据设备的不同,其维护和管理的工作量也大不一样,这样让老师不能把精力有效的放到教学上;另一方面学生要提前熟悉所用设备的设计,浪费了大量的时间,影响实验进度,限制了学生发挥主观能动性的灵活性,实践能力也得不到有效的提高。

在程序设计语言和设计工具的发展下,随着大规模集成电路工艺的提高,设计一个友好实用的实验系统有了基础并且成为必然要求。

1.2本论文的研究目标和任务本论文主要介绍应用VC++6.0开发实现友好的实验系统的界面,并可以通过串口与模型机联机通信,以控制模型机运行,采集模型机数据在绘图界面上动态显示。

论文需要分析系统功能,以及详细阐述系统的设计与实现。

1.3本论文的工作和内容本论文的主要工作是介绍开发界面系统的过程,工作完成了对实验系统的程序载入执行和CPU运行过程的动态演示。

论文共分为六章:

第一章为前言部分,介绍了论文的背景,研究目的和工作内容。

第二章为系统概述,介绍了实验系统的主体设计。

第三章是对本论文中用到的工具的简介。

第四章是串口通信的介绍,是系统的重要组成部分。

第五章重点介绍了系统的设计实现方法。

第六章是对本论文的设计进行的概括总结。

PC机串行接口单片机FPGAFPGARAMROM接口单元CPU微控器第二章系统概述2.1系统整体概述实验系统由硬件实验平台和软件显示平台两大部分组成。

实验的功能操作主要由硬件实验平台完成。

软件显示平台以图形加数据的方式动态显示实验中各部件内部的工作状态和数据流向。

系统整体结构如图2.1所示。

图2.1系统整体结构图2.2硬件设计部分概述系统硬件部分主要是提供计算机系统设计实现的载体FPGA,并由通信接口部件对硬件电路部分进行管理。

主要实现的设计功能是:

通信接口部件是主要控制部件,接收单片机的命令完成管理外存RAM的读写、实验板总线控制及与单片机数据通信等功能;RAM部分是实验板的主要存储部件,同时也是计算机系统的外存,它受通信接口部件控制写入读出数据,这些数据包括由单片机传来的指令和数据、CPU系统内计算机系统的过程数据和结果,其中,单片机传来的指令和数据是用来控制计算机系统工作,计算机系统的过程数据和结果是用来反馈给PC机以完成图形模拟。

2.3软件设计部分概述2.3.1软件系统功能需求用VC6.0制作系统显示界面,界面作为用户与系统对话的窗口,为用户提供系统的操作接口,包括载入程序,执行程序,可以控制程序的运行,系统内部的运行情况以动画的方式显示出来供用户分析实验。

界面如图2.2所示。

图2.2软件界面2.3.2软件系统概要设计分析软件平台划分为视图部分、控制部分、模拟部分和通信部分。

这四个部分之间的关系请参看图2.3。

图2.3软件系统结构图视图部分:

视图部分要求能够显示微指令、指令,以及以图形的形式显示接口部分收到的信息,主要是寄存器和总线的状态信息。

根据这几项功能现在将界面安排如下。

模块划分窗口下部分占四分之一,命名为OutPut模块,用于以后扩展附加功能。

可以用对话框动态加载实现。

窗口上部右方占四分之三,命名为Draw模块,用于绘图。

窗口上部左边四分之一,在把这四分之一等分为上下两部分,上一部分命名为ShowIns模块,用于显示程序。

下一部分命名为ShowMIns模块,用于显示微程序。

功能定义OutPut暂时不作定义。

Draw定义为用Windows的用户图形接口绘制出框图表示对应于模型机的部件,并绘制出各个部件之间的连线。

同时为每一个部件模型和连线模型定义标志位,并根据标志位将图形绘制出不同的颜色。

这一组标志位是图形部分和控制部分的接口。

ShowIns和ShowMIns的功能大致相似,要求以表格的形式显示地址和保存在地址中的数据。

控制部分控制部分的控制划分为两部分,一部分是控制视图模块,包括控制ShowIns和ShowMIns的对程序和微程序的显示以及通过Draw模块的接口控制绘图。

另一部分是通过串口通信控制模型机的运行状态并且采集模型机信息。

有两部分可以影响到绘图,一部分是串口信号,另一部分是可以采用模拟的方法发送信号供显示模块绘图。

本程序中使用分散控制的方式,控制模块分别分散在视图部分、模拟部分和通信部分中。

如图2.4所示。

图2.4控制部分结构图模拟部分为了在没有连接模型机的情况下也能够看到实验程序运行的方式,增加一个模拟部分,模拟部分负责产生显示图形所需要的信息通过绘图模块的接口设置状态信息控制绘图。

模拟部分分为两个模块,实体模块和驱动模块。

实体模块模拟寄存器、ALU等功能实体。

可以用C++中的基本数据类型定义。

驱动模块定义了实体模块中的操作。

这个模块可以改变实体模块中的数据和状态,可以读取实体模块的状态,并负责与绘图模块通信。

具有控制模块的功能。

请参看图2.5。

图2.5模拟部分结构图通信部分通信部分负责通过串口与单片机相连,可以发送控制命令和接受来自单片机采集到的模型机的状态信息。

这些状态信息对于绘图是有用的,通过绘图模块的接口控制绘图,并且需要根据绘图完成情况对模型机发送控制信号。

通信部分划分为采集模块和外部控制模块。

采集模块负责分析采集到的信息控制绘图,外部控制模块负责控制模型机的运行状态,其中控制模块控制信息的发出需要根据由显示模块反馈的信息。

请参看图2.6。

图2.6通信部分结构图第三章工具介绍3.1Windows程序设计简介3.1.1窗口窗口是Windows应用程序基本的操作单元,是应用程序与用户之间交互的接口环境,也是系统管理应用程序的基本单位。

一个基本的Windows应用程序窗口的组成如图3.1所示。

编写一个Windows应用程序首先应创建一个或多个窗口,随后应用程序的运行过程即是窗口内部、窗口与窗口之间、窗口与系统之间进行数据处理与数据交换的过程。

图3.1窗口的组成3.1.2事件驱动、句柄与消息Windows程序设计围绕时间或消息的产生驱动运行处理函数。

所谓消息就是描述事件发生的信息。

Windows程序的执行顺序取决于事件发生的顺序。

一个句柄是指Windows使用的一个唯一的整数值,用于标识应用程序中不同的对象和同类对象的不同实例。

消息的定义是用结构体来表示的,Windows常用的消息有:

窗口管理消息、初始化消息、输入消息、系统消息、剪贴板消息等。

3.2图形设备接口及windows绘图3.2.1图形设备接口Windows图形设备接口是为与设备无关的图形设计的。

对于开发人员,所要做的工作仅仅是在系统的帮助下建立一个与实际输出设备的关联,以要求系统加载相应的设备驱动程序,其他的具体输出操作由系统实现。

图形的刷新是绘图过程中必须考虑的问题,Windows中是通过发出刷新请求,系统相应请求来完成刷新的,系统通常通过发送WM_PAINT消息来发送刷新请求。

系统对刷新请求的响应分为窗口移动后的刷新,被覆盖区域的刷新和鼠标穿越后的刷新。

应用程序输出图形首先需要获取设备环境,通过调用BeginPaint和GetDC函数来获取设备环境。

3.2.2绘图工具和颜色的设计绘图工具有画笔、画刷。

在使用画笔之前必须创建画笔,系统定义了四种画笔分别是WHITE_PEN,BLACK_PEN,DC_PEN,和NULL_PEN.通过调用CreatePen函数来创建,在创建了画笔之后用SelectObject函数将画笔选入设备环境,用完之后调用DelectObject删除画笔。

画刷的使用和画笔相同。

3.3MFC简介3.3.1MFC概述MFC(MicrosoftFoundationClass)用来编写Windows应用程序的C++类集,该类集以层次结构组织起来,其中封装了大部分WindowsAPI函数和Windows控件,它所包含的功能涉及到整个Windows操作系统。

3.3.2MFC中类的组织结构MFC类库中类是以层次结构的方式组织起来的,几乎每个层次结构都与一具体的Windows实体相对应,一些主要的接口类管理了难以掌握的Windows接口,这些接口包括:

窗口类,GDI类,对象链接和嵌入类(OLE),文件类,对象I/O类,异常处理类以及集合类等。

MFC库中的类按层次关系划分可分为如下若干类:

根类:

CObject应用程序体系结构类窗口、对话框和控件类绘图和打印类简单数据类型类数组、列表和映像类文件和数据库类Internet和网络工作类OLE类调试和异常类3.3.3文档-视图结构文档-视图结构是在VisualC++中使用MFC开发基于文档的应用程序的基本框架。

在这个框架中,数据的维护及显示分别由两个不同但又彼此紧密相关的类——文档类和视图类负责。

文档-视图结构在很多场合与传统的编程方式相比要更有利于应用程序的编写。

在文档-视图结构中,文档的任务是对数据进行管理和维护。

数据通常被保存在文档类的成员变量中。

在VisualC++中,文档类通过一个称为串行化(serial)的过程将数据保存到磁盘文件或数据库中。

MFC类库为数据的串行化提供了默认的支持,我们只需要在此基础上稍加修改,就可以为自定义的文档类提供串行化的支持。

文档类还可以处理命令消息,这里所谓的命令消息是指来自如菜单、工具栏按钮和加速键的WM_COMMAND通知消息。

除了WM_COMMAND外,文档不能处理其他的Windows消息。

由此可以看出,命令消息可以被多种对象处理,这些对象除了窗口和视图外,还可以是文档、文档模板或应用程序本身。

这一点与Windows消息和控件通知消息不同,因为Windows消息和控件通知消息只能被窗口和视图处理。

视图类在文档和用户之间起中介作用。

视图可以直接或间接的访问文档类中的这些成员变量,它从文档类中(而不是从存储介质中)将文档中的数据取出来,然后在屏幕上显示文档的数据。

同时,它可以接受用户的输入,并接受用户的修改,通过调用文档和视图的接口将修改的信息反馈给文档类,实际的数据更新仍然由文档类来完成。

每一个文档可以有多个视图,但每个视图只能对应于一个确定的文档。

也就是说,视图是文档的不同表现形式。

比如,一个*.html文件,在浏览器里和在记事本中打开的表现形式是不同的,但是它们操作的是同一个文件。

这就是一个文档对应两个视图的例子。

总之,文档-视图结构的工作机制是:

在通常情况下,视图功过GetDocument成员函数获得指向相关联的文档对象的指针,并通过该指针调用文档类的成员函数来从文档中读取数据。

视图把数据显示于计算机屏幕上,用户通过与视图的交互来查看数据并对数据进行修改。

然后,视图通过相关联的文档类的成员函数将经过修改的数据传递给文档对象。

文档对象获得修改过的数据之后,对其进行必要的修改,然后保存到永久介质(如磁盘文件)中。

3.4VC++6.0开发环境3.4.1VC++6.0开发环境概述VisualC++6.0采用可视化编程,所谓可视化技术,一般是指软件开发阶段的可视化和对计算机图形技术和方法的应用。

使用VisualC++环境来开发Windows应用程序大大缩短了开发时间,而且界面更友好,便于程序员操作。

开发环境的由菜单栏、工具栏、项目工作区、资源编辑器等组成。

3.4.2菜单栏File菜单:

New选项,通过New选项打开New对话框,使用此对话框可以创建新的文件、项目、工作区或其他文档。

Edit菜单:

1)Breakpoints选项选中该选项将弹出Breakpoints对话框,用于设置、删除和查看断点。

断点实际上告诉调试器应该在何时何地中断应用程序的执行过程,以便检查程序代码、变量和寄存器值,必要的话可以修改、继续执行和中断执行。

2)ListMembers选项该选项可以用来适当减轻程序员输入源程序代码的负担。

输入代码时,如果在变量名之后键入“.”,或“->”,那么系统会自动列表显示所有有效的成员名,这时只要键入成员的前几个字母就可从列表中选中该成员,按Tab键即可完成输入;也可用滚动条找到待键入的成员名,然后用鼠标双击成员名来完成。

3)TypeInfo选项如果将鼠标指针停在源代码中某一变量或函数上,那么系统将显示所指变量或函数等的语法。

4)ParameterInfo选项输入代码时,如果在输入函数名之后键入左括号,那么系统将显示该函数的完整原形,并用黑体显示其第一个参数。

输入第一个参数值之后,接着就会出现第二个参数,以此类推。

5)CompleteWord选项系统自动完成当前语句其余部分的输入。

如果不能自动完成,则给出适当的提示辅助用户完成。

View菜单1)ClassWizard选项选中该选项将弹出MFCClassWizard对话框。

2)ResourceSymbols选项该选项将打开资源符号浏览器,从中可以浏览和编辑资源符号。

资源编辑符号是映像到整数值上的一串字符,相当于资源的一个代号,因此可以在源代码或资源编辑器中通过资源符号引用资源。

3)ResourceIncludes选项选中该选项将弹出ResourceIncludes对话框。

对话框中显示资源符号文件名和预处理指令。

4)Workspace选项如果工作区没有显示或者不是处于当前状态,选择该项将显示工作区窗口。

5)Output选项在输出窗口(Output)中显示程序建立过程(如编译、链接等)的有关信息,并且显示调试运行市的输出结果。

6)DebugWindows选项选择该选项将弹出级联子菜单,子菜单中的命令只有在调试运行状态才可用。

Insert菜单1)NewClass选项选中该选项将打开NewClass对话框。

2)NewForm选项选中该选项将打开NewForm对话框,以便创建新的表单并添加到项目中,该对话框的形式与NewClass对话框非常相似。

3)Resource选项创建新的资源或插入到资源文件中。

4)ResourceCopy选项要选中该选项必须先选中某个资源。

该选项用于复制选定的资源。

5)NewATLObject选项添加新的ATL对象到项目中。

3.4.3工具栏工具栏是一种图形化的操作界面,具有直观和快捷的特点,熟练掌握工具栏的使用对提高编程效率非常有帮助。

工具栏由某些操作按钮组成,分别对应着某些菜单选项和命令的功能。

用户可以直接用鼠标单击这些按钮来完成指定的功能。

用户可以根据自己的需要添加新的工具栏,或者对已有工具栏进行修改,如添加新按钮、删除已有按钮等。

若需要添加工具栏,只需选择Tools|New选项,然后输入相应的名字即可。

3.4.4项目与项目工作区VisualC++6.0以项目工作区的形式来组织文件、项目和项目配置。

每个项目工作区由工作区目录中的项目工作区文件组成。

项目工作区文件(.DSW)含有工作区的定义和项目中所包含文件的所有信息。

项目工作区由ClassView(类显示)面板、ResourceView(资源显示)面板及FileView(文件显示)面板等组成。

第四章串口通信介绍4.1串口通信简介4.1.1串口概念所谓“串行通信”是指外设和计算机间使用一根数据信号线(另外需要地线,可能还需要控制线),数据在一根数据信号线上一位一位地进行传输,每一位数据都占据一个固定的时间长度。

这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,当然,其传输速度比并行传输慢。

传送方式如图4.1所示。

图4.1串口传送方式由于CPU与接口之间按并行方式传输,接口与外设之间按串行方式传输,因此,在串行接口中,必须要有“接收移位寄存器”(串→并)和“发送移位寄存器”(并→串)。

典型的串口接口结构如图4.2所示。

图4.2典型串口结构图在数据输入过程中,数据一位一位地从外设进入接口的“接收移位寄存器”,当“接收移位寄存器”中已接收完1个字符的各位后,数据就从“接收移位寄存器”进入“数据输入寄存器”。

CPU从“数据输入寄存器”中读取接收到的字符。

(并行读取,即D7~D0同时被读至累加器中)。

“接收移位寄存器”的移位速度由“接收时钟”确定。

接口中的“控制寄存器”用来容纳CPU送给此接口的各种控制信息,这些控制信息决定接口的工作方式。

“状态寄存器”的各位称为“状态位”,每一个状态位都可以用来指示数据传输过程中的状态或某种错误。

例如,用状态寄存器的D5位为“1”表示“数据输出寄存器”空,用D0位表示“数据输入寄存器满”,用D2位表示“奇偶检验错”等。

能够完成上述“串并”转换功能的电路,通常称为“通用异步收发器”(UART:

UniversalAsynchronousReceiverandTransmitter),典型的芯片有:

Intel8250/8251,16550。

串口的针脚如图4.3所示。

图4.3串口针脚图各个针脚的连接如图4.4所示。

图4.4串口针脚连接图串口器件的连接如图4.5所示。

图4.5串口器件连接图4.1.2串口通信基本原理基本原理:

串行端口的本质功能是作为CPU和串行设备间的编码转换器。

当数据从CPU经过串行端口发送出去时,字节数据转换为串行的位。

在接收数据时,串行的位被转换为字节数据。

在Windows环境(WindowsNT、Win98、Windows2000)下,串口是系统资源的一部分。

应用程序要使用串口进行通信,必须在使用之前向操作系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。

串口信号线的接线方法:

主要信号线定义2脚:

发送数据TXD;3脚:

接收数据RXD;4脚:

请求发送RTS;5脚:

清除发送CTS;6脚:

数据设备就绪DSR;20脚:

数据终端就绪DTR;8脚:

数据载波检测DCD;1脚:

保护地;7脚:

信号地。

电气特性数据传输速率最大可到20Kbps,最大距离仅15m接口的典型应用大多数计算机应用系统与智能单元之间只需使用3到5根信号线即可工作。

这时,除了TXD、RXD以外,还需使用RTS、CTS、DCD、DTR、DSR等信号线。

(当然,在程序中也需要对相应的信号线进行设置。

)以上接法,在设计程序时,直接进行数据的接收和发送就可以了,不需要对信号线的状态进行判断或设置。

(如果应用的场合需要使用握手信号等,需要对相应的信号线的状态进行监测或设置。

)4.2用MFC实现串口通信的基本方法4.2.1使用ActiveX控件VC++6.0提供的MSComm控件通过串行端口发送和接收数据,为应用程序提供串行通信功能。

使用非常方便。

使用MFC进行串口通信的步骤如下:

在当前的Workspace中插入MSComm控件。

Project菜单------>AddtoProject---->ComponentsandControls----->RegisteredActiveXControls--->选择Components:

MicrosoftCommunicationsControlversion6.0插入到当前的Workspace中。

结果添加了类CMSComm(及相应文件:

mscomm.h和mscomm.cpp)。

在MainFrm.h中加入MSComm控件。

protected:

CMSCommm_ComPort;在Mainfrm.cpp:

:

OnCreare()中:

DWORDstyle=WS_VISIBLE|WS_CHILD;if(!

m_ComPort.Create(NULL,style,CRect(0,0,0,0),this,ID_COMMCTRL)){TRACE0(“FailedtocreateOLECommunicationsControl\n“);return-1;//failtocreate}初始化串口m_ComPort.SetCommPort

(1);//选择COM1m_ComPort.SetInBufferSize(1024);//设置输入缓冲区的大小,Bytesm_ComPort.SetOutBufferSize(512);//设置输入缓冲区的大小,Bytes//if(!

m_ComPort.GetPortOpen())//打开串口m_ComPort.SetPortOpen(TRUE);m_ComPort.SetInputMode

(1);//设置输入方式为二进制方式m_ComPort.SetSettings(“9600,n,8,1“);//设置波特率等参数m_C

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

当前位置:首页 > 初中教育 > 语文

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

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