1、微机原理课设沈阳工程学院1 设计任务描述1.1. 设计题目:模拟流水线控制设计1.2. 设计要求1.2.1 设计目的通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。为以后学生结合专业从事微机应用设计奠定基础。1.2.2设计的原始资料及依据查阅可编程并行芯片8255、中断控制等其他相关资料。用简单的输入输出端口等硬件,结合实际彩灯的亮灭控制过程进行设计。1.2.3基本要求(1)流水线工序为8步,第一步和第二步各为4分钟,第三步至第六步各为2分钟,
2、第七步和第八步各为1分钟。第三步至第六步循环三次;(2)用发光二极管显示加工过程流水线故障时中止流水。(3)故障处理完毕继续完成相应工序。2 设计思路 通过并行接口芯片8255和8086/88计算机的硬件连接,并利用微机原理实验箱,采用一组发光二极管来模拟流水线。首先利用8255来控制模拟流水线的二极管的亮灭,我用8255的A口输出来输出二极管的亮灭。其次需要考虑的是二极管的亮灭时间,通过查资料,我决定用的是利用延时程序来控制亮灭时间。通过计算循环的次数我们就可以完成具体的每道工序模拟二极管的亮灯时间。根据调试的结果对程序进行修改,使程序更加简洁合理。3 设计原理流程图图3.1流程图4 实际硬
3、件接线图图4.1接线图5源程序清单及注释SSTACK SEGMENT STACK DW 32 DUP(?)SSTACK ENDSCODE SEGMENT ASSUME CS:CODE, SS:SSTACKSTART: MOV DX, 0646H MOV AL,80H OUT DX, AL MOV BX,8001H AA1: MOV CX,2 MOV DX, 0642H MOV AL,BH OUT DX, AL CALL DELAY CALL DELAY CALL DELAY ROR BH,1 MOV AL,BH OUT DX,AL ROR BH,1 MOV AL,BH CALL AA3 ROR
4、 BH,1 MOV AL,BH OUT DX,AL CALL DELAY ROR BH,1 MOV AL,BH OUT DX,AL CALL DELAY JMP AA1 AA3: CALL DELAY CALL DELAY OUT DX,AL ROR BH,1 MOV AL,BH CMP BH,02H JNZ AA3 MOV BH,20H MOV AL,BH LOOP AA3 RET DELAY: PUSH CX MOV CX, 0FFFFH AA2: PUSH AX POP AX LOOP AA2 POP CX RET CODE ENDS END START6.主要元器件介绍6.1 8086
5、简介6.1.1 8086 CPU简介由于此系统最终要在西安唐都科教仪器出品的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.2 8086主要特性Intel8086/8088CPU是Intel公司推出
6、的高性能的微处理器,具体如下主要特性: (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微
7、处理器为核心,来模拟8086处理器来进行系统的测试工作AHALBHBLCHCLDHDLSPBPDISI CSDSSSESIP暂存器外部总线 ALU数据总线 指令预取 队列缓冲器 执行单元(EU) 总线接口单元(BIU)图6.1 CPU8086内部结构图6.1.3 8086CPU寄存器结构8086CPU中有14个16位的寄存器,其中有4个16位的通用寄存器,2个16位指针寄存器,2个16位变址寄存器,1个16位指令指针及1个16位标志寄存器(仅用9位)。通用寄存器通用寄存器包括累加器AX,基址寄存器BX,计数寄存器CX,数据寄存器DX四个寄存器,位于CPU的EU中,每个数据寄存器可存放16位操作
8、数,也可拆成两个8位寄存器,用来存放8位操作数。表6.1通用寄存器的特殊用途和隐含属性寄存器名称特殊用途及隐含性质AX在输入输出指令中作数据寄存器,不能隐含在乘法指令中存放被乘数或乘积,在除法指令中存放被除数或商,能隐藏AH在LAHF指令中,作目标寄存器,能隐藏AL在输入/输出指令中作数据寄存器,不能隐藏在十进制运算指令中作累加器,能隐含在XLAT指令中作累加器,能隐含BX在间接寻址中作基址寄存器,不能隐含在XLAT指令中作基址寄存器,能隐含CX在串操作指令和LOOP指令中做计数器,能隐含CL在移位/循环移位指令中作移位次数计数器,不能隐含DX在字乘法/除法指令中存放乘积高位或被除数高位或余数
9、,能隐含在间接寻址的输入/输出指令中作地址寄存器,不能隐含指针和变址寄存器指针和变址寄存器包括:堆栈指针SP、基址指针BP、源变址寄存器SI、和目的变址寄存器DI四个16位寄存器,可以来存放数据和地址。表6.2 指针和变址寄存器的特殊用途和隐含性质寄存器名称特殊用途及隐含性质SI在字符串运算指令中作源变址寄存器,能隐含在间接寻址中作变址寄存器,不能隐含DI在字符串运算指令中作目标变址寄存器,能隐含在间接寻址中作变址寄存器,不能隐含BP在间接寻址中基址指针,不能隐含SP在堆栈操作中作堆栈指针,能隐含段寄存器段寄存器包括:代码段寄存器CS,用于存放当前代码段的段地址;数据段寄存器DS,用于存放当前
10、数据段的段地址;附加段寄存器ES,用于存放当前附加段的地址;堆栈段寄存器SS,用于存放当前堆栈段的段地址。这些段寄存器彼此不能互换,每个段寄存器在8086存储寻址空间中规定了64KB的存储快。该64KB存储快叫做段寄存器的当前段。专用寄存器包括指令指针寄存器(IP)和标志寄存器(FR)。 指令指针寄存器(IP):用来存放要取的下一条指令在当前代码段中的偏移地址,程序不能直接访问IP,在程序运行过程中,BIU可修改IP中内容。指令指针寄存器每执行一次取操作,将自动加1,使它指向下一条要取的内存单元。标志寄存器(FR):尽定义了9位,其中6位用作状态标志,3位用作控制标志。 D15 D12 D4
11、D2 D0OFDFIFTFSFZFAFPFCF状态标志位进位标志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。控制标
12、志位方向标志DF:当DF=0时,在串操作指令中,进行自动增址操作;当DF=1时,在串操作指令中,进行自动减址操作。中断允许标志IF:当IF=0时,禁止响应可屏蔽中断;当IF=1时,允许响应可屏蔽中断。单步陷阱标志TF:当TF=1时,表示进入单步工作方式;当TF=0时,表示正常执行。6.1.4 CPU引脚图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)TESTREADYREST1 402 393 384 3
13、75 366 357 348 339 3210 3111 3012 2913 2814 2715 2616 2517 2418 2319 2220 21 图6.2 CPU8086引脚图 表6.3 8086CPU引脚说明AD0AD15分时复用的双向、三态地址/数据线AD19/S6AD16/S3分时复用,输出引脚NMI(17)输入,非可屏蔽请求INTR(18)输入,可屏蔽请求CLK(19)输入,时钟GND(20)(1)地线(两个)REST(21)输入,复位READY(22)准备就绪,输入TEST(23)输入,测试低电平有效INTA(QS1)(24)输出,中断响应ALE(QS0)(25)输出,地址锁
14、存允许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.1 8255引脚介绍:RESET:复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。CS:片选信号线
15、,当这个输入引脚为低电平时,表示芯片被选中,允许8255与CPU进行通讯。RD:读信号线,当这个输入引脚为低电平时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。WR:写入信号,当这个输入引脚为低电平时,允许CPU将数据或控制字写入8255。D0D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。PA0PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。PB0PB7:端口B输入输出线,一个8位的I/O锁存器, 一个8位
16、的输入输出缓冲器。PC0PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。 A1、A0:端口地址总线,8255中有端口A、B、C和一个内部控制字寄存器,共4个端口,由A0、A1输入地址信号来寻址。6.2.2 8255的工作方式及端口寻址方式: 方式0-基本输入输出方式;方式1-选通输入输出方式;方式2-双向选通输入输出方式。8255内部有3个口:A口、B口、C口,还有一个控制寄存器,它们由程序寻址。具体的
17、寻址方式如下: A1 A0 选择 0 0 A口 0 1 B口 1 0 C口 1 1 控制寄存器6.2.3 8255的控制字:765432106.2.4 8255引脚图:图6.3 8255引脚图7 设计总结时光飞逝,为期一周的微机原理课程设计已经结束了。这一周的实训,虽然很累,但感觉每天过的都很充实而紧凑在设计过程中,我学到的东西有很多,不仅对以前学过的芯片加深了印象,也认识了很多新的芯片和器件,为以后的学习和设计打下了一个很好的基础,而且让我对程序设计产生了兴趣,让我换了一种角度去学习微机原理。我认为对我们这样工科的学生来说,能力的提高是必要的,设计的理念给我的能力起到了开发和推动的作用。在这
18、次设计过程中所得到的体会,是前所未有的。所以,我十分珍惜这次课程设计所学到的东西,在此次加法器设计1的设计过程中,我进一步熟悉了可编程并行接口芯片8255的结构及掌握了该芯片的工作原理和其具体的使用方法,并且加强了我程序设计的能力。经过这一周的课程设计,我认识到,课程设计能真正让人学到实际应用的东西的一门课程,收获比上几星期课还多。首先,要实现题目要求的功能并有所创新,我们必须全心地投入其中,养成一种敢于钻研敢于创新的习惯。在把课程要求实现到实际中来的过程中,首先必须清楚明白地了解几个参考程序的每一行的意思,这就需要敢于静心钻研。为了把使得程序更加完整,就必须进行创新,这就需要敢于创新。其次,
19、通过课程设计,让我在课本的基础上,更深入的了解了各种芯片的用法和程序的完成过程,调试方法及技巧。编写程序的过程中,体会最深的是子程序的调用和程序的条理问题,一个程序就算功能实现了,但是也要使主程序和子程序的条理分明,易读性高,才能算一个比较好的程序。检查程序过程中,在充分思考的基础上多次实验是检查改正程序的良方。在设计扩展功能的过程中,大胆想像并且用多种思路来求解实现目标是必备的武器。总的来说,通过这周的课程设计让我更进一步地增强了实验的动手能力。通过课堂上学习的知识,以及查阅资料,培养一种自学的能力。并且引导一种创新的思维,把学到的知识应用到日常生活当中。在设计的过程中,不断的学习,思考和同
20、学间的相互讨论,运用科学的分析问题的方法解决遇到的困难,学会对常见问题的处理方法,积累设计系统的经验,充分发挥课堂与实践的结合,全能提高个人系统开发的综合能力。通过这周的课程设计,加深了我在课堂上所学知识的理解,开拓了思维,为今后在相应工作岗位上的工作打下了坚实的基础,重新让自己认识到了这门学科的在应用方面的广阔前景,并且通过知识与实践的结合更加锻炼了自己。致 谢在这次课程设计过程中,王老师和踪老师给予了我许多热情的指导和帮助,一直耐心的对我的程序进行细心的修改,解答我在设计过程中遇到的各种疑难问题,还指导我应该去查找哪些方面的资料,去完善这次设计,使我能更好的了解微机原理课程设计的方法步骤,
21、这次课程设计(论文)的完成,老师的指导有着极其重要的作用。其次要感谢本次设计中我的小组成员,能够及时指出我在设计程序及硬件接线过程中出现的问题,并且一起讨论更好的解决方法,在我遇到难题的时候细心的为我寻找答案,并且因为交流思想心得,也学到了许多新知识。同时我更认识到团体的合作力量是最强大的,它可以集思广益寻找最好的方法。最后要感谢沈阳工程学院的各级领导,给我们这样一个机会展示自己所学,发挥所长,在实践中巩固理论知识,用理论完善实践,综合各门学识,首次尝试自己独立的完成一项设计题目,充实了期末原本焦躁不安的生活,使我的大学生活充实而丰富,在求学道路上画下了精彩的一笔。致以我最真诚的谢意!参考文献1 王惠中. 微机原理及应用.武汉:武汉大学出版社,20112 邹逢兴. 微型计算机原理与接口技术实验指导. 北京:清华大学出版社,20093 赵全利, 吕建平, 邹雪艳.微型计算机原理及接口技术.北京: 机械工业出版社,20094 何宏.微型计算机原理与接口技术.陕西:西安电子科技大学出版社,20095 李伯成、侯伯亨、张毅坤.微型计算机原理及应用.西安电子科技大学出版社,20076 宋杰、汪志宏、江敏.微机原理与接口技术课程设计.机械工业出版社7 朱定华、马爱梅、林卫.微机应用系统设计.华中科技大学出版社8 何立民.单片机应用系统设计-系统配置与接口技术.北京航空航天大学出版社
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1