微型计算机技术及应用内部习题 联系客服

发布时间 : 星期日 文章微型计算机技术及应用内部习题更新完毕开始阅读

JZ BEGIN ;为0表示外设还未取走字符 MOV AL,[BX] ;从输出缓冲区取数 OUT 40H,AL ;发送字符 INC BX ;修改缓冲区指针 LOOP BEGIN ;则再发送下一个字符 POP DS ┆

第七章 作业

1.8259A的初始化命令字和操作命令字有何不同?它们分别对应编程结构中的哪些内部寄存器?哪些写入奇地址?哪些写入偶地址?编程时如何区分它们? 8259A的初始化命令字是计算机系统启动时,由初始化程序设置的。初始化命令字一旦设定,一般在系统工作过程中就不再改变。操作命令字则是由应用程序设定的,它们用来对中断处理过程作动态控制,在一个系统运行过程中,操作命令字可以多次设置。

初始化命令字对应于编程结构的ICW1、ICW2、ICW3、ICW4共4个寄存器。操作命令字对应于编程结构的OCW1、OCW2、OCW3共3个寄存器。

2.8259A的中断屏蔽寄存器IMR和8086/8088的IF有何区别?在中断响应过程中,它们怎么配合起来工作?

若IMR的某位为0则该位对应的引腿上的中断请求未加屏蔽,让它通过而进入中断优先级裁决器作裁决。若IMR的某位为1则屏蔽该位对应的引腿上的中断请求,不让它进入中断优先级裁决器。而8086/8088CPU的中断允许标志IF为1则允许INTR引腿进入的中断,IF为0则屏蔽INTR引腿进入的中断。与8259A的IMR位为0为1正好相反。

在中断响应过程中,IMR用于对外设向8259A发中断申请的允许/屏蔽,而CPU的IF用于对8259A由INT向CPU的INTR引腿发中断申请的允许/屏蔽。 3.8259A的全嵌套和特殊嵌套方式有何不同?分别用在什么场合?

全嵌套工作方式,只有更高级的中断请求来到时,才会进行嵌套。而特殊全嵌套方式则能被同级和高级的中断请求所嵌套。

全嵌套方式用于单片8259A的场合。特殊全嵌套方式用于多片8259A系统。 4.8259A的优先级自动循环和特殊循环方式有何差别? 在优先级特殊循环方式中,一开始的最低优先级是由编程确定的,从而最高优先级也由此而定。而优先级自动循环方式初始优先级队列为IR0~IR7。 5.8259A有几种结束中断处理的方式?各自应用在什么场合? 8259A有三种结束中断处理的方式。

中断自动结束方式用于只有一片8259A,并且多个中断不会嵌套的情况。一般的中断结束方式用在全嵌套情况下及多片8259A的级联系统中。特殊中断结束方式用于循环优先级的8259A中。

6.试按照如下要求对8259A编程设置初始化命令字:系统中有一片8259A,中断请求信号采用电平触发方式,下面要用ICW4,中断类型码为60~67H,用特殊全嵌套方式,不用缓冲方式,采用中断自动结束方式。端口地址为90H、92H。 MOV AL,1BH ;ICW1的命令字为00011011B=1BH

OUT 90H,AL ;ICW1送偶地址端口 MOV AL,60H ;ICW2的命令字为60H OUT 92H,AL ;ICW2送奇地址端口 MOV AL,13H ;ICW4的命令字为00010011B=13H OUT 92H,AL ;ICW4送奇地址端口

第七章 作业

1.试说明在DMA方式下内存往外设传输数据的过程。

当一个接口要由内存往其输出数据时,就往DMA控制器发一个DMA请求;DMA控制器接到请求以后,便往控制总线上发一个总线请求;若CPU允许让出总线便发出一个总线允许信号;DMA控制器接到此信号后,就将地址寄存器的内容送到地址总线上,同时往接口发一个DMA回答信号并发一个I/O写信号和一个内存读信号;内存接到读信号后将数据送到数据总线,I/O写信号将数据送到接口,并撤除DMA请求信号,于是DMA控制器的地址寄存器的内容加1或减1,计数器的值减1,而且撤除总线请求信号,就完成了对一个数据的DMA输出传输。 2.对一个DMA控制器的初始化工作包括哪些内容?

将数据传输缓冲区的起始地址或者结束地址送到地址寄存器中; 将传输的字节数或字数送到计数器中; 通过模式寄存器设置工作方式等。

3.DMA控制器8237A什么时候作为主模块工作?什么时候作为从模块工作?两种情况下,相关控制信号处于什么状态?试作说明。

在外设向8237A发DMA请求,8237A向CPU发总线请求得到CPU总线允许时,获得了总线控制权就作为总线主模块工作。

当CPU把数据送到8237A的寄存器或者从8237A的寄存器取出时,8237A就象I/O接口一样作为总线的从模块工作。

