Proteus仿真之工业顺序控制实验

工业顺序控制实验

在工业控制中,象冲压、注塑、轻纺、制瓶等生产过程,都是一些继续生产过程,按某种顺序有规律地完成预定的动作,对这类继续生产过程的控制称顺序控制,倒注塑机工艺过程大致按“合模→注射→延时→开模→产伸→产退”顺序动作,用单片机最易实现。

本次实验通过发光二极管点亮来模拟不同的工序,开关K1模拟启动操作,K2模拟发生故障,音频输出声音模拟报警声。而且开关K2所接的P3.3引脚就是51单片机外部中断INT1的中断请求信号输入端,因此需要设置外部中断1。

程序清单

#include <reg51.h>	//包含头文件reg51.h,定义单片机特殊功能寄存器和特殊标志位
#define uchar unsigned char	//宏定义无符号字符型
#define uint unsigned int	//宏定义无符号整型
sbit SIN=P1^7;	//定义特殊标志位,P1.7接音频输出SIN
sbit K2=P3^3;	//定义特殊标志位,P3.3接开关K2,为外部故障输入模拟开关
sbit K1=P3^4;	//定义特殊标志位,P3.4接开关K1,为开工启动开关
void delay(uint count)	//带参数的软件延时子函数,可控制延时时间长短
{
	uint n;
	for(n=count;n>0;n--);
}
void int_1()interrupt 2	//外部中断INT1的中断服务函数,中断编号为2
{
	while(K2==0)	//当开关K2为0时,进入循环
	{
		SIN=0;
		delay(80);
		SIN=1;
		delay(80);	//输出方波信号,产生声音报警
	}
}
void main()
{
	IE=0x84;	//设置中断控制寄存器,打开总中断允许EA和外部中断INT1的中断允许EX1
	IT1=1;	//设置外部中断INT1为下降沿触发方式
	while(1)	//无限循环
	{
		P1=0xff;	//初始发光二极管全灭,等待开工
		delay(50000);
		while(K1==0)	//检测到K1为0后,开工
		{
			P1=0xfe;	//工序1;点亮L1
			delay(50000);
			P1=0xfd;	//工序2;点亮L2
			delay(50000);
			P1=0xfb;	//工序3;点亮L3
			delay(50000);
			P1=0xf7;	//工序4;点亮L4
			delay(50000);
			P1=0xef;	//工序5;点亮L5
			delay(50000);
			P1=0xdf;	//工序6;点亮L6
			delay(50000);
			P1=0x8f;	//工序7;同时点亮L5、L6和L7
			delay(50000);
		}
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术小咖龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值