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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 8171|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

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

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
本帖最后由 席成 于 2018-6-12 08:58 編輯

洗衣機(jī)內(nèi)容
    設(shè)自動(dòng)洗衣機(jī)的控制要求是:?jiǎn)?dòng)后先開(kāi)啟進(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í)間停止,之后打開(kāi)排水閥放水,水放完后洗衣桶旋轉(zhuǎn)脫水,1分鐘后停止并關(guān)閉排水閥,洗衣過(guò)程結(jié)束。要求水位設(shè)置不少于高、中、低三檔,洗衣時(shí)間在3——12分鐘范圍內(nèi)可調(diào),以1分鐘為單位,排水時(shí)間定為1分鐘。運(yùn)動(dòng)執(zhí)行器用指示燈模擬,水位用開(kāi)關(guān)模擬,試設(shè)計(jì)該洗衣機(jī)的控制電路。
  洗衣機(jī)要求:
1. 畫(huà)出控制系統(tǒng)的框圖,說(shuō)明系統(tǒng)方案設(shè)計(jì)的思路、理由或依據(jù);
2. 選擇、確定組成控制系統(tǒng)的各個(gè)單元,并闡述選擇確定的原則或依據(jù);
3. 畫(huà)出完整的電氣原理圖,介紹整體電路的工作原理、性能或特點(diǎn);
4. 如采用單片機(jī)控制,給出單片機(jī)程序的流程圖和清單,說(shuō)明程序的工作原理。
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; //開(kāi)進(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

文件

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

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 成人福利电影 | 91久久精品国产91久久 | 亚洲精品乱码久久久久久蜜桃91 | 精品国产黄a∨片高清在线 www.一级片 国产欧美日韩综合精品一区二区 | 天天想天天干 | 久久精品福利 | 一级大片| 日韩福利在线观看 | 狠狠操狠狠搞 | 欧美mv日韩mv国产网站91进入 | www.久久久久久久久 | 中文av字幕 | 亚洲视频在线观看免费 | 男女国产视频 | 天天操天天怕 | 成人免费毛片在线观看 | 久久久久久国产免费视网址 | 亚洲一区二区精品视频 | 四虎精品在线 | 久久国品片| 中文字幕成人av | 日韩性生活网 | 欧美成人精品 | 亚洲成人午夜电影 | 久在草 | 天天干视频网 | 91人人澡人人爽 | 在线视频日韩 | 国产一区二区电影 | 黄色片在线免费看 | 91麻豆精品国产91久久久久久 | 国产精品国产三级国产aⅴ入口 | 欧美黄 片免费观看 | 91久久精品一区二区二区 | 国产99久久精品一区二区永久免费 | 一区二区三区电影在线观看 | 久久久久国产 | 欧美国产精品一区二区三区 | 黄a网站| 草久网| 黄色免费看 |