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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 48724|回復(fù): 101
收起左側(cè)

單片機八層電梯控制系統(tǒng) 仿真圖+源程序+電路原理圖

  [復(fù)制鏈接]
ID:112362 發(fā)表于 2016-4-5 18:43 | 顯示全部樓層 |閱讀模式
電梯仿真圖1.jpg 電梯仿真圖.jpg
單片機八層電梯控制仿真圖(仿真工程文件在51黑本帖附件里面可以下載):

0.png
單片機八層電梯控制電路原理圖(附件里面有ad畫的原理圖的工程文件及其元器件的封裝)

單片機八層電梯控制系統(tǒng)源程序代碼:
  1. #include <reg52.h>                 //調(diào)用單片機頭文件
  2. #define uchar unsigned char  //無符號字符型 宏定義        變量范圍0~255
  3. #define uint  unsigned int         //無符號整型 宏定義        變量范圍0~65535

  4. //數(shù)碼管段選定義       0    1    2    3   4           5        6         7          8           9       
  5. uchar code smg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0xdf,0xdb
  6. //                                           A        B         C          D           E   F        不顯示
  7.                                          };         //斷碼       

  8. uchar dis_smg[8] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8};

  9. bit flag_100ms,flag_1s;       
  10. bit flag_stop = 1;   //用做到了相應(yīng)的樓停下

  11. sbit beep  = P2^6;
  12. sbit xia   = P2^0;
  13. sbit zhong = P2^1;
  14. sbit shang = P2^2;

  15. uchar value2;

  16. sbit led1 = P1^7;          //8個發(fā)光二極管定義
  17. sbit led2 = P1^6;
  18. sbit led3 = P1^5;
  19. sbit led4 = P1^4;
  20. sbit led5 = P1^3;
  21. sbit led6 = P1^2;
  22. sbit led7 = P1^1;
  23. sbit led8 = P1^0;

  24. uchar dt_1;  //1樓電梯標(biāo)志位
  25. uchar dt_2;  //2樓電梯標(biāo)志位
  26. uchar dt_3;  //3樓電梯標(biāo)志位
  27. uchar dt_4;  //4樓電梯標(biāo)志位
  28. uchar dt_5;  //5樓電梯標(biāo)志位
  29. uchar dt_6;  //6樓電梯標(biāo)志位
  30. uchar dt_7;  //7樓電梯標(biāo)志位
  31. uchar dt_8;  //8樓電梯標(biāo)志位

  32. uchar dt_value = 1;  //電梯到哪一層的變量
  33. uchar dt_s_x ;    //電梯上下的標(biāo)志位

  34. /***********************1ms延時函數(shù)*****************************/
  35. void delay_1ms(uint q)
  36. {
  37.         uint i,j;
  38.         for(i=0;i<q;i++)
  39.                 for(j=0;j<120;j++);
  40. }


  41. /********************獨立按鍵程序*****************/
  42. uchar key_can;         //按鍵值

  43. void key()         //獨立按鍵程序
  44. {
  45.         static uchar key_new;
  46.         key_can = 20;                   //按鍵值還原
  47.         P3 |= 0xff;
  48.         if(P3 != 0xff)                //按鍵按下
  49.         {
  50.                 delay_1ms(1);                     //按鍵消抖動
  51.                 if((P3 != 0xff) && (key_new == 1))
  52.                 {                                                //確認是按鍵按下
  53.                         key_new = 0;
  54.                         switch(P3)
  55.                         {
  56.                                 case 0xfe: key_can = 1; break;          //得到按鍵值
  57.                                 case 0xfd: key_can = 2; break;          //得到按鍵值
  58.                                 case 0xfb: key_can = 3; break;          //得到按鍵值
  59.                                 case 0xf7: key_can = 4; break;          //得到按鍵值
  60.                                 case 0xef: key_can = 5; break;          //得到按鍵值
  61.                                 case 0xdf: key_can = 6; break;          //得到按鍵值
  62.                                 case 0xbf: key_can = 7; break;          //得到按鍵值
  63.                                 case 0x7f: key_can = 8; break;          //得到按鍵值
  64.                         }
  65.                 }                       
  66.         }
  67.         else
  68.                 key_new = 1;       
  69. }

  70. void key_with()
  71. {
  72.         if(key_can == 1)
  73.         {
  74.                 led1 = 1;         //點亮發(fā)光二極管
  75.                 dt_1 = 1;         //
  76.         }               
  77.         if(key_can == 2)
  78.         {
  79.                 led2 = 1;         //點亮發(fā)光二極管
  80.                 dt_2 = 1;
  81.         }       
  82.         if(key_can == 3)
  83.         {
  84.                 led3 = 1;        //點亮發(fā)光二極管
  85.                 dt_3 = 1;
  86.         }       
  87.         if(key_can == 4)
  88.         {
  89.                 led4 = 1;        //點亮發(fā)光二極管
  90.                 dt_4 = 1;
  91.         }       
  92.         if(key_can == 5)
  93.         {
  94.                 led5 = 1;        //點亮發(fā)光二極管
  95.                 dt_5 = 1;
  96.         }       
  97.         if(key_can == 6)
  98.         {
  99.                 led6 = 1;        //點亮發(fā)光二極管
  100.                 dt_6 = 1;
  101.         }       
  102.         if(key_can == 7)
  103.         {
  104.                 led7 = 1;       
  105.                 dt_7 = 1;
  106.         }       
  107.         if(key_can == 8)
  108.         {
  109.                 led8 = 1;       
  110.                 dt_8 = 1;
  111.         }       
  112. }
  113. /*********************當(dāng)電梯不動時、判斷是向上、還是向下**********************/
  114. void tiandi_shang_xia()
  115. {
  116.         static uchar value;
  117.         if(dt_s_x == 0)
  118.         {
  119.                
  120.                 flag_stop = 1;
  121.                 if(dt_value == 1)         //電梯在第1層停下不走了
  122.                 {
  123.                         value = dt_2 + dt_3 + dt_4 + dt_5 + dt_6 + dt_7 + dt_8;
  124.                         if(value != 0)
  125.                         {
  126.                                 dt_s_x = 1;   //電梯向上       
  127.                                 shang = 0;          //顯示上
  128.                                 zhong = 0;       
  129.                                 xia = 1;                                        
  130.                         }
  131.                 }                       
  132.                 if(dt_value == 2)         //電梯在第2層停下不走了
  133.                 {
  134.                         value = dt_3 + dt_4 + dt_5 + dt_6 + dt_7 + dt_8;
  135.                         if(value != 0)
  136.                         {
  137.                                 dt_s_x = 1;   //電梯向上走       
  138.                                 shang = 0;          //顯示上
  139.                                 zhong = 0;       
  140.                                 xia = 1;                                        
  141.                         }
  142.                         value = dt_1;
  143.                         if(value != 0)
  144.                         {
  145.                                 dt_s_x = 2;   //電梯向下走       
  146.                                 xia = 0;          //顯示下
  147.                                 zhong = 0;       
  148.                                 shang = 1;                                                
  149.                         }       
  150.                 }
  151.                 if(dt_value == 3)         //電梯在第3層停下不走了
  152.                 {
  153.                         value = dt_4 + dt_5 + dt_6 + dt_7 + dt_8;
  154.                         if(value != 0)
  155.                         {
  156.                                 dt_s_x = 1;   //電梯向上走       
  157.                                 shang = 0;          //顯示上
  158.                                 zhong = 0;       
  159.                                 xia = 1;                                        
  160.                         }
  161.                         value = dt_1 + dt_2;
  162.                         if(value != 0)
  163.                         {
  164.                                 dt_s_x = 2;   //電梯向下走       
  165.                                 xia = 0;          //顯示下
  166.                                 zhong = 0;       
  167.                                 shang = 1;       
  168.                                                                         
  169.                         }       
  170.                 }       
  171.                 if(dt_value == 4)         //電梯在第4層停下不走了
  172.                 {
  173.                         value = + dt_5 + dt_6 + dt_7 + dt_8;
  174.                         if(value != 0)
  175.                         {
  176.                                 dt_s_x = 1;   //電梯向上走       
  177.                                 shang = 0;          //顯示上
  178.                                 zhong = 0;       
  179.                                 xia = 1;                                        
  180.                         }
  181.                         value = dt_1 + dt_2 + dt_3;
  182.                         if(value != 0)
  183.                         {
  184.                                 dt_s_x = 2;   //電梯向下走       
  185.                                 xia = 0;          //顯示下
  186.                                 zhong = 0;       
  187.                                 shang = 1;                                                
  188.                         }       
  189.                 }       
  190.                 if(dt_value == 5)         //電梯在第5層停下不走了
  191.                 {
  192.                         value = dt_6 + dt_7 + dt_8;
  193.                         if(value != 0)
  194.                         {
  195.                                 dt_s_x = 1;   //電梯向上走       
  196.                                 shang = 0;          //顯示上
  197.                                 zhong = 0;
  198.                                 xia = 1;                                                
  199.                         }
  200.                         value = dt_1 + dt_2 + dt_3 + dt_4;
  201.                         if(value != 0)
  202.                         {
  203.                                 dt_s_x = 2;   //電梯向下走       
  204.                                 xia = 0;          //顯示下
  205.                                 zhong = 0;       
  206.                                 shang = 1;                                                
  207.                         }       
  208.                 }       
  209.                 if(dt_value == 6)         //電梯在第6層停下不走了
  210.                 {
  211.                         value =  dt_7 + dt_8;
  212.                         if(value != 0)
  213.                         {
  214.                                 dt_s_x = 1;   //電梯向上走       
  215.                                 shang = 0;          //顯示上
  216.                                 zhong = 0;
  217.                                 xia = 1;                                                
  218.                         }
  219.                         value = dt_1 + dt_2 + dt_3 + dt_4 + dt_5;
  220.                         if(value != 0)
  221.                         {
  222.                                 dt_s_x = 2;   //電梯向下走       
  223.                                 xia = 0;          //顯示下
  224.                                 zhong = 0;       
  225.                                 shang = 1;                                                
  226.                         }       
  227.                 }       
  228.                 if(dt_value == 7)         //電梯在第7層停下不走了
  229.                 {
  230.                         value = dt_8;
  231.                         if(value != 0)
  232.                         {
  233.                                 dt_s_x = 1;   //電梯向上走       
  234.                                 shang = 0;          //顯示上
  235.                                 zhong = 0;       
  236.                                 xia = 1;                                        
  237.                         }
  238.                         value = dt_1 + dt_2 + dt_3 + dt_4 + dt_5 + dt_6;
  239.                         if(value != 0)
  240.                         {
  241.                                 dt_s_x = 2;   //電梯向下走       
  242.                                 xia = 0;          //顯示下
  243.                                 zhong = 0;       
  244.                                 shang = 1;                                                
  245.                         }       
  246.                 }       
  247.                 if(dt_value == 8)          //電梯在第8層停下不走了
  248.                 {
  249.                         value = dt_8;
  250.                         if(value != 0)
  251.                         {
  252.                                 dt_s_x = 1;   //電梯向上走       
  253.                                 shang = 0;          //顯示上
  254.                                 zhong = 0;       
  255.                                 xia = 1;                                        
  256.                         }
  257.                         value = dt_1 + dt_2 + dt_3 + dt_4 + dt_5 + dt_6;
  258.                         if(value != 0)
  259.                         {
  260.                                 dt_s_x = 2;   //電梯向下走       
  261.                                 xia = 0;          //顯示下
  262.                                 zhong = 0;       
  263.                                 shang = 1;                                        
  264.                         }       
  265.                 }       
  266.         }
  267. }

  268. /****************電梯向上、做最后的判斷是否還要繼續(xù)向上****************/
  269. void dt_shang_guan()
  270. {
  271.         uchar value;
  272.         if(dt_s_x == 1)    //電梯向上  做最后的判斷是否還要繼續(xù)向上
  273.         {
  274.                 if(dt_value == 1)        //在第1層
  275.                 {
  276.                         value = dt_2 + dt_3 + dt_4 + dt_5 + dt_6 + dt_7 + dt_8;
  277.                         if(value == 0)         //說明上面沒有人按下
  278.                         {
  279.                                 dt_s_x = 0;  //電梯停下不動了  
  280.                                 shang = 1;                //關(guān)閉上字
  281.                                 zhong = 1;  
  282.                         }else
  283.                                 flag_stop = 1;       
  284.                 }               
  285.                 else if(dt_value == 2)        //在第2層
  286.                 {
  287.                         value = dt_3 + dt_4 + dt_5 + dt_6 + dt_7 + dt_8;
  288.                         if(value == 0)         //說明上面沒有人按下
  289.                         {
  290.                                 dt_s_x = 0;  //電梯停下不動了  
  291.                                 shang = 1;                //關(guān)閉上字
  292.                                 zhong = 1;  
  293.                         }else
  294.                                 flag_stop = 1;       
  295.                 }               
  296.                 else if(dt_value == 3)        //在第3層
  297.                 {
  298.                         value = + dt_6 + dt_7 + dt_8;
  299.                         if(value == 0)         //說明上面沒有人按下
  300.                         {
  301.                                 dt_s_x = 0;  //電梯停下不動了  
  302.                                 shang = 1;                //關(guān)閉上字
  303.                                 zhong = 1;                                         
  304.                         }else
  305.                                 flag_stop = 1;         
  306.                 }               
  307.                 else if(dt_value == 4)        //在第4層
  308.                 {
  309.                         value = dt_5 + dt_6 + dt_7 + dt_8;
  310.                         if(value == 0)         //說明上面沒有人按下
  311.                         {
  312.                                 dt_s_x = 0;  //電梯停下不動了  
  313.                                 shang = 1;                //關(guān)閉上字
  314.                                 zhong = 1;  
  315.                         }else
  316.                                 flag_stop = 1;                
  317.                 }               
  318.                 else if(dt_value == 5)        //在第5層
  319.                 {
  320.                         value = dt_6 + dt_7 + dt_8;
  321.                         if(value == 0)         //說明上面沒有人按下
  322.                         {
  323.                                 dt_s_x = 0;  //電梯停下不動了  
  324.                                 shang = 1;                //關(guān)閉上字
  325.                                 zhong = 1;  
  326.                         }else
  327.                                 flag_stop = 1;               
  328.                 }               
  329.                 else if(dt_value == 6)        //在第6層
  330.                 {
  331.                         value = dt_7 + dt_8;
  332.                         if(value == 0)         //說明上面沒有人按下
  333.             {
  334.                                 dt_s_x = 0;  //電梯停下不動了  
  335.                                 shang = 1;                //關(guān)閉上字
  336.                                 zhong = 1;  
  337.                         }else
  338.                                 flag_stop = 1;                       
  339.                 }       
  340.                 else if(dt_value == 7)        //在第7層
  341.                 {
  342.                         value = dt_8;
  343.                         if(value == 0)         //說明上面沒有人按下
  344.                         {
  345.                                 dt_s_x = 0;  //電梯停下不動了  
  346.                                 shang = 1;                //關(guān)閉上字
  347.                                 zhong = 1;  
  348.                         }else
  349.                                 flag_stop = 1;       
  350.                 }               
  351.                 else if(dt_value == 8)        //在第8層
  352.                 {
  353.                         dt_s_x = 0;  //電梯停下不動了
  354.                         shang = 1;                //關(guān)閉上字
  355.                         zhong = 1;         
  356.                 }               
  357.         }       
  358. }

  359. /****************電梯向下、做最后的判斷是否還要繼續(xù)向下****************/
  360. void dt_xia_guan()
  361. {
  362.         uchar value;
  363.         if(dt_s_x == 2)    //電梯向下  做最后的判斷是否還要繼續(xù)向下
  364.         {
  365.                 if(dt_value == 1)        //在第1層
  366.                 {
  367.                         dt_s_x = 0;  //電梯停下不動了
  368.                         xia = 1;                //關(guān)閉上字
  369.                         zhong = 1;         
  370.                         flag_stop = 1;       
  371.                 }               
  372.                 else if(dt_value == 2)        //在第2層
  373.                 {
  374.                         value = dt_1;
  375.                         if(value == 0)         //說明上面沒有人按下
  376.                         {
  377.                                 dt_s_x = 0;  //電梯停下不動了  
  378.                                 xia = 1;                //關(guān)閉上字
  379.                                 zhong = 1;  
  380.                         }else
  381.                                 flag_stop = 1;       
  382.                 }               
  383.                 else if(dt_value == 3)        //在第3層
  384.                 {
  385.                         value = dt_1 + dt_2;
  386.                         if(value == 0)         //說明上面沒有人按下
  387.                         {
  388.                                 dt_s_x = 0;  //電梯停下不動了  
  389.                                 xia = 1;                //關(guān)閉上字
  390.                                 zhong = 1;                                         
  391.                         }else
  392.                                 flag_stop = 1;         
  393.                 }               
  394.                 else if(dt_value == 4)        //在第4層
  395.                 {
  396.                         value = dt_2 + dt_3;
  397.                         if(value == 0)         //說明上面沒有人按下
  398.                         {
  399.                                 dt_s_x = 0;  //電梯停下不動了  
  400.                                 xia = 1;                //關(guān)閉上字
  401.                                 zhong = 1;  
  402.                         }else
  403.                                 flag_stop = 1;                
  404.                 }               
  405.                 else if(dt_value == 5)        //在第5層
  406.                 {
  407.                         value = dt_1 + dt_2 + dt_4;
  408.                         if(value == 0)         //說明上面沒有人按下
  409.                         {
  410.                                 dt_s_x = 0;  //電梯停下不動了  
  411.                                 xia = 1;                //關(guān)閉上字
  412.                                 zhong = 1;  
  413.                         }else
  414.                                 flag_stop = 1;               
  415.                 }               
  416.                 else if(dt_value == 6)        //在第6層
  417.                 {
  418.                         value = dt_1 + dt_2 + dt_3 + dt_4 + dt_5;
  419.                         if(value == 0)         //說明上面沒有人按下
  420.             {
  421.                                 dt_s_x = 0;  //電梯停下不動了  
  422.                                 xia = 1;                //關(guān)閉上字
  423.                                 zhong = 1;  
  424.                         }else
  425.                                 flag_stop = 1;                       
  426.                 }       
  427.                 else if(dt_value == 7)        //在第7層
  428.                 {
  429.                         value = dt_1 + dt_2  + dt_4 + dt_5+ dt_6;
  430.                         if(value == 0)         //說明上面沒有人按下
  431.                         {
  432.                                 dt_s_x = 0;  //電梯停下不動了  
  433.                                 xia = 1;                //關(guān)閉上字
  434.                                 zhong = 1;  
  435.                         }else
  436.                                 flag_stop = 1;       
  437.                 }               
  438.                 else if(dt_value == 8)        //在第8層
  439.                 {
  440.                         value =   dt_3 + dt_4 + dt_5 + dt_6 + dt_7;
  441.                         if(value == 0)         //說明上面沒有人按下
  442.                         {
  443.                                 dt_s_x = 0;  //電梯停下不動了  
  444.                                 xia = 1;                //關(guān)閉上字
  445.                                 zhong = 1;  
  446.                         }else
  447.                                 flag_stop = 1;       

  448.                        
  449.                 }               
  450.         }               
  451. }

  452. /***********************電梯處理函數(shù)************************/
  453. void td_dis()
  454. {
  455.         uchar value,value1;
  456.         value = dt_1 + dt_2 + dt_3 + dt_4 + dt_5 + dt_6 + dt_7 + dt_8;
  457.         if(value != 0)
  458.         {                   //100ms
  459.                 if(flag_stop == 1)        //到相應(yīng)的樓了  要停下
  460.                 {
  461. /***************************向上走電梯***********************************/       
  462.                         if(dt_s_x != 0)                  //向上走電梯
  463.                         {
  464.                                 value1 ++;
  465.                                 if(value1 >= 10)  //1s
  466.                                 {
  467.                                         value1 = 0;
  468.                                         if(dt_s_x == 1)                  //向上走電梯
  469.                                         {
  470.                                                 dt_value ++;
  471.                                                 shang = 0;                //顯示上字
  472.                                                 zhong = 0;
  473.                                         }
  474.                                         if(dt_s_x == 2)                  //向下走電梯
  475.                                         {
  476.                                                 dt_value --;
  477.                                                 xia = 0;                //顯示下字
  478.                                                 zhong = 0;
  479.                                         }                                       
  480.                                         if(dt_value == 1)           //當(dāng)?shù)搅说谝粚拥臅r候
  481.                                         {
  482.                                                 if(dt_1 == 1)
  483.                                                 {
  484.                                                         led1 = 0;                 //關(guān)閉第一層發(fā)光二極管
  485.                                                         dt_1 = 0;        //清零電機在的標(biāo)志
  486.                                                         flag_stop = 0;   //到停下
  487.                                                         beep = 0;        //打開蜂鳴器
  488.                                                 }                                
  489.                                         }
  490.                                         else if(dt_value == 2)           //當(dāng)?shù)搅说诙䦟拥臅r候
  491.                                         {
  492.                                                 if(dt_2 == 1)
  493.                                                 {
  494.                                                         led2 = 0;                 //關(guān)閉第二層發(fā)光二極管
  495.                                                         dt_2 = 0;        //清零電機在的標(biāo)志
  496.                                                         flag_stop = 0;   //到停下
  497.                                                         beep = 0;        //打開蜂鳴器
  498.                                                 }                                
  499.                                         }
  500.                                         else if(dt_value == 3)           //當(dāng)?shù)搅说?層的時候
  501.                                         {
  502.                                                 if(dt_3 == 1)
  503.                                                 {
  504.                                                         led3 = 0;                 //關(guān)閉第3層發(fā)光二極管
  505.                                                         dt_3 = 0;        //清零電機在的標(biāo)志
  506.                                                         flag_stop = 0;   //到停下
  507.                                                         beep = 0;        //打開蜂鳴器
  508.                                                 }                                
  509.                                         }
  510.                                         else if(dt_value == 4)           //當(dāng)?shù)搅说?層的時候
  511.                                         {
  512.                                                 if(dt_4 == 1)
  513.                                                 {
  514.                                                         led4 = 0;                 //關(guān)閉第4層發(fā)光二極管
  515.                                                         dt_4 = 0;        //清零電機在的標(biāo)志
  516.                                                         flag_stop = 0;   //到停下
  517.                                                         beep = 0;        //打開蜂鳴器
  518.                                                 }                                
  519.                                         }
  520.                                         else if(dt_value == 5)           //當(dāng)?shù)搅说?層的時候
  521.                                         {
  522.                                                 if(dt_5 == 1)
  523.                                                 {
  524.                                                         led5 = 0;                 //關(guān)閉第5層發(fā)光二極管
  525.                                                         dt_5 = 0;        //清零電機在的標(biāo)志
  526.                                                         flag_stop = 0;   //到停下
  527.                                                         beep = 0;        //打開蜂鳴器
  528.                                                 }                                
  529.                                         }
  530.                                         else if(dt_value == 6)           //當(dāng)?shù)搅说?層的時候
  531.                                         {
  532.                                                 if(dt_6 == 1)
  533.                                                 {
  534.                                                         led6 = 0;                 //關(guān)閉第6層發(fā)光二極管
  535.                                                         dt_6 = 0;        //清零電機在的標(biāo)志
  536.                                                         flag_stop = 0;   //到停下
  537.                                                         beep = 0;        //打開蜂鳴器
  538.                                                 }                                
  539.                                         }
  540.                                         else if(dt_value == 7)           //當(dāng)?shù)搅说?層的時候
  541.                                         {
  542.                                                 if(dt_7 == 1)
  543.                                                 {
  544.                                                         led7 = 0;                 //關(guān)閉第7層發(fā)光二極管
  545.                                                         dt_7 = 0;        //清零電機在的標(biāo)志
  546.                                                         flag_stop = 0;   //到停下
  547.                                                         beep = 0;        //打開蜂鳴器
  548.                                                 }                                
  549.                                         }
  550.                                         else if(dt_value == 8)           //當(dāng)?shù)搅说?層的時候
  551.                                         {
  552.                                                 if(dt_8 == 1)
  553.                                                 {
  554.                                                         led8 = 0;                 //關(guān)閉第8層發(fā)光二極管
  555.                                                         dt_8 = 0;        //清零電機在的標(biāo)志
  556.                                                         flag_stop = 0;   //到停下
  557.                                                         beep = 0;        //打開蜂鳴器
  558.                                                 }                                
  559.                                         }
  560.                                 }
  561.                         }               
  562.                 }                                                
  563.         }
  564.         if(flag_stop == 0)
  565.         {
  566.                 value2 ++;
  567.                 if(value2 % 5 == 0)
  568.                 {
  569.                         if(dt_s_x == 1)           //上
  570.                         {
  571.                                 shang = ~shang;
  572.                                 zhong = ~zhong;                               
  573.                         }
  574.                         if(dt_s_x == 2)           //下
  575.                         {
  576.                                 zhong = ~zhong;
  577.                                 xia = ~xia;                               
  578.                         }               
  579.                 }
  580.                 if(value2 >= 10) //1.0s
  581.                 {                       
  582.                         beep = 1;  //關(guān)閉蜂鳴器
  583.                 }
  584.                 if(value2 >= 20)         //100ms*20 = 2秒
  585.                 {
  586.                         value2 = 0;                                
  587.                         dt_shang_guan();  //電梯向上  做最后的判斷是否還要繼續(xù)向上
  588.                         dt_xia_guan();          //電梯向下  做最后的判斷是否還要繼續(xù)向下

  589.                 }
  590.         }       
  591. }


  592. /*************定時器0初始化程序***************/
  593. void time_init()          
  594. {
  595.         EA   = 1;                   //開總中斷
  596.         TMOD = 0X01;          //定時器0、工作方式1
  597.         ET0  = 1;                  //開定時器0中斷
  598.         TR0  = 1;                  //允許定時器0定時
  599. }

  600. /******************主程序**********************/          
  601. void main()
  602. {
  603.         P1 = 0x00;
  604.         P0 = 0X00;           //單片機IO口初始化
  605.         time_init();   //定時器初始化
  606.         while(1)
  607.         {
  608.                 key();                  //按鍵程序
  609.                 if(key_can < 20)
  610.                 {          
  611.                         if(dt_s_x == 0)
  612.                         {
  613.                                 value2 = 0;
  614.                                 flag_stop = 1;
  615.                         }
  616.                         key_with();               
  617.                 }  
  618.                 tiandi_shang_xia();          //當(dāng)電梯不動時、判斷是向上、還是向下
  619.                 P0 = smg_du[dt_value];          //顯示
  620.                 if(flag_100ms  == 1)
  621.                 {
  622.                         flag_100ms = 0;
  623.                         td_dis();                 //電梯處理函數(shù)
  624.                 }
  625.         }
  626. }

  627. /*************定時器0中斷服務(wù)程序***************/
  628. void time0_int() interrupt 1
  629. {       
  630.         static uchar value;
  631.         TH0 = 0x3c;
  632.         TL0 = 0xb0;     // 50ms
  633.         value ++;
  634.         if(value % 2 == 0)
  635.         {
  636.                 flag_100ms = 1 ;
  637.         }
  638. }
