找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6050|回复: 13
打印 上一主题 下一主题
收起左侧

C51单片机模拟8层电梯源码+PCB图+实制制作

  [复制链接]
跳转到指定楼层
楼主
制作出来的实物图如下:


pcb图:


单片机程序源码:
  1. #include <reg52.h>              
  2. #define uchar unsigned char
  3. #define uint  unsigned int        

  4. //数码管段选定义       0    1    2    3   4           5          6           7          8                 
  5. uchar code smg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80};         

  6. bit flag_100ms,flag_1s;        
  7. bit flag_stop = 1;   //用做到了相应的楼停下

  8. sbit beep  = P2^7;
  9. sbit xia   = P2^0;
  10. sbit zhong = P2^1;
  11. sbit shang = P2^2;

  12. uchar value2;
  13. uchar flag_start ;     //启动标志位  1为起动步进电机 否则关闭电机
  14. uchar flag_z_f;        //正反标志位  0为顺时钟 1为逆时史上转

  15. sbit led8 = P1^7;          //8个发光二极管定义
  16. sbit led7 = P1^6;
  17. sbit led6 = P1^5;
  18. sbit led5 = P1^4;
  19. sbit led4 = P1^3;
  20. sbit led3 = P1^2;
  21. sbit led2 = P1^1;
  22. sbit led1 = P1^0;

  23. sbit dj1 = P2^6;   //电机IO口定义
  24. sbit dj2 = P2^5;   //电机IO口定义
  25. sbit dj3 = P2^4;   //电机IO口定义
  26. sbit dj4 = P2^3;   //电机IO口定义


  27. uchar dt_1;  //1楼电梯标志位
  28. uchar dt_2;  //2楼电梯标志位
  29. uchar dt_3;  //3楼电梯标志位
  30. uchar dt_4;  //4楼电梯标志位
  31. uchar dt_5;  //5楼电梯标志位
  32. uchar dt_6;  //6楼电梯标志位
  33. uchar dt_7;  //7楼电梯标志位
  34. uchar dt_8;  //8楼电梯标志位

  35. uchar dt_value = 1;  //电梯到哪一层的变量
  36. uchar dt_s_x ;    //电梯上下的标志位
  37. /***********************1ms延时函数*****************************/
  38. void delay_1ms(uint q)
  39. {
  40.         uint i,j;
  41.         for(i=0;i<q;i++)
  42.                 for(j=0;j<120;j++);
  43. }
  44. /********************独立按键程序*****************/
  45. uchar key_can;         //按键值
  46. void key()         //独立按键程序
  47. {
  48.         static uchar key_new;
  49.         key_can = 20;                   //按键值还原
  50.         P3 |= 0xff;
  51.         if(P3 != 0xff)                //按键按下
  52.         {
  53.                 delay_1ms(1);                     //按键消抖动
  54.                 if((P3 != 0xff) && (key_new == 1))
  55.                 {                                                //确认是按键按下
  56.                         key_new = 0;
  57.                         switch(P3)
  58.                         {
  59.                                 case 0xfe: key_can = 1; break;          //得到按键值
  60.                                 case 0xfd: key_can = 2; break;          //得到按键值
  61.                                 case 0xfb: key_can = 3; break;          //得到按键值
  62.                                 case 0xf7: key_can = 4; break;          //得到按键值
  63.                                 case 0xef: key_can = 5; break;          //得到按键值
  64.                                 case 0xdf: key_can = 6; break;          //得到按键值
  65.                                 case 0xbf: key_can = 7; break;          //得到按键值
  66.                                 case 0x7f: key_can = 8; break;          //得到按键值
  67.                         }
  68.                 }                        
  69.         }
  70.         else
  71.         key_new = 1;        
  72. }

  73. void key_with()
  74. {
  75.         if(key_can == 1)
  76.         {
  77.                         led1 = 0;         //点亮发光二极管
  78.                         dt_1 = 1;         //
  79.         }
  80.         if(key_can == 2)
  81.         {

  82.                         led2 = 0;         //点亮发光二极管
  83.                         dt_2 = 1;

  84.         }        
  85.         if(key_can == 3)
  86.         {

  87.                         led3 = 0;        //点亮发光二极管
  88.                         dt_3 = 1;

  89.         }        
  90.         if(key_can == 4)
  91.         {

  92.                         led4 = 0;        //点亮发光二极管
  93.                         dt_4 = 1;

  94.         }        
  95.         if(key_can == 5)
  96.         {

  97.                         led5 = 0;        //点亮发光二极管
  98.                         dt_5 = 1;

  99.         }        
  100.         if(key_can == 6)
  101.         {

  102.                         led6 = 0;        //点亮发光二极管
  103.                         dt_6 = 1;
  104.         }        
  105.         if(key_can == 7)
  106.         {
  107.                         led7 = 0;        
  108.                         dt_7 = 1;
  109.         }        
  110.         if(key_can == 8)
  111.         {

  112.                         led8 = 0;        
  113.                         dt_8 = 1;
  114.         }        
  115. }
  116. /*********************当电梯不动时、判断是向上、还是向下**********************/
  117. void tiandi_shang_xia()
  118. {
  119.         static uchar value;
  120.         if(dt_s_x == 0)
  121.         {
  122.                 flag_stop = 1;
  123.                
  124.                 if(dt_value == 1)         //电梯在第1层停下不走了
  125.                 {
  126.                         value = dt_2 + dt_3 + dt_4 + dt_5 + dt_6 + dt_7 + dt_8;
  127.                         if(value != 0)
  128.                         {
  129.                                 dt_s_x = 1;   //电梯向上        
  130.                                 shang = 0;          //显示上
  131.                                 zhong = 0;        
  132.                                 xia = 1;                                         
  133.                         }
  134.                 }                        
  135.                 if(dt_value == 2)         //电梯在第2层停下不走了
  136.                 {
  137.                         value = dt_3 + dt_4 + dt_5 + dt_6 + dt_7 + dt_8;
  138.                         if(value != 0)
  139.                         {
  140.                                 dt_s_x = 1;   //电梯向上走        
  141.                                 shang = 0;          //显示上
  142.                                 zhong = 0;        
  143.                                 xia = 1;                                         
  144.                         }
  145.                         value = dt_1;
  146.                         if(value != 0)
  147.                         {
  148.                                 dt_s_x = 2;   //电梯向下走        
  149.                                 xia = 0;          //显示下
  150.                                 zhong = 0;        
  151.                                 shang = 1;                                                
  152.                         }        
  153.                 }
  154.                 if(dt_value == 3)         //电梯在第3层停下不走了
  155.                 {
  156.                         value = dt_4 + dt_5 + dt_6 + dt_7 + dt_8;
  157.                         if(value != 0)
  158.                         {
  159.                                 dt_s_x = 1;   //电梯向上走        
  160.                                 shang = 0;          //显示上
  161.                                 zhong = 0;        
  162.                                 xia = 1;                                         
  163.                         }
  164.                         value = dt_1 + dt_2;
  165.                         if(value != 0)
  166.                         {
  167.                                 dt_s_x = 2;   //电梯向下走        
  168.                                 xia = 0;          //显示下
  169.                                 zhong = 0;        
  170.                                 shang = 1;        
  171.                                                                         
  172.                         }        
  173.                 }        
  174.                 if(dt_value == 4)         //电梯在第4层停下不走了
  175.                 {
  176.                         value = + dt_5 + dt_6 + dt_7 + dt_8;
  177.                         if(value != 0)
  178.                         {
  179.                                 dt_s_x = 1;   //电梯向上走        
  180.                                 shang = 0;          //显示上
  181.                                 zhong = 0;        
  182.                                 xia = 1;                                         
  183.                         }
  184.                         value = dt_1 + dt_2 + dt_3;
  185.                         if(value != 0)
  186.                         {
  187.                                 dt_s_x = 2;   //电梯向下走        
  188.                                 xia = 0;          //显示下
  189.                                 zhong = 0;        
  190.                                 shang = 1;                                                
  191.                         }        
  192.                 }        
  193.                 if(dt_value == 5)         //电梯在第5层停下不走了
  194.                 {
  195.                         value = dt_6 + dt_7 + dt_8;
  196.                         if(value != 0)
  197.                         {
  198.                                 dt_s_x = 1;   //电梯向上走        
  199.                                 shang = 0;          //显示上
  200.                                 zhong = 0;
  201.                                 xia = 1;                                                
  202.                         }
  203.                         value = dt_1 + dt_2 + dt_3 + dt_4;
  204.                         if(value != 0)
  205.                         {
  206.                                 dt_s_x = 2;   //电梯向下走        
  207.                                 xia = 0;          //显示下
  208.                                 zhong = 0;        
  209.                                 shang = 1;                                                
  210.                         }        
  211.                 }        
  212.                 if(dt_value == 6)         //电梯在第6层停下不走了
  213.                 {
  214.                         value =  dt_7 + dt_8;
  215.                         if(value != 0)
  216.                         {
  217.                                 dt_s_x = 1;   //电梯向上走        
  218.                                 shang = 0;          //显示上
  219.                                 zhong = 0;
  220.                                 xia = 1;                                                
  221.                         }
  222.                         value = dt_1 + dt_2 + dt_3 + dt_4 + dt_5;
  223.                         if(value != 0)
  224.                         {
  225.                                 dt_s_x = 2;   //电梯向下走        
  226.                                 xia = 0;          //显示下
  227.                                 zhong = 0;        
  228.                                 shang = 1;                                                
  229.                         }        
  230.                 }        
  231.                 if(dt_value == 7)         //电梯在第7层停下不走了
  232.                 {
  233.                         value = dt_8;
  234.                         if(value != 0)
  235.                         {
  236.                                 dt_s_x = 1;   //电梯向上走        
  237.                                 shang = 0;          //显示上
  238.                                 zhong = 0;        
  239.                                 xia = 1;                                         
  240.                         }
  241.                         value = dt_1 + dt_2 + dt_3 + dt_4 + dt_5 + dt_6;
  242.                         if(value != 0)
  243.                         {
  244.                                 dt_s_x = 2;   //电梯向下走        
  245.                                 xia = 0;          //显示下
  246.                                 zhong = 0;        
  247.                                 shang = 1;                                                
  248.                         }        
  249.                 }        
  250.                 if(dt_value == 8)          //电梯在第8层停下不走了  ,只能向下
  251.                 {
  252.                         value = dt_1 + dt_2 + dt_3 + dt_4 + dt_5 + dt_6 + dt_7;
  253.                         if(value != 0)
  254.                         {
  255.                                 dt_s_x = 2;   //电梯向下走        
  256.                                 xia = 0;          //显示下
  257.                                 zhong = 0;        
  258.                                 shang = 1;                                         
  259.                         }        
  260.                 }        
  261.                
  262.                
  263.                
  264.                 if(dt_s_x == 1)        
  265.                 {                          
  266.                         flag_start = 1 ;     //运行
  267.                         flag_z_f = 0;        //向上
  268.                 }
  269.                 if(dt_s_x == 2)        
  270.                 {                          
  271.                         flag_start = 1 ;     //运行
  272.                         flag_z_f = 1;        //向下
  273.                 }
  274.                 if(dt_s_x == 0)                                 
  275.                 {
  276.                         flag_start = 0 ;     //停下
  277.                         flag_z_f = 1;        //
  278.                 }
  279.         }
  280. }

  281. /****************电梯向上、做最后的判断是否还要继续向上****************/
  282. void dt_shang_guan()
  283. {
  284.         uchar value;
  285.         if(dt_s_x == 1)    //电梯向上  做最后的判断是否还要继续向上
  286.         {
  287.                 if(dt_value == 1)        //在第1层
  288.                 {
  289.                         value = dt_2 + dt_3 + dt_4 + dt_5 + dt_6 + dt_7 + dt_8;
  290.                         if(value == 0)         //说明上面没有人按下
  291.                         {
  292.                                 dt_s_x = 0;  //电梯停下不动了  
  293.                                 shang = 1;                //关闭上字
  294.                                 zhong = 1;  
  295.                         }else
  296.                                 flag_stop = 1;        
  297.                 }               
  298.                 else if(dt_value == 2)        //在第2层
  299.                 {
  300.                         value = dt_3 + dt_4 + dt_5 + dt_6 + dt_7 + dt_8;
  301.                         if(value == 0)         //说明上面没有人按下
  302.                         {
  303.                                 dt_s_x = 0;  //电梯停下不动了  
  304.                                 shang = 1;                //关闭上字
  305.                                 zhong = 1;  
  306.                         }else
  307.                                 flag_stop = 1;        
  308.                 }               
  309.                 else if(dt_value == 3)        //在第3层
  310.                 {
  311.                         value = + dt_6 + dt_7 + dt_8;
  312.                         if(value == 0)         //说明上面没有人按下
  313.                         {
  314.                                 dt_s_x = 0;  //电梯停下不动了  
  315.                                 shang = 1;                //关闭上字
  316.                                 zhong = 1;                                          
  317.                         }else
  318.                                 flag_stop = 1;         
  319.                 }               
  320.                 else if(dt_value == 4)        //在第4层
  321.                 {
  322.                         value = dt_5 + dt_6 + dt_7 + dt_8;
  323.                         if(value == 0)         //说明上面没有人按下
  324.                         {
  325.                                 dt_s_x = 0;  //电梯停下不动了  
  326.                                 shang = 1;                //关闭上字
  327.                                 zhong = 1;  
  328.                         }else
  329.                                 flag_stop = 1;                 
  330.                 }               
  331.                 else if(dt_value == 5)        //在第5层
  332.                 {
  333.                         value = dt_6 + dt_7 + dt_8;
  334.                         if(value == 0)         //说明上面没有人按下
  335.                         {
  336.                                 dt_s_x = 0;  //电梯停下不动了  
  337.                                 shang = 1;                //关闭上字
  338.                                 zhong = 1;  
  339.                         }else
  340.                                 flag_stop = 1;               
  341.                 }               
  342.                 else if(dt_value == 6)        //在第6层
  343.                 {
  344.                         value = dt_7 + dt_8;
  345.                         if(value == 0)         //说明上面没有人按下
  346.             {
  347.                                 dt_s_x = 0;  //电梯停下不动了  
  348.                                 shang = 1;                //关闭上字
  349.                                 zhong = 1;  
  350.                         }else
  351.                                 flag_stop = 1;                        
  352.                 }        
  353.                 else if(dt_value == 7)        //在第7层
  354.                 {
  355.                         value = dt_8;
  356.                         if(value == 0)         //说明上面没有人按下
  357.                         {
  358.                                 dt_s_x = 0;  //电梯停下不动了  
  359.                                 shang = 1;                //关闭上字
  360.                                 zhong = 1;  
  361.                         }else
  362.                                 flag_stop = 1;        
  363.                 }               
  364.                 else if(dt_value == 8)        //在第8层
  365.                 {
  366.                         dt_s_x = 0;  //电梯停下不动了
  367.                         shang = 1;                //关闭上字
  368.                         zhong = 1;         
  369.                 }               
  370.         }        
  371. }

  372. /****************电梯向下、做最后的判断是否还要继续向下****************/
  373. void dt_xia_guan()
  374. {
  375.         uchar value;
  376.         if(dt_s_x == 2)    //电梯向下  做最后的判断是否还要继续向下
  377.         {
  378.                 if(dt_value == 1)        //在第1层
  379.                 {
  380.                         dt_s_x = 0;  //电梯停下不动了
  381.                         xia = 1;                //关闭下字
  382.                         zhong = 1;         
  383.                         flag_stop = 1;        
  384.                 }               
  385.                 else if(dt_value == 2)        //在第2层
  386.                 {
  387.                         value = dt_1;
  388.                         if(value == 0)         //说明上面没有人按下
  389.                         {
  390.                                 dt_s_x = 0;  //电梯停下不动了  
  391.                                 xia = 1;                //关闭下字
  392.                                 zhong = 1;  
  393.                         }else
  394.                                 flag_stop = 1;        
  395.                 }               
  396.                 else if(dt_value == 3)        //在第3层
  397.                 {
  398.                         value = dt_1 + dt_2;
  399.                         if(value == 0)         //说明上面没有人按下
  400.                         {
  401.                                 dt_s_x = 0;  //电梯停下不动了  
  402.                                 xia = 1;                //关闭下字
  403.                                 zhong = 1;                                          
  404.                         }else
  405.                                 flag_stop = 1;         
  406.                 }               
  407.                 else if(dt_value == 4)        //在第4层
  408.                 {
  409.                         value = dt_2 + dt_3;
  410.                         if(value == 0)         //说明上面没有人按下
  411.                         {
  412.                                 dt_s_x = 0;  //电梯停下不动了  
  413.                                 xia = 1;                //关闭下字
  414.                                 zhong = 1;  
  415.                         }else
  416.                                 flag_stop = 1;                 
  417.                 }               
  418.                 else if(dt_value == 5)        //在第5层
  419.                 {
  420.                         value = dt_1 + dt_2 + dt_4;
  421.                         if(value == 0)         //说明上面没有人按下
  422.                         {
  423.                                 dt_s_x = 0;  //电梯停下不动了  
  424.                                 xia = 1;                //关闭下字
  425.                                 zhong = 1;  
  426.                         }else
  427.                                 flag_stop = 1;               
  428.                 }               
  429.                 else if(dt_value == 6)        //在第6层
  430.                 {
  431.                         value = dt_1 + dt_2 + dt_3 + dt_4 + dt_5;
  432.                         if(value == 0)         //说明上面没有人按下
  433.             {
  434.                                 dt_s_x = 0;  //电梯停下不动了  
  435.                                 xia = 1;                //关闭下字
  436.                                 zhong = 1;  
  437.                         }else
  438.                                 flag_stop = 1;                        
  439.                 }        
  440.                 else if(dt_value == 7)        //在第7层
  441.                 {
  442.                         value = dt_1 + dt_2  + dt_4 + dt_5+ dt_6;
  443.                         if(value == 0)         //说明上面没有人按下
  444.                         {
  445.                                 dt_s_x = 0;  //电梯停下不动了  
  446.                                 xia = 1;                //关闭下字
  447.                                 zhong = 1;  
  448.                         }else
  449.                                 flag_stop = 1;        
  450.                 }               
  451.                 else if(dt_value == 8)        //在第8层
  452.                 {
  453.                         value =   dt_3 + dt_4 + dt_5 + dt_6 + dt_7;
  454.                         if(value == 0)         //说明上面没有人按下
  455.                         {
  456.                                 dt_s_x = 0;  //电梯停下不动了  
  457.                                 xia = 1;                //关闭下字
  458.                                 zhong = 1;  
  459.                         }else
  460.                                 flag_stop = 1;        
  461.                 }               
  462.         }               
  463. }

  464. /***********************电梯处理函数************************/
  465. void td_dis()
  466. {
  467.         uchar value,value1;
  468.         value = dt_1 + dt_2 + dt_3 + dt_4 + dt_5 + dt_6 + dt_7 + dt_8;
  469.         if(value != 0)
  470.         {                   //100ms
  471.                 if(flag_stop == 1)        //到相应的楼了  要停下
  472.                 {
  473. /***************************向上走电梯***********************************/        
  474.                         if(dt_s_x != 0)                  //向上走电梯
  475.                         {
  476.                                 value1 ++;
  477.                                 if(value1 >= 10)  //1s
  478.                                 {
  479.                                         value1 = 0;
  480.                                         if(dt_s_x == 1)                  //向上走电梯
  481.                                         {
  482.                                                 dt_value ++;
  483.                                                 shang = 0;                //显示上字
  484.                                                 zhong = 0;
  485.                                         }
  486.                                         if(dt_s_x == 2)                  //向下走电梯
  487.                                         {
  488.                                                 dt_value --;
  489.                                                 xia = 0;                //显示下字
  490.                                                 zhong = 0;
  491.                                         }                                       
  492.                                         if(dt_value == 1)           //当到了第一层的时候
  493.                                         {
  494.                                                 if(dt_1 == 1)
  495.                                                 {
  496.                                                         led1 = 1;                     //关闭第一层发光二极管
  497.                                                         dt_1 = 0;        //清零电机在的标志
  498.                                                         flag_stop = 0;   //到停下
  499.                                                         beep = 0;        //打开蜂鸣器
  500.                                                 }                                 
  501.                                         }
  502.                                         else if(dt_value == 2)           //当到了第二层的时候
  503.                                         {
  504.                                                 if(dt_2 == 1)
  505.                                                 {
  506.                                                         led2 = 1;                 //关闭第二层发光二极管
  507.                                                         dt_2 = 0;        //清零电机在的标志
  508.                                                         flag_stop = 0;   //到停下
  509.                                                         beep = 0;        //打开蜂鸣器
  510.                                                 }                                 
  511.                                         }
  512.                                         else if(dt_value == 3)           //当到了第3层的时候
  513.                                         {
  514.                                                 if(dt_3 == 1)
  515.                                                 {
  516.                                                         led3 = 1;                 //关闭第3层发光二极管
  517.                                                         dt_3 = 0;        //清零电机在的标志
  518.                                                         flag_stop = 0;   //到停下
  519.                                                         beep = 0;        //打开蜂鸣器
  520.                                                 }                                 
  521.                                         }
  522.                                         else if(dt_value == 4)           //当到了第4层的时候
  523.                                         {
  524.                                                 if(dt_4 == 1)
  525.                                                 {
  526.                                                         led4 = 1;                 //关闭第4层发光二极管
  527.                                                         dt_4 = 0;        //清零电机在的标志
  528.                                                         flag_stop = 0;   //到停下
  529.                                                         beep = 0;        //打开蜂鸣器
  530.                                                 }                                 
  531.                                         }
  532.                                         else if(dt_value == 5)           //当到了第5层的时候
  533.                                         {
  534.                                                 if(dt_5 == 1)
  535.                                                 {
  536.                                                         led5 = 1;                 //关闭第5层发光二极管
  537.                                                         dt_5 = 0;        //清零电机在的标志
  538.                                                         flag_stop = 0;   //到停下
  539.                                                         beep = 0;        //打开蜂鸣器
  540.                                                 }                                 
  541.                                         }
  542.                                         else if(dt_value == 6)           //当到了第6层的时候
  543.                                         {
  544.                                                 if(dt_6 == 1)
  545.                                                 {
  546.                                                         led6 = 1;                 //关闭第6层发光二极管
  547.                                                         dt_6 = 0;        //清零电机在的标志
  548.                                                         flag_stop = 0;   //到停下
  549.                                                         beep = 0;        //打开蜂鸣器
  550.                                                 }                                 
  551.                                         }
  552.                                         else if(dt_value == 7)           //当到了第7层的时候
  553.                                         {
  554.                                                 if(dt_7 == 1)
  555.                                                 {
  556.                                                         led7 = 1;                 //关闭第7层发光二极管
  557.                                                         dt_7 = 0;        //清零电机在的标志
  558.                                                         flag_stop = 0;   //到停下
  559.                                                         beep = 0;        //打开蜂鸣器
  560.                                                 }                                 
  561.                                         }
  562.                                         else if(dt_value == 8)           //当到了第8层的时候
  563.                                         {
  564.                                                 if(dt_8 == 1)
  565.                                                 {
  566.                                                         led8 = 1;                 //关闭第8层发光二极管
  567.                                                         dt_8 = 0;        //清零电机在的标志
  568.                                                         flag_stop = 0;   //到停下
  569.                                                         beep = 0;        //打开蜂鸣器
  570.                                                 }                                 
  571.                                         }
  572.                                 }
  573.                         }               
  574.                 }                                                
  575.         }
  576.         if(flag_stop == 0)
  577.         {
  578.                 value2 ++;
  579.                 if(value2 % 5 == 0)
  580.                 {
  581.                         if(dt_s_x == 1)           //上
  582.                         {
  583.                                 shang = ~shang;
  584.                                 zhong = ~zhong;                                
  585.                         }
  586.                         if(dt_s_x == 2)           //下
  587.                         {
  588.                                 zhong = ~zhong;
  589.                                 xia = ~xia;                                
  590.                         }               
  591.                 }
  592.                 if(value2 >= 10) //1.0s
  593.                 {                        
  594.                         beep = 1;  //关闭蜂鸣器
  595.                 }
  596.                 if(value2 >= 20)
  597.                 {
  598.                         value2 = 0;                                 
  599.                         dt_shang_guan();  //电梯向上  做最后的判断是否还要继续向上
  600.                         dt_xia_guan();          //电梯向下  做最后的判断是否还要继续向下
  601.                 }
  602.         }        
  603. }


  604. /*************定时器0初始化程序***************/
  605. void time_init()         
  606. {
  607.         EA= 1;                   //开总中断
  608.         TMOD = 0x11;          //定时器1,0、工作方式1
  609.         ET0  =ET1= 1;                  //开定时器0,1中断
  610.         TR0  = 1;        TR1=0;          //允许定时器0定时
  611. }

  612. /******************主程序**********************/           
  613. void main()
  614. {
  615.         time_init();   //定时器初始化
  616.         while(1)
  617.         {
  618.                 key();                  //按键程序
  619.                 if(key_can < 20)
  620.                 {         
  621.                         if(dt_s_x == 0)
  622.                         {
  623.                                 value2 = 0;
  624.                                 flag_stop = 1;
  625.                         }
  626.                         key_with();               
  627.                 }  
  628.                 P0 = smg_du[dt_value];          //显示
  629.                 tiandi_shang_xia();          //当电梯不动时、判断是向上、还是向下
  630.                 if(flag_100ms  == 1)
  631.                 {
  632.                         flag_100ms = 0;
  633.                         td_dis();                          //电梯处理函数   
  634. …………
  635. …………
  636. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

全部资料51hei下载地址:
单片机程序.zip (54.6 KB, 下载次数: 192)


评分

参与人数 1黑币 +100 收起 理由
admin + 100 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏7 分享淘帖 顶2 踩
回复

使用道具 举报

沙发
ID:424598 发表于 2018-11-26 20:10 | 只看该作者
这设定太不合理,上传附件时,浏览器卡死,关掉重开上传附件,发现多了一个,删除重复的附件提示黑币-4!
回复

使用道具 举报

板凳
ID:1 发表于 2018-11-27 04:15 | 只看该作者
什么浏览器?是不是附件超20M了?
回复

使用道具 举报

地板
ID:424598 发表于 2018-11-27 06:45 | 只看该作者
admin 发表于 2018-11-27 04:15
什么浏览器?是不是附件超20M了?

没有超过20M,我自己浏览器的问题,我是说,为什么删除附件还要扣黑币?
回复

使用道具 举报

5#
ID:433907 发表于 2018-11-27 10:38 | 只看该作者
兄弟,请问你的电路图是哪个文档


回复

使用道具 举报

6#
ID:121496 发表于 2018-11-27 10:49 | 只看该作者
謝謝您分享~這麼好,這麼完整的資料~
回复

使用道具 举报

7#
ID:433907 发表于 2018-11-27 11:22 | 只看该作者
请问有Proteus电路仿真图吗
回复

使用道具 举报

8#
ID:433907 发表于 2018-11-27 11:46 | 只看该作者
我刚刚发的消息为啥给我删了,我只是问问这个帖子的压缩包里哪个是Proteus仿真图
回复

使用道具 举报

9#
ID:424598 发表于 2018-11-27 14:22 来自手机 | 只看该作者
kxp1997 发表于 2018-11-27 11:46
我刚刚发的消息为啥给我删了,我只是问问这个帖子的压缩包里哪个是Proteus仿真图

没有仿真图,我淘宝上花59买的。学完了,所以分享出来。
回复

使用道具 举报

10#
ID:367198 发表于 2019-6-3 14:54 | 只看该作者
有原理图吗?
回复

使用道具 举报

11#
ID:505886 发表于 2019-11-21 23:26 | 只看该作者
兄弟,有原理图吗?非常感谢!
回复

使用道具 举报

12#
ID:743028 发表于 2020-5-9 01:21 | 只看该作者
nice,谢谢了
回复

使用道具 举报

13#
ID:404156 发表于 2020-5-25 16:07 | 只看该作者
谢谢分享
回复

使用道具 举报

14#
ID:765460 发表于 2020-6-15 21:42 | 只看该作者
这是用什么型号的电机
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表