久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10194|回復: 16
打印 上一主題 下一主題
收起左側

全自動洗衣機單片機程序

  [復制鏈接]
跳轉到指定樓層
樓主
ID:98321 發表于 2015-12-4 18:52 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg51.h>  
#define uchar unsigned char
#define uint unsigned int

sbit mo_r = P3^2;     //電機右控制線
sbit mo_l = P3^3;     //電機左控制線
sbit key_menu = P3^4; // 菜單按鍵
sbit key_on = P3^5;   // 開始按鍵
sbit key_off = P3^6;  //   結束按鍵
sbit key_se = P3^7;   //  菜單選擇按鍵

sbit led_in = P2^0;   // 進水指示燈  
sbit led_xi = P2^1;   //  洗衣指示燈  
sbit led_pao = P2^2;  // 泡洗指示燈
sbit led_xx = P2^3;   //  脫水指示燈

sbit led_out = P2^4;  //   出水指示燈
sbit led_over = P2^5; // 洗衣結束指示燈
sbit led_work = P2^6; // 電機工作指示燈
sbit led_wring = P2^7;// 報警指示燈
sbit other = P3^1;    //  脫水電源控制開關
sbit anther = P3^0;  // 洗衣電源控制開關
uchar  code  num[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;    //  進水次數標志
uchar flag2=0;    //  出水次數標志
uchar flag3=0;    //   泡洗次數標志  
uchar err =0;    // 報警標志
uchar quan = 0;//正反轉計數

//  函數聲明 //


void in(); //   進水子程序
void out();  //   出水子程序
void over();  //  結束子程序
void xi();  //   洗衣子程序
void pao(); //  泡衣子程序
void xx(); // 脫水子程序
void on(); //  工作on處理子程序
void se(); //  顯示菜單選擇
void SEG_display();  //顯示時間子程序
void key_scan();   //  按鍵掃描子程序  

//     延時函數  //
void mDelay(unsigned int Delay) //延時程序
{   
     unsigned int i;
      for(;Delay>0;Delay--)      
      {       for(i=0; i<54; i++)  ;     
      }
}

//    工作on處理子程序 //

void on()
{   TMOD=0x01;   
    TH0=(65536-50000)/256;  
    TL0=(65536-50000)%256;  
    EA=1;  ET0=1;  TR0=1;   
    P2 = 0xff;  
    if(flag0 == 0)      in();  
    if(flag0 == 1)      xi();  
    if(flag0 == 2)      pao();
    if(flag0 == 3)      xx();  
    if(flag0 == 4)      out();
}


//    結束子程序 //
void over()
{ other=0;  anther=0;  P2 = 0xff;  
  mo_r=0;  mo_l=0;  led_over = 0;  EA=0;   }

//    進水子程序  //*********************************//
void in()
{ anther=0;  other=0;  P2 = 0xff;  led_in = 0;  flag1++;  
  mo_r = 0;  mo_l = 0;  min = 0;  sec = 8;  }  

//   洗衣子程序//
void xi()
{  anther=1;    other=0;      
    P0 = 0xff;   led_work = 0;    led_xi = 0;
    mo_r = 1;   mo_l = 0;   min = 1;   
    sec = 36;   quan = 0;  }



//    泡衣子程序 //
void pao()
{      
anther=1;  other=0;  P2 = 0xff;  led_pao = 0;  led_work = 0;  
flag3++;  mo_r = 1;  mo_l = 0;  min = 1;  sec = 35;   quan = 0;
}  



//   脫水子程序  //*********************************//
void xx()
{ other=1;  anther=0;  P2 = 0xff;  led_xx = 0;  mo_r = 0;  mo_l = 1;  min = 0;  sec = 50;  }  
//    出水子程序 //*********************************//

void out()
{ anther=0;  other=0;  P2 = 0xff;   led_out = 0;
flag2++;  mo_r = 0;  mo_l = 0;  min = 0;  sec = 5;  }  


//    顯示菜單選擇 //
void se()
{  P2 = 0xff;  if(flag0 >= 5)    flag0 = 0;   
   if(flag0 == 0)  {   led_in = 0;   }   
   if(flag0 == 1)  {   led_xi=0;     }
   if(flag0 == 2)  {   led_pao=0;    }   
   if(flag0 == 3)  {   led_xx=0;     }   
   if(flag0 == 4)  {   led_out=0;    }
}  



//    菜單處理子程序 //
void menu()
{      min = 0;  sec = 0;  mo_r=0;   mo_l=0;
       SEG_display();        
       while(1)   
        {      if(key_on == 0)   
                  { mDelay(5);   
                    if(key_on == 0)   
                      {  while(!key_on);     
                         on(); break;     
                      }   
                  }
               if(key_off == 0)   
                  { mDelay(5);   
                    if(key_off == 0)   
                     {  while(!key_off);        
                        over(); break;     
                     }     
                  }
               if(key_se == 0)   
                  { mDelay(5);   
                    if(key_se == 0)   
                     { while(!key_se);   
                       flag0++;  se();      
                     }   
                  }      
        }  
}


//      按鍵掃描子程序//
void key_scan()
{    if(key_menu == 0)
        {  mDelay(5);   
            if(key_menu == 0)   
              { while(!key_menu); menu();   
              }   
        }  
     if(key_on == 0)  
        {  mDelay(5);   
            if(key_on == 0)   
              { while(!key_on); on();   
              }   
        }
     if(key_off == 0)  
        {  mDelay(5);
            if(key_off == 0)   
              { while(!key_off); over();   
              }   
        }  
}

// 顯示子程序 //
void SEG_display()
{  P1=0x01;  P0 = num[min/10]; mDelay(10);  
   P1=0x02;  P0 = num[min%10]; mDelay(10);  
   P1=0x04;  P0 = num[sec/10]; mDelay(10);  
   P1=0x08;  P0 = num[sec%10]; mDelay(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;     
               case 10:mo_r=0;mo_l=0;break;     
               case 15:mo_r=0;mo_l=1;break;     
               case 25: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==0))  //進水結束   
        {  switch(flag1)   
             { case 1:flag0=1;xi();break;     
               case 2:flag0=2;pao();break;     
               case 3:flag0=2;pao();break;     
               case 4:flag0=2;pao();break;     
               default: err=1;led_wring = 0;      
             }      
        }

      if((sec<0)&&(min==0)&&(flag0==1))   //洗衣結束   
        {  flag0 = 4; out();  }  

      if((sec<0)&&(min==0)&&(flag0==2))   //泡衣結束   
        {  switch(flag3)     
             { case 1:flag0=4;out();break;     
               case 2:flag0=4;out();break;     
               case 3:flag0=4;out();break;     
               default: err=1;led_wring = 0;      
             }     
        }  

      if((sec<0)&&(min==0)&&(flag0==4))  //出水結束   
        {  switch(flag2)        
             { case 1:flag0=0;in();break;     
               case 2:flag0=0;in();break;     
               case 3:flag0=0;in();break;        
               case 4:flag0=3;xx();break;      
               default: err= 1;led_wring = 0;      
             }     
        }   

      if((sec<0)&&(min==0)&&(flag0==3))   
        {  sec = 0;     over(); }   
     }  
}

