復(fù)制代碼

0.png

單片機八層電梯控制系統(tǒng)仿真圖+源程序等全部資料下載 八層電梯控制.rar (932.63 KB, 下載次數(shù): 1103)

評分

參與人數(shù) 10黑幣 +45 收起 理由
紫川君 + 5
qpwoeiruty + 5 很給力!
huster123456 + 5 很給力!
枯干好早 + 5
15942379927 + 4 很給力!
jacknb + 5 很給力!
Halson + 5
lyh一點點 + 4 很給力!
anapple-1106 + 4 很給力!
Plzfollow + 3 很給力!

查看全部評分

回復(fù)

使用道具 舉報

ID:47652 發(fā)表于 2016-4-21 09:24 | 顯示全部樓層
下載看看 51黑有你更精彩!!
回復(fù)

使用道具 舉報

ID:92231 發(fā)表于 2016-9-12 08:41 來自手機 | 顯示全部樓層
這么好的例程,為啥沒有人頂呢?
回復(fù)

使用道具 舉報

ID:138282 發(fā)表于 2016-9-12 12:10 來自手機 | 顯示全部樓層
學(xué)習(xí)了,頂起來才看到,謝謝樓主
回復(fù)

使用道具 舉報

ID:141634 發(fā)表于 2016-10-7 23:46 | 顯示全部樓層
贊一個,挺牛的
回復(fù)

