《微机总复习2.ppt》由会员分享,可在线阅读,更多相关《微机总复习2.ppt(62页珍藏版)》请在三一办公上搜索。
1、7.5.3 存储芯片的扩展(重点),用多片存储芯片构成一个需要的内存空间,它们在整个内存中占据不同的地址范围,任一时刻仅有一片(或一组)被选中存储器的扩展。,当构成内存的存储器芯片的字长小于内存单元的字长时,芯片每个单元中的字长满足,但单元数不满足,芯片每个单元中的字长不满足,单元数也不满足,用64K1bit的芯片扩展实现64KB存储器,当存储器芯片的数据位数不满足系统存储器要求时要进行位扩展。位扩展即用多个存储器芯片组成一个整体,使数据位数增加而单元个数不变。,一、位扩展,二、字扩展,用8K8bit的芯片扩展实现64KB存储器,所谓字扩展就是存储单元数的扩展,由于存储单元的个数取决于地址线,
2、而与数据线无关,因此,字扩展实际上就是地址线的扩展,即增加地址线的条数。,三、字位全扩展,用16K4bit的芯片扩展实现64KB存储器,首先对芯片分组进行位扩展,以实现按字节编址;,其次设计每个芯片组的片选进行字扩展,以满足容量要求;,存储容量与地址总线、地址范围的关系,容量 1K 2K 4K 8K 16K 32K总线数 10 11 12 13 14 15范围 000 000 000 0000 0000 0000 3FF 7FF FFF 1FFF 3FFF 7FFF容量 64K 128K 256K 512K 1MB 总线数 16 17 18 19 20范围 0000 00000 00000 0
3、0000 00000 FFFF 1FFFF 3FFFF 7FFFF FFFFF,重点:1、已知电路图,分析存储器(ROM、RAM)容量、芯片容量及地址范围,是否存在地址重叠。2、给出存储器容量及起始地址、芯片容量,求芯片使用片数,每个芯片的地址范围,画出扩展电路。,例:ROM存储容量,RAM存储容量,各存储芯片地址范围?,地址范围A19 A18 A17 A16 A15 A14 A13 A12 A11 A10A0EPROM1EPROM4(16KB):1 1 1 1 1 0 0 0 0 0 0(F8000H)1 1 1 1 1 0 1 1 1 1 1(FBFFFH)SRAM1、SRAM2(4KB)
4、:1 1 1 1 1 1 0 0 0 0 0(FC000H)1 1 1 1 1 1 0 0 1 1 1(FCFFFH)SRAM3、SRAM4(4KB):1 1 1 1 1 1 0 1 0 0 0(FD000H)1 1 1 1 1 1 0 1 1 1 1(FDFFFH),【例7.1】已知一个RAM芯片外部引脚信号中有8条数据线和12条地址线,则其容量有多大?若RAM的起始地址为3000H,则它对应的末地址为多少?解:容量:212 8bit=4KB。末地址:3000H+4K 1=3FFFH。,【例7.2】用2K8位的SRAM芯片组成8K8位的存储器模块,求所需芯片数。用什么方法扩展?画出连线图,并
5、写出每一个芯片的地址范围。解:1、(8K8)/(2K8)=4片。2、采用字扩展。,3、采用全译码的连线图:,4、地址空间分配:,25半导体存储器的主要指标包括_、_和_。(存储容量、存取速度、带宽)26存储器扩的三种基本方法为_、_和_。(字扩展、位扩展、字位全扩展)27地址译码的常用方法为_、_和_。(线译码方式、部分译码方式、全译码方式)28采用1K4的芯片组成32K8的存储器模块,需要_块芯片。(64),复习题,7.9 某RAM芯片的存储容量为10248位,该芯片的外部引脚应有几条地址线?几条数据线?若已知某RAM芯片引脚中有15条地址线,8条数据线,那么该芯片的存储容量是多少?答:RA
6、M芯片的存储容量为10248位,该芯片的外部引脚应有10条地址线,8条数据线。若已知某RAM芯片引脚中有15条地址线,8条数据线,那么该芯片的存储容量是32K8位。,7.10 已知某微机控制系统中的RAM容量为4K8位,首地址为3000H,求其最后一个单元的地址。若一个RAM芯片,首地址为3000H,末地址为63FFH,求其内存容量。答:最后一个单元地址为3FFFH。内存容量为13K8位。,作业,7.11 设有一个具有20位地址和8位字长的存储器,问:(1)该存储器能够存储多少字节的信息?(2)如果该存储器由64K1位的RAM芯片组成,需要多少片?(3)在此条件下,若数据总线为8位,需要多少位
7、地址线作芯片选择?答:(1)存储1M字节的信息。(2)需要128片。(3)需要4位地址线作芯片选择。,7.13 试为某8位微机系统设计一个具有8KB ROM和40KB RAM的存储器。要求ROM用EPROM芯片2732组成,从0000H地址开始;RAM用SRAM芯片6264组成,从4000H地址开始。解:按照设计的一般步骤,设计过程如下:1、该系统的寻址空间最大为64KB,其中0000H1FFFH为EPROM区,需要2片EPROM芯片,4000H0DFFFH为RAM区,需要5片SRAM芯片。2、根据所采用的存储芯片容量,可画出地址分配表,如下所示。,3、考虑用38译码器完成二次译码,用适当逻辑
8、门完成二次译码。假定选用74LS138和或门,则相应地址译码电路下所示。,第8章 微型计算机输入/输出接口技术,与CPU相连的系统总线包括数据线、地址线和控制线与外设相连的I/O总线包括数据线、控制线和状态线,接口和端口的区别:端口:是指接口电路中能被CPU直接访问的寄存器或某些特定的器件,分别用来存放数据信息,控制信息和状态信息,相应的端口就是数据端口、控制端口和状态端口。CPU通过这些端口来发送命令、读取状态和传送数据。接口:若干个端口加上相应的控制逻辑才能组成。,8.1.3 I/O端口的编址方法,I/O端口的编址方式通常有两种:统一编址方式和独立编址方式。,可寻址220=1M个内存单元内
9、存范围00000 FFFFFh 内存单元的地址有5种寻址 可寻址216=64 K个I/O端口I/O端口范围0000 FFFFH I/O端口的地址由 一个8位二进制数直接寻址 或DX寄存器间接寻址,8086CPU采用I/O端口与存储器分别独立编址,8.2 CPU与外设之间的数据传送方式,8.2.1 直接程序控制方式(理解与应用)8.2.2 中断传送方式8.2.3 直接存储器存取方式,【例8.2】如图8.9所示,假设外设的状态端口为21CH,其中D4=1时,表示外设数据准备好,外设的数据端口为218H。实现从外设读入50H个字节到内存缓冲区buffer中。,解:根据题意,查询输入时的数据和状态信息
10、如图8.10所示,从外设连续传送50H个字节数据到内存缓冲区的流程如图8.11所示。,图8.10 查询式输入时的数据和状态信息,图8.11 查询输入流程图,查询输入的相应程序段为:,MOV AX,SEG buffer;取缓冲区首地址 MOV DS,AXLEA DI,bufferMOV CX,50H;传送个数 NEXT:MOV DX,21CHASK:IN AL,DX;从状态端口读入状态信息 TEST AL,00010000B;检测D4位 JZ ASK;D4=0,继续查询 MOV DX,218H IN AL,DX;从数据端口读入数据 MOV DI,AL;送缓冲区 INC DI;修改缓冲区指针 LO
11、OP NEXT;传送下一个,29I/O端口的编址方法有_和_两种。8086微机采用_的编址方法,I/O端口地址范围从_到_。(独立编址、统一编址、独立编址、0000H、FFFFH)30CPU与外设间的信息传送控制方式有_、_和_三种。(直接程序控制方式、中断控制方式、DMA控制方式)31I/O接口内部包括_寄存器、_寄存器和_寄存器。(数据、控制、状态),复习题,8.5 简述CPU与外设以查询方式传送数据的过程。现有一输入设备,其数据端口的地址为0FEE0H,并从端口0FEE2H提供状态,当其D0位为1时表明输入数据准备好。试编写采用查询方式进行数据传送的程序段,要求从该设备读取100个字并输
12、入到从2000H:2000H开始的内存单元中。(程序中需加注释),相应程序段为:,MOV AX,2000H;取缓冲区首地址 MOV DS,AXMOV DI,2000HMOV CX,100;传送个数 NEXT:MOV DX,0FEE2HASK:IN AL,DX;从状态端口读入状态信息 TEST AL,00000001B;检测D0位 JZ ASK;D0=0,继续查询 MOV DX,0FEE0H IN AL,DX;从数据端口读入数据 MOV DI,AL;送缓冲区 INC DI;修改缓冲区指针 LOOP NEXT;传送下一个,8.6 试画出8个I/O端口地址为650H657H的译码电路(译码电路有8个
13、输出端)。,9.2.1 8086中断类型,8086采用向量中断,每个中断对应一个中断类型号0255,共256个。图9.3 8086中断结构图。,8086,/,8088,CPU,中断逻辑,指令中断,断点中断,溢出中断,除法错,单步中断,N,4,3,0,1,2,NMI,非屏蔽中断请求,INTR,中断,控制,器,A,可,屏,蔽,中,断,请,求,第9章 微型计算机中断技术,9.2.1 8086中断类型,1.外部中断:由外部硬件引起的中断,也叫硬件中断,是CPU外部中断请求信号引脚上输入有效的中断请求信号引起的,分为非屏蔽中断和可屏蔽中断两种。非屏蔽中断NMI。IF无法屏蔽该终端。可屏蔽中断INTR。8
14、086的INTR中断请求信号来自中断控制器8259A,是电平触发方式,高电平有效。IF为1时允许该中断,为0则屏蔽此中断。2.内部中断:由CPU内部事件引起的中断,IF对此类中断无效。,9.2.2 中断向量和中断向量表(难点),8086/8088CPU采用向量中断,向量中断首先根据中断类型号获得中断向量,中断向量包含中断服务程序的入口地址信息。中断类型号:每个中断的编号,0255,共256个中断。中断向量:中断服务程序的入口地址信息,共4个字节,段地址及偏移地址(CS:IP)。中断向量表:把系统中所有的中断向量集中起来放到存储器的某一区域内,这个存放中断向量的存储区就叫中断向量表或中断服务程序
15、入口地址表。中断向量地址:中断向量在表中的位置称为中断向量地址。中断向量地址中断类型号4,9.2.3 8086的中断响应过程,9.3.2 8259A的内部结构与引脚信号,328086的中断类型包括_和_。(内部中断、外部中断)338086的外部中断类型包括_和_。(非可屏蔽中断NMI、可屏蔽中断INTR)34典型中断处理程序结构应包括_、_、执行中断服务程序、_、_和中断返回等部分。(保护现场、开中断、关中断、恢复现场)358086/8088微机系统采用向量中断的方式,内存空间中,地址为00000H003FFH中存放着_。类型码为_的中断所对应的中断向量存放在0000H:0058H开始的4个连
16、续单元中,若这4个单元的内容分别为_、_、_、_,则相应的中断服务程序入口地址为5060H:7080H。(中断向量表、16H、80H、70H、60H、50H),复习题,36中断控制器8259A有_个命令字,占用_个端口地址。(7、2)37用3片8259A级联,最多可管理_级中断。(22)38、8086CPU响应中断时,自动压入堆栈的信息是_、_和_。(FLAGS、IP、CS、)39若8259工作在自动循环方式下,当前IR3上的中断请求已执行并返回,则8个中断源中优先级最高的是_。(IR4)408259A应用中,需对IR5,IR3进行屏蔽,操作命令字OCW1应写入_。(28H),41CPU在指令
17、的最后一个时钟周期检测INTR引脚,若测得INTR为_且IF为_,则CPU在结束当前指令后响应中断请求。(高电平、1)42从CPU的NMI引脚产生的中断叫做_,它的响应不受_的影响。(非可屏蔽中断NMI、IF)43在8086/8088微机中,实现CPU关中断的指令是_,实现开中断的指令是_。(CLI、STI)448259有两种中断触发方式_和_。(电平触发方式、边沿触发方式),256种中断类型所对应的中断向量,共需占用1K字节存储空间。在8086/8088微机系统中,这256个中断向量就在内存最低端00000H003FFH(即0段的03FFH区域的1K字节)范围内存放,称为中断向量表。中断向量
18、指针中断类型号4。中断类型码是:1C4/4=71H,中断服务程序入口地址是:2200H:3040H。,9.6 中断向量表的功能是什么?如何利用中断向量表获得中断服务程序的入口地址?已知中断向量表中,001C4H中存放2200H,001C6H中存放3040H,计算其中断类型码和中断服务程序的入口地址。,10.2 可编程并行接口芯片8255A,8255A是通用的8位并行输入/输出接口芯片,是应用最广的典型可编程并行接口芯片。,端口地址选择,这些工作方式由初始化编程时设置方式选择控制字来选择。A口可选择方式0、方式1和方式2;B口可选择方式0和方式1;C口只能以方式0工作。,10.2.3 8255A
19、工作方式,三种不同的工作方式,分别称为方式 0、方式 1、方式 2。,1.方式0,基本输入/输出方式。方式0的特点:没有固定的联络信号,一般采用无条件传送或查询方式传送与CPU交换数据。输出具有锁存能力,输入只有缓冲能力,而无锁存功能。有4个独立的并口,即A口、B口、C口低4位和C口高4位,16种不同的输入/输出组合。所有端口都是单向传输端口。方式0不设置专用联络线,在需要联络时,可由用户指定C口中的部分位来完成联络功能。,2.方式1,选通输入/输出方式或应答方式。,3.方式2,双向输入/输出选通方式,只适用于A口。,10.2.2 8255A的控制字(编程应用),方式选择控制字C口置位/复位控
20、制字,这二类控制字写入同一端口地址(A1A011),为了进行区分,控制字的D7位作为标志位,D71 表示是方式选择控制字;D70 表示是C口置位/复位控制字。,一、方式选择控制字,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,特征位,1,1,:,C,口低,4,位输入,0,:,C,口低,4,位输出,1,:,B,口输入,0,:,B,口输出,B,组方式选择,0,:,方式,0,1,:,方式,1,1,:,C,口高,4,位输入,0,:,C,口高,4,位输出,1,:,A,口输入,0,:,A,口输出,A,组方式选择,00,:,方式,0,01,:,方式,1,1,:,方式,2,B,组控制,A,组
21、控制,【例 10.1】设8255A的端口地址为60H63H,要求A组工作在方式0,A口输出,C口高4位输入;B组工作在方式1,B口输出,C口低4位输入,则对应的工作控制方式字为:10001101B或8DH。初始化程序如下:MOV AL,8DH;设置方式选择字OUT63H,AL;送到8255A控制字寄存器中,图10.4 8255A C口置位/复位控制字,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,特征位,0,不使用,(,通常取,0,),0,复位,1,置位,C,口位选择,PC,0,:,000,PC,1,:,001,PC,2,:,010,PC,3,:,011,PC,4,:,100
22、,PC,5,:,101,PC,6,:,110,PC,7,:,111,C口置位/复位控制字的作用是使C口的某一引脚输出特定的电平状态(高电平或低电平),控制字的格式。,二、C口置位/复位控制字,【例 10.2】要使PC5置1,PC2清0,设8255A的地址为320H323H,则程序为:MOV AL,00001011B;PC5置1的控制字MOV DX,323HOUT DX,AL;输出到控制口MOV AL,00000100B;PC2清0的控制字OUT DX,AL;输出到控制口,458255A是一个_芯片。(可编程并行通信接口)468255A的A组有_种工作方式,B组有_种工作方式。(3、2)4782
23、55A的三个端口中只有端口_没有输入输出锁存功能。(C)488255A内部具有_个输入/输出端口。(3)498255A的每个端口的数据寄存器长度为_位。(8),复习题,【例10.】如图所示,设8255A端口地址为280H283H,要求读入开关的状态,若断开,则使发光二极管熄灭;若闭合,则使发光二极管点亮,完成程序段。,解:8255A B组工作于方式0,B口输出,C口高4位输入。控制字:88H(未用位写0),MOV AL,88HMOV DX,283HOUT DX,ALMOV DX,282H IN AL,DXTEST AL,20HJZ L1;PC50,开关闭合XOR AL,ALJMP L2L1:M
24、OV AL,40HL2:MOV DX,281HOUT DX,AL,若闭合,则使发光二极管熄灭;若断开,则使发光二极管点亮。程序如何修改?,思考:多个开关同时闭合或断开控制灯点亮?,【例10.5】如图所示,设8255A的端口地址80H83H,完成打印一个字符的程序段。,解:8255A A组、B组都工作于方式0,A口输出,C口高4位输出,C口低4位输入。控制字:81H(未用位写0),MOV AL,81H OUT 83H,AL;8255A工作方式控制字 MOV AL,09H OUT 83H,AL;置PC4为1BUSY:IN AL,82H;读C口 TEST AL,4;查询PC2是否为0 JNZ BUS
25、Y;忙则继续查询 MOV AL,A;被打印字符为A OUT 80H,AL;送出打印数据 MOV AL,8 OUT 83H,AL;置PC4为低 NOP NOP MOV AL,9 OUT 83H,AL;使PC4为高,形成负脉冲,思考:打印多个字符如何实现?结合例8.2和习题8.50,10.3 假定8255A的地址为60H63H,A口工作在方式2,B口工作在方式1输入,请写出初始化程序,MOV AL,11000110BOUT 63H,AL,10.4 编程使8255A的PC5端输出一个负跳变。如果要求PC5端输出一个负脉冲,则程序又如何编写?,负跳变:MOV AL,0FHOUT 63H,ALNOPNO
26、PMOV AL,0EHOUT 63H,AL,负脉冲:MOV AL,0FHOUT 63H,ALNOPNOPMOV AL,0EHOUT 63H,ALNOPNOPMOV AL,0FHOUT 63H,AL,第11章 可编程定时器/计数器,11.2.38253的工作方式及波形,方式0-中断信号发生器方式1-可编程单稳负脉冲信号发生器 方式2-分频器 方式3-方波信号发生器 方式4-软件触发的选通脉冲信号发生器方式5-硬件触发的选通脉冲信号发生器,11.2.4 8253的编程,写入方式控制字写入计数值,初始化编程,(1)写控制字,无论对哪个通道写控制字都必须写到控制寄存器,(2)写计数初值,用哪个计数器通
27、道,则写到该计数器通道对应的端口地址。写初值时,要与控制字内的操作类型一致。,1.写入方式控制字,8253的方式控制字格式如图所示,各计数器有6种可供选择的工作方式,以完成定时、计数或脉冲发生器等多种功能。,8253初始值计算:,假设已知8253相应通道的CLK端接入的时钟频率为fCLK,周期记为tCLK=1/fCLK,要求产生的周期性信号频率为F(周期为T)或定时时间为T(F=1/T),则所需计数初值n为:在计算时注意时间和频率的单位一致性。,2.写入计数值,若规定只写低8位,则只写1次,且写入的为计数初值的低8位,高8位自动为0。若规定只写高8位,则只写1次,且写入的为计数初值的高8位,低
28、8位自动为0。若规定写两次,则先写入的为计数初值的低8位,再写入的为计数初值的高8位。选择二进制时 计数值范围:0000HFFFFH 0000H是最大值,代表65536 选择十进制(BCD码)计数值范围:00009999 0000代表最大值10000,注意:1、当采用8位二进制计数时:在8253初始化编程的传送指令“MOV AL,n”中,n可以写成任何进制数(二进制、十进制或十六进制)的形式。2、当采用16位二进制计数时:方法一:先把计算得到的十进制计数初值n转换成十六进制数(即16位二进制),然后分两次写入8253的指定端口。方法二:先把该十进制计数初值n直接传送给AX,然后分两次写入825
29、3指定端口,即:MOV AX,n OUT PORT,AL;先写低8位(PORT为端口号)MOV AL,AH OUT PORT,AL;后写高8位,注意:3、当采用十进制(BCD码)计数时:将十进制计数初值n加上后缀H,以便在相应的传送指令执行后能够在AL(或AX)中得到十进制数n的BCD码表示形式。例如n=50,则应按如下方式写入:MOV AL,50H OUT PORT,AL 如果n=1250,则需分两次写入,即:MOV AL,50H OUT PORT,AL;先写低8位 MOV AL,12H OUT PORT,AL;后写高8位,【例11.1】已知8253的端口地址为40H43H,用8253的计数
30、器0,每隔2ms输出一个负脉冲,设CLK0为2MHz,完成软件设计。,【例11.3】某8086系统中有一片8253芯片,端口地址为500H、502H、504H、506H,各通道均接6MHz的时钟信号,要求在计数器0输出一个最大宽度的负脉冲,计数器1输出一个方波信号,周期为10s,计数器2输出一个定时中断信号,定时时间为0.2ms,写出其初始化程序。,【例11.4】某8088系统中有一片8253芯片,端口地址为150H153H,计数器0的输出作为计数器1的计数脉冲,利用计数器1控制发光二极管,使发光二极管持续闪烁,亮2秒,灭2秒,利用其计数器2完成对外部事件计数,计满200次向CPU发出中断申请
31、,试编写8253的初始化程序,硬件电路如图11.12所示。,508253是一个_芯片,它有_个计数通道,每个通道可有_种工作方式。(可编程计数器/定时器、3、6)51设8253的计数器用于对外部事件记数,计满100后输出一跳变信号,若按BCD方式计数,则写入计数初值的指令为MOV AL,_和OUT PORT,AL。(100H)52当需要利用8253产生对称性方波时,应选的工作方式为_,把它作为一个可编程的单稳态电路使用时,应工作在_下。(方式3、方式1)538253在进行计数时,实际上是对_信号线上的信号进行计数。(CLK)54要使8253定时/计数器的OUT输出100HZ的方波,计数频率为1
32、00KHZ,则计数的初值应为_。(1000)558253中的每个计数器可按_进制计数或_计数。(二进制、BCD码),复习题,作业,11.2 设8253的端口地址为120H123H,分别写出如下情况下的计数初值,并写出对应的初始化程序:1)计数器0工作在方式3,输入脉冲频率为2MHZ,输出方波的频率为1KHZ的,采用BCD码计数。2)计数器1产生一个最大宽度的负脉冲。3)计数器2的在定时3ms后,产生中断请求信号。设计数脉冲输入为2MHz。,图11.13 8088与8253连接示意图,11.3 某8088系统采用8253产生序列负脉冲,如图11.13所示,欲使计数器1周期性的发出负脉冲,周期为1
33、ms,试完成1)给出8253的四个端口地址(高位地址线为0)2)画出OUT1输出的波形3)写出8253的初始化程序片段,56串行传送数据的方式有_和_两种。(同步、异步)578250是一个_芯片。(可编程串行异步通信接口)58在异步串行通信中,使用波特率来表示数据的传送速率,它是指_。(每秒钟传送的二进制位数)59利用8250进行异步串行通讯,当设定传输速率为8400波特,传输格式为1个起始位,1个停止位时,每秒最多可传送_字节。(840),复习题,第12章 微型计算机串行接口技术,作业12.1 设异步通信方式下,1个起始位、8个数据位、奇校验和2个停止位,画出传送56H的波形。12.2 利用8250进行异步串行通信,当设定传输速率为2400波特,传输格式为1个起始位,1个校验位,2个停止位时,每秒最多可传送多少个字节?,