主模块工作时的控制信号:DREQx有效,HRQ高,HLDA高,DACKx有效,AEN高,IOR、MEMW或IOW、MEMR有效,16位地址送地址总线。从模块工作时的控制信号: CS和HRQ为低,A3~A0为某一确定值,IOR或IOW有效。 4.设计8237A的初始化工作。8237A的端口地址为0000~000FH。设通道0工作在块传输模式,传输类型为读传输,地址加1变化,自动预置功能;通道1工作于单字节写传输,地址减1变化,无自动预置功能。然后对8237A设置控制命令,使DACK为高电平有效,DREQ为低电平有效,用固定优先级方式,并启动8237A工作。 MOV AL,04H MOV DX,DMA+8 ;DMA为端口首地址0000H,DMA+8为控制寄 ;存器端口号 OUT DX,AL ;输出控制命令,关闭8237A MOV AL,00 MOV DX,DMA+0DH ;DMA+0DH为总清命令端口号 OUT DX,AL ;发总清命令(即复位命令) MOV DX,DMA+0BH ;DMA+0BH为模式寄存器的端口号 MOV AL,98H OUT DX,AL ;对通道0选择模式,模式字为98H:块读传输模

;式,地址加1变化,自动预置功能 MOV AL,69H OUT DX,AL ;对通道1选择模式,模式字为69H:单字节读传 ;输,地址减1变化,无自动预置功能 MOV AL,6AH OUT DX,AL ;对通道2选择模式,模式字为6AH:功能同通道1 MOV AL,6BH OUT DX,AL ;对通道3选择模式,模式字为6BH:功能同通道1 MOV DX,DMA+8 MOV AL,0C0H ;控制字格式为C0H: DACK高电平有效,DREQ ;低电平有效,固定优先级,启动工作 OUT DX,AL MOV DX,DMA+0FH ;DMA+0FH为综合屏蔽命令端口号 MOV AL,0 OUT DX,AL ;去除四个通道的屏蔽 ┆

第九章 作业

1.8253计数器/定时器中,时钟信号CLK和门控信号Gate分别起什么作用? 时钟信号CLK决定了计数的速率,是计数减1的依据。而门脉冲信号GATE是作为对时钟的控制信号,以控制计数的启停。 2.8253工作于模式4和模式5时有何不同?

模式4是用软件触发启动,GATE为低电平时停止计数;而模式5则用门控GATE的上升沿触发即硬件触发启动,GATE为低电平时不影响计数。 3.编程将8253计数器0设置为模式1,计数初值为3000H;计数器1设置为模式2,计数初值为2010H,计数器2设置为模式4,计数初值为4030H;计数器3设置为模式3,计数初值为5060H。 MOV AL,32H ;设置计数器0为模式1 OUT 76H,AL MOV AX,3000H ;写计数初值 OUT 70H,AL MOV AL,AH OUT 70H,AL MOV AL,74H ;设置计数器1为模式2 OUT 76H,AL MOV AX,2010H ;写计数初值 OUT 72H,AL MOV AL,AH OUT 72H,AL MOV AL,0B8H ;设置计数器2为模式4 OUT 76H,AL MOV AX,4030H ;写计数初值 OUT 74H,AL

MOV AL,AH OUT 74H,AL

4.现有一个高精密晶体振荡电路,输出信号是脉冲波,频率为1MHz。要求利用8253做一个秒信号发生器,其输出接一发光二极管,以1秒点亮,1秒熄灭的方式闪烁指示。设8253的端口地址为80H~86H。画出原理图并编写程序完成以上功能。

1.时间常数计算:

要求用8253作一个分频电路,而且其输出应该是方波,否则发光二极管不可能等间隔闪烁指示。频率为1MHz信号的周期为1微秒,而1Hz信号的周期为1秒,所以分频系数N可按下式进行计算:

由于8253一个通道最大的计数值是65536,所以对于N=1000000这样的大数,一个通道是不可能完成上述分频要求的。由于N=1000000=1000*1000=N1*N2,即取两个计数器,采用级联方式。 2.电路: 8253通道0 8253通道1 1MHz 1KHz OUT 0 CLK 0 OUT 1 CLK 1 GATE 0 GATE 1 +5V 3.工作方式选择:

由于通道1要输出方波信号推动发光二极管,所以通道1应选工作方式3。对于通道0,只要能起分频作用就行,对输出波形不做要求,所以方式2和方式3都可以选用。这样对于通道0,取工作方式2,BCD计数;对于通道1,取工作方式3,二进制计数(当然也可选BCD计数)。 4.程序:

mov al,00110101b ;通道0控制字 out 86h,al

mov al,00 ;通道0初始计数值 out 80h,al mov al,10h out 80h,al

mov al,01110110b;通道1控制字 out 86h,al

mov al,0e0h ;通道1初始计数值,03E8H=1000BCD out 82h,al mov al,03h out 82h,al