使用道具 舉報

ID:145888 發(fā)表于 2016-11-3 11:39 | 顯示全部樓層
有沒有說明書
回復(fù)

使用道具 舉報

ID:48140 發(fā)表于 2016-11-8 17:00 來自手機 | 顯示全部樓層
我會四層電梯,再學(xué)八層的謝謝你
回復(fù)

使用道具 舉報

ID:157782 發(fā)表于 2017-1-1 14:21 | 顯示全部樓層
不錯的設(shè)計
回復(fù)

使用道具 舉報

ID:157782 發(fā)表于 2017-1-1 14:22 | 顯示全部樓層
看看參考下
回復(fù)

使用道具 舉報

ID:153199 發(fā)表于 2017-1-24 16:51 | 顯示全部樓層
不錯的帖子,很值得收藏。
回復(fù)

使用道具 舉報

ID:76600 發(fā)表于 2017-2-8 15:50 | 顯示全部樓層
主程序看不太懂
回復(fù)

使用道具 舉報

ID:164149 發(fā)表于 2017-2-10 16:18 | 顯示全部樓層
學(xué)習(xí)了,頂起來才看到,謝謝樓主
回復(fù)

使用道具 舉報

ID:47652 發(fā)表于 2017-2-13 22:24 | 顯示全部樓層
下載來看看,謝謝分享!
回復(fù)

