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

標(biāo)題: 簡(jiǎn)單洗衣機(jī)控制基于單片機(jī) [打印本頁]

作者: 席成    時(shí)間: 2018-6-12 08:57
標(biāo)題: 簡(jiǎn)單洗衣機(jī)控制基于單片機(jī)
本帖最后由 席成 于 2018-6-12 08:58 編輯

洗衣機(jī)內(nèi)容
    設(shè)自動(dòng)洗衣機(jī)的控制要求是:?jiǎn)?dòng)后先開啟進(jìn)水閥進(jìn)水,水位到達(dá)設(shè)定值后關(guān)閉,然后波輪按正轉(zhuǎn)5秒、反轉(zhuǎn)5秒,正、反轉(zhuǎn)之間停3秒的規(guī)律不斷循環(huán)轉(zhuǎn)動(dòng),直至達(dá)到設(shè)定時(shí)間停止,之后打開排水閥放水,水放完后洗衣桶旋轉(zhuǎn)脫水,1分鐘后停止并關(guān)閉排水閥,洗衣過程結(jié)束。要求水位設(shè)置不少于高、中、低三檔,洗衣時(shí)間在3——12分鐘范圍內(nèi)可調(diào),以1分鐘為單位,排水時(shí)間定為1分鐘。運(yùn)動(dòng)執(zhí)行器用指示燈模擬,水位用開關(guān)模擬,試設(shè)計(jì)該洗衣機(jī)的控制電路。
  洗衣機(jī)要求:
1. 畫出控制系統(tǒng)的框圖,說明系統(tǒng)方案設(shè)計(jì)的思路、理由或依據(jù);
2. 選擇、確定組成控制系統(tǒng)的各個(gè)單元,并闡述選擇確定的原則或依據(jù);
3. 畫出完整的電氣原理圖,介紹整體電路的工作原理、性能或特點(diǎn);
4. 如采用單片機(jī)控制,給出單片機(jī)程序的流程圖和清單,說明程序的工作原理。
5. 制作實(shí)物電路,驗(yàn)證設(shè)計(jì)、制作是否正確。
  完整程序:
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
uchar gewei,shiwei;
uchar xiyitime,num3;
uchar shuiweizhi,shuiwei;
uint num1,num2;
sbit wei1=P1^0;
sbit wei2=P1^1;
sbit wei3=P1^2;
sbit wei4=P1^3;
sbit shuiwei0=P1^4;        //
sbit shuiwei1=P1^5; //低水位
sbit shuiwei2=P1^6;        //中水位
sbit shuiwei3=P1^7; // 高水位
sbit shezhi_key=P2^0;
sbit qidong_key=P2^1;
//sbit xiyi_key=P2^0;
sbit up_key=P2^2;
sbit down_key=P2^3;
sbit shuifa=P2^4;
sbit paishuifa=P2^5;
sbit zhengzhuang=P2^6;
sbit fanzhuang=P2^7;
sbit tuoshui=P3^6;
sbit zhishiled=P3^7;
//此表為 LED 的字模, 共陰數(shù)碼管 0-9  -
unsigned char code segtab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e}; //段碼控制
unsigned char code segtab1[]={0x40,0x4F,0x24,0x30,0x19,0x12,
0x02,0x78,0x00,0x10};  //共陰0-9帶小數(shù)點(diǎn)編碼
//延時(shí)X毫秒函數(shù)11.0592Mhz時(shí)
void delay_xms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
   for(j=110;j>0;j--);
}
//延時(shí)X秒函數(shù)
void delay_s(uint xs)
{
uint x;
for(x=xs;x>0;x--)
   delay_xms(1000);
}
//延時(shí)X分鐘函數(shù)
void delay_min(uint xmin)
{
uint m,n;
for(m=xmin;m>0;m--)
   for(n=60;n>0;n--)
     delay_s(1);
}
//取操作數(shù)的個(gè)十位
void chuli(uint num)
{
  gewei=num%10;
  shiwei=(num/10)%10;
}
//按鍵掃描函數(shù)
void keysaomiao()
{
uchar jianzhi;
if(shezhi_key==0)
   {
     delay_xms(10);
         if(!shezhi_key)
          {
            jianzhi++;
                if(jianzhi>2)
                  jianzhi=1;
            while(!shezhi_key);
          }
   }
  if(jianzhi==1)        //水位設(shè)置
   {
         if(up_key==0)
           {
             delay_xms(10);
             if(up_key==0)
               {
                     shuiwei++;
                     if(shuiwei>3)
                       {
                         shuiwei=0;
                       }
                     while(!up_key);
                  }
           }
         if(down_key==0)
           {
             delay_xms(10);
             if(down_key==0)
               {
                     if(shuiwei<=0)
                       {
                         shuiwei=3;
                       }
                     shuiwei--;
                     while(!down_key);
                   }
          }
         chuli(shuiwei);
     P0=segtab[gewei];
     wei1=0;
     delay_xms(5);
     wei1=1;  
     P0=segtab[shiwei];
     wei2=0;
     delay_xms(5);
     wei2=1;
         P0=0xFE;
     wei3=0;
     delay_xms(5);
     wei3=1;
     P0=0x9C;
     wei4=0;
     delay_xms(5);
     wei4=1;
   }
if(jianzhi==2)
   {
     if(up_key==0)
       {
         delay_xms(10);
             if(up_key==0)
               {         
             xiyitime++;
                 if(xiyitime>12)
                   {
                     xiyitime=3;                 
                   }                          
                 while(!up_key);
           }
       }
     if(down_key==0)
       {
         delay_xms(10);
             if(down_key==0)
               {          
             xiyitime--;
             if(xiyitime<3)
                   {
                 xiyitime=12;                  
                       }
                 while(!down_key);
           }
      }
     chuli(xiyitime);
     P0=segtab[gewei];
     wei1=0;
     delay_xms(5);
     wei1=1;  
     P0=segtab[shiwei];
     wei2=0;
     delay_xms(5);
     wei2=1;
         P0=0xF7;
     wei3=0;
     delay_xms(5);
     wei3=1;
     P0=0xA3;
     wei4=0;
     delay_xms(5);
     wei4=1;
   }
}
//水位檢測(cè)子函數(shù)
void shuiweijiance()
{
  if(shuiwei0==0)
    {
          delay_xms(10);
          if(shuiwei0==0)
            {
                  shuiweizhi=0;
                  while(!shuiwei0);
                }
        }
  if(shuiwei1==0)
    {
          delay_xms(10);
          if(shuiwei1==0)
            {
                  shuiweizhi=1;
                  while(!shuiwei1);
                }
        }
  if(shuiwei2==0)
    {
          delay_xms(10);
          if(shuiwei2==0)
            {
                  shuiweizhi=2;
                  while(!shuiwei2);
                }
        }
  if(shuiwei3==0)
    {
          delay_xms(10);
          if(shuiwei3==0)
            {
                  shuiweizhi=3;
                  while(!shuiwei3);
                }
        }
}
//初始化函數(shù)
void init()
{
   num2=60;
   num3=4;
   shuiweizhi=0;
   xiyitime=3;
   TMOD=0x01;
   //TH0=(65536-45872)/256;//11.0592M晶振
   //TL0=(65536-45872)%256;
   TH0 = 0xB1;//12M晶振
   TL0 = 0xE0;
   EA=1;
   ET0=1;
}
/************主函數(shù)**********************/
void main()
{
  uint i,j;
  init();
  P0=0xbf;
  wei1=0;
  wei2=0;
  wei3=0;
  wei4=0;
  while(qidong_key)
     {
       keysaomiao();//水位和洗衣時(shí)間設(shè)置
         }
   num3=xiyitime-1;
   if(qidong_key==0)
       {
             delay_xms(10);
             if(qidong_key==0)//啟動(dòng)鍵按下
              {                                                                                                             
            shuifa=0; //開進(jìn)水閥進(jìn)水
                    while(shuiwei!=shuiweizhi)//檢測(cè)是否到達(dá)設(shè)定水位
                      {
                                shuiweijiance();
                                chuli(shuiweizhi);
                                P0=segtab[gewei];
                                wei1=0;
                                delay_xms(5);
                wei1=1;
                                P0=segtab[shiwei];
                                wei2=0;
                                delay_xms(5);
                wei2=1;
                                delay_xms(5);
                                chuli(shuiwei);
                                P0=segtab[gewei];
                wei3=0;
                delay_xms(5);
                wei3=1;  
                P0=segtab[shiwei];
                wei4=0;
                delay_xms(5);
                wei4=1;
                          }
                        while(i<100)
                          {
                            i++;
                                shuiweijiance();
                                chuli(shuiweizhi);
                                P0=segtab[gewei];
                                wei1=0;
                                delay_xms(5);
                wei1=1;
                                P0=segtab[shiwei];
                                wei2=0;
                                delay_xms(5);
                wei2=1;
                                delay_xms(5);
                                chuli(shuiwei);
                                P0=segtab[gewei];
                wei3=0;
                delay_xms(5);
                wei3=1;  
                P0=segtab[shiwei];
                wei4=0;
                delay_xms(5);
                wei4=1;                            
                          }
                        delay_s(1);                                                         
                        while(j<300)
                          {
                                j++;
                                chuli(shuiwei);                                 
                                P0=segtab[gewei];
                                wei1=0;
                                delay_xms(5);
                                wei1=1;
                                P0=segtab[shiwei];
                                wei2=0;
                                delay_xms(5);
                                wei2=1;
                                chuli(xiyitime);
                                P0=segtab[gewei];
                                wei3=0;
                            delay_xms(5);
                                wei3=1;
                                P0=segtab[shiwei];                                 
                                wei4=0;
                                delay_xms(5);                                 
                                wei4=1;                                                                                                
                           }
                        shuifa=1;
                        zhishiled=0;                       
                    TR0=1;
                    while(!num3==0)
                      {
                            if(num2>=59)
                                  zhengzhuang=0;
                            if(num2==55)
                          zhengzhuang=1;
                                if(num2==52)
                                  fanzhuang=0;
                                if(num2==46)
                                  fanzhuang=1;
                                if(num2==42)
                                  zhengzhuang=0;
                                if(num2==35)
                                  zhengzhuang=1;
                                if(num2==30)
                                  fanzhuang=0;
                                if(num2==23)
                                  fanzhuang=1;
                                if(num2==19)
                                  zhengzhuang=0;
                                if(num2==13)
                                  zhengzhuang=1;
                                if(num2==9)
                                  fanzhuang=0;
                                if(num2==3)
                                  fanzhuang=1;
                      }
                   TR0=0;
                   zhengzhuang=1;
                   fanzhuang=1;
               paishuifa=0;
               while(1)
                {
                          if(shuiwei0==0)
                        delay_xms(10);
                      if(shuiwei0==0)
                       {
                                 P0=0xbf;
                                   wei1=0;
                                   wei2=0;
                                    wei3=0;
                                   wei4=0;
                             tuoshui=0;
                             delay_min(1);
                             tuoshui=1;
                             paishuifa=1;
                                 P0=0;
                                 delay_s(2);
                                 zhishiled=1;
                                 break;
                            }
                   }
            }
          }  
}       
void zhongduangT0() interrupt 1
{
   //TH0=(65536-45872)/256;//11.0592M晶振
   //TL0=(65536-45872)%256;
   TH0 = 0xB1;//12M晶振
   TL0 = 0xE0;
   num1++;
   if(num1>=50)
    {                            
          num2--;
          num1=0;
          if(num2<=0)
            {                  
                  num2=59;
                  num3--;
                  if(num3==0)
                    {
                          TR0=0;
                        }
                }
    }
         chuli(num2);
         wei1=0;
         P0=segtab[gewei];                                 
         delay_xms(4);
         wei1=1;
         wei2=0;
         P0=segtab[shiwei];                            
         delay_xms(4);
     wei2=1;
         chuli(num3);
         wei3=0;
         P0=segtab1[gewei];                                 
         delay_xms(4);
         wei3=1;
         wei4=0;
         P0=segtab[shiwei];
     delay_xms(4);
         wei4=1;
}

