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

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

QQ登錄

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

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

51單片機(jī)控制洗衣機(jī)的Proteus電路仿真+源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
大家好, 今天給大家共享個(gè)基于51單片機(jī)控制洗衣機(jī)的Proteus電路仿真的資料  
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)源程序如下:
  1. #include <REG52.H>
  2. #define uchar unsigned char
  3. #define uint  unsigned int
  4. #define qiang_ledon qiang_led=1;
  5. #define qiang_ledoff qiang_led=0;
  6. #define biao_ledon biao_led=1;
  7. #define biao_ledoff biao_led=0;
  8. #define ruo_ledon ruo_led=1;
  9. #define ruo_ledoff ruo_led=0;
  10. #define piao_ledon piao_led=1;
  11. #define piao_ledoff piao_led=0;
  12. #define sgan_ledon sgan_led=1;
  13. #define sgan_ledoff sgan_led=0;
  14. #define jin_ledon jin_led=1;
  15. #define jin_ledoff jin_led=0;
  16. #define pai_ledon pai_led=1;
  17. #define pai_ledoff pai_led=0;
  18. unsigned char code Tab[11]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //數(shù)碼管顯示0~9的段碼表
  19. unsigned char int_time;        //記錄中斷次數(shù)
  20. unsigned char second;        //儲(chǔ)存秒
  21. uint t=0,tt=0;
  22.    sbit k1=P0^0;
  23.    sbit k2=P0^1;
  24.    sbit k3=P0^2;
  25.    sbit sg=P0^3;
  26.    sbit hk1=P0^4;
  27.    sbit hk2=P0^5;
  28.    sbit ledon=P0^7;
  29.    sbit qiang_led=P2^0;
  30.    sbit biao_led=P2^1;
  31.    sbit ruo_led=P2^2;
  32.    sbit piao_led=P2^3;
  33.    sbit sgan_led=P2^4;
  34.    sbit jin_led=P2^5;
  35.    sbit pai_led=P2^6;
  36.    sbit p30=P3^0;
  37.    sbit p31=P3^1;
  38.    sbit beepon=P2^7;
  39.    sbit sm1=P3^6;
  40.    sbit sm2=P3^7;
  41. void delay2(void)
  42.    {
  43.   unsigned char m;
  44.   for(m=0;m<200;m++)
  45.         ;
  46.    }

  47. void delay1(int s)
  48.    {
  49.    int i;
  50.    for(;s>0;s--)
  51.    for(i=0;i<65;i++);
  52.    }

  53. void delay(uint i)
  54.    {
  55.    uchar j;
  56.    for(i;i>0;i--)
  57.    for(j=255;j>0;j--);
  58.    }

  59. void DisplaySecond(unsigned char k)
  60. {
  61.    
  62.    sm1=0;        //P2.6引腳輸出低電平, DS6點(diǎn)亮
  63.    P1=Tab[k/10];          //顯示十位
  64.      delay2();
  65.      delay2();
  66.    sm1=1;
  67.    sm2=0;       //P2.7引腳輸出低電平, DS7點(diǎn)亮
  68.    P1=Tab[k%10];         //顯示個(gè)位
  69.      delay2();
  70.      delay2();
  71.    P3=0xff;     //關(guān)閉所有數(shù)碼管
  72.    P1=1;        //顯示個(gè)位
  73.      delay2();
  74.      delay2();
  75. }
  76.           
  77. void beep()
  78.    {
  79.           p30=0;
  80.     p31=0;
  81.            t=0;
  82.         while(1)
  83.         {
  84.           beepon^=1;
  85.       delay(300);
  86.       if(t>=80) break;
  87.         }
  88.         beepon=0;
  89.         biao_led=0;
  90.     }
  91.           
  92. void f_qiang()
  93.     {         
  94.          qiang_ledon;
  95.          t=0;
  96.          tt=0;       
  97.      int_time=0;
  98.      second=00;
  99.          while(1)
  100.     {       
  101.           if(tt>=400) break;
  102.       t=0;
  103.           while(t<80&&tt<=400)
  104.           {       
  105.             p31=0;
  106.             p30=1;        //正轉(zhuǎn) 4s
  107.         DisplaySecond(second);
  108.             }
  109.           t=0;          //反轉(zhuǎn) 4s       
  110.           while(t<80&&tt<=400)
  111.           {
  112.             p30=0;
  113.             p31=1;
  114.             DisplaySecond(second);
  115.             }
  116.      }
  117.           p30=0;
  118.           p31=0;          
  119.      }

  120. void f_biao()
  121.         {
  122.           qiang_led=0;
  123.       biao_led=1;
  124.           t=0;
  125.           tt=0;
  126.       int_time=0;
  127.       second=00;
  128.          while(1)
  129.      {
  130.            if(tt>=400) break;
  131.            t=0;
  132.           while(t<60&&tt<=400)
  133.            {       
  134.           p31=0;
  135.                   p30=1;        //正轉(zhuǎn)3s
  136.           DisplaySecond(second);
  137.        }

  138.                 t=0;          //反轉(zhuǎn)3s
  139.           while(t<60&&tt<=400)
  140.        {
  141.               p30=0;
  142.                   p31=1;
  143.                   DisplaySecond(second);
  144.                 }
  145.        }
  146.        p30=0;
  147.            p31=0;
  148.          }

  149. void f_ruo()
  150.     {
  151.           qiang_led=0;
  152.           biao_led=0;
  153.           ruo_led=1;
  154.           t=0;
  155.           tt=0;
  156.       int_time=0;
  157.        second=00;
  158.                 while(1)
  159.        {
  160.                     if(tt>=400) break;
  161.                  t=0;
  162.                while(t<40&&tt<=400)
  163.            {        p31=0;
  164.                         p30=1;        //正轉(zhuǎn)2s
  165.                 DisplaySecond(second);
  166.                 }
  167.              t=0;          //反轉(zhuǎn) 2s
  168.                while(t<40&&tt<=400)
  169.             {   p30=0;
  170.                         p31=1;
  171.                         DisplaySecond(second);
  172.                       }
  173.          }
  174.                 p30=0;
  175.             p31=0;
  176.        }

  177. void f_piao()
  178.         {
  179.            qiang_ledoff;
  180.            biao_ledoff;
  181.            piao_ledon;
  182.            t=0;
  183.            tt=0;
  184.        int_time=0;
  185.        second=00;
  186.                  while(1)
  187.           {
  188.                       if(tt>=400) break;
  189.                    t=0;
  190.                  while(t<40&&tt<=400)
  191.                {        p31=0;
  192.                         p30=1;        //正轉(zhuǎn)2s
  193.                     DisplaySecond(second);
  194.                    }
  195.                    t=0;          //反轉(zhuǎn)2s
  196.                  while(t<40&&tt<=400)
  197.                {    p30=0;
  198.                             p31=1;
  199.                              DisplaySecond(second);
  200.                        }
  201.              }
  202.           p30=0;
  203.       p31=0;
  204.           piao_ledoff;
  205.           }

  206. void pai_leds()
  207.      {
  208.             p30=0;
  209.             p31=0;
  210.                pai_led=1;        //排水閥燈亮 等待霍爾開(kāi)關(guān)2
  211.             while(hk2);
  212.             if(hk2==0)  //如果閉合
  213.             pai_led=0;        //排水燈滅
  214.      }

  215. void jin()
  216.     {
  217.             p30=0;
  218.             p31=0;
  219.             jin_ledon;
  220.             while(hk1);
  221.             if(hk1==0)
  222.             jin_ledoff;
  223.      }

  224. void sgan()
  225.     {
  226.             sgan_ledon;         //甩干燈亮
  227.             t=0;
  228.         int_time=0;
  229.         second=00;
  230.              while(t<=400)
  231.             {       
  232.                             p31=0;
  233.                         p30=1;       
  234.                 DisplaySecond(second);
  235.                  }
  236.         sgan_ledoff;
  237.     }

  238. void sgan1()
  239.     {
  240.            sgan_ledon;
  241.            t=0;
  242.        int_time=0;
  243.        second=00;
  244.              while(t<=400)
  245.             {       
  246.                            p31=0;
  247.                    p30=1;       
  248.                DisplaySecond(second);
  249.                  }
  250.         piao_ledoff;
  251.         sgan_ledoff;
  252.         beep();
  253.             t=401;
  254.     }


  255. void f_an1()
  256.    {  
  257.         qiang_ledon; //方案1燈亮
  258.         jin();  //進(jìn)入強(qiáng)洗
  259.         f_qiang();         //循環(huán)20S
  260.         delay1(4000);//延時(shí)4s
  261.         f_biao();  //循環(huán)20S
  262.         delay1(4000);//延時(shí)4s
  263.         f_ruo();  //循環(huán)20S
  264.         ruo_ledoff;       
  265.         pai_leds();
  266.         delay1(1000); //延時(shí)1S 進(jìn)入甩干
  267.         sgan(); //甩干20s
  268.         sgan_ledoff;
  269.         ruo_ledoff;
  270.         piao_ledoff;
  271.         jin();
  272.         delay1(1000); //延時(shí)1S 進(jìn)入漂洗
  273.         f_piao();  //循環(huán)20S
  274.         sgan_ledoff;
  275.         piao_ledoff;
  276.         pai_leds();
  277.         delay1(1000); //延時(shí)1S 進(jìn)入甩干
  278.         sgan1();//最終甩干20S
  279.         delay(500);//延時(shí)       
  280.         beep();
  281.    }

  282. void f_an2()
  283.    {  
  284.         biao_ledon; //方案1燈亮
  285.         jin();
  286.         f_biao();  //循環(huán)20S
  287.         delay1(4000); //延時(shí)4S
  288.         f_ruo();  //循環(huán)20S
  289.         ruo_ledoff;
  290.         pai_leds();
  291.         delay1(1000); //延時(shí)1S 進(jìn)入甩干
  292.         sgan(); //甩干20s
  293.         ruo_ledoff;
  294.         piao_ledoff;
  295.         jin();
  296.         delay1(1000); //延時(shí)1S 進(jìn)入漂洗
  297.         f_piao();  //循環(huán)20S
  298.         sgan_led=0;
  299.         pai_leds();
  300.         delay1(1000); //延時(shí)1S 進(jìn)入甩干
  301.         sgan();//最終甩干20s
  302.         delay(500);//延時(shí)5s
  303.         piao_led=0;
  304.         beep();
  305.    }

  306. void f_an3()
  307.   {  
  308.         ruo_led=1; //方案1燈亮
  309.         jin();
  310.         f_ruo();  //循環(huán)20S
  311.         ruo_ledoff;
  312.         pai_leds();
  313.         delay1(1000); //延時(shí)1S 進(jìn)入甩干
  314.         sgan(); //甩干20S
  315.         ruo_ledoff;
  316.         piao_ledoff;
  317.         jin();
  318.         delay1(1000); //延時(shí)1S 進(jìn)入漂洗
  319.         f_piao();  //循環(huán)20S
  320.         sgan_led=0;
  321.         pai_leds();
  322.         delay1(1000); //延時(shí)1S 進(jìn)入甩干
  323.         sgan();//最終甩干20s
  324.         delay(500);//延時(shí)5s
  325.         piao_led=0;
  326.         p30=0;
  327.         beep();
  328.    }


  329. int main(void)
  330. {         
  331.   TMOD=0x01;       //方式1 16位計(jì)數(shù)器
  332.   TH0=-50000/256;   //設(shè)定初值
  333.   TL0=-50000%256;
  334.   EA=1;               //開(kāi)總中斷
  335.   ET0=1;             //開(kāi)定時(shí)器0中斷
  336.   TR0=1;             //啟動(dòng)定時(shí)器0
  337.   P2=0;
  338.   int_time=0;     //中斷次數(shù)初始化
  339.   second=00;           //秒初始化
  340.          while(1)
  341.     {       
  342.           if(k1==0)
  343.         {         
  344.                 delay(10);
  345.                 if(k1==0)
  346.             {
  347.                         f_an1();
  348.                 }
  349.         }
  350.         if(k2==0)
  351.         {
  352.                 delay(10);
  353.                 if(k2==0)
  354.                 {
  355.                         f_an2();
  356.                 }
  357.         }
  358.         if(k3==0)
  359.         {
  360.             delay(10);
  361.            if(k3==0)
  362.             {
  363.                     f_an3();
  364.             }
  365.         }

  366.         if(sg==0)
  367.         {
  368.                 delay(10);
  369.                 if(sg==0)
  370.                 {
  371.                    sgan1();
  372.                 }
  373.         }
  374. }
  375.         return 0;
  376. }  


  377. void time0() interrupt 1 using 1
  378.    {  
  379.      int_time ++;        //每來(lái)一次中斷,中斷次數(shù)int_time自加1
  380.     if(int_time==20)   //夠20次中斷,即1秒鐘進(jìn)行一次檢測(cè)結(jié)果采樣
  381.       {
  382.         int_time=0;    //中斷次數(shù)清0
  383.         second++;    //秒加1
  384.       }                   
  385.    TH0=-50000/256;   //50000  =50ms中斷一次
  386.    TL0=-50000%256;
  387.    t++;
  388.    tt++;
  389.    }