使用道具 舉報

ID:47652 發(fā)表于 2017-2-14 08:30 | 顯示全部樓層
有平層信號反饋嗎?
回復(fù)

使用道具 舉報

ID:96326 發(fā)表于 2017-2-14 10:40 | 顯示全部樓層
學(xué)習(xí)了,感謝樓主分享!
回復(fù)

使用道具 舉報

ID:130231 發(fā)表于 2017-3-18 14:09 | 顯示全部樓層
不錯!感謝你的分享
回復(fù)

使用道具 舉報

ID:183232 發(fā)表于 2017-3-25 12:53 | 顯示全部樓層
趕緊學(xué)起來
感謝樓主分享~
回復(fù)

使用道具 舉報

ID:32348 發(fā)表于 2017-3-27 20:54 | 顯示全部樓層
下載看看 51黑有你更精彩!!
回復(fù)

使用道具 舉報

ID:110278 發(fā)表于 2017-3-30 10:22 | 顯示全部樓層
可以試試看。。。
回復(fù)

使用道具 舉報

ID:185671 發(fā)表于 2017-4-2 21:59 | 顯示全部樓層
怎么不對,運行不對,哪里錯了
回復(fù)

使用道具 舉報

ID:80346 發(fā)表于 2017-4-10 19:10 | 顯示全部樓層
好厲害
回復(fù)

