微型计算机原理作业第八章 习题与思考题 联系客服

发布时间 : 星期六 文章微型计算机原理作业第八章 习题与思考题更新完毕开始阅读f1b5753e700abb68a882fb7f

6.不可以;不可以;从输出锁存寄存器读出减1计数器中的计数值。 7.启动计数和中止计数。当GATE=0时,方式0,2,3,4会中止计数。

8.当计数过程中写入新的计数初值后,方式0和方式4立即有效,即在下一个CLK时钟周期,计数器从新的计数初值开始计数。方式1和方式5在GATE信号触发后有效,而方式2和方式3则在下一个计数周期或GATE信号触发后有效。

9.中止计数或定时过程的方法与工作方式有关,其中止计数的方法有:

① 对单次计数或定时过程,采用GATE=0来中止。8253的方式0和方式4采用此法。 ② 对重复计数或定时过程,采用GATE=0来中止。8253的方式2和方式3采用此法。 ③ 对硬件启动的计数或定时过程,GATE=0不影响计数或定时。8253的方式1和方式5不能用GATE=0来中止计数或定时过程。

10.答:先使用8253的锁存命令将计数器2当前的内容锁存起来,然后发读命令从锁存器中读取。程序段如下:

MOV DX,307H ;发计数器2的锁存命令

MOV AL,80H

OUT DX,AL

MOV DX,306H ;读数据 IN AL,DX ;先读低8位 MOV BL,AL ;保存到BL IN AL,DX ;再读高8位 MOV AH,AL

MOV AL,BL ;数据保存在AX中

五、应用题

1.解:首先计算计数初值: TOUT0 = 1/fOUT0 = 1/40KHz TCLK0 = 1/CLK0 = 1/1MHz

n = TOUT0/TCLK0 = CLK0/fOUT0 = 1MHz/40KHz = 1000/40 =25

若采用二进制计数,则写入方式为:

MOV AL,25

OUT PORT0,AL ;PORT0为通道0的端口地址 若采用十进制计数,则写入方式为:

MOV AL,25H OUT PORT0,AL

2.分析:在8253的6种工作方式中,输出连续波形的是方式2和方式3;方式2中重复周期为TOUT=n×TCLK,负脉冲宽度为1×TCLK。

答:(1) 计数器工作于方式2,是速率发生器;

(2) 计数初始值n=TOUT /TCLK=1ms/400ns=2500

3.分析:本题采用2个计数通道串联使用,要求两个计数通道的计数初值乘积为

13

OUT DX,AL

n0×n1=TOUT1 /TCLK0

TCLK0=1/CLK0=1/1MHz=1μs n0×n1=3600s/1μs=36×10

可选取n0=n1=6×10。因为n0和n1大于10000,必须采用二进制计数。为方便起见,

设定二个计数器都工作于方式2。

答:8253初始化程序为:

MOV AL,00110100B ;通道0初始化 MOV DX,183H OUT DX,AL

MOV AL,01110100B ;通道1初始化 OUT DX,AL

MOV AX,60000 ;通道0写入计数初值 MOV DX,180H OUT DX,AL MOV AL,AH OUT DX,AL

MOV DX,181H ;通道1写入计数初值 MOV AX,60000 OUT DX,AL MOV AL,AH OUT DX,AL

MOV AX,,0000H ;ES指向0000H(中断向量表首地址在00000H) MOV ES,AX

MOV DI,4×0AH ;DI指向IR2的中断向量地址指针 CLD

MOV AX,OFFSET INTER ;偏移量写入中断向量表 STOSW

MOV AX,SEG INTER ;段基值写入中断向量表 STOSW HLT

4.解:使用8253利用软件产生一次性中断,最好采用方式0。若20ms产生一次中断,而CLK为2MHz,则计数初值为(20×10)×(2×10)=40000。 程序如下:

CS8253 EQU xxH MOV AL,00110000B

OUT CS8253+3,AL ;设计数器0为方式0,二进制计数。 MOV AX,40000H OUT CS8253,AL

-3

6

4

8

14

MOV AL,AH

OUT CS8253,AL ;送初值40000 STI

5.解:计数器0:选择方式3,输出频率为4kHz的对称方波;计数初值N=4MHz/4kHz=1000,用BCD计数;计数器0的控制字应为00100111B=27H。

MOV AL,27H MOV DX,3E36H OUT DX,AL MOV AL,10H MOV DX,3E30H OUT DX,AL

计数器1:选择方式1,以构成一个单稳态电路,输出脉冲宽度由计数常数N1决定;计数常数N1=1ms/T=1000/0.25=4000,采用BCD计数;

计数器1的控制字为:01100011B=63H。 MOV AL,63H MOV DX,3E36H OUT DX,AL MOV AL,40H MOV DX,3E32H OUT DX,AL

计数器2:选择方式0,计数常数N2=5ms/T=20000=4E20H,采用二进制计数;计数器2的控制字为:10110000B=B0H。

MOV AL,0B0H MOV DX,3E36H OUT DX,AL MOV AL,20H MOV DX,3E34H OUT DX,AL MOV AL,4EH OUT DX,AL

15