[键入文字]
OUT 20H,AL; JMP INTR1; INTR1: MOV AL,0AH; OUT 21H,AL JMP INTR2; INTR2: MOV AL,05H; OUT 21H,AL;
[键入文字] [键入文字]
(2)中断源应与IRQ2相连,矢量地址为0028A,矢量区对应的4个单元内容见下图:
。。。 40 3A 00 20
3.请写出8088系统中8259A的初始化程序(并作出相应注释)。 要求如下: 1)系统中有一片8259A,中断请求信号用电平触发方式。
2)中断类型码为80H—87H,用特殊全嵌套方式,无缓冲,采用中断自动结束方式。 3)8259A的端口地址为73H,74H。
解答:
4. 8259A芯片为可编程中断控制器,试画出由三片8259A级联工作方式在8086/8088最小系统模式下,三片8259A之间及与总线的连线图。
解答:
MOV AL,00011011B ;ICW1,高电平触发,单片,需设置ICW4 OUT 74H,AL
MOV AL,80H ;ICW2,中断类型号起始值80H OUT 73H,AL
MOV AL,00010111B ;ICW4,特殊全嵌套,无缓冲,自动中断结束 OUT 73H,AL
31
[键入文字] [键入文字] [键入文字]
5. 编写初始化程序若8086系统采用级联方式,主8259A的中断类型码从30H开始,端口地址为20H、21H。从8259A的INT接主片IR7 ,从片的中断类型码从40H开始,端口地址为22H、23H,均不要ICW4。
解答:当一个系统中包含多片8259A时,ICW3才有意义,即ICW3是标识主、从片的初始化命令字,这个命令字也必须写到8259A的奇地址中。仅当ICW1的SNGL=0时才设置ICW3。但主、从片的ICW3是不一样的,对于主片、命令字的D0~D7与8259A中的引脚IR0~IR7一一对应,若某一引脚接有从片,则对应位置1,否则置0。若对从片设置,命令字的D3~D7为无效位,则可为任意态。D0~D2的译码值与从片的INT引脚接主片的IRn引脚有关。如果从片INT与主片IR5相连,则从片的ICW3应为05H,即低3位状态为101B。
(1)主8259A初始化程序
MOV AL,00010000B MOV DX,20H
OUT DX,AL MOV AL,30H
INC DX
OUT DX,AX MOV AL,80H
OUT DX,AL (2)从片初始化程序
MOV AL,00010000B
MOV DX,22H
OUT DX,AL MOV AL,40H INC DX
OUT DX,AL MOV AL,07H
OUT DX,AL ;设ICW1 ;设ICW2 ;设ICW3 ;设ICW1 ;设ICW2 ;设ICW3
32
[键入文字] [键入文字] [键入文字]
第6章 DMA控制器和定时/计数器
一.填空题
1. 用8237A DMA可以实现 与 间的数据的直接传送。
解答:存储器 外设
2. 8237A有 4 个完全独立的DMA通道。
3. DMA控制器在系统中具有两种角色,分别是 和 。
解答:CPU的从设备 DMA方式下总线的主设备
4.进行DMA传送的一般过程是:外设向DMA控制器提出 ,DMA控制器通过 信号有效向CPU提出总线请求,CPU回以 信号有效表示响应,此时CPU的三态信号线将输出 状态,即将他们交由 进行控制,完成外设和内存的直接数据传送。
解答:DMA请求、总线请求、总线相应、高阻、DMA控制器
5. 若给8253的计数器预置的初值N=400,则当计数器计到数值为“0”时,定时时间T= ms。(8253的计数脉冲钟频率为0.5MHZ)
解答:计数周期为1÷0.5M=2us ,所以计数400次的时间为200×2 us=0.8ms 。
6. 8253定时器主要有 , , , , , 等专用寄存器组成。 解答:MOD , TCON , TL0 , TH0 , TL1 , TH1
7. 可编程定时/计数器8253的工作方式共有 ,共有 个I/O端口地址。
解答:6种、3
8.8253有三个独立的计数器,每个计数器对外有三个引脚,称为 。
解答:CLK、OUT、GATE
二.选择题
1. DMA用于传送(B)之间的大量数据。 A、CPU、存储器 C、CPU、外设
2. 采用DMA方式传送时,每传送一个数据要占用( C )的时间。 A、一个指令周期 C、一个存储周期
3. 在DMA方式下,将内存数据传送到外设的路径是(B ) A、CPU→DMAC→外设 B、内存→数据总线→外设 C、内存→CPU→总线→外设
4.当8086/8088CPU响应DMA设备的HOLD请求后,CPU将( D )。 A、转入特殊中断服务程序 B、进入等待周期
D、内存→DMAC→数据总线→外设
B、一个机器周期 D、一个总线时钟周期
B、存储器、外设 D、寄存器、存储器
33
[键入文字]
C、接受外部数据 D、放弃对总线的控制权
[键入文字] [键入文字]
5. 将8253定时/计数器通道0设置为方式3,产生频率为10KHZ的方波。当输入脉冲频率为2MHZ时,计数初值为( A )。
A、200 B、300 C、400 D、500
6. 8253具有_D___个独立的16位计数器。 A、0 B、1 C、2 D、3
7. 8253定时器主要有 , , , , , 等专用寄存器组成。 解答:MOD , TCON , TL0 , TH0 , TL1 , TH1
8. 要由8253产生占空比为0.5的方波信号,应选用8253的方式 B 。 (A)2 (B)3 (C)5 (D)1
三.问答题
1. 8237A的地址线为什么是双向的?
解答:8237A的A0~A3地址线是双向的,当8237A被主机编程或读状态处于从属状态,A0~A3为输入地址信号,以便主机对其内部寄存器进行寻址访问。当8237A取得总线控制权进行DMA传送时,A0~A3输出低4位地址信号供存储器寻址对应单元用,A0~A3必需是双向的。
2. 什么叫DMA传送方式?DMA控制器8237的主要功能是什么?
解答:DMA(Direct Memory Access),即直接存储器存储方式,可以加大批量数据的传输速度,在存储器和外设之间开辟直接传输数据的通道,能让两块存储器之间直接交换数据,儿不需要CPU的干预,即不需要由CPU产生地址信息、数据信息、控制信号以及来回进行复制数据,这些信号和操作都由DMA控制器形成和管理,从而使传输数据的速度达到硬件所允许的最快速度。
8237是一种高性能的可编程DMA控制器,可以处于两种不同的工作状态。一种是CPU处于主控状态,DMA控制器就和一般的I/O芯片一样,是系统总线的从设备,这种状态叫做从态方式。另一种是DMA处于主态方式,取得了总线控制权,系统完全在它的控制之下,能使得I/O设备和存储器只见或者存储器与存储器之间进行直接的数据传送。
3. DMA控制器有哪几种工作方式?他可以工作于哪两种状态,何时分别进入这两种状态?
解答:DMA控制器的工作方式有:单次传送、按需传送和成批传送三种。它在系统中有两种角色,工作于两种状态。一种是作为CPU的从设备,和其他I/O接口一样,受CPU的管理和控制;另一方面又是总线的主设备,和CPU一样对总线进行管理和控制。当DMA获取了总线控制权要进行数据DMA传输时候,即CPU在接收到HOLD请求信号后发出HLDA应答信号后,DMA控制器进入了总线主设备的状态。之前和之后,都是作为CPU的从设备来工作的。
4.已知MCS-51单片机的振荡频率为11.0592MHz,用定时器T1以工作方式2作波特率发生器,产生19200、9600、4800、2400、1200等5种波特率,求所对应的初值。
解答:MCS-51单片机的振荡频率为11.0592MHz,
即
fosc?11.0592MHz
34
[键入文字] [键入文字] [键入文字]
用定时器T1以工作方式2作波特率发生器,则K=8,SMOD取为1。
又
2SMODfOSC1 波特率=??K32122?初值K
2SMODfOSC1则 初值=2? ??3212波特率
波特率为19200时,对应初值为:253=11111101B=FDH 波特率为9600时,对应初值为:250=11111010B=FAH 波特率为4800时,对应初值为:244=11110100B=F4H 波特率为2400时,对应初值为:232=11101000B=E8H 波特率为1200时,对应初值为:208=11010000B=D0H
四.分析题
1. 用MCS51单片机定时器1的方式2计数,要求每计满100次,将P1.0端求反。
解答:定时器1的方式2计数,取GATA为0,则TMOD为01100000B,即60H。
计数模值为100,计数初值为:
X?28?计数模值=256?100=156=10011100B=9CH
MOV TMOD,#60H ;设置T1模式2计数功能 MOV TH1,#9CH ;保存计数初值
采用查询方式,编程如下:
MOV TL1,#9CH ;设置计数初值 SETB TR1 ;启动计数 DEL:
JBC TF1,LOOP ;查询是否计数溢出
AJMP DEL
LOOP: CPL P1.0 ;P1.0置反 AJMP DEL
2. 已知MCS-51单片机的振荡频率为12MHz,用定时器T0产生10ms定时,请编写程序。
解答:10ms的定时,需要采用定时器方式1。
晶体振荡器频率为12MHz,则计数器的时钟频率为1MHz。 计算定时器的初值:
X?216?10?10?3/1?10?6?65536?10000?55536?1101100011110000B?D8F0H如下:
MOV TMOD,#01H ;置T0为方式1 MOV TH0,#0D8H ;置T0初值高8位 MOV TL0,#0F0H ;置T0初值低8位 SETB EA ;CPU中断开放 SETB ET0 ;T0中断允许 SETB TR0 ;启动T0
选用定时器T0,则TH0初值为D8H,TL0的初值为F0H。在设置TMOD各位时,一般GATE取0。相关程序
35