復(fù)制代碼


所有資料51hei提供下載:
洗衣機(jī)仿真.rar (360.92 KB, 下載次數(shù): 162)


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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久一区二区三区 | 日本五月婷婷 | 国产精品久久九九 | www九色 | 九九福利 | 中文在线一区二区 | 久久综合九色综合欧美狠狠 | 黄色成人在线网站 | 亚洲97| 久久蜜桃av一区二区天堂 | 日韩精品一区二区三区高清免费 | 日韩欧美中文 | 高清成人免费视频 | 欧美性生活网 | 91社影院在线观看 | 视频在线亚洲 | 日本一本在线 | 久久久久国产精品 | 亚洲性人人天天夜夜摸 | 亚洲一区在线免费观看 | 在线免费观看成人 | 国产一区久久 | 91 在线 | 欧美一区二区三区久久精品视 | 91原创视频在线观看 | 亚洲天堂中文字幕 | 精精国产视频 | 一区二区三区国产精品 | 一级毛片黄片 | 日韩欧美久久 | 成人亚洲视频 | 亚洲激情在线观看 | 91九色porny首页最多播放 | 欧美 日韩 国产 成人 在线 | 亚洲高清一区二区三区 | 日韩精品一区二区三区 | 国产1区在线 | 日本爱爱| 91久久久久久久久 | 毛片a级毛片免费播放100 | 久久精品中文字幕 |