使用道具 舉報

ID:189678 發(fā)表于 2017-4-14 21:53 | 顯示全部樓層
下載看看
回復(fù)

使用道具 舉報

ID:189678 發(fā)表于 2017-4-14 22:23 | 顯示全部樓層
為什么沒人頂
回復(fù)

使用道具 舉報

ID:190503 發(fā)表于 2017-5-5 11:49 | 顯示全部樓層
可不可以把單片機八層電梯控制系統(tǒng) 仿真圖+源程序+電路原理圖的程序流程圖發(fā)給我一下,我想學(xué)習(xí)一下這個的編程。謝謝
回復(fù)

使用道具 舉報

ID:200799 發(fā)表于 2017-5-16 00:10 | 顯示全部樓層
怎么沒有電機模塊
回復(fù)

使用道具 舉報

ID:195394 發(fā)表于 2017-5-16 17:10 | 顯示全部樓層
可以仿真使用嗎?
回復(fù)

使用道具 舉報

ID:197067 發(fā)表于 2017-5-16 18:37 | 顯示全部樓層
翻來看看
回復(fù)

使用道具 舉報

ID:204205 發(fā)表于 2017-5-24 10:42 | 顯示全部樓層
下載看看可以看嗎
回復(fù)

使用道具 舉報

ID:204286 發(fā)表于 2017-5-24 14:37 | 顯示全部樓層
感謝樓主
回復(fù)

