找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1903|回复: 0
打印 上一主题 下一主题
收起左侧

单片机洗衣机程序设计,帮忙修改一哈程序啊,挑挑错。

[复制链接]
跳转到指定楼层
楼主

洗衣机,求大家帮帮忙了,写的真不好,球球各位大佬相助啊

单片机源程序如下:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
//****************************//
sbit key_mianzhi=P1^4;  // 棉质按键
sbit key_on=P1^5;        // 开始按键
sbit key_off=P1^6;   // 结束按键
sbit key_sizhi=P1^7;     // 丝质按键
sbit key_huaxian=P1^1;  // 化纤按键
//***************************//
sbit led_wring=P0^7; //     报警指示灯
//******************************//
uchar codenum[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//*****************************//
char sec=0;            //  时间秒
char min=0;           //  时间分
uchar count=0;            //  中断计数
uchar flag0=0;             //  洗衣机工作状态标志
uchar flag1=0;             //  piaoxi标志
uchar flag2=0;             //  qiangxi标志
uchar flag3=0;             //  ruoxi标志
uchar err=0;        //  报警标志
//**********************************//
void delay(); //  延时函数
void over();  //  结束子程序
void piaoxi();         //  票子程序
void ruoxi();   // 子程序
void qiangxi();    //  强子程序
void on();    //  工作on处理子程序
void se();    //  显示菜单选择
void SEG_display();   //  显示时间子程序
void key_scan();     //  按键扫描子程序
**************************************
void delay(uint i)
{
       uintx,y;
       for(x=i;x>0;x--)
        for(y=120;y>0;y--);
}   
//*********工作on处理子程序**********//
void on()
{
       TMOD=0x01;
       TH0=(65536-50000)/256;
       TL0=(65536-50000)%256;
       EA=1;
       ET0=1;
       TR0=1;
   P0 = 0xff;
    if(flag0==0)
           in();
       if(flag0==1)
           qiangxi();
       if(flag0==2)
           piaoxi();
       if(flag0==3)
           ruoxi();
       if(flag0==4)
      out();
      
}
//********结束子程序*********//
void over()
{     other=0;
       anther=0;
       P0=0xff;
       mo_r=0;
       mo_l=0;
       led_over=0;
       EA=0;
}  
//**********进水子程序**********//
voidin()
{     anther=0;
       other=0;
       P0=0xff;
       led_in=0;
       flag1++;
       mo_r=0;
       mo_l=0;
       min=0;
       sec=8;
}
//**********洗子程序**********//
void piaoxi()
{     anther=1;
        other=0;
    P0=0xff;
        mo_r=1;
        mo_l=1;
        min=0;
        sec=10;                          
        quan=0;
}
//        
//********强洗程序********//
void piaoxi()
{     
   anther=1;
       other=0;
       P0=0xff;
       mo_r=1;
       mo_l=0;
       min=1;
       sec=10;
      
}
//*********弱洗子程序********//
void ruoxi()
{     
other=1;
       anther=0;
       P0=0xff;
       mo_r=1;
       mo_l=0;
       sec=5;
}     
//*********漂洗子程序********//
void piaoxi()
{     
other=1;
       anther=0;
       P0=0xff;
       mo_r=1;
sec=5;
       mo_l=1;
       sec=5;
}     
//*********按键扫描子程序*********//
void key_scan()
{
       if(key_menu==0)
       {
              delay(5);
              if(key_menu==0)
              {
                     while(!key_menu);
                     menu();
              }
       }
//********************************//
       if(key_on==0)
       {
              delay(5);
              if(key_on==0)
              {
                     while(!key_on);
                     on();
              }
       }
//*********************************//
       if(key_off==0)
       {
              delay(5);
              if(key_off==0)
              {
                     while(!key_off);
                     over();
              }
       }
}
//*********显示子程序**********//
void SEG_display()
{
       P1=0x01;
       P2=num[min/10];
       delay(10);
       P1=0x02;
       P2=num[min%10];
       delay(10);
       P1=0x04;
       P2=num[sec/10];
       delay(10);
       P1=0x08;
       P2=num[sec%10];
       delay(10);
}
//*********主函数**********//
void main()
{
       led_in=0;
       anther=0;
       other=0;
       while(1)
       {
              SEG_display();
              key_scan();
       }
}   
//*****定时器0中断处理程序*****//
void timer0() interrupt 1
{
       TH0=(65536-50000)/256;
       TL0=(65536-50000)%256;
       count++;
   if(count==20)
       {     
             count=0;
              sec--;
              if((flag0==1)||(flag0==2))
              {
                  quan++;
                     switch(quan)
                      {
                           case  1:mo_r=1;mo_l=0;break;
                            case10:mo_r=0;mo_l=0;break;
                            case15:mo_r=0;mo_l=1;break;
                            case25:mo_r=0;mo_l=0;break;
                            default:;
                      }
                     if(quan==30)
                     {
                        quan=0;
                     }
              }
        //**********************************//
              if((sec==0)&&(min!= 0))
              {
                min--;
                sec=59;
               }
      
        //**********************************//
              if((sec<0)&&(min==0)&&(flag0==1))   //洗衣结束
              {      
                   flag0=4;
                      out();
              }
        //**********************************//
              if((sec<0)&&(min==0)&&(flag0==2))   //泡衣结束
              {      
                   switch(flag3)
                      {
                           case1:flag0=4;out();break;
                            case2:flag0=4;out();break;
                            case3:flag0=4;out();break;
                            default:err=1;led_wring = 0;
                      }
              }
        //**********************************//
              if((sec<0)&&(min==0)&&(flag0==4))   //出水结束
              {     
                     switch(flag2)
                      {
                           case1:flag0=0;in();break;
                            case2:flag0=0;in();break;
                            case3:flag0=0;in();break;
                            case4:flag0=3;xx();break;
                            default:err=1;led_wring=0;
                      }
              }
        //***********************************//
              if((sec<0)&&(min==0)&&(flag0==3))
              {      sec=0;
                      over();
              }
    }
}
谢谢大家帮忙,帮忙修改程序 。

实验台资源 (1).doc

14.27 MB, 下载次数: 8

直流调压调速测速电机原理.doc

1.36 MB, 下载次数: 5

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表