微机原理第八章
- 格式:docx
- 大小:120.40 KB
- 文档页数:18
第八章作业8.1 根据接口电路的功能,简要说明I/O接口电路应包括哪些电路单元?解:I/O接口电路包括的电路单元:输入/输出锁存器与缓冲器命令寄存器和状态寄存器地址译码电路读/写控制逻辑中断控制逻辑8.2 说明8255A工作于方式0和方式1的区别。
解:8255A工作于方式0:8255A是分成相互独立的8位A 口、B口及4位上C口、4位下C口,C口4位为一组,每组只能同时设定为输入输出,输入不锁存,输出锁存。
不能采用中断的方法与CPU交换信息,但可用应答查询方式来进行数据传送。
通常以A口和B口做数据口,而用C口的某些位作为查询方式的控制与状态信号线使用。
C口中哪些引线充当何种应答功能,可以由用户来指定。
工作于方式1:A,B口做应答式输入/输出端口,输入/输出均锁存,高4位C口做应答式A口的应答线,低4位C口做应答式B口的应答线。
8.3 说明8255A在方式1输入时的工作过程。
解:当外设有数据需要输入时,将数据送到8255A接口上,STB变为有效,数据锁存入8255A,同时IBF变有效。
当STB由低变高时,若8255A片内中断允许信号INTE 高电平有效,则8255A的PC3(或PC0)位INTR变高电平有效,向CPU发出中断请求.CPU响应中断后,在中断服务程序中CPU执行到从8255A端口读取数据指令时,产生RD有效信号。
一方面将8255A锁存的数据读入到CPU中并延迟一段时间,撤销向CPU申请中断的信号INTR,使其无效,另一方面利用RD信号的上升沿使IBF复位。
8.4 说明8255A在方式1输出时的工作过程。
解:进入中断服务程序后,CPU向指定接口写数据,IOW 将数据所存在接口之中。
当数据背锁存并由端口信号线输出时,8255A就清楚INTR信号并使OBF有效。
有效的OBF通知外设接收数据。
一旦外设将数据接受,就送出一个有效的ACK脉冲,该脉冲使OBF无效,同时产生一个新的中断请求,请求CPU向外设输出下一个数据。
8.5 8255A的三个端口在使用时有什么差别?解:端口A或B作为输入输出的数据端口(端口A还可以作为双向数据端口),而端口C作为控制或状态信号的端口,它在方式字的控制下,可以分成高4位C口和低4位C口。
2个端口各包含一个4位锁存器。
高4位C口与端口A,低4位C口与B配合使用,可用以作为控制信号输出,或作为状态信号输入。
8.6 说明8253的方式2与方式3的工作特点方式2工作特点:写入计数值开始计数,周期性计数。
计数过程中GATE=0,暂停计数,GATE=1重新计数。
计数过程中改变计数值,下一周期按新的计数值计数。
方式3工作特点:写入计数值开始计数,周期性计数。
N=偶数,正负半周=N/2;N=奇数,正半周=(N+1)/2,负半周=(N-1)/2。
计数过程中GATE=0,暂停计数;GATE=1,重新计数。
计数过程中改变计数值,下一周期按新的计数值计数。
方式2与方式3性能完全相同,均为软件启动,重复周期输出,但OUT输出波形不同。
方式2的OUT只输出1个负脉冲,而方式3为方波,输出的高低电平宽度相同(初值为偶数正负半周相同,初值为奇数时正半周比负半周多一个脉冲周期);8.7 说明8253的方式1与方式5的工作特点方式1工作特点:一次写入计数值多次计数。
GATE=1启动计数,重复启动重复计数。
计数过程中改变计数值,下次启动按新的计数值计数计数值为N,计数N次方式5工作特点:一次写入计数值多次计数。
GATE上升沿启动计数,重复启动重新计数。
计数过程中改变计数值,下次启动按新的计数值重新计数。
计数值为N,计数N+1次。
方式1与方式5性能完全相同,均为硬件GATE门控信号可重复触发,但OUT输出波形不同。
方式1的OUT输出N个负脉冲,而方式5仅1个;8.8 8253在写入计数初值时,二进制计数和十进制计数有什么区别?如计数值为70,十进制计数为:70H (BCD 码)二进制计数为:46H (十六进制)8.17 8255A 用作查询式打印机接口的电路连接和信号时序如图,8255A 的端口地址为90H~93H ,工作于方式0.试编写程序段,将数据区中变量DATA 的8位数据送打印机打印。
MOV AL,1000 1011BOUT 93H,AL PC 6 PA 7~PA 0 PC 2 STB DATA 7~DATA 0 BUSY 8255A 打印机 DATA BUSY STBMOV AL,DATAOUT 90H,ALIN AL,92HLOP:TEST AL,0000 0100BJNE LOPMOV AL,00001101BOUT 93H,ALMOV AL,00001100BOUT 93H,ALHLT8.21 8253通道0按方式3(方波发生器)工作,时钟CLK0的频率为1MHz,要求输出方波的频率为50kHz,此时写入计数初值应为什么?输出方波的“1”和“0”各占多少时间?解:计数初值=1M/50K=20;方波周期为20μs由于周期为偶数20,因此计到20/2时,OUT由高变低因此输出方波‘1’和‘0’各占10μs8.22 8253某通道的时钟频率为1MHz,按BCD方式计数,若写入的计数初值为0080H,则该通道的定时时间是多少?解:对于BCD码计数则0080H表示计数值80H通道输出频率:1M/80=12500HZ定时时间:1/12500=8*10^(-5)S=80μs8.24 8253的计数通道0连接如图,图略,试回答:(1)计数通道0工作于何种方式,并写出工作方式名称;解:由于出现一个时钟周期宽度的负脉冲的方式由2和5方式,但是由于GATE0时钟为1,因此由此可知计数通道0工作于方式2。
工作方式名称为频率发生器(2)写出计数通道0的计数初值(要列出计算式)。
解:由于一个CLK周期宽度为400ns,OUT端周期为1ms,因此计数初值为:1ms/400ns=25008.25 若用8253计数器对设备的转轴的旋转速度进行测试,接口电路图略,若与轴相连的转盘上均匀地钻有每圈50个孔,当轴旋转时,通过光电转换,每通过一个小孔,产生一个正脉冲,当轴旋转一圈,就会有50个脉冲通过CLK输入8253计数器进行计数。
假设此转轴的转速范围为50~1000转/秒,并设8253的端口地址为64H~67H。
(1)给出一个算法,将测量转轴的转速转换为计量脉冲的个数。
由题得,最高转速为1000转/秒,因此,每秒最高脉冲数为:1000*50=50000个=C350H因此计数器必须用16位计数,而且需要用二进制数假设定时为0.01s则计量脉冲个数=转速*0.01s*50个(2)若用计数器0对脉冲计数,用计数器1作为定时器。
设CLK1频率为200kHz,用定时100ms来计数。
请详细说明计数器0、1的工作方式控制字和计数初值,并写出8253的初始化程序。
计数器0的工作方式控制字:00 11 000 0B计数初值:0000H计数器1的工作方式控制字:01 11 000 0B计数初值:100ms/(1/200kHz)=20000D=4E20H8253初始化程序:MOV AL,00110000BMOV 67H,ALMOV AX,00HOUT 80H,ALMOV AL,AHOUT 80H,ALMOV AL,01110000BMOV 67H,ALMOV AX,4E20HOUT 80H,ALMOV AL,AHOUT 80H,AL8.34 一个采用查询方式传送的输出接口,其数据端口地址为200H,状态端口地址为201H,外设状态用D0表示是否可接收数据(0为空闲,1为忙),将存储器中首地址为BUFFER的5000B数据输出,试画出流程图,并编写控制程序段。
解:等待N开始读取外设状态READY?MOV CX,5000XOR SI,SIL0P1:MOV DX,201HIN AL,DX ;读取状态端口地址上的状态给AL TEST AL,01H ;不满足D0为0时则缓冲JNE LOP1MOV AL,BUFFER[SI]MOV DX.200HOUT DX,ALINC SILOOP L0P1HLT8.35 用一片8255A控制一组红、绿、黄灯,如图,反复检测S1,S2,要求由S1,S2的“闭合”和“断开”控制红、绿、黄灯的点亮。
当S1合,S2合时,黄灯亮;当S1合,S2断时,红灯亮;当S1断,S2合时,绿灯亮;当S1断,S2断时,黄灯亮。
试根据上述条件编写初始化及控制程序(设8255A端口地址为80H~83H)MOV AL,10010010BOUT 83H,ALLOP0: IN AL,80HTEST AL,00000001BJNE LOP2TEST AL,00000010BJNE LOP3MOV AL,00000000 ;S1合,S2断,红亮OUT 83H,ALMOV AL,00000011BOUT 83H,ALMOV AL,00000101BOUT 83H,ALJMP LOP5LOP2: TEST AL,00000010BJNE LOP4MOV AL,00000001B ;S1断,S2断,黄亮OUT 83H,ALMOV AL,00000011BOUT 83H,ALMOV AL,00000100BOUT 83H,ALJMP LOP5LOP3: MOV AL,00000001BOUT 83H,ALMOV AL,00000011B ;S1合,S2合,黄亮OUT 83H,ALMOV AL,00000100BOUT 83H,ALJMP LOP5LOP4: MOV AL,00000001B ;S1断,S2合,绿亮OUT 83H,ALMOV AL,00000010BOUT 83H,ALMOV AL,00000101BOUT 83H,ALLOP5: JMP LOP08.43 8255A的PA口与8个LED管连接如图1(略),用8253作定时器控制8个LED管自下向上闪动,8253连接如图2(略),闪动频率为10次/秒,8253的端口地址为40H~43H,8255A的端口地址为60H~63H,其控制程序片段如下。
主程序:……MOV AL,80H (1)OUT 63H,AL (2)MOV AL,34H (3)OUT 43H,AL (4)MOV AL,0ABH (5)OUT 40H,AL (6)MOV AL,61H (7)OUT 40H,AL (8)MOV AL,7FH (9)OUT 60H,AL (10)STILOP: HLTJMP LOP中断服务程序:INTROUT PROC FAR (11)(设CS=1280H)ORG 2000H (12)……ROR AL,1 (13)OUT 60H,AL (14)……IRET (15)试问:(1)从程序中的数据,计算8253中CLK0的时钟周期TCLK0以及该控制程序中所使用的中断服务程序的中断类型号n的值,中断向量表如图3.输入次数为61A8H=25000次Tout0=1/10s/8=12.5msTclk0=12.5/25000=0.5μs由CS=1280H知,n=34H÷4=00001101H=0DH(2)若闪动频率改为1次/分,且为自上而下闪动,可采用如图4的串接形式,中断类型号为(1)中计算值加1(0EH),请对程序做最小限度的更改,以满足上述要求(计数通道0工作不变)。