找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机8层电梯源程序

[复制链接]
跳转到指定楼层
楼主
ID:161768 发表于 2017-5-4 01:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一个单片机8层电梯模拟系统源程序:
  1. #include <reg52.h>                 //调用单片机头文件
  2. #define uchar unsigned char  //无符号字符型 宏定义        变量范围0~255
  3. #define uint  unsigned int         //无符号整型 宏定义        变量范围0~65535

  4. //数码管段选定义       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;   //用做到了相应的楼停下

  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个发光二极管定义
  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楼电梯标志位
  25. uchar dt_2;  //2楼电梯标志位
  26. uchar dt_3;  //3楼电梯标志位
  27. uchar dt_4;  //4楼电梯标志位
  28. uchar dt_5;  //5楼电梯标志位
  29. uchar dt_6;  //6楼电梯标志位
  30. uchar dt_7;  //7楼电梯标志位
  31. uchar dt_8;  //8楼电梯标志位

  32. uchar dt_value = 1;  //电梯到哪一层的变量
  33. uchar dt_s_x ;    //电梯上下的标志位

  34. /***********************1ms延时函数*****************************/
  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;         //点亮发光二极管
  75.                 dt_1 = 1;         //
  76.         }               
  77.         if(key_can == 2)
  78.         {
  79.                 led2 = 1;         //点亮发光二极管
  80.                 dt_2 = 1;
  81.         }        
  82.         if(key_can == 3)
  83.         {
  84.                 led3 = 1;        //点亮发光二极管
  85.                 dt_3 = 1;
  86.         }        
  87.         if(key_can == 4)
  88.         {
  89.                 led4 = 1;        //点亮发光二极管
  90.                 dt_4 = 1;
  91.         }        
  92.         if(key_can == 5)
  93.         {
  94.                 led5 = 1;        //点亮发光二极管
  95.                 dt_5 = 1;
  96.         }        
  97.         if(key_can == 6)
  98.         {
  99.                 led6 = 1;        //点亮发光二极管
  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. /*********************当电梯不动时、判断是向上、还是向下**********************/
  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. /****************电梯向上、做最后的判断是否还要继续向上****************/
  269. void dt_shang_guan()
  270. {
  271.         uchar value;
  272.         if(dt_s_x == 1)    //电梯向上  做最后的判断是否还要继续向上
  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;                //关闭上字
  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;                //关闭上字
  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;                //关闭上字
  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;                //关闭上字
  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;                //关闭上字
  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;                //关闭上字
  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;                //关闭上字
  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;                //关闭上字
  355.                         zhong = 1;         
  356.                 }               
  357.         }        
  358. }

  359. /****************电梯向下、做最后的判断是否还要继续向下****************/
  360. void dt_xia_guan()
  361. {
  362.         uchar value;
  363.         if(dt_s_x == 2)    //电梯向下  做最后的判断是否还要继续向下
  364.         {
  365.                 if(dt_value == 1)        //在第1层
  366.                 {
  367.                         dt_s_x = 0;  //电梯停下不动了
  368.                         xia = 1;                //关闭上字
  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;                //关闭上字
  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;                //关闭上字
  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;                //关闭上字
  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;                //关闭上字
  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;                //关闭上字
  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;                //关闭上字
  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;                //关闭上字
  445.                                 zhong = 1;  
  446.                         }else
  447.                                 flag_stop = 1;        

  448.                         
  449.                 }               
  450.         }               
  451. }

  452. /***********************电梯处理函数************************/
  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)        //到相应的楼了  要停下
  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)           //当到了第一层的时候
  481.                                         {
  482.                                                 if(dt_1 == 1)
  483.                                                 {
  484.                                                         led1 = 0;                 //关闭第一层发光二极管
  485.                                                         dt_1 = 0;        //清零电机在的标志
  486.                                                         flag_stop = 0;   //到停下
  487.                                                         beep = 0;        //打开蜂鸣器
  488.                                                 }                                 
  489.                                         }
  490.                                         else if(dt_value == 2)           //当到了第二层的时候
  491.                                         {
  492.                                                 if(dt_2 == 1)
  493.                                                 {
  494.                                                         led2 = 0;                 //关闭第二层发光二极管
  495.                                                         dt_2 = 0;        //清零电机在的标志
  496.                                                         flag_stop = 0;   //到停下
  497.                                                         beep = 0;        //打开蜂鸣器
  498.                                                 }                                 
  499.                                         }
  500.                                         else if(dt_value == 3)           //当到了第3层的时候
  501.                                         {
  502.                                                 if(dt_3 == 1)
  503.                                                 {
  504.                                                         led3 = 0;                 //关闭第3层发光二极管
  505.                                                         dt_3 = 0;        //清零电机在的标志
  506.                                                         flag_stop = 0;   //到停下
  507.                                                         beep = 0;        //打开蜂鸣器
  508.                                                 }                                 
  509.                                         }
  510.                                         else if(dt_value == 4)           //当到了第4层的时候
  511.                                         {
  512.                                                 if(dt_4 == 1)
  513.                                                 {
  514.                                                         led4 = 0;                 //关闭第4层发光二极管
  515.                                                         dt_4 = 0;        //清零电机在的标志
  516.                                                         flag_stop = 0;   //到停下
  517.                                                         beep = 0;        //打开蜂鸣器
  518.                                                 }                                 
  519.                                         }
  520.                                         else if(dt_value == 5)           //当到了第5层的时候
  521.                                         {
  522.                                                 if(dt_5 == 1)
  523.                                                 {
  524.                                                         led5 = 0;                 //关闭第5层发光二极管
  525.                                                         dt_5 = 0;        //清零电机在的标志
  526.                                                         flag_stop = 0;   //到停下
  527.                                                         beep = 0;        //打开蜂鸣器
  528.                                                 }                                 
  529.                                         }
  530.                                         else if(dt_value == 6)           //当到了第6层的时候
  531.                                         {
  532.                                                 if(dt_6 == 1)
  533.                                                 {
  534.                                                         led6 = 0;                 //关闭第6层发光二极管
  535.                                                         dt_6 = 0;        //清零电机在的标志
  536.                                                         flag_stop = 0;   //到停下
  537.                                                         beep = 0;        //打开蜂鸣器
  538.                                                 }                                 
  539.                                         }
  540.                                         else if(dt_value == 7)           //当到了第7层的时候
  541.                                         {
  542.                                                 if(dt_7 == 1)
  543.                                                 {
  544.                                                         led7 = 0;                 //关闭第7层发光二极管
  545.                                                         dt_7 = 0;        //清零电机在的标志
  546.                                                         flag_stop = 0;   //到停下
  547.                                                         beep = 0;        //打开蜂鸣器
  548.                                                 }                                 
  549.                                         }
  550.                                         else if(dt_value == 8)           //当到了第8层的时候
  551.                                         {
  552.                                                 if(dt_8 == 1)
  553.                                                 {
  554.                                                         led8 = 0;                 //关闭第8层发光二极管
  555.                                                         dt_8 = 0;        //清零电机在的标志
  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;  //关闭蜂鸣器
  583.                 }
  584.                 if(value2 >= 20)         //100ms*20 = 2秒
  585.                 {
  586.                         value2 = 0;                                 
  587.                         dt_shang_guan();  //电梯向上  做最后的判断是否还要继续向上
  588.                         dt_xia_guan();          //电梯向下  做最后的判断是否还要继续向下

  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();          //当电梯不动时、判断是向上、还是向下
  619.                 P0 = smg_du[dt_value];          //显示
  620.                 if(flag_100ms  == 1)
  621.                 {
  622.                         flag_100ms = 0;
  623.                         td_dis();                 //电梯处理函数
  624.                 }
  625.         }
  626. }

  627. /*************定时器0中断服务程序***************/
  628. void time0_int() interrupt 1
  629. {        
  630.         static uchar value;
  631.         TH0 = 0x3c;
  632.         TL0 = 0xb0;     // 50ms
  633.         value ++;
复制代码

完整代码下载:http://www.51hei.com/bbs/dpj-38263-1.html


评分

参与人数 2黑币 +40 收起 理由
回忆memorize + 5 很给力!
npn + 35 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:135835 发表于 2017-5-4 12:04 | 只看该作者
不错不错,复制研究研究。
回复

使用道具 举报

板凳
ID:196446 发表于 2017-5-4 13:03 | 只看该作者
不错,很有用,好帖子。
回复

使用道具 举报

地板
ID:196500 发表于 2017-5-4 15:19 | 只看该作者
完整里面有重量判断吗??
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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