南通大学微机原理课程设计实验报告Word文档下载推荐.docx
《南通大学微机原理课程设计实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《南通大学微机原理课程设计实验报告Word文档下载推荐.docx(12页珍藏版)》请在冰点文库上搜索。
MOVSB,MOVSW,MOVSD,CMPSB,CMPSW,CMPSD,SCASB,SCASWLODSB,LODSW,STOSB,STOSW,REP,REPE,REPNE
8086结构
总线接口单元(BIUbusinterfaceunit)
总线接口单元BIU[1]由下列各部分组成:
⑴4个段地址寄存器:
CS(codesegment)——16位的代码段寄存器;
DS(datasegment)——16位的数据段寄存器;
ES(extrasegment)——16位的扩展段寄存器;
SS(stacksegment)——16位的堆栈段寄存器;
⑵16位的指令指针寄存器IP;
⑶20位的地址加法器;
⑷6字节的指令队列缓冲器。
执行单元
执行部件由下列几个部分组成:
⑴8个通用寄存器:
即AX、BX、CX、DX,BP,SP,SI,DI;
其中,4个数据寄存器:
AX、BX、CX、DX;
2个地址指针寄存器:
BP(basepointer),SP(stackpointer);
2个变址寄存器:
SI(sourceindex),DI(destinationindex)[2]
;
⑵标志寄存器FR(flagsregister);
⑶算术逻辑单元ALU(arithmeticlogicunit)。
EU负责全部指令的执行,同时向BIU输出数据(操作结果),并对寄存器和标志寄存器进行管理。
在ALU中进行16位运算,数据传送和处理均在EU控制下执行。
[3]
BIU和EU的管理
⑴BIU和EU可以并行工作,提高CPU效率。
BIU监视着指令队列。
当指令队列中有2个空字节时,就自动把指令取到队列中。
8086cpu结构图
⑵EU执行指令时,从指令队列头部取指令,然后执行。
如需访问存储器,则EU向BIU发出请求,由BIU访问存储器。
⑶在执行转移、调用、返回指令时,需改变队列中的指令,要等新指令装入队列中后,EU才继续执行指令。
8255结构
8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。
具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。
其各口功能可由软件选择,使用灵活,通用性强。
8255可作为单片机与多种外设连接时的中间接口电路。
8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。
同时必须具有与外设连接的接口A、B、C口。
由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:
与CPU连接部分、与外设连接部分、控制部分。
1)与CPU连接部分
根据定义,8255能并行传送8位数据,所以其数据线为8根D0~D7。
由于8255具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C口及控制寄存器,故地址线为两根A0~A1。
此外CPU要对8255进行读、写与片选操作,所以控制线为片选、复位、读、写信号。
各信号的引脚编号如下:
(1)数据总线DB:
编号为D0~D7,用于8255与CPU传送8位数据。
(2)地址总线AB:
编号为A0~A1,用于选择A、B、C口与控制寄存器。
(3)控制总线CB:
片选信号、复位信号RST、写信号、读信号。
当CPU要对8255进行读、写操作时,必须先向8255发片选信号选中8255芯片,然后发读信号或写信号对8255进行读或写数据的操作。
2)与外设接口部分
根据定义,8255有3个通道A、B、C与外设连接,每个通道又有8根线与外设连接,所以8255可以用24根线与外设连接,若进行开关量控制,则8255可同时控制24路开关。
各通道的引脚编号如下:
(1)A口:
编号为PA0~PA7,用于8255向外设输入输出8位并行数据。
(2)B口:
编号为PB0~PB7,用于8255向外设输入输出8位并行数据。
(3)C口:
编号为PC0~PC7,用于8255向外设输入输出8位并行数据,当8255工作于应答I/O方式时,C口用于应答信号的通信。
3)控制器部分
8255将3个通道分为两组,即PA0~PA7与PC4~PC7组成A组,PB0~PB7与PC0~PC3组成B组。
如图7.5所示,相应的控制器也分为A组控制器与B组控制器,各组控制器的作用如下:
(1)A组控制器:
控制A口与上C口的输入与输出。
(2)B组控制器:
控制B口与下C口的输入与输出
实验要求:
LED七段数码管数字钟
设计并完成LED七段数码管数字种电路,数字钟显示格式为:
HH:
MM:
SS。
要求:
具有通过键盘能够调整时、分、秒功能。
实验内容:
设计电路如下:
启动前:
启动后:
程序代码:
DATASEGMENT
CONTDW0H
SHIDB23
FENDB59
MIAODB56
LEDDB2,3,5,7,4,5
SEGTABDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
DATAENDS
CODESEGMENT
ASSUMEDS:
DATA,CS:
CODE
IOAEQU8000H
IOBEQU8002H
IOCEQU8004H
IOCONEQU8006H
START:
MOVAL,90H
MOVDX,IOCON
OUTDX,AL
NOP
START1:
CALLJISHI
CALLFENJIE
CALLDISP
JMPSTART1
JISHI:
CMPCONT,60
JZNEXT
INCCONT
JMPRETUN
NEXT:
MOVCONT,0
CMPMIAO,59
JZNEXT1
INCMIAO
NEXT1:
MOVMIAO,0
CMPFEN,59
JZNEXT2
INCFEN
NEXT2:
MOVFEN,0
CMPSHI,23
JZNEXT3
INCSHI
NEXT3:
MOVSHI,0
RETUN:
RET
FENJIE:
MOVAX,0
MOVAL,SHI
MOVCL,10
DIVCL
MOVLED,AL
MOVLED+1,AH
MOVAL,FEN
MOVLED+2,AL
MOVLED+3,AH
MOVAL,MIAO
MOVLED+4,AL
MOVLED+5,AH
DISP:
MOVAL,11111111B
MOVDX,IOC
LEABX,SEGTAB
MOVAL,LED+0
XLAT
MOVDX,IOB
MOVAL,11011111B
CALLYS
MOVAL,LED+1
MOVAL,11101111B
CALLYS
MOVAL,LED+2
MOVAL,11110111B
MOVAL,LED+3
MOVAL,11111011B
MOVAL,LED+4
MOVAL,11111101B
MOVAL,LED+5
MOVAL,11111110B
YS:
MOVCX,500
A1:
LOOPA1
RET
CODEENDS
END
.
如图可知:
通过器件正确连接,可以在实现小时,分钟,秒钟的计时功能,且在23.59.59时能够自动转换到00.00.00,与实际时分秒计时器功能基本一致。
实验总结:
微机原理与接口技术的课程实验历时大半个学期,通过自己编写、运行程序,不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
以前对于编程工具的使用还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器的内容以确保程序的正确性上都有了很大程度的提高。
前四个简单程序设计,加深了我们对初学的汇编语言指令的熟悉和理解,汇编语言直接描述机器指令,比机器指令容易记忆和理解。
通过学习和使用汇编语言,向上为理解各种软件系统的原理,打下技术理论基础;
向下为掌握硬件系统的原理,打下实践应用基础。
不仅巩固了书本所学的知识,还具有一定的灵活性,发挥了我们的创造才能。
后面几个实验是并行输入输出接口8255和计数器8253的功能的操作,加深了我们对硬件的熟悉,锻炼了动手能力,发挥创造才能。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在自己的思考以及和同学的讨论中,终于迎刃而解。