起重机超载限制器论文
开始 确定堆栈、程序状态字 存储物单元清0 数码管显示全0 延时DS1 数码管全灭 延时DS1 N 闪烁10次否? Y
2.2.2 数据采集子程序
起重机在实际工作前,超载限制器应先检测出起重机挂钩、承重绳等物体的重量,我们称它为自重。当起重机实际起吊重物时,检测到的重量称为毛重。物体的实际重量等于毛重减去自重。
IN1 : MOV A,P1 ;输入转换结果 JNB ACC.4,IN1 ;是千位选通位否 IN2 : JB ACC.3,IN3 ;千位为1
第 6 页 共 29 页
起重机超载限制器论文
CLR A ;千位为0 MOV 31H,A ;赋给31H SJMP IN4
IN3 : MOV 31H,#10H ;千位为1送入31H高4位 IN4 : MOV A,P1
JNB ACC.5,IN4 ;是百位选通位否 ANL A,#0FH ;提取百位值 ORL A,31H ;与千位值合并 MOV 31H,A ;存入31H单元 IN5 : MOV A,P1
JNB ACC.6,IN5 SWAP A ANL A,#0F0H MOV 32H,A IN6 : MOV A,P1
JNB ACC.7,IN6 ANL A,#0FH ORL A,32H MOV 32H,A RET
;是十位选通位否 ;高、低四位交换 ;提取十位值
;暂存到32H高4位 ;是个位选通位否 ;提取个位值 ;与十位值合并 ;存入到32H单元 ;子程序返回
第 7 页 共 29 页
起重机超载限制器论文
开始 输入转换结果 N 千位选通位? Y 暂存、输入转换结果 N 是百位选通位否? Y 合并、输入转换结果 是十位选通位否? Y 暂存、输入转换结果 N N 是个位选通位否? Y 合并、暂存 返回 第 8 页 共 29 页
起重机超载限制器论文
2.2.3 自重值显示程序
系统开机工作后,首先调用数据采集子程序,获得自重值,然后分别将它们送到27H和28H单元。自重值显示程序是从27H单元和28H单元中提取千、百、十、个位值,再配上选通位后从数据总线输出。为了使人眼能看到延续一定时间的自重值显示,程序中应使显示部分循环一定的次数,并将每一位的显示时间适当延长。
MOV 27H,31H ;千、百位送27H单元 MOV 38H,32H ;十、个位送28H单元 MOV A,27H
ANL A,#0F0H SWAP A
MOV 11H,A MOV A,27H
ANL A,#0FH MOV 12H,A MOV A,28H
ANL A,#0F0H SWAP A
MOV 13H,A MOV A,28H
ANL A,#0FH MOV 14H,A MOV R0,#0FFH LOOP1: MOV A,11H
ORL A,#10H MOVX @R1,A LCALL DS2 MOV A,12H
ORL A,#20H MOVX @R1,A LCALL DS2 MOV A,13H
ORL A,#40H MOVX @R1,A LCALL DS2 MOV A,14H
ORL A,#80H MOVX @R1,A LCALL DS2 DJNZ R0,LOOP1
;提取千位值 ;存放11H单元 ;提取百位值 ;存放12H单元 ;提取十位值 ;存入13H单元 ;提取个位值 ;存入14H单元 ;设显示次数 ;组合千位值和选通位 ;输出到显示器 ;延时 ;组合百位值和选通位 ;输出到显示器 ;延时 ;组合十位值和选通位 ;输出到显示器 ;延时 ;组合个位值和选通位 ;输出到显示器 ;延时
;显示次数到否 第 9 页 共 29 页
起重机超载限制器论文
分离出千、百、十、个位 置循环次数 显示千位 调延时DS2 显示百位 调延时DS2 显示十位 调延时DS2 显示个位 调延时DS2 N 循环完否? Y 第 10 页 共 29 页