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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機洗衣機控制系統程序設計 麻煩大佬幫幫忙找找錯誤

[復制鏈接]
跳轉到指定樓層
樓主
ID:501862 發表于 2019-4-18 15:47 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
一、洗衣機控制系統設計
設計內容:
1、用直流電機的轉速表征三種不同洗衣方式,弱洗、強洗、漂洗;
2、用三個獨立按鍵設置待洗衣物的不同洗滌方式:
絲質衣服:漂洗定時3秒
棉質衣服:弱洗2秒;強洗5秒;漂洗3秒;
化纖衣服:強洗4秒;漂洗2秒;3,用按鍵自行調整洗滌方式,即自行調整弱洗,強洗,漂洗的定時時間4、定時時間到,光報警提示。(20分)

經過2個星期逼著自己學習c51單片機,就是我以前發的那個洗衣機的然后寫了這個程序,無奈啊,想讓大家幫幫忙改一改啥的,寫的不好,就別噴了

然后我們學校實驗室比較簡陋,好像是電動機只能用什么AD還是DA吧,好像不讓用P3口好像,然后我也不會寫電動機這一塊了,寫的比較垃圾,洗衣時間算的也不咋明白,幫幫忙,救救孩子吧。undefined
這個就是我的程序了
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. //****************************//
  5. sbit key_mianzhi=P1^4;  // 棉質按鍵
  6. sbit key_on=P1^5;        // 開始按鍵
  7. sbit key_off=P1^6;   // 結束按鍵
  8. sbit key_sizhi=P1^7;     // 絲質按鍵
  9. sbit key_huaxian=P1^1;  // 化纖按鍵
  10. //***************************//
  11. sbit led_wring=P0^7; //     報警指示燈
  12. //******************************//
  13. uchar codenum[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  14. //*****************************//
  15. char sec=0;            //  時間秒
  16. char min=0;           //  時間分
  17. uchar count=0;            //  中斷計數
  18. uchar flag0=0;             //  洗衣機工作狀態標志
  19. uchar flag1=0;             //  piaoxi標志
  20. uchar flag2=0;             //  qiangxi標志
  21. uchar flag3=0;             //  ruoxi標志
  22. uchar err=0;        //  報警標志
  23. //**********************************//
  24. void delay(); //  延時函數
  25. void over();  //  結束子程序
  26. void piaoxi();         //  票子程序
  27. void ruoxi();   // 弱子程序
  28. void qiangxi();    //  強子程序
  29. void on();    //  工作on處理子程序
  30. void se();    //  顯示菜單選擇
  31. void SEG_display();   //  顯示時間子程序
  32. void key_scan();     //  按鍵掃描子程序
  33. **************************************
  34. void delay(uint i)
  35. {
  36.        uintx,y;
  37.        for(x=i;x>0;x--)
  38.         for(y=120;y>0;y--);
  39. }   
  40. //*********工作on處理子程序**********//
  41. void on()
  42. {
  43.        TMOD=0x01;
  44.        TH0=(65536-50000)/256;
  45.        TL0=(65536-50000)%256;
  46.        EA=1;
  47.        ET0=1;
  48.        TR0=1;
  49.    P0 = 0xff;
  50.     if(flag0==0)
  51.            in();
  52.        if(flag0==1)
  53.            qiangxi();
  54.        if(flag0==2)
  55.            piaoxi();
  56.        if(flag0==3)
  57.            ruoxi();
  58.        if(flag0==4)
  59.       out();
  60.       
  61. }
  62. //********結束子程序*********//
  63. void over()
  64. {     other=0;
  65.        anther=0;
  66.        P0=0xff;
  67.        mo_r=0;
  68.        mo_l=0;
  69.        led_over=0;
  70.        EA=0;
  71. }  
  72. //**********進水子程序**********//
  73. voidin()
  74. {     anther=0;
  75.        other=0;
  76.        P0=0xff;
  77.        led_in=0;
  78.        flag1++;
  79.        mo_r=0;
  80.        mo_l=0;
  81.        min=0;
  82.        sec=8;
  83. }
  84. //**********漂洗子程序**********//
  85. void piaoxi()
  86. {     anther=1;
  87.         other=0;
  88.     P0=0xff;
  89.         mo_r=1;
  90.         mo_l=1;
  91.         min=0;
  92.         sec=10;                          
  93.         quan=0;
  94. }
  95. //        
  96. //********強洗程序********//
  97. void piaoxi()
  98. {     
  99.    anther=1;
  100.        other=0;
  101.        P0=0xff;
  102.        mo_r=1;
  103.        mo_l=0;
  104.        min=1;
  105.        sec=10;
  106.       
  107. }
  108. //*********弱洗子程序********//
  109. void ruoxi()
  110. {     
  111. other=1;
  112.        anther=0;
  113.        P0=0xff;
  114.        mo_r=1;
  115.        mo_l=0;
  116.        sec=5;
  117. }     
  118. //*********漂洗子程序********//
  119. void piaoxi()
  120. {     
  121. other=1;
  122.        anther=0;
  123.        P0=0xff;
  124.        mo_r=1;
  125. sec=5;
  126.        mo_l=1;
  127.        sec=5;
  128. }     
  129. //*********按鍵掃描子程序*********//
  130. void key_scan()
  131. {
  132.        if(key_menu==0)
  133.        {
  134.               delay(5);
  135.               if(key_menu==0)
  136.               {
  137.                      while(!key_menu);
  138.                      menu();
  139.               }
  140.        }
  141. //********************************//
  142.        if(key_on==0)
  143.        {
  144.               delay(5);
  145.               if(key_on==0)
  146.               {
  147.                      while(!key_on);
  148.                      on();
  149.               }
  150.        }
  151. //*********************************//
  152.        if(key_off==0)
  153.        {
  154.               delay(5);
  155.               if(key_off==0)
  156.               {
  157.                      while(!key_off);
  158.                      over();
  159.               }
  160.        }
  161. }
  162. //*********顯示子程序**********//
  163. void SEG_display()
  164. {
  165.        P1=0x01;
  166.        P2=num[min/10];
  167.        delay(10);
  168.        P1=0x02;
  169.        P2=num[min%10];
  170.        delay(10);
  171.        P1=0x04;
  172.        P2=num[sec/10];
  173.        delay(10);
  174.        P1=0x08;
  175.        P2=num[sec%10];
  176.        delay(10);
  177. }
  178. //*********主函數**********//
  179. void main()
  180. {
  181.        led_in=0;
  182.        anther=0;
  183.        other=0;
  184.        while(1)
  185.        {
  186.               SEG_display();
  187.               key_scan();
  188.        }
  189. }   
  190. //*****定時器0中斷處理程序*****//
  191. void timer0() interrupt 1
  192. {
  193.        TH0=(65536-50000)/256;
  194.        TL0=(65536-50000)%256;
  195.        count++;
  196.    if(count==20)
  197.        {     
  198.              count=0;
  199.               sec--;
  200.               if((flag0==1)||(flag0==2))
  201.               {
  202.                   quan++;
  203.                      switch(quan)
  204.                       {
  205.                            case  1:mo_r=1;mo_l=0;break;
  206.                             case10:mo_r=0;mo_l=0;break;
  207.                             case15:mo_r=0;mo_l=1;break;
  208.                             case25:mo_r=0;mo_l=0;break;
  209.                             default:;
  210.                       }
  211.                      if(quan==30)
  212.                      {
  213.                         quan=0;
  214.                      }
  215.               }
  216.         //**********************************//
  217.               if((sec==0)&&(min!= 0))
  218.               {
  219.                 min--;
  220.                 sec=59;
  221.                }
  222.       
  223.         //**********************************//
  224.               if((sec<0)&&(min==0)&&(flag0==1))   //洗衣結束
  225.               {      
  226.                    flag0=4;
  227.                       out();
  228.               }
  229.         //**********************************//
  230.               if((sec<0)&&(min==0)&&(flag0==2))   //泡衣結束
  231.               {      
  232.                    switch(flag3)
  233.                       {
  234.                            case1:flag0=4;out();break;
  235.                             case2:flag0=4;out();break;
  236.                             case3:flag0=4;out();break;
  237.                             default:err=1;led_wring = 0;
  238.                       }
  239.               }
  240.         //**********************************//
  241.               if((sec<0)&&(min==0)&&(flag0==4))   //出水結束
  242.               {     
  243.                      switch(flag2)
  244.                       {
  245.                            case1:flag0=0;in();break;
  246.                             case2:flag0=0;in();break;
  247.                             case3:flag0=0;in();break;
  248.                             case4:flag0=3;xx();break;
  249.                             default:err=1;led_wring=0;
  250.                       }
  251.               }
  252.         //***********************************//
  253.               if((sec<0)&&(min==0)&&(flag0==3))
  254.               {      sec=0;
  255.                       over();
  256.               }
  257.     }
  258. }
復制代碼


程序問題挺多的,希望大家幫幫忙。謝謝大家了

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

使用道具 舉報

沙發
ID:158375 發表于 2019-4-19 13:31 | 只看該作者
你可以用簡單的方法來檢驗你自己寫的程序:即用不同顏色的LED燈,來代表弱洗、強洗、漂洗。
回復

使用道具 舉報

板凳
ID:516544 發表于 2019-4-19 17:09 | 只看該作者
我感覺寫的沒有毛病,讓程序跑試試啊。
回復

使用道具 舉報

地板
ID:425268 發表于 2019-4-19 19:49 | 只看該作者
這東西用PLC很簡單吧   單片機不懂
回復

使用道具 舉報

5#
ID:501862 發表于 2019-4-21 14:05 | 只看該作者
qq873434846 發表于 2019-4-19 17:09
我感覺寫的沒有毛病,讓程序跑試試啊。

全是錯的     80多個錯誤
回復

使用道具 舉報

6#
ID:501862 發表于 2019-4-21 14:05 | 只看該作者
moqiyaa 發表于 2019-4-19 19:49
這東西用PLC很簡單吧   單片機不懂

沒學啊
回復

使用道具 舉報

7#
ID:501862 發表于 2019-4-21 14:06 | 只看該作者
笨笨兔 發表于 2019-4-19 13:31
你可以用簡單的方法來檢驗你自己寫的程序:即用不同顏色的LED燈,來代表弱洗、強洗、漂洗。

寫程序都很費勁了
回復

使用道具 舉報

8#
ID:111517 發表于 2019-4-21 21:14 | 只看該作者
樓主最好先自己找下問題或者錯誤,然后再問下,這樣子大家比較容易懂些,你就這么直接貼代碼上來大家也不知道你要找什么問題
回復

使用道具 舉報

9#
ID:471632 發表于 2019-4-21 22:21 | 只看該作者
我印象中全自動洗衣機洗滌模式與轉速無關,僅僅與電機通斷時間、電機的正反有關吧!
回復

使用道具 舉報

10#
ID:501862 發表于 2019-4-22 18:06 | 只看該作者
滄浪 發表于 2019-4-21 21:14
樓主最好先自己找下問題或者錯誤,然后再問下,這樣子大家比較容易懂些,你就這么直接貼代碼上來大家也不知 ...

因為我基本不會啥,就學了2個星期。寫的能知道那是錯誤,我知道我的全是錯的。
回復

使用道具 舉報

11#
ID:110606 發表于 2019-4-23 15:38 | 只看該作者
改的差不多了嗎?給你個建議哈,你中斷里面東西太多了,這些也會影響你程序定時時間,最好放到while中去判斷定時時間,如果你改著費勁,我建議你一個模塊一個模塊做,不然錯誤真的不太好弄
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 狠狠亚洲 | 精品一区精品二区 | chengrenzaixian | 国产在线观看不卡一区二区三区 | 成人av网站在线观看 | 国产激情视频在线 | 国产精品激情 | 日本不卡一区 | 99亚洲精品 | 国产美女精品视频 | 精品欧美一区二区三区久久久小说 | 午夜天堂精品久久久久 | 亚洲国产精品一区二区www | 国产一区二 | 日日操操| 欧美亚洲高清 | 欧美成年黄网站色视频 | 国产综合久久久 | 欧美日日日日bbbbb视频 | 日本午夜视频 | 欧美激情国产日韩精品一区18 | 农夫在线精品视频免费观看 | 91视视频在线观看入口直接观看 | 91啪影院 | 天天操 夜夜操 | 久久99精品久久久久久国产越南 | 网站黄色av| 国产91网址| 夜夜骑首页 | 亚洲日本中文 | 超碰520 | 国产成人精品午夜 | 久久这里有精品 | 男女羞羞视频大全 | 91精品综合久久久久久五月天 | 国产精品一区二区久久 | 999免费网站 | 国产精品五区 | 久久综合一区 | 日本不卡高清视频 | 国产精品99视频 |