⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 工业控制程序t.asm

📁 单片机开发资料光盘-双龙-686M.zip
💻 ASM
字号:
;工业控制程序
;实验目的:
;1.掌握单片机开发系统的使用
;2.掌握一次性在线仿真调试的全过程
;3.掌单片机如何编程及中断的应用
;实验原理:
;在工业控制中,象冲压、注塑、轻纺、制瓶等生产过程,都是一些断续生产过程,
;这些断续生产过程又都是按某种顺序有规律地完成预定的动作。对这类断续生
;产过程的控制称顺序控制。
;例如注塑机要生产一个工件,其工艺过程大致按"合模→注射→延时→开模
; →产伸→产退"这么个时间顺序动作。这种顺序控制采用单片机是很容易实现的。
;本实验是以控制注塑机为例而设计的典型时间顺序控制实验。   
   ; 我们把8031 P1口的0-6位依次用发光二极管作为模拟输出指示,
;共分7道工序,P1.7为声光报警,P3.4为开工启动开关,P3.2,P3.3为外部故障输入模拟开关,
;低电平告警。
;为了问题简单化,我们设定每道工序只有一位有输出(高电平灯亮),工作流程表如下:
;P0.7  P0.6  P0.5  P0.4  P0.3  P0.2  P0.1  P0.0  工序  控制字
;0     0     0     0     0     0     0     1     1     01H
;0     0     0     0     0     0     1     0     2     02H
;0     0     0     0     0     1     0     0     3     04H
;0     0     0     0     1     0     0     0     4     08H
;0     0     0     1     0     0     0     0     5     10H
;0     0     1     0     0     0     0     0     6     20H
;0     1     0     0     0     0     0     0     0     40H
;1     0     0     0     0     0     0     0     0     80H
;以上设硬件接线为高电平有效,如果设硬件接线为低电平有效(灌电流,减小CPU功耗),
;LED灯亮,你又如何写出控制字!请你画出程序流程图!

        ORG     0000H		;工业顺序控制程序
        AJMP    MIN		;转主程序
        ORG     0003H		;INT0中断入口地址
        AJMP    INTA		;转中断服务程序
        ORG     0013H		; INT1中断入口地址
        AJMP    INTB		;转中断服务程序
        ORG     0050H		;主程序
MIN: 	MOV	SP,#50H   
	MOV     P0,#0FFH	;关P0口(设高电平LED灯亮)
        MOV     P3,#0FFH	;关P3口(设低电平工作
L0056:  JNB     T0,$		;等开工(P3.4)
        ORL     IE,#85H		;允许INT0,INT1中断
        ORL     IP,#04H		;设为INT1为优先中断
L005F:  MOV     P0,#0FEH	;执行工序1
        ACALL   S00E0		;延时
        MOV     P0,#0FDH	; 执行工序2
        ACALL   S00E0		;
        MOV     P0,#0FBH	; 执行工序3
        ACALL   S00E0		;
        MOV     P0,#0F7H	; 执行工序4
        ACALL   S00E0		;
        MOV     P0,#0EFH	; 执行工序5
        ACALL   S00E0		;
        MOV     P0,#0DFH	; 执行工序6
        ACALL   S00E0		;
        MOV     P0,#0BFH	; 执行工序7
        ACALL   S00E0		;
	MOV	P0,#7FH		;执行工序8
        ACALL   S00E0		;
        SJMP    L005F		;循环
        ORG     0090H		;INT0中断服务程序
INTA:   MOV     B,R2		;保护现场
        MOV     P0,#0FFH	;关输出
        MOV     20H,#0F0H	;报警声参数
L0098:  SETB    P1.7		;P1.7输出报警声
        ACALL   S00D0		;延时时间比INT1长
        CLR     P1.7			;
        ACALL   S00D0		;
        DJNZ    20H,L0098	;不为零转
        CLR     P1.7			;
        ACALL   S00E0		;
        JNB     INT0,L0098	;INT0为零继续报警
        MOV     R2,B		; INT0为1不报警,恢复现场
        SETB    P1.7
	RETI   			;中断返回
	ORG	00B0H 		; INT1中断服务程序
INTB:   MOV     B,R2		; 保护现场
        MOV     P1,#0FFH	; 关输出
        MOV     B,#20H		; 报警声参数
L00B8:  SETB    P1.7		; P1.7输出报警声
        ACALL   S00D6		; 延时时间比INT0短
        CLR     P1.7			;
        ACALL   S00D6		;
        DJNZ    20H,L00B8	; 不为零转
        CLR     P1.7			;
        ACALL   S00E0		;
        JNB     INT1,L00B8	; INT1为零继续报警
        MOV     R2,B		; INT1为1不报警,恢复现

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -