当前位置:首页 > (完整版)基于单片机的全自动洗衣机控制系统设计毕业设计
} }
jins_time=jins_time-1; jins_time1=jins_time; shao_maio(); if(jins_time<0) {
jins_time=0; }
/*****************启动******************************/
if(sb4==0&&x>0) { start:
xi_di=0;//如果洗涤次数不到重新赋值
for(a=0;a<130;a++)
//按键去抖
{
shao_maio(); //扫描数码管
}
if(sb4==0&&x>0)
{
EA=1;//开总中断 EX0=1;
//开外部中断0
sw1=0;//开水龙头1
sw2=1; TMOD=0x11;
ET1=1; //打开内部中断0
TR1=1;
x=6; sn1=0;
//4
sn2=0; //2 sn3=0;//1 } } }
}
4.3子程序结构设计与分析
4.3.1 定时器中断1子程序
图3.2为定时器中断1程序框架,当启动键按下后,系统将打开定时器中断1,每50ms中断一次,作为进水时间的记录,当进水时间到定时器中断1关闭停止计时。或者水加满后,利用外部中断0来停止加水。其主要程序如下:
图3.2定时器中断1
void ds1zhong_duan() interrupt 3 //定时器1中断 //进水水和脱水时间 {
//shaomaio(); if(EX0==1) { b1=b1+1; }
//记录中断次,数每次中断50ms
//扫描数码管
else {
tuo_s=tuo_s+1; } }
4.3.2 外部中断0子程序
外部中断0程序框架(如图3.3所示),其主要功能是:当设置加水时间过长,水就会溢出,为防止水溢出,当水加到一定高度时就会进入该中断子程序关闭进水阀,开始执行下一步任务。其主要程序如下:
图3.3 外部中断0
void wai0_zhong_duan() interrupt 0//外部中断0 {
sw1=1;//关闭水龙头
jins_time==1;
if(led6==0&&led7==1) //弱洗
{
void dian_zf(); }
if(led6==1&&led7==0) //强洗 { led6=1; led7=0; }
sw1=0;//关闭水龙头1
共分享92篇相关文档