使用道具 舉報

ID:210140 發(fā)表于 2017-6-11 16:18 | 顯示全部樓層
謝謝樓主!!!!
回復(fù)

使用道具 舉報

ID:210140 發(fā)表于 2017-6-11 16:32 | 顯示全部樓層
趕緊學(xué)起來
感謝樓主分享~
回復(fù)

使用道具 舉報

ID:210250 發(fā)表于 2017-6-11 21:38 | 顯示全部樓層
哈哈,新手,謝謝樓主
回復(fù)

使用道具 舉報

ID:155995 發(fā)表于 2017-6-16 23:10 | 顯示全部樓層
給力,下載來參考下
回復(fù)

使用道具 舉報

ID:58937 發(fā)表于 2017-10-2 10:47 | 顯示全部樓層
謝謝你的分享 下載研究
回復(fù)

使用道具 舉報

ID:216625 發(fā)表于 2017-10-4 17:22 | 顯示全部樓層
謝謝樓主無私奉獻
回復(fù)

使用道具 舉報

ID:247365 發(fā)表于 2017-11-8 19:38 | 顯示全部樓層
為啥rp1那里有問題
回復(fù)

使用道具 舉報

ID:47652 發(fā)表于 2017-11-12 10:04 | 顯示全部樓層
好像少了轎廂開門這一環(huán)節(jié)
回復(fù)

