微机原理与接口技术_楼顺天版_课后题答案 下载本文

74LS373,8253用方式4,在OUT输出端加非门实现脉冲功能。接口电路如图:

初始代码为:

MOV DX,0D0D8H ;GATE初始化 MOV AL,0 OUT DX,AL

MOV DX,0D0D6H ;写计数器0工作方式 MOV AL,00011000B OUT DX,AL

MOV DX,0D0D0H ;写计数器0时常数 MOV AL,40 OUT DX,AL MOV DX,0D0D8H MOV AL,1

OUT DX,AL ;使GATE变高有效

10. 若加到8254上的时钟频率为0.5MHz,则一个计数器的最长定时时间是多少?若要求10分钟产生一次

定时中断, 试提出解决方案。

解:一个计数器的最长定时时间应该是置入时常数0时,此时定时时间为: 65536/0.5*10^6s=131ms

采用方式0即:计数达到终值时中断来10分钟产生一次定时中断,此时时常数CR为:10*60*0.5*10^6=3*10^9.

由于一个计数器最多分频65536,所以至少得使用2个计数器。我们采用计数器0和计数器1.

计数器0的时常数CR0为60000,计数器1的时常数CR1为50000.

连接方式为:把0.5MHz的时钟频率接到计数器0的CLK0,然后把计数器0的OUT0接到计数器1的CLK1。这样计数器1的OUT1端输出的就是10分钟产生一次的定时中断。

11. 织布机控制系统如图9.26所示,已知织布机每织1米发出一个正脉冲,每织100米要求接收到一脉冲,

去触发剪裁设备把布剪开。(1)设8253的端口地址为80H~83H,编写对8253初始化程序。(2)假定系统提供的信号频率为1MHz,希望利用8253的其余通道产生0.1秒的周期信号,编写初始化程序。

D78088CPU最小方式系统总线~D0RDWRA1A0D7RDWRA1A0~D0CLK0OUT0织布机系统Intel8253GATE0+5VIO/MA9=1A2译码电路CS ??解:(1)

MOV MOV MOV MOV

DX,83H AL,00010100B DX,80H AL,100

OUT DX,AL

OUT DX,AL

将计数器1的输出OUT1信号作为计数器2的时钟输入CLK2,计数器1的时钟输入为系统提供1MHZ的信号 MOV MOV MOV MOV XCHG MOV MOV MOV MOV MOV

DX,83H AL,01110100B DX,81H AX,1000 AL,AH DX,AL DX,83H AL,10010110B DX,82H AL,100

(2)

OUT DX,AL

OUT DX,AL

OUT DX,AL

OUT DX,AL

图9.26 织布机控制系统

12. 在IBM PC系统中根据下列不同条件设计接口逻辑,利用8253完成对外部脉冲信号重复频率的测量。

(1) 被测脉冲信号的重复频率在10~1000Hz范围内。 (2) 被测脉冲信号的重复频率在0.5~1.5Hz范围内。 (3) 被测脉冲信号重复频率在10~100Hz范围内。

(4) 被测是间歇脉冲信号,每次有信号时有100个脉冲,重复频率为0.8~1.2MHz,间歇频率大约每

秒15次,要求测有信号时的脉冲重复频率。

解:用两个计数器,计数器0的CLK接待测信号,GATE接半周期为10s的高电平信号,OUT接8259,

同时取反接计数器1的GATE端。计数器1的CLK接系统时钟,半周期为T0。在这样的逻辑电路下,计数器0的功能是记录待测信号的脉冲数N0,计数器1的功能是记录在相同时间里系统时钟信号的脉冲数N1。根据T=N1*T0/N0可计算出待测信号的周期。S(t)是待测信号,S’(t)为给定的周期大于10s的高电平信号。

8259D0~D7RDWRA1A0CSCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2S(t)S’(t)IR01MHzIntel8253

端口声明:COUNTA为计数器0的地址,COUNTB为计数器2的地址,COUNTD为控制器地址,COUNT为373地址 程序如下:

MOV DX,COUNTD ;计数器1初始化 MOV AL,01110000B OUT DX,AL MOV DX,COUNTB OUT DX,AL MOV DX,COUNTB MOV AL,O OUT DX,AL

MOV DX,COUNTD ;计数器0初始化 MOV AL,00010000B OUT DX,AL MOV DX,COUNTA MOV AL,0 OUT DX,AL OUT DX,AL STI

读两计数器的计数,并进行计算的中断服务子程序: PUSH AX PUSH BX PUSH CX PUSH DX MOV DX,COUNTD MOV AL,00000000B OUT DX,AL MOV DX,COUNTA IN AL,DX XCHG AL,AH IN AL,DX XCHG AL,AH NEG AX INC AX MOV BX,AX MOV DX,COUNTD MOV AL,00010000B OUT DX,AL MOV DX,COUNTB IN AL,DX XCHG AL,AH IN AL,DX XCHG AL,AH NEG AX INC AX MOV CX,T0 MUL CX DIV BX MOV SFR,AX POP DX POP CX POP BX POP AX IRET