找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 9190|回復: 18
收起左側(cè)

51單片機洗衣機proteus仿真與源碼設(shè)計(功能很全)

  [復制鏈接]
ID:320586 發(fā)表于 2018-5-2 17:04 | 顯示全部樓層 |閱讀模式
分享我的單片機課設(shè)給51hei的朋友們,一個功能很全的模擬洗衣機仿真與源碼,是51單片機控制的,有強洗按鈕,弱洗按鈕,標準洗按鈕,甩干按鈕.
液位傳感器,排水閥按鈕等功能一應(yīng)俱全.

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png

還帶各種指示燈:
0.png

0.png

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

  51. void delay1(int s)
  52.    {
  53.    int i;
  54.    for(;s>0;s--)
  55.    for(i=0;i<65;i++);
  56.    }

  57. void delay(uint i)
  58.    {
  59.    uchar j;
  60.    for(i;i>0;i--)
  61.    for(j=255;j>0;j--);
  62.    }

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

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

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

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

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

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

  219. void jin()
  220.     {
  221.             p30=0;
  222.             p31=0;
  223.             jin_ledon;
  224.              while(hk1);
  225.             if(hk1==0)
  226.             jin_ledoff;
  227.      }

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

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


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

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

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


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

  370.          if(sg==0)
  371.         {
  372.                 delay(10);
  373.                 if(sg==0)
  374.                 {
  375.                    sgan1();
  376.                 }
  377.         }
  378. }
  379.         return 0;
  380. }  


  381. void time0() interrupt 1 using 1
  382.    {  
  383.      int_time ++;        //每來一次中斷,中斷次數(shù)int_time自加1
  384.     if(int_time==20)   //夠20次中斷,即1秒鐘進行一次檢測結(jié)果采樣
  385. ……………………

  386. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

上面的程序我仿真的時候 沒有效果 求幫忙修改:
有問題的代碼,求大神提供修改思路.7z (47.98 KB, 下載次數(shù): 382)

另外大家可以參考這個,這個基本實現(xiàn)了,但是還是不完美:http://www.torrancerestoration.com/bbs/dpj-75453-1.html

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:308395 發(fā)表于 2018-5-3 09:49 | 顯示全部樓層
不知道是什么原理,但是一運行仿真,再按按鈕,電機一直不轉(zhuǎn)
回復

使用道具 舉報

ID:512559 發(fā)表于 2019-4-15 15:46 | 顯示全部樓層
很是實用  可以做洗衣機了
回復

使用道具 舉報

ID:547331 發(fā)表于 2019-5-26 08:47 | 顯示全部樓層
有具體的分析嘛
回復

使用道具 舉報

ID:576648 發(fā)表于 2019-7-2 19:19 | 顯示全部樓層
真的是太厲害了
回復

使用道具 舉報

ID:678006 發(fā)表于 2019-12-30 23:35 | 顯示全部樓層
很是實用  可以做洗衣機了
回復

使用道具 舉報

ID:667778 發(fā)表于 2019-12-31 08:47 | 顯示全部樓層
樓主代碼能加解釋嗎
回復

使用道具 舉報

ID:566697 發(fā)表于 2020-3-18 11:25 | 顯示全部樓層

樓主代碼能加解釋嗎 +1
回復

使用道具 舉報

ID:312929 發(fā)表于 2020-5-13 17:42 | 顯示全部樓層
洗衣程序方案一和方案二有問題,我已經(jīng)修改了,有需要的聯(lián)系我
回復

使用道具 舉報

ID:774548 發(fā)表于 2020-6-10 10:50 | 顯示全部樓層
1979759100Ls 發(fā)表于 2020-5-13 17:42
洗衣程序方案一和方案二有問題,我已經(jīng)修改了,有需要的聯(lián)系我

你好你好,想要洗衣機程序呢
回復

使用道具 舉報

ID:773367 發(fā)表于 2020-6-10 12:50 | 顯示全部樓層
代碼復制,出錯了
回復

使用道具 舉報

ID:774548 發(fā)表于 2020-6-10 13:52 | 顯示全部樓層

是不是篇幅不夠,代碼好像沒完整
回復

使用道具 舉報

ID:772875 發(fā)表于 2020-6-11 10:53 | 顯示全部樓層
能問一下這個要怎么操作才能讓他正常運行呢,謝謝
回復

使用道具 舉報

ID:795032 發(fā)表于 2020-7-8 12:44 | 顯示全部樓層
1979759100Ls 發(fā)表于 2020-5-13 17:42
洗衣程序方案一和方案二有問題,我已經(jīng)修改了,有需要的聯(lián)系我

你好,求修改后的程序
回復

使用道具 舉報

ID:795032 發(fā)表于 2020-7-8 13:10 | 顯示全部樓層
運行了一下,甩干能運行,其他模式下電機不運轉(zhuǎn),有人有解決方法嗎
回復

使用道具 舉報

ID:645807 發(fā)表于 2020-7-8 17:23 | 顯示全部樓層
好像那個洗的時候 那個電機不會轉(zhuǎn)
回復

使用道具 舉報

ID:312929 發(fā)表于 2020-7-21 09:14 | 顯示全部樓層
aaaaaaa111 發(fā)表于 2020-6-10 10:50
你好你好,想要洗衣機程序呢

       
#include <REG52.H>
#define uchar unsigned char
#define uint  unsigned int
#define qiang_ledon qiang_led=1;
#define qiang_ledoff qiang_led=0;
#define biao_ledon biao_led=1;
#define biao_ledoff biao_led=0;
#define ruo_ledon ruo_led=1;
#define ruo_ledoff ruo_led=0;
#define piao_ledon piao_led=1;
#define piao_ledoff piao_led=0;
#define sgan_ledon sgan_led=1;
#define sgan_ledoff sgan_led=0;
#define jin_ledon jin_led=1;
#define jin_ledoff jin_led=0;
#define pai_ledon pai_led=1;
#define pai_ledoff pai_led=0;
unsigned char code Tab[11]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //數(shù)碼管顯示0~9的段碼表
unsigned char int_time;        //記錄中斷次數(shù)
unsigned char second;        //儲存秒
uint t=0,tt=0;
   sbit k1=P0^0;
   sbit k2=P0^1;
   sbit k3=P0^2;
   sbit sg=P0^3;
   sbit hk1=P0^4;
   sbit hk2=P0^5;
   sbit ledon=P0^7;
   sbit qiang_led=P2^0;
   sbit biao_led=P2^1;
   sbit ruo_led=P2^2;
   sbit piao_led=P2^3;
   sbit sgan_led=P2^4;
   sbit jin_led=P2^5;
   sbit pai_led=P2^6;
   sbit p30=P3^0;
   sbit p31=P3^1;
   sbit beepon=P2^7;
   sbit sm1=P3^6;
   sbit sm2=P3^7;
void delay2(void)
   {
  unsigned char m;
  for(m=0;m<200;m++)
        ;
   }

void delay1(int s)
   {
   int i;
   for(;s>0;s--)
   for(i=0;i<65;i++);
   }

void delay(uint i)
   {
   uchar j;
   for(i;i>0;i--)
   for(j=255;j>0;j--);
   }

void DisplaySecond(unsigned char k)
{
   
   sm1=0;        //P2.6引腳輸出低電平, DS6點亮
   P1=Tab[k/10];          //顯示十位
     delay2();
     delay2();
   sm1=1;
   sm2=0;       //P2.7引腳輸出低電平, DS7點亮
   P1=Tab[k%10];         //顯示個位
     delay2();
     delay2();
   P3=0xff;     //關(guān)閉所有數(shù)碼管
   P1=1;        //顯示個位
     delay2();
     delay2();
}
          
void beep()                                                         //報警
   {
          p30=0;
    p31=0;
           t=0;
        while(1)
        {
          beepon^=1;
      delay(300);
      if(t>=80) break;
        }
        beepon=0;
        biao_led=0;
    }
          
void f_qiang()                                           //強洗衣
    {         
         qiang_ledon;
         t=0;
         tt=0;       
     int_time=0;
     second=00;
         while(1)
    {       
          if(tt>=400) break;
      t=0;
          while(t<80&&tt<=400)
          {       
            p31=0;
            p30=1;        //正轉(zhuǎn) 4s
        DisplaySecond(second);
            }
          t=0;          //反轉(zhuǎn) 4s       
          while(t<80&&tt<=400)
          {
            p30=0;
            p31=1;
            DisplaySecond(second);
            }
     }
          p30=0;
          p31=0;          
     }

void f_biao()                                                           //標準洗衣
        {
          qiang_led=0;
      biao_led=1;
          t=0;
          tt=0;
      int_time=0;
      second=00;
         while(1)
     {
           if(tt>=400) break;
           t=0;
          while(t<60&&tt<=400)
           {       
          p31=0;
                  p30=1;        //正轉(zhuǎn)3s
          DisplaySecond(second);
       }

                t=0;          //反轉(zhuǎn)3s
          while(t<60&&tt<=400)
       {
              p30=0;
                  p31=1;
                  DisplaySecond(second);
                }
       }
       p30=0;
           p31=0;
         }

void f_ruo()                //弱洗衣
    {
          qiang_led=0;
          biao_led=0;
          ruo_led=1;
          t=0;
          tt=0;
      int_time=0;
       second=00;
                while(1)
       {
                    if(tt>=400) break;
                 t=0;
               while(t<40&&tt<=400)
           {        p31=0;
                        p30=1;        //正轉(zhuǎn)2s
                DisplaySecond(second);
                }
             t=0;          //反轉(zhuǎn) 2s
               while(t<40&&tt<=400)
            {   p30=0;
                        p31=1;
                        DisplaySecond(second);
                      }
         }
                p30=0;
            p31=0;
       }

void f_piao()                                                                  //漂洗
        {
           qiang_ledoff;
           biao_ledoff;
           piao_ledon;
           t=0;
           tt=0;
       int_time=0;
       second=00;
                 while(1)
          {
                      if(tt>=400) break;
                   t=0;
                 while(t<40&&tt<=400)
               {        p31=0;
                        p30=1;        //正轉(zhuǎn)2s
                    DisplaySecond(second);
                   }
                   t=0;          //反轉(zhuǎn)2s
                 while(t<40&&tt<=400)
               {    p30=0;
                            p31=1;
                             DisplaySecond(second);
                       }
             }
          p30=0;
      p31=0;
          piao_ledoff;
          }

void pai_leds()                                                                           //排水
     {
            p30=0;
            p31=0;
               pai_led=1;        //排水閥燈亮 等待霍爾開關(guān)2
            while(hk2);
            if(hk2==0)  //如果閉合
            pai_led=0;        //排水燈滅
     }

void jin()                                                                                  //進水
    {
            p30=0;
            p31=0;
            jin_ledon;
            while(hk1);
            if(hk1==0)
            jin_ledoff;
     }

void sgan()                                                                                           //甩干
    {
            sgan_ledon;         //甩干燈亮
            t=0;
        int_time=0;
        second=00;
             while(t<=400)
            {       
                            p31=0;
                        p30=1;       
                DisplaySecond(second);
                 }
        sgan_ledoff;
    }

void sgan1()
    {
           sgan_ledon;
           t=0;
       int_time=0;
       second=00;
             while(t<=400)
            {       
                           p31=0;
                   p30=1;       
               DisplaySecond(second);
                 }
        piao_ledoff;
        sgan_ledoff;
        beep();
            t=401;
    }


void f_an1()
   {  
        qiang_ledon; //方案1燈亮
        jin();  //進入強洗
        f_qiang();         //循環(huán)20S
        delay1(4000);//延時4s


        pai_leds();
        delay1(1000); //延時1S 進入甩干
        sgan(); //甩干20s
        sgan_ledoff;


        jin();
        delay1(1000); //延時1S 進入漂洗
        f_piao();  //循環(huán)20S
        sgan_ledoff;
        piao_ledoff;
        pai_leds();
        delay1(1000); //延時1S 進入甩干
        sgan1();//最終甩干20S
        delay(500);//延時       
        beep();
   }

void f_an2()
   {  
        biao_ledon; //方案2燈亮
        jin();


        f_ruo();  //循環(huán)20S         
        delay1(4000); //延時4S
        ruo_ledoff;
        pai_leds();
        delay1(1000); //延時1S 進入甩干
        sgan(); //甩干20s
        ruo_ledoff;
        piao_ledoff;
        jin();
        delay1(1000); //延時1S 進入漂洗
        f_piao();  //循環(huán)20S
        sgan_led=0;
        pai_leds();
        delay1(1000); //延時1S 進入甩干
        sgan();//最終甩干20s
        delay(500);//延時5s
        piao_led=0;
        beep();
   }

void f_an3()
  {  
        ruo_led=1; //方案3燈亮
        jin();
        f_ruo();  //循環(huán)20S
        ruo_ledoff;
        pai_leds();
        delay1(1000); //延時1S 進入甩干
        sgan(); //甩干20S
        ruo_ledoff;
        piao_ledoff;
        jin();
        delay1(1000); //延時1S 進入漂洗
        f_piao();  //循環(huán)20S
        sgan_led=0;
        pai_leds();
        delay1(1000); //延時1S 進入甩干
        sgan();//最終甩干20s
        delay(500);//延時5s
        piao_led=0;
        p30=0;
        beep();
   }


int main(void)
{         
  TMOD=0x01;       //方式1 16位計數(shù)器
  TH0=-50000/256;   //設(shè)定初值
  TL0=-50000%256;
  EA=1;               //開總中斷
  ET0=1;             //開定時器0中斷
  TR0=1;             //啟動定時器0
  P2=0;
  int_time=0;     //中斷次數(shù)初始化
  second=00;           //秒初始化
         while(1)
    {       
          if(k1==0)
        {         
                delay(10);
                if(k1==0)
            {
                        f_an1();
                }
        }
        if(k2==0)
        {
                delay(10);
                if(k2==0)
                {
                        f_an2();
                }
        }
        if(k3==0)
        {
            delay(10);
           if(k3==0)
            {
                    f_an3();
            }
        }

        if(sg==0)
        {
                delay(10);
                if(sg==0)
                {
                   sgan1();
                }
        }
}
        return 0;
}  


void time0() interrupt 1 using 1
   {  
     int_time ++;        //每來一次中斷,中斷次數(shù)int_time自加1
    if(int_time==20)   //夠20次中斷,即1秒鐘進行一次檢測結(jié)果采樣
      {
        int_time=0;    //中斷次數(shù)清0
        second++;    //秒加1
      }                   
   TH0=-50000/256;   //50000  =50ms中斷一次
   TL0=-50000%256;
   t++;
   tt++;
   }

回復

使用道具 舉報

ID:84745 發(fā)表于 2020-7-22 21:37 來自手機 | 顯示全部樓層
新手不懂那按鍵接電阻至5v,按下不是短路了嗎
回復

使用道具 舉報

ID:919394 發(fā)表于 2021-5-17 09:35 | 顯示全部樓層
sbit ledon=P0^7;定義P0.7有什么用嗎,仿真上沒看到連有電路,可以解釋一下嗎
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表