资源描述
. . 实验四 工业顺序控制实验一、 实验目的 掌握工业顺序控制程序的简单编程,中断的使用。 二、 实验仪器和设备 1.微机一台 2.Keil C51集成开发环境 3.proteus仿真软件三、 实验预备知识 在工业控制中,像冲压、注塑、轻纺、制瓶等生产过程,都是一些断续生产过程,按某种程序有规律地完成预定的动作,对这类断续生产过程的控制称顺序控制,例注塑机工艺过程大致按“合模注射延时开模产伸产退”顺序动作,用单片机最易实现。 四、 实验容 1.用proteus画出仿真电路图。8031的P1.0-P1.6控制注塑机的七道工序,先模拟控制七只发光二级管的点亮,高电平有效,设定每道工序时间转换为延时,K1为开工启动开关,低电平启动。K2为外故障输入模拟开关,P3.3输入为0是不断警告,P1.7为报警声音输出,参考电路图如以下图所示: 2.P1.7报警输出时要求采用双音报警,请自行准备耳机。五、 实验说明 1.实验中模拟外故障输入用外部中断1,初始化程序中需开中断。2.未开工时(K1未按下),按下K2不能有报警输出。六、 实验程序框图七、实验步骤 1. 用proteus设计工业顺序控制电路;2. .在Keil C51中编写控制程序,编译通过后,与proteus联合调试;3. .K1开关拨在上面,K2拨在上面;4. .用连续方式运行程序,此时应在等待开工状态;5. .K1拨到下面(显低电平),各道程序应正常运行;6. .K2拨到下面(低电平),应有声音报警(人为设置故障);7. .K2拨到上面(高电平),排除故障,程序应从刚才报警的工序继续执行。八、实验程序1.实验电路:2.实验源程序:见附录1.2九、 实验总结1. 用中断方式编程时,外部中断触发方式选择了低电平触发,结果导致按键按下后,中断不断触发,尽管出现了连续的报警声,但是还是会回到主程序,流水灯并未真正停止,而是间隔一段时间后,发生变化。解决方法是在中断程序中加入判断K2的条件,使其在中断期间不再返回主程序即可。2. 注意当程序中用到两个中断时必须设置中断优先级寄存器PCON,才能实现中断嵌套。要真正理解中断优先级的含义。3. 给speaker两个不同的频率的信号即可产生双音报警信号。十、 实验建议希望老师在每个实验完毕后,能拿出几个典型程序进行讲解,讲解实验过程中出现的问题。附录1:程序15 / 5#include void delay_ms(int);int t=0,num=1,cnt,s;sbit K1=P34;sbit K2=P33;bit sw=0,flag=0;sbit speaker=P17;char code tab10=0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0xff;void main(void)P1=tab0;TMOD=0x01;TH0=(65536-500)/256;TL0=(65536-500)%256;ET0=1;TR0=1;EA=1;while(1) while(K1=0)if(num=7&K2=1)P1=tabnum+;delay_ms(500);if(num=8)num=1; for(cnt=0;cnt200&K2=0;cnt+)speaker=speaker;while(s2);s=0; for(cnt=0;cnt200&K2=0;cnt+)speaker=speaker;while(s0;t-)for(i=0;i124;i+);附录2:程序2#include int t=0,num=1,cnt,s;sbit K1=P34;bit sw=0;sbit speaker=P17;char code tab10=0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0xff;void keyscan()if(K1=0) sw=1;if(K1=1) sw=0;P1=tab0;EX1=0; /K1接高,停止工作void main(void)TMOD=0x01; /定时器0方式1TH0=(65536-100)/256;TL0=(65536-100)%256;PT0=1; /设置定时器1最高优先级TR0=1;EA=1;while(1) keyscan();if(sw)ET0=1;EX1=1;IT1=0; while(sw)if(t=5000)P1=tabnum+;if(num=8)num=1;t=0;keyscan(); void INTER1() interrupt 2for(cnt=0;cnt250;cnt+)speaker=speaker;while(s10); s=0; for(cnt=0;cnt125;cnt+)speaker=speaker;while(s20); s=0;if(K1=1)EX1=0;void timer0() interrupt 1TH0=(65536-100)/256;TL0=(65536-100)%256;t+;s+;附录3:实验电路图
展开阅读全文