使用道具 舉報

ID:248209 發(fā)表于 2017-11-12 15:57 | 顯示全部樓層
挺不錯的,先仿真一下!!!
回復(fù)

使用道具 舉報

ID:248209 發(fā)表于 2017-11-12 16:58 | 顯示全部樓層
為什麼仿真圖上沒有電梯上行和下降的指示燈?貌似源程序上有,我用源程序生成hex文件后在isis上運行發(fā)現(xiàn)數(shù)碼管顯示亂碼?   這是為什么?   求指點!!!
回復(fù)

使用道具 舉報

ID:251142 發(fā)表于 2017-11-19 18:35 | 顯示全部樓層
很給力
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品一级 | 成人在线一区二区三区 | 91在线精品视频 | 久久久蜜桃 | 91免费版在线观看 | 国产精品久久久亚洲 | 欧美 日韩 国产 在线 | 亚洲国产午夜 | 久久精品a| 亚洲 欧美 另类 综合 偷拍 | 九九热这里只有精品在线观看 | 国内精品伊人久久久久网站 | 午夜精品久久久 | 懂色av色香蕉一区二区蜜桃 | 欧美激情国产精品 | 国家aaa的一级看片 h片在线看 | 精品国产欧美一区二区三区成人 | 国产精品久久网 | 日本免费黄色 | 成人在线播放 | 日韩三区| 国产999精品久久久久久 | 午夜精品在线 | av毛片免费| 91精品国产综合久久婷婷香蕉 | 午夜视频一区二区 | 91网站视频在线观看 | 色在线看 | 欧美做暖暖视频 | 欧美视频在线免费 | 欧美黑人一级爽快片淫片高清 | 日韩欧美在线不卡 | 久久久久久免费看 | 午夜羞羞| 欧美成人免费在线 | 日韩视频a | 欧美中文字幕一区二区三区亚洲 | 一区二区三区在线观看视频 | 久草日韩 | 一级aaaa毛片 | 国产欧美在线 |