题39-1图为用8254统计生产流水线上工件数的示意图。图中工件从光源与光敏电阻之间通过时,在晶体管的发射极上会产生一个脉冲,此脉冲作为8254通道0计数器的计数输入CLK0,当通道0计数满500后,由OUT0输出负脉冲,作为CPU的中断申请信号,在中断服务程序中,启动8254通道1计数器工作,由OUT1连续输出1000Hz的方波,驱动扬声器发声,持续5秒钟后停止输出。设8254的计数器全部采用BCD计数。
8254控制字见题39图(2)。 请根据电路图及工作原理阅读下列程序及程序注释,并在答题卡上写出序号①~⑩处的内容(设计数器均按BCD方式计数)。
主程序:
MOV AL,29H;通道0初始化
OUT ① , AL
MOV AL, ② ;置计数初值
OUT ③ , AL
STI ;开中断
LOP:HLT
JMP LOP;等待中断
中断服务程序:
④ ;保护现场
⑤ ;开中断
MOV AL, ⑥ ;将GATE1置1,启动计数
OUT 98H,AL
MOV AL, ⑦ ;通道1初始化
OUT 8BH,AL
MOV AL;⑧ ;置计数初值
OUT 89H,AL
MOV AL,⑨
OUT 89H,AL
CALL DELAY5S ;延时5秒
MOV AL,00H
OUT 98H,AL
CLI
POP AX
⑩