微机原理与接口技术总结.docx
《微机原理与接口技术总结.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术总结.docx(17页珍藏版)》请在冰豆网上搜索。
微机原理与接口技术总结
第1章微型计算机基础
1、几个关键字:
时钟频率、字长、寻址范围、地址总线、数据总线
2、冯诺依曼结构中微型计算机的四大组成部分:
CPU、内存、I/O接口、系统总线
3、微处理器(CPU)包含:
运算器(ALU):
算数逻辑运算
控制器(CU):
指令译码,根据指令要求发挥出相应控制信息
寄存器(Registers):
存放数据
4、存储单元是存放信息(程序和数据)的最小单位,用地址标识。
单位:
位、字节、字
5、三总线:
地址总线(AB):
输出将要访问的内存单元或I/O端口的地址
数据总线(DB):
数据线的多少决定了一次能够传送数据的位数
控制总线(CB):
协调系统中各部件的操作,决定系统总线的特点
6、“裸机”指未装备任何软件的计算机
所有物理装备的集合=硬件系统=裸机:
CPU、I/O接口电路和半导体存储器(ROM和RAM)
7、字长是指计算机内部一次可以处理的二进制数码的位数
8、时钟周期<总线周期<指令周期
9、任意进位制数→十进制数:
按位权展开
十进制数→任意进位制数:
辗转相除
第二章8086/8088微处理器
1、8086CPU有两个独立逻辑部件组成(内部功能结构):
总线接口部件(BIU):
与内存或I/O端口传送指令或数据、产生20位的物理地址
指令执行部件(EU):
负责执行指令
2、BIU负责取指令,EU负责执行指令,重叠执行大大减少了等待指令所需的时间,提高了CPU的利用率和整个系统的执行速度
3、段寄存器:
代码CS、数据DS、堆栈SS、附加ES
通用寄存器:
数据寄存器:
AX、BX、CX、DX
变址寄存器:
源DI、目的SI
指针寄存器:
基址BP、栈SP
标志寄存器:
FLAGS
指令指针寄存器:
IP
4、8086CPU通过CS寄存器和IP寄存器能准确找到指令代码
5、8086/8088段寄存器的功能是用于存放段起始地址及计算物理地址
6、指针寄存器和变址寄存器:
只能按16位存取。
7、可以用于寄存器间接寻址、基址变址等寻址方式的寄存器有BX、BP、SI、DI。
8、OF;SF;ZF;AF:
1:
D3向D4有进位或借位;PF:
低8位中‘1’的个数,1偶数0奇数;CF:
1最高位产生进位或借位
9、计算机的内存“溢出”是指其运算结果超出了该指令所指定的结果单元所能存储的数值范围
10、物理地址(20位)=段基址*16+偏移量
段基址:
CS、DS、SS、ES,偏移量:
BX、BP、IP、SP、SI、DI
逻辑地址=段基址:
偏移量
11、8086中存储器分成两个512K字节的奇偶存储体,采用字节交叉编制方式。
12、8086CPU访问存储器时,以字为单位,并从偶地址开始。
13、8086/8088存储器分段结构是为了把程序区、堆栈区、数据区互相隔离开来,使不同程序在不同区域中运行时,可以共享一个数据区。
14、堆栈是用来存放需要暂时保存的数据,工作方式是“先进后出”或“后进先出”的方式。
15、8086系统中的堆栈是从高地址向低地址生成的,数据访问以字为单位,SS:
SP始终指向当前的栈顶。
是递减型的“满”堆栈。
POP和PUSH都以字为单位进行的,不能将数据送入CS。
16、8086系统中的74LS373(或者8282)是锁存器,最少需要3片,74LS245(或者8286)是总线驱动器,起增加数据总线的驱动能力作用,最少需要2片
17、8086CPU工作在最小模式,意味着8086CPU和最少的外围器件构成一个计算机系统。
18决定8086工作在最大还是最小模式的引脚是
19、最大最小模式的区别:
引脚
处理器个数
总线控制信号的产生
最小模式
高电平(Vcc)
一个
CPU
最大模式
低电平(GND)
多个
总线控制器
20、8086CPU在最小模式中引脚定义
(1)AD15~AD0:
地址/数据复用。
在T1状态(地址周期),在T2~T4状态(数据周期)
(2)A19/S6~A16/S3:
地址/状态复用总线。
T1,输出地址高4位,T2~T4,输出状态
(3)
/S7:
高8位总线允许。
T1:
指示高8位数据总线上的数据是否有效:
00时读写字,01时读写奇地址字节,10时读写偶地址字节
其他T周期:
输出状态信号S7(S7始终为逻辑1,未定义)
DMA方式下,该引脚为高阻态。
(4)
:
最小最大工作模式选择信号。
接Vcc,最小模式;接GND,最大模式。
(5)
、
:
当前CPU正在读/写存储器或I/O端口。
(6)
(7)ALE:
地址锁存使能信号,输出,高电平有效。
用来作为地址锁存器的锁存控制信号。
(8)
:
数据使能信号,低电平有效。
用于数据总线驱动器的控制信号,表示8086准备发送或接收一个数据
(9)
:
数据驱动器数据流向控制信号。
1:
进行数据发送;0:
进行数据接收。
(10)READY:
准备就绪信号。
由外部输入,高电平有效,表示CPU访问的存储器或I/O端口己准备好传送数据。
当READY无效时,要求CPU插入一个或多个Tw,直到READY信号有效为止。
(11)RESET:
复位信号,输入,高电平有效。
至少要保持4个时钟周期。
CPU接收到该信号后,停止进行操作,并对标志寄存器(FR)、IP、DS、SS、ES及指令队列清零,而将CS设置为FFFFH。
当复位信号变为低电平时,CPU从FFFF0H开始执行程序。
由此可见,采用8086CPU计算机系统的启动程序就保持在存储器的高端。
(12)INTR:
可屏蔽中断请求,输入,电平触发,高电平有效
CPU在每条指令的最后一个时钟周期对INTR进行测试,一旦测试到有中断请求,并且当中断允许标志IF=1时,则暂停执行下条指令转入中断响应周期。
(13)
:
中断响应信号输出。
=0表示CPU响应了外部发来的INTR信号。
(14)NMI:
不可屏蔽中断请求信号,输入,边沿触发,正跳沿有效,不受IF标志影响。
CPU一旦测试到NMI请求信号,待当前指令执行完就自动从中断入口地址表中找到类型2中断服务程序的入口地址,并转去执行
21、时钟周期:
由计算机的主频决定。
总线周期:
CPU对存储器或I/O端口完成一次读/写操作所需要的时间,它是微处理器完成一步完整操作的最小时间单位。
22、8086一个总线周期可以读写的字节数为1或2个。
23、8086和8088的区别
不同
8086
8088
片外数据线
16根
8根
指令队列
6字节
4字节
存储体
分奇偶两个存储体
不分奇偶
引脚
有高8位数据传输控制线
无
相同点:
内存数据总线为16根;地址总线为20根;寄存器和指令系统完全兼容。
第三章
1、立即寻址:
MOVAX,0010H
立即数只能作源操作数,不能作目标操作数。
寄存器寻址:
MOVAX,BX
两个操作数不能同时为段寄存器
目标操作数不能为CS
直接寻址:
MOVAX,[2]MOVBX,ES[2]
寄存器间接寻址:
MOVAX,[SI]
SI、DI、BX、BP4个寄存器,前3为数据段(DS),BP为堆栈段(SS)
寄存器相对寻址:
MOVAX.[BX+1]
基址加变址寻址:
MOVAX,[BX][SI]
BX(数据段)和BP(堆栈段)不能出现在一个[]里,SI和DI也不能
相对基址变址寻址:
MOVAX,[BX+SI+1]
2、MOV指令
立即数和CS只能作为源操作数
IP和FR都不允许作为源操作数和目的操作数
立即数不允许直接送至DS,ES,SS或CS
源操作数和目的操作数不能同时是内存操作数
源操作数和目的操作数必须类型相同(同为字节或字类型)
3、IN指令:
若端口地址超过255时,则必须用DX保存端口地址,最多可寻找64K个端口。
4、XLAT指令:
XLAT;(AL)=((DS)×16+(BX)+(AL))
5、LEA:
取偏移地址。
LEAAX,DATA=MOVAX,OFFSETDATA
要求:
①源操作数的寻址方式不能是立即数和寄存器方式;
②目的操作数必须是一个16位的通用寄存器,但不能是段寄存器
6、ADD:
ADDAL,50H;ADC:
再加上CFSUB和SBB一样
7、INC:
+1返还INCBLDEC:
-1返还对CF没有影响
8、NEG:
值取负,结果总是CF=1MOVAL,01H-NEGAL→AL=FFH
9、MUL:
无符号乘法;IMUL:
有符号除法:
DIV、IDIV对AL或AX操作;如MULBX
10、DAA:
十进制加法运算
11、TEST:
测试是否为0,同ANDTESTAL,08H
12、SHL/SAL:
左移一位,相当于原数乘2。
SHLAX,1
13、SHR:
无符号数的快速除法;SAR:
有符号
14、ROL:
循环左移;ROR:
循环右移;RCL带进位循环左移;RCR:
带进位循环右移
15、DOS系统功能调用子程序编号应放在AH寄存器中
AH=01H:
键盘输入字符;02H:
显示器输出字符;09H:
显示字符串;0AH:
输入字符串
16、无符号:
JB(below)、JA(above)、JE(equal);有符号:
JL(less)、JG(great)
17、指令MOVBX,NUM[SI]中的源操作数使用寄存器相对寻址方式
18、指令MOVAX,DATA(其中DATA是数据段段名)中的源操作数是立即寻址方式,MOVBX,VAR(其中VAR是变量名)中的源操作数是直接寻址方式,MOVBX,OFFSETVAR中的源操作数是立即寻址方式。
第四章汇编语言程序设计
1、SEG:
段地址;OFFSET:
偏移地址;TYPE:
类型;LENGTH:
长度(看DUP);SIZE:
长度;
ORG:
指定起始偏移地址
2、RET:
=POPIP;RETF:
=POPIPPOPCS;CALL:
返回地址
3、分支结构程序设计:
JMP;循环结构程序设计:
LOOP
4、主程序与子程序之间传递参数的方法:
(1)寄存器传递:
用于参数较少的情况;
(2)内存单元传递:
参数较多,需要实现在存储器中建立一个参数表;
(3)堆栈传递:
参数较多,子程序嵌套与递归调用
第5章存储器技术
1、存储器存储容量指标:
存储容量、存取时间、功耗、可靠性、集成度、性能性价比
2、芯片的存储容量=存储单元数×位数=2M×N;M是地址线根数,N是数据线根数
3、SRAM:
静态,利用多个晶体管组成的电路来保存一位二进制信息
DRAM:
动态,利用单个晶体管来存放一位二进制信息。
行列地址线复用。
4、静态RAM靠双稳态触发器存储信息,而动态RAM靠栅极电容存储信息,为保证动态RAM中的信息不丢失,需要进行刷新操作。
5、DRAM存储单元是依靠电容充放电原理来保存信息的。
电容上的电荷会随时间而泄露,以致信息丢失。
因此必须及时向保存“1”的那些存储单元补充电荷。
6、位扩展:
片/组;字拓展:
组;字位扩展:
一起
7、字长:
一个存储单元所包含的二进制位数
存储器的容量:
一个存储器的存储单元个数,多以字节为单位表示
芯片容量:
每个存储芯片所能存储的二进制位数
8、主存:
掉电信息丢失;辅存:
CPU不能直接访问,掉电不丢失
虚拟存储器:
具有辅存的容量,主存的速度
9、主存和CPU之间增加高速缓存的目的是解决CPU和主存之间的速度匹配问题。
10、虚地址:
用户编程的地址;实地址:
实际主存单元地址
第6章输入/输出接口
1、接口的基本功能:
(1)地址识别,即译码功能
(2)提供主机和I/O设备的缓冲、锁存、驱动功能
(3)主机和外设之间的数据格式转换
(4)主机和外设之间的电气兼容
(5)主机和外设之间数据的模数、数模转换
(6)主机和外设之间不同连接方式的实现
基本功能:
1、2,信号的形式和数据格式进行变换:
3、4、5,与CPU与I/O设备之间进行联络
2、为了完成CPU与外设之间的信息交换,通常在接口部件中要传送三种信息:
数据信息、状态信息、控制信息。
3、IN:
立即数和DX;MOV[00H],AL存储单元,MOV00H,AL端口
4、I/O端口的编制方法:
存储器统一编址:
优点:
简化了指令系统的设计;对端口的操作更灵活
缺点:
I/O端口占用存储单元的地址空间
端口独立编址:
优点:
I/O和访问存储器的指令分开,程序可读性好;
(8086)I/O指令短,执行速度快;
I/O端口不要占用内存空间;
I/O译码电路简单;
缺点:
需要专门的I/O指令和控制信号
5、在I/O设备的接口电路中,常用三态缓冲器解决与数据总线的隔离问题
6、设计输入输出接口电路时,输入接口电路的关键器件是缓冲器,输出接口电路的关键器件是锁存器
7、8086系统可寻址I/O端口的最大地址为0FFFFH
无条件传输
硬件最少,数据端口
程序查询传输(条件)
数据端口+状态端口
中断传输
适合慢速外设和少量数据的传输;随机性
DMA传输
适合高速外设的批量传输;不必经过CPU,完全靠硬件进行
8、8086工作在DMA方式时,其AD0~15引脚处于悬挂状态。
9、8086与工作在DMA方式有关的两个引脚是HOLD,和HLDA。
第7章中断技术
1、硬件中断:
不可屏蔽中断(NMI)02H:
不受IF影响
可屏蔽中断(INTR):
①CPU开中断(IF=1)②执行完现行指令
响应过程要将IF和TF标志清零
软件中断:
00H除法错中断,01H单步中断03H断点中断,04H溢出中断
2、中断优先级:
内部中断(软件中断)—NMI—INTR—单步中断
3、软件查询法:
谁先被查询,谁的优先级越高
硬件判优法:
串行优先级:
离CPU越近优先级越高。
电路简单,易于扩充,连接方便;
并行优先级:
74LS148和译码器74LS138组成。
优点:
响应速度快
专用硬件方式
4、中断向量是中断服务程序的入口地址,中断向量地址是存放中断向量的存储单元地址。
5、中断向量位于n×4~n×4+3,n为中断类型码
5、中断向量初始化的两种方法:
直接装入法、系统调用法
6、硬件中断响应过程:
8086/8088响应INTR的中断后,从INTA引脚连续发两个负脉冲,中断源在接到第二个负脉冲后,通过数据线发送中断类型码,CPU收到类型码后,进行如下操作:
(1)将中断类型码放入暂存器保存
(2)将标志寄存器的内容加入系统堆栈(3)将IF和TF标志清零
(4)保护断点(5)根据中断类型码取出中断向量,装入IP和CS转向中断服务程序。
软件中断响应过程:
包括除数为0引起的中断(0),单步中断
(1),断点中断(3)和溢出中断(4)四种。
系统初始化时已将相应的中断向量定位装配在中断向量表中。
当中断发生时,只需直接查找中断向量表即可,其余动作与硬件中断相同。
双字节指令,指令的第二个字节即为中断类型码n。
CPU执行这条指令时,先取出n,将其左移两位后去查中断向量表,取出中断向量,实现转移。
第9章可编程中断控制器8259A
1、IRR:
中断请求寄存器,IMR:
中断屏蔽...,ISR:
当前在服务...
2、INT:
中断请求,
:
中断响应
3、若要CPU不响应可屏蔽中断可以通过CPU的标志寄存器中的IF位来实现。
还可以通过设置中断控制器中的IMR寄存器来实现。
当希望系统中有的可屏蔽中断被响应,有的不被响应,只能通过设置IMR来实现。
4、标志寄存器的IF位相当于总开关,控制着所有可屏蔽中断是开放(IF=1)还是屏蔽(IF=1);
IMR寄存器的每一位相当于一个分开关,独立控制单个可屏蔽中断是开放(IMRi=0)还是屏蔽(IMRi=1)。
5、8259A有3种EOI方式,其目的都是为了发出中断结束命令,使相应的ISR=0
6、完全嵌套:
高级中断可打断正在处理的中断,优先处理更高级的中断。
特殊全嵌套:
用于级联方式下主片的管理。
7、8259A特殊全嵌套方式要解决的主要问题是响应同级中断
8、一般屏蔽方式:
在初始化时设置
特殊屏蔽方式:
在中断服务程序中设置
9、保证8259A能工作在全嵌套方式下的条件是BCD。
(多选题)
A.当前服务寄存器ISR已设置
B.8259A非自动中断结束方式——防止低优先级中断打断正在处理的高优先级中断。
C.服务程序中断开——形成中断嵌套的必要条件。
D.8086CPU中IF=1——响应可屏蔽中断的必要条件。
10、例9-5自动气象站中有定时器/计数器8253、A/D转换器ADC0809、键盘中三个中断源,分别接8259A的IR0、IR1、IR2三个中断请求输入端。
设8259A的中断类型码为50H~57H,采用电平触发,非自动EOI结束,非特殊完全嵌套方式工作,固定优先级。
8259A的片选端接译码器74LS138的Y0,端口地址为280H~283H,编程用280H和281H。
8253通道0中断向量写入(中断源类型码为50H)
MOVAX,OFFSETC0_INT0;中断向量的段内偏移量送AX
MOVDX,AX
MOVAX,SEGC0_INT0;中断向量的段基址送AX
MOVDS,AX
MOVAH,25H;设置INT21H的子功能号
MOVAL,50H;中断类型码送AL
INT21H;中断向量写入向量表
ADC0809中断向量写入(中断源类型码为51H)
MOVAX,OFFSETADC_INT1;中断服务程序的入口段內地址送AX
MOVDX,AX
MOVAX,SEGADC_INT1;中断向量的段基址送AX
MOVDS,AX
MOVAH,25H;设置INT21H的子功能号
MOVAL,51H;中断类型码送AL
INT21H;中断向量写入向量表
ADC0809中断向量写入(中断源类型码为51H)
MOVAX,OFFSETKEY_INT2;中断服务程序的入口段內地址送AX
MOVDX,AX
MOVAX,SEGKEY_INT2;中断向量的段基址送AX
MOVDS,AX
MOVAH,25H;设置INT21H的子功能号
MOVAL,52H;中断类型码送AL
INT21H;中断向量写入向量表
8259A的初始化程序
MOVDX,280H;8259A端口偶地址送DX
MOVAL,00011011B;写入ICW1:
电平触发方式,单级使用
OUTDX,AL
MOVDX,281H;8259A端口奇地址
MOVAL,01010000B;ICW2,50H对应于IRQ0的中断类型码
OUTDX,AL
MOVAL,00001101B;ICW4:
非特殊完全嵌套方式、非自动EOI方式
OUTDX,AL
XORAL,AL
OUTDX,AL;写OCW1
STI
12、若8086系统采用单片8259A中断控制器控制中断,中断类型码给定为20H,中断源的请求线与8259A的IR4相连,试问:
初始化程序段:
MOVDX,0024H
MOVAX,4FE0H
MOVDS,AX
MOVAL,24H
MOVAH,25H
INT21H
第10章可编程定时/计数器8253
1、二进制:
65536BCD:
10000
2、如果按最大计数次数计数,计数初值应该写入0。
8253是先做减1后判断是否回零
3、8253内部有3个独立的16位计数器
4、8253的初始化原则:
①向控制器写入控制字②向相应计数器写入计数初值
5、8253的6种工作方式:
共同遵守:
控制字写入计数器时,所有的控制逻辑电路立即复位,输出端OUT进入初始状态
GATE信号是上升沿起作用,GATE信号的作用是在下一个CLK周期的下降沿生效
计数初值装入计数器和减1计数都是在输入脉冲的下降沿有效的
第11章可编程并行接口芯片8255A
1、方式0:
不需要应答信号的简单输入输出场合。
方式1:
(选通输入/输出)A、B口为数据口,可锁存;C口6根线可用来产生或接收联络信号。
①A口输入PC6、7——I/O;②A口输出PC4、5——I/O
方式2:
(双总线方式),可锁存,不能同时进行。
C口的PC3~PC7作为A口的联络信号。
①B口方式0PC2~PC0——I/O②B口方式1C口8位全用作联络信号
2、
:
选通信号,由外设输入。
锁存;IBF:
输入缓冲器满信号,8255A送外设;
INTE:
中断允许信号。
INTE1(PC6):
输出;INTE2(PC4):
输入
INTR:
中断请求信号;
:
输出缓冲器满信号;
:
外设的应答信号
11-4-1CPU通过8255同开关K0~K3和LED显示器的接口见下图,开关设置的二进制信息由B口输入,经程序转换成对应的七段LED段码后,通过A口输出,由七段LED显示开关二进制的状态值。
DATASEGMENT
TABLEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
;0~f的共阴极七段数码管编码
TABLE_END=$
DATAENDS
CODESEGMENT;
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDX,IOCON;初始化8255A
MOVAL,82H
OUTDX,AL
START1:
MOVDX,IOB
INAL,DX;读PB口开关
ANDAL,0FH;取低PB口4位
LEABX,TABLE
XLAT
MOVDX,IOA;送PA口显示
OUTDX,AL
JMPSTART
CODEENDS
ENDSTART
11-6-1如图a,某系统中用8255A作为打印机的接口芯片,其中PA作为数据输出口,工作于方式0,PC0作为打印机的状态(BUSY)输入线,PC7作为打印机的选通控制线(负脉冲有效)。
(设8255的端口地址为40H-43H,PB口设置为方式0、输出)。
答:
(1)MOVAL,81H
OUT43H,AL
MOVAL,0FH
OUT43H,AL
LOOP:
INAL,42H
TESTAL,01H
JNZLOOP
MOVAL,‘A’
OUT40H,AL
MOVAL,0EH
OUT43H,AL
INCAL
OUT43H,AL
(2)MOVAL,0A0H
OUT43H,AL
MOVAL,0DH
OUT43H,AL
第十二章串行通信与可编程接口芯片8251
1、并行通信:
数据字符所有位同时传输,速度快,引线多,距离短。
串行通信:
数据各位在单根导线上一位一