圖片1.png (20.84 KB, 下載次數(shù): 64)

流程圖

流程圖

簡(jiǎn)單洗衣機(jī)控制基于單片機(jī).doc

1.12 MB, 下載次數(shù): 63, 下載積分: 黑幣 -5

文件






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 天天干天天玩天天操 | 亚洲综合一区二区三区 | 天天在线操 | 亚洲精品电影在线观看 | 日本一二三区高清 | 天天天久久久 | 日本又色又爽又黄又高潮 | 日韩欧美在| 精品久久久久久亚洲精品 | 在线一区二区三区 | 欧美日韩精品一区二区三区视频 | 成年人的视频免费观看 | 国产一区久久 | 精品日韩在线 | 超碰97人人人人人蜜桃 | 国产一级黄色网 | 给我免费的视频在线观看 | 99在线资源| 日本三级全黄三级三级三级口周 | 青青久视频 | 欧美精品在线观看 | 亚洲精品久久久一区二区三区 | 91久久精品 | 一区二区三区成人 | 艹逼网| 在线 丝袜 欧美 日韩 制服 | 亚洲精品一区二区三区四区高清 | 波多野吉衣在线播放 | 91精品国产乱码久久久久久久久 | 久久久一区二区三区 | 午夜激情在线视频 | 福利久久 | 久草www | 3级毛片| 日韩毛片在线视频 | 国产在线h | 综合网伊人 | 黄a免费网络 | 热re99久久精品国99热观看 | 久久久久av| 亚洲国产一区二区三区在线观看 |