流水线微机课设_第1页
流水线微机课设_第2页
流水线微机课设_第3页
流水线微机课设_第4页
流水线微机课设_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

模拟流水线控制设计(论文)沈阳工程学院课程设计(论文)PAGE2PAGEIPAGEIPAGEIPAGEI=2\*ROMANII模拟流水线控制设计(论文)PAGE1目录1设计任务描述 11.1. 设计题目:模拟流水线控制设计 11.2. 设计要求 11.2.1设计目的 11.2.2基本要求 12设计思路 23设计原理流程图 34实际硬件接线图 45源程序清单及注释 56.主要元器件介绍 96.18086简介 96.1.18086CPU简介 96.1.28086主要特性 96.1.38086CPU寄存器结构 106.1.4CPU引脚图 136.2可编程并行输入输出芯片8255 146.2.18255引脚介绍: 146.2.28255的工作方式及端口寻址方式: 146.2.38255的控制字: 156.2.4可编程控制器8255的功能及其部分相关程序: 157设计总结 17致谢 18参考文献 19模拟流水线控制设计(论文)1设计任务描述设计题目:模拟流水线控制设计设计要求1.2.1设计目的(1)查阅可编程并行芯片8255或其他相关资料;(2)用简单的输入输出端口等硬件,配合延时和控制程序控制灯的亮灭。1.2.2基本要求(1)每道工序时间间隔不同(2)流水线故障时中止流水。(3)故障处理完毕继续完成相应工序。2设计思路通过并行接口芯片8255和8086/88计算机的硬件连接,并利用微机原理实验箱,采用一组发光二极管来模拟流水线。首先利用8255来控制模拟流水线的二极管的亮灭,我用8255的A口输出来输出二极管的亮灭。其次需要考虑的是二极管的亮灭时间,通过查资料,可以通过8259定时器和程序延时两种方法来控制亮灭时间,我决定用的是利用延时程序来控制亮灭时间。通过查找资料,我知道了完成一次入栈出栈需要0.4ns,通过循环让它不断的进行入栈出栈操作,通过计算循环的次数我们就可以完成具体的每道工序模拟二极管的亮灯时间。最后是流水线故障时中止流水的设计,我用的是开关来模拟故障,当故障时C口接收故障信号来控制中止流水,我用的是让它在故障循环,是这道工序的模拟二极管一直亮,不在进行下去,当故障清除是恢复流水。我的发挥部分是当总控制开关打开时不再进行工作,这时所有的流水线模拟二极管都将熄灭3设计原理流程图开始开始初始化8255工序1是否有按键按下是工序2是否有按键按下下下工序3是否有按键按下是否有按键按下工序5是否有按键按下是是是是否否否否否工序44实际硬件接线图D0LEDD0LED:显:示D7及开关D8单元K1A0PA0:A1:8255PA7D0单元::PB0D7PC0WRRDCSXA1XA2系统XD0总:线:XD7IOW#IOR#IOY15源程序清单及注释SSTACK SEGMENTSTACK DW32DUP(?)SSTACK ENDSCODE SEGMENTASSUMECS:CODESTART: MOVDX,0646H MOVAL,89H OUTDX,ALXIANSHI1:MOVBL,80H MOVDX,0640HMOVAL,BLOUTDX,ALCALLYANSHI1MOVDX,0644HINAL,DXTESTAL,01HJZAA1MOVDX,0644HINAL,DXTESTAL,02HJZAA11 XIANSHI2:MOVBL,40H MOVDX,0640HMOVAL,BLOUTDX,AL CALLYANSHI2 MOVDX,0644H INAL,DXTESTAL,01H JZAA2 MOVDX,0644HINAL,DXTESTAL,02HJZAA11 XIANSHI3: MOVBL,20H MOVDX,0640HMOVAL,BLOUTDX,ALCALLYANSHI3MOVDX,0644HINAL,DXTESTAL,01H JZAA3 MOVDX,0644HINAL,DXTESTAL,02HJZAA11 XIANSHI4: MOVBL,10H MOVDX,0640HMOVAL,BLOUTDX,ALCALLYANSHI4MOVDX,0644HINAL,DXTESTAL,01HJZAA4 MOVDX,0644HINAL,DXTESTAL,02HJZAA11 XIANSHI5: MOVBL,08H MOVDX,0640HMOVAL,BLOUTDX,ALCALLYANSHI5MOVDX,0644HINAL,DXTESTAL,01H JZAA5 MOVDX,0644HINAL,DXTESTAL,02HJZAA11 JMPSTARTAA9:MOVDX,0640HMOVAL,00HOUTDX,ALDELAY1:PUSHCX PUSHAX MOVCX,0FHA1: MOVAX,0FFFFHA2: DECAX JNZA2 LOOPA1 POPAX POPCX RETDELAY2:PUSHCX PUSHAX MOVCX,018HA3: MOVAX,0FFFFHA4: DECAX JNZA4 LOOPA3 POPAX POPCX RETDELAY3:PUSHCX PUSHAX MOVCX,01EHA5: MOVAX,0FFFFHA6: DECAX JNZA6 LOOPA5 POPAX POPCX RETDELAY4:PUSHCX PUSHAX MOVCX,06HA7: MOVAX,0FFFFHA8: DECAX JNZA8 LOOPA7 POPAX POPCX RETDELAY5:PUSHCX PUSHAX MOVCX,0FHA9: MOVAX,0FFFFHA10: DECAX JNZA10 LOOPA9 POPAX POPCX RETCODE ENDSENDSTART6.主要元器件介绍6.18086简介6.1.18086CPU简介由于此系统最终要在西安唐都科教仪器出品的32位微机机教学实验系统TD-PITE/PITC上进行实验,故设计硬件配置时采用Intel8086,整个实验的硬件配置都以此为原则进行设计选用。Intel8086是16位的微处理器(理论学习中为8088,其内部总线为16位,外部总线为8位,故称为准16位微处理器),它采用HMOS工艺40条引脚封装。8086工作时使用5V电源,时钟频率5MHz(8086-1为10MHz,8086-2为8MHz)它有20根地址线,故可寻址的内存空间为1MB。6.1.28086主要特性Intel8086/8088CPU是Intel公司推出的高性能的微处理器,具体如下主要特性:(1)8086CPU数据总线为16位,8088CUP数据总线为8位。(2)地址总线都是20位,低16位用于数据总线复用,可直接寻址为1MB的存储空间。(3)有16位的端口地址,可以寻址64KB的I/O端口。(4)有99条基本指令,指令功能强大(5)有9种基本寻址方式。(6)可以处理内部和外部中断,外部中断源多达256个。(7)兼容性好,与80*86,8085在源程序一级兼容。(8)8086/8088标准主频为5MHz,8086/8088-2主频为8MH。(9)支持单处理器或多处理器系统工作。实验中是以Intel386EX微处理器为核心,来模拟8086处理器来进行系统的测试工作队列队列总线数据总线地址总线暂存器T标志寄存器FRALUEU控制器地址加法器总线逻辑控制AXBXCXDX通用寄存器AHALBHBLCHCLDHDLSPBPDISI CSDSSSESIP暂存器外部外部总线 ALU数据总线 指令预取 队列缓冲器 执行单元(EU)总线接口单元(BIU)图6.1CPU8086内部结构图6.1.38086CPU寄存器结构8086CPU中有14个16位的寄存器,其中有4个16位的通用寄存器,2个16位指针寄存器,2个16位变址寄存器,1个16位指令指针及1个16位标志寄存器(仅用9位)。通用寄存器通用寄存器包括累加器AX,基址寄存器BX,计数寄存器CX,数据寄存器DX四个寄存器,位于CPU的EU中,每个数据寄存器可存放16位操作数,也可拆成两个8位寄存器,用来存放8位操作数。表1.1通用寄存器的特殊用途和隐含属性寄存器名称特殊用途及隐含性质AX在输入输出指令中作数据寄存器,不能隐含在乘法指令中存放被乘数或乘积,在除法指令中存放被除数或商,能隐藏AH在LAHF指令中,作目标寄存器,能隐藏AL在输入/输出指令中作数据寄存器,不能隐藏在十进制运算指令中作累加器,能隐含在XLAT指令中作累加器,能隐含BX在间接寻址中作基址寄存器,不能隐含在XLAT指令中作基址寄存器,能隐含CX在串操作指令和LOOP指令中做计数器,能隐含CL在移位/循环移位指令中作移位次数计数器,不能隐含DX在字乘法/除法指令中存放乘积高位或被除数高位或余数,能隐含在间接寻址的输入/输出指令中作地址寄存器,不能隐含指针和变址寄存器指针和变址寄存器包括:堆栈指针SP、基址指针BP、源变址寄存器SI、和目的变址寄存器DI四个16位寄存器,可以来存放数据和地址。表1.2指针和变址寄存器的特殊用途和隐含性质寄存器名称特殊用途及隐含性质SI在字符串运算指令中作源变址寄存器,能隐含在间接寻址中作变址寄存器,不能隐含DI在字符串运算指令中作目标变址寄存器,能隐含在间接寻址中作变址寄存器,不能隐含BP在间接寻址中基址指针,不能隐含SP在堆栈操作中作堆栈指针,能隐含段寄存器段寄存器包括:代码段寄存器CS,用于存放当前代码段的段地址;数据段寄存器DS,用于存放当前数据段的段地址;附加段寄存器ES,用于存放当前附加段的地址;堆栈段寄存器SS,用于存放当前堆栈段的段地址。这些段寄存器彼此不能互换,每个段寄存器在8086存储寻址空间中规定了64KB的存储快。该64KB存储快叫做段寄存器的当前段。专用寄存器包括指令指针寄存器(IP)和标志寄存器(FR)。指令指针寄存器(IP):用来存放要取的下一条指令在当前代码段中的偏移地址,程序不能直接访问IP,在程序运行过程中,BIU可修改IP中内容。指令指针寄存器每执行一次取操作,将自动加1,使它指向下一条要取的内存单元。标志寄存器(FR):尽定义了9位,其中6位用作状态标志,3位用作控制标志。 D15D12D4D2D0OFDFIFTFSFZFAFPFCF状态标志位进位标志CF:当前加法运算有进位,减法运算有借位时,CF=1,否则CF=0。辅助进位标志AF:在字节操作时,低4位向高4位有进位(加法)或有借位(减法);在字操作时,低字节向高字节有进位(加法)或有借位(减法)时,则,AF=1,否则AF=0。奇偶校验标志PF:当运算结果低8位“1”的个数为偶数时,PF=1,否则PF=0。零标志ZF:当运算结果为0时,ZF=1,否则ZF=0。溢出标志OF:在有符号数的算术运算时,当运算结果有溢出时,OF=1,否则0F=0。符号标志SF:在有符号数的算术运算时,当运算结果为负时,SF=1,否则SF=0。控制标志位方向标志DF:当DF=0时,在串操作指令中,进行自动增址操作;当DF=1时,在串操作指令中,进行自动减址操作。中断允许标志IF:当IF=0时,禁止响应可屏蔽中断;当IF=1时,允许响应可屏蔽中断。单步陷阱标志TF:当TF=1时,表示进入单步工作方式;当TF=0时,表示正常执行。6.1.4CPU引脚图VccAD15AD16/S3AD17/S4AD18/S5AD19/S6SSO(HIGH)VccAD15AD16/S3AD17/S4AD18/S5AD19/S6SSO(HIGH)MN/MXRDHOLD(RQ0/GT0)HLDA(RQ1/GT1)WRM/IO(S2)DT/R(S1)DEN(S0)ALE(QS0)INTA(QS1)TESTREADYREST4039383736353433323130292827262524232221GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGND表1.38086CPU引脚说明AD0~AD15分时复用的双向、三态地址/数据线AD19/S6~AD16/S3分时复用,输出引脚NMI(17)输入,非可屏蔽请求INTR(18)输入,可屏蔽请求CLK(19)输入,时钟GND(20)(1)地线(两个)REST(21)输入,复位READY(22)准备就绪,输入TEST(23)输入,测试低电平有效INTA(QS1)(24)输出,中断响应ALE(QS0)(25)输出,地址锁存允许DEN(S0)(26)三态输出,数据允许信号DT/R(S1)(27)三态输出,数据发送/接收控制信号M/IO(S2)(28)三态输出,存储器/IO端口WR(LOCK)(29)三态输出,写HLDA(RQ1/GT1)(30)总线请求响应,输出HOLD(RQ0/GT0)(31)输入总线请求RD(32)三态输出,读MN/MX(33)决定工作模式BHE/S7(34)三态输出,高8位数据有效/状态复用6.2可编程并行输入输出芯片82556.2.18255引脚介绍:RESET:复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。CS:片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许8255与CPU进行通讯。RD:读信号线,当这个输入引脚为低电平时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。WR:写入信号,当这个输入引脚为低电平时,允许CPU将数据或控制字写入8255。D0~D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。PA0~PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。PB0~PB7:端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。PC0~PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。A1、A0:端口地址总线,8255中有端口A、B、C和一个内部控制字寄存器,共4个端口,由A0、A1输入地址信号来寻址。6.2.28255的工作方式及端口寻址方式:方式0基本输入输出方式;方式1选通输入输出方式;方式2双向选通输入输出方式。8255内部有3个口:A口、B口、C口,还有一个控制寄存器,它们由程序寻址。具体的寻址方式如下:A1A000A口01B口10C口11控制寄存器6.2.38255的控制字:76543210控制C口抵4位控制C口抵4位1:输入0:输出控制B口8位1:输入0:输出方式选择0:方式01:方式1控制C口高4位0:输出1:输入控制A口8位0:输出1:输入方式选择00:方式001:方式11X:方式2功能控制0:位操作1:方式选择6.2.4可编程控制器8255的功能及其部分相关程序:(1)端口地址的定义:MY8255_AEQU0600H MY8255_BEQU0602HMY8255_CEQU0604HMY8255_MODEEQU0606H本次设计我们选择的是IOY1的系统端口地址,具体地址为0600H0606H.为了程序的编写方便利用伪指令EQU将四个端口地址定义为MY8255_A,MY8255_B,MY8255_C,MY8255_MODE。这一过程会使此后的程序清晰明了,同时很醒目。(2)8255初始化程序:MOVDX,MY8255_MODEMOVAL,90HOUTDX,AL7设计总结短短的一周课设时间过去了,时间虽然很短,但我在这次课设中受益匪浅。微机原理的确是一门很难很复杂的学科。刚开始设计的时候,我对本题目的设计一点思路都没有。我去图书馆查资料,上网找程序,回来仔细的对程序进行研究。不管在软件还是硬件上还是遇到了很多困难,我就耐心的阅读一些有关微机原理的书籍。终于慢慢的找到了一点头绪,对下载回来的程序基本上看懂了。可还有一些

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论