A-A+

有一个循回检测报警装置 需对16路输入信号进行控制 每路各有一个最大允许值 若超出即报警(置

2022-08-13 22:24:54 问答库 阅读 199 次

问题详情

有一个循回检测报警装置,需对16路输入信号进行控制,每路各有一个最大允许值,若超出即报警(置报警标志FD),试编制该程序。设16路输入信号已存在以30H为首址的内RAM中,16路报警上限值存在以2000H为首址的ROM中。

参考答案

编程如下:
AIAM:MOV DPTR,#2000H ;置16路报警上限表首址
MOV R0,#30H ;置16路输入信号数据区首址
MOV R2,#0 ;置16路输入信号序号0
ALOP:MOV B,@R0 ;检测信号存B
MOV A,R2 ;读输入信号序号
MOVC A,@A+DPTR ;查该序号对应的报警上限值
CJNE A,B,NEXT ;与对应的输入信号比较
NEXT:JC ALAM1 ;报警上限值<输入信号,转报警
JZ ALAM1 ;报警上限值=输入信号,转报警
INC R0 ;指向下一路输入信号
INC R2 ;指向下一路输入信号序号
CJNE R2,#16,ALOP ;判16路检测循回完否?未完继续
CLR F0 ;16路检测循回完毕,清报警标志
RET ;结束返回
AIAMI:SETB F0 ;置报警标志
RET ;

考点:信号,报警装置