menu 牢记自己是菜
2020.6.29微机接口原理复习(瞎写)
1129 浏览 | 2020-06-30 | 阅读时间: 约 5 分钟 | 分类: 计算机 | 标签:
请注意,本文编写于 1396 天前,最后修改于 1396 天前,其中某些信息可能已经过时。

0x1 写在前面

这不是一个复习提纲,仅仅只记录我复习了什么东西。明天考试,今天又不是很想看书了,但感觉闲着也不是个办法,所以来这里随便写写。算在进行一边复习吧!


0x2 8088/8086最小模式

这应该是比较重点的东西,由于最大模式没怎么讲所以主要看看最小模式。
主要芯片组成:

  1. 8284时序发生器:为CPU内部提供时序,并且为CPU提供clk时钟信号,READY就绪信号和RESET复位信号。以及外围芯片需要使用的时序信号。
  2. 8088/8086CPU:微型计算机主要组成芯片,提供运算等控制操作。
  3. 74LS373:提供地址的所存能力。
  4. 74LS245:为数据提供缓冲,控制数据总线方向,增强驱动能力。
  5. 储存器:存储数据代码等有效数据。
  6. i/o输入输出芯片:系统与外部输入输出接口。

PS:值得注意的是微机内部使用的是16位的地址传输,对于io,只有八位的宽度,所以后续编程需要分次进行传输。

0x3 74LS138

这个芯片很熟悉,只不过我们平时将它称为38译码器。这个译码器在整个微机原理中都起到了很重要的作用,主要应用为地址的译码。但是对于微机这门课中,我们通常使用38译码器选择一个地址片,如Y0=30H~37H。

如果没猜错这张图应该是斜的,但是问题不大。众所周知8088与8086CPU是一个16位的系统,所以一共有16根地址数据线。在这个例子里,A1A2A3为片内地址,可以划分8个不同的具体接口。对于其余线我们可以根据相应的0与1将其分配到对应的G1(高电平有效)或G2A非G2B非(低电平有效)的接口上,完成地址的编码。注意:38译码器的必备信号,i/o信号WR信号RD信号。对于A3A4A5为3位的38译码器片内信号,用来划分8个大地址块。

0x4 8255输入输出芯片

复习了这么久,感觉这个芯片应该不会整出什么花活。控制字应该会给,并且我猜应该不会不会根据工作方式进行出题,毕竟那些方式感觉都没有0方式好用(简单)。这里就列出几个我觉得需要注意的几点:

  1. 对于地址,00结尾A口,01结尾B口,10结尾C口,11控制字。(书上明确规定)
  2. 对于编程,先输入控制字,一个控制字可以完成ABC三个口的初始化。
  3. 其余使用端口就可直接调用地址进行使用
  4. 注意汇编可能会出现DATA段
    最后注意一点,一条之前没怎么见过的指令,XLAT,这是一个根据偏移量查表得指令,大概为AL<--(BX+AL)。键盘的编程一定会考,但是因该不会让全部默写。考察方式大概是根据片段汇编进行阅读理解,写出相应的控制字之类的。

对于七段LED的编码,这里要注意的是共阴极还是共阳极接法,这对于LED编程是有影响的。共阴极时1为熄灭,0为点亮。共阳极正好相反,注意是否有启动位(微机实验当时的led灯A0为整体启动位)

0x5 8253

这个是比较难懂的一个芯片(对于我来讲),毕竟要记得东西太多了。首先抛开控制字不谈,我们的8253有两种输方式,分别是BCD码和二进制码。对一两种计数方式的最大初值都为0(比FF和65535还大1)。
其次就是8253的内部结构,这个部分可能会在画图的时候顺带考到,尽量还是稍微的细致一点。除了三个通道以外(分别由GATE,CLK,OUT构成),还有读写信号RD,WR。数据线D0~D7,两跟片内地址A0,A1(用来选通道),译码的来的CS片选信号。
对于端口的选择,与8255很相似,00是0口,01是1口,10是2口,11是控制寄存器。这里要注意的是编程时,每个控制字对应一个端口。
然后就是我们的4种重要的工作方式:

  1. 工作方式0:单次每次需要重新初始化,GATE为高的时候进行计数,计数时OUT输出为低电平,结束计数输出一个高电平。多用于计数。
  2. 工作方式1:单次不重复计数,GATE上升沿触发计数,其余时刻GATE对计数无影响,但是在未完成计数时,再次出现GATE上升沿(正跳变),将重新导入寄存器中的初值进行计数。OUT计数时为低电平,结束输出高电平。多用于产生单脉冲。
  3. 工作方式2:可以连续计数。GATE上升沿触发,维持高电平继续计数。主要用作分频。
  4. 工作方式3:方波发生器,GATE上升沿触发。
    最后的最后就是初值的计算。这个记住一点就好1S=1000ms。T=1/f,当初值超过寄存器最大容量时,我们就要使用到级联。

PS:有一个小hit,计数值得读取,控制字D4D5位可以设置锁存。接口选择计数器接口即可(分两次读取十六位数据)。

0x5 8259中断控制芯片

对于中断,我们要了解中断向量,中断类型号,中断向量表,中断向量地址等概念。

没啥好bb的,位移2位(*4)得到中断向量地址,将后面的东西倒着放进去就好了。
对于芯片的应用,最多可能就到中断芯片的级联。这个芯片最恶心的地方就是有4个控制字(ICW1~ICW4),其中ICW3与ICW4不是必要的参数,只需要在级联的时候会用到。对于ICW4只需要注意一位就是D4位(全嵌套和特殊全嵌套位)。一般情况下,主片使用特殊全嵌套,从片使用全嵌套。
除此之外还有一位命令控制OCW,,主要就是设置屏蔽和复位屏蔽的作用。总的来说,对于8259我们在初始化的时候需要四个控制字与一个标志字。

0x6 8251串行接口芯片

首先要明确一点就是,这个接口芯片有两种工作方式,同步与异步的方式,这两种的初始化方式是不一样的,一定要注意!
由于IO的问题,8251芯片是所有芯片种在完成依次OUT操作后需要延迟等待的芯片(编程时注意延时),其次每次初始化需要先对控制口写三个0进行清空,一个40H完成初始化。
同步方式:两次在控制口送入16H,在送入命令字完成控制初始化。
异步方式:对Rxrdy与TxRDY进行监控,先检查是否有效,在检查是否出错,然后将数据存入或发出,循环。
波特率与波特系数:接受波特率*波特系数=接收时钟频率

0x7 DAC0832

数模转换芯片。总体上不算太难,主要要注意的一点就是这个破芯片是分两种工作方式的,单缓冲与双缓冲。由于0832没有控制字,所以两种方法主要是通过接线的方式进行设置的。

  1. 单缓冲:WR2与XFER接地
  2. 双缓冲:ILE接高电平,WR1与WR2接IOW。
    问题:双缓冲是否每次都需要激活???

0x8 0809

EOC控制输入输出


0x9 考试加油

噶油,顺便水个博客。争取微机及格!!( •̀ ω •́ )y

发表评论

email
web

全部评论 (暂无评论)

info 还没有任何评论,你来说两句呐!