×
单片机 > 单片机程序设计 > 详情

基于8031设计的工业顺序控制

发布时间:2020-05-30 发布时间:
|

掌握工业顺序控制程序的简单编程,中断的使用。
 实验内容
1.实验原理图:


 
2.实验内容
8032的P1.0—P1.6控制注塑机的七道工序,现模拟控制七只发光二极管的点亮,高电平有效,设定每道工序时间转换为延时,P3.4为开工启动开关,低电平启动。P3.3为外故障输入模拟开关,P3.3为0时不断告警。P1.7为报警声音输出,设定6道工序只有一位输出,第七道工序三位有输出。
3、实验说明
实验中用外部中断0,编中断服务程序的关键是:
   (1)保护进入中断时的状态,并在退出中断之前恢复进入状态。
   (2)必须在中断程序中设定是否允许中断重入,即设置EX0位。
一般中断程序进入时应保护PSW、ACC以及中断程序使用但非其专用的寄存器,本实验中未涉及。
三、程序
程序清单:
             ORG     0013H
             LJMP     HA2S3
             ORG      0580H
HA2S:   MOV     P1,#07FH
             ORL      P3,#00H
HA2S1: JNB   P3.4,HA2S1
             ORL      IE,#84H
             ORL      IP,#04H
             MOV    PSW,#00H
             MOV     SP,#53H
HA2S2: MOV    P1,#07EH
             ACALL HA2S7
             MOV     P1,#07DH
             ACALL HA2S7
             MOV     P1,#07BH
             ACALL HA2S7
             MOV     P1,#077H
             ACALL HA2S7
             MOV     P1,#06FH
             ACALL        HA2S7
             MOV     P1,#05FH
             ACALL HA2S7
             MOV     P1,#03FH
             ACALL HA2S7
             SJMP     HA2S2
HA2S3: MOV     B,R2
HA2S4: MOV    P1,#07FH
             MOV    20H,#0A0H
HA2S5: SETB    P1.7
             ACALL HA2S6
             CLR      P1.7
             ACALL HA2S6
             DJNZ    20H,HA2S5
             CLR              P1.7
             ACALL        HA2S6
             JNB      P3.2,HA2S4
             MOV     R2,B
             RETI
HA2S6: MOV    R2,#06H
             ACALL        DELAY
             RET
HA2S7: MOV    R2,#30H
             ACALL        DELAY
             RET
DELAY:       PUSH   02H
DELAY1: PUSH       02H
DELAY2: PUSH       02H
DELAY3: DJNZ       R2,DELAY3
          POP     02H
          DJNZ    R2,DELAY2
             POP      02H
             DJNZ    R2,DELAY1
             POP      02H
             DJNZ    R2,DELAY
             RET
             END
四、实验步骤
①  P3.4连K1,P3.2连K2,P1.0—P1.6分别连到L1—L7,P1.7连SIN(电子音响输入端)。
②K1开关拨在上面,K2拨在上面。
③用连续方式从起始地址0580H开始运行程序(输入0580后按EXEC键),此时应在等待开工状态。
④K1拨至下面(显低电平),各道工序应正常运行。
⑤K2拨至下面(低电平),应有声音报警(人为设置故障)。
⑥K2拨至上面(高电平),即排除故障,程序应从刚才报警的那道工序继续执行。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
STM32单片机的复用端口初始化的步骤及方法