評分

參與人數 3黑幣 +55 收起 理由
123453. + 5
我不是我 + 5 共享資料的黑幣獎勵!我現在在做,學習下
admin + 45 共享資料的積分獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1 發表于 2015-12-4 18:56 來自手機 | 只看該作者
非常好謝謝分享,樓主能提供一下原理圖嗎?
回復

使用道具 舉報

板凳
ID:154667 發表于 2016-12-14 13:08 | 只看該作者
太厲害餓了 感謝哦
回復

使用道具 舉報

地板
ID:154667 發表于 2016-12-14 13:09 | 只看該作者
太感謝了
回復

使用道具 舉報

5#
ID:154667 發表于 2016-12-14 21:08 | 只看該作者
原理圖和仿真圖有么
回復

使用道具 舉報

6#
ID:154866 發表于 2016-12-14 22:43 | 只看該作者
感謝分享啊
回復

使用道具 舉報

7#
ID:154916 發表于 2016-12-15 09:46 | 只看該作者
太厲害了哈!樓主 如果能附上原理圖就更好了哈1
回復

使用道具 舉報

8#
ID:75745 發表于 2016-12-15 17:35 | 只看該作者
話說我們畢業設計有這一到題
回復

使用道具 舉報

9#
ID:209487 發表于 2017-6-9 11:58 | 只看該作者
很好的程序
回復

使用道具 舉報

10#
ID:209487 發表于 2017-6-9 11:58 | 只看該作者
很好的
回復

使用道具 舉報

11#
ID:89286 發表于 2017-6-9 19:10 | 只看該作者
thanks for sharing
回復

使用道具 舉報

12#
ID:67838 發表于 2017-6-23 14:52 | 只看該作者
非常好謝謝分享,樓主能提供一下原理圖嗎?
回復

使用道具 舉報

13#
ID:67838 發表于 2017-9-16 21:29 | 只看該作者
謝謝分享,樓主能提供一下原理圖嗎?
回復

使用道具 舉報

14#
ID:67838 發表于 2019-9-24 20:26 | 只看該作者
樓主能提供一下原理圖嗎
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天天插天天操 | 在线观看中文视频 | 日本精品一区二区三区视频 | 久草新在线 | 99精品国产一区二区青青牛奶 | 国产欧美日韩精品一区二区三区 | 91精品国产综合久久精品 | 欧美一区二区在线 | 精品乱码一区二区 | 日本天堂一区 | 日韩精品免费在线 | 精品一区在线免费观看 | 亚洲欧美精品国产一级在线 | 成人a在线 | 超级乱淫av片免费播放 | 亚洲国产成人精品女人久久久 | 精品国产一区二区三区久久影院 | 欧美日韩亚洲国产 | 国产视频不卡一区 | 国产在线观看一区二区 | 国产在线小视频 | 中文字幕 国产 | h视频免费观看 | 91看片| 51ⅴ精品国产91久久久久久 | 亚洲欧美v| 365夜爽爽欧美性午夜免费视频 | 欧美精品影院 | www国产亚洲精品久久网站 | 日韩一区二区三区在线 | 亚洲天堂网站 | 亚洲码欧美码一区二区三区 | 一级a毛片 | 超碰免费观看 | 中文精品视频 | 一级在线视频 | 国产精品视频一区二区三区 | 伊伊综合网 | 亚洲电影第1页 | 国产成人亚洲精品自产在线 | 91久久 |