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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1089|回復: 0
打印 上一主題 下一主題
收起左側

51單片機循跡程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:425999 發表于 2018-11-13 21:09 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
51單片機循跡程序,循跡+滅火

單片機源程序如下:
  1. #include <reg52.h>

  2. sbit IN1 = P1^0;
  3. sbit IN2 = P1^1;
  4. sbit IN3 = P1^3;
  5. sbit IN4 = P1^2;
  6. sbit ENA = P1^4;
  7. sbit ENB = P1^5;

  8. sbit left1 = P3^5;
  9. sbit left2 = P3^3;
  10. sbit right1 = P3^4;
  11. sbit right2 = P3^6;
  12. sbit DJ = P3^2;

  13. unsigned char zkb1 = 0;
  14. unsigned char zkb2 = 0;
  15. unsigned char t = 0;


  16. void init()
  17. {
  18.         EA = 1;
  19.         TMOD |= 0x01;
  20.         TH0 =(65536 - 100) / 256;
  21.         TL0 = (65536 - 100)% 256;       
  22.         ET0 = 1;
  23.         TR0 = 1;
  24. }

  25. void timer0() interrupt 1
  26. {

  27.         TH0 = (65536 - 100) / 256;
  28.         TL0 = (65536 - 100) % 256;
  29.                
  30.         if(t < zkb1)
  31.         {
  32. //                 if(t % 2 == 0)
  33. //                 {
  34. //                     ENA = 1;
  35. //             }
  36. //                 else
  37. //                 {
  38. //                         ENA = 0;
  39. //                 }
  40.                 ENA = 1;
  41.         }
  42.         else
  43.         {
  44.                 ENA = 0;
  45.         }
  46.         if(t < zkb2)
  47.         {
  48. //                 if(t%2 == 0)
  49. //                 {
  50. //                     ENB = 1;
  51. //                 }
  52. //                 else
  53. //                 {
  54. //                         ENB = 0;
  55. //                 }
  56.                 ENB =1;
  57.         }
  58.         else
  59.         {
  60.                 ENB = 0;
  61.         }
  62.         ++t;
  63.         if(t >= 50)
  64.         {
  65.                 t = 0;
  66.         }
  67.        
  68.        

  69. }

  70. void turn_left1()
  71. {
  72.         zkb1 = 15;
  73.         zkb2 = 0;

  74. }

  75. void turn_left2()
  76. {

  77.         zkb1 = 15;
  78.         zkb2 = 0;
  79. }

  80. void turn_right1()
  81. {
  82.         zkb1 = 0;
  83.         zkb2 = 15;
  84. }

  85. void turn_right2()
  86. {
  87.         zkb1 = 0;
  88.         zkb2 = 15;
  89. }

  90. void qianjin()
  91. {
  92.         zkb1 = 15;
  93.         zkb2 = 15;
  94. }
  95. void stop()
  96.   {  zkb1 = 0;
  97.          zkb2 = 0;        }

  98. void xunji()
  99. {
  100.         unsigned char flag;
  101.         if((right2 == 0)&&(right1 == 0)&&(left1 == 0)&&(left2 == 0))
  102.         {
  103.                 flag = 0;
  104.         }
  105.         if((right2 == 0)&&(right1 ==1)&&(left1 == 0)&&(left2 == 0))
  106.         {
  107.                 flag = 1;
  108.         }
  109.         if((right2 == 0)&&(right1 == 0)&&(left1 == 1)&&(left2 == 0))
  110.         {
  111.                 flag = 2;
  112.         }
  113.         if((right2 == 0)&&(right1 == 0)&&(left1 == 0)&&(left2 == 1))
  114.         {
  115.                 flag = 3;
  116.         }
  117.         if((right2 == 1)&&(right1 == 0)&&(left1 == 0)&&(left2 == 0))
  118.         {
  119.                 flag = 4;
  120.         }
  121.         switch(flag)
  122.         {
  123.                 case 0:qianjin();break;
  124.                
  125.                 case 1:turn_right1();break;
  126.                
  127.                 case 2:turn_left1();break;
  128.                
  129.                 case 3:turn_left2();break;
  130.                
  131.                 case 4:turn_right2();break;
  132.                
  133.                 default:qianjin();break;
  134.         }
  135. }
  136. void delay(unsigned int k)
  137. {   
  138.      unsigned int x,y;
  139.          for(x=0;x<k;x++)
  140.            for(y=0;y<2000;y++);
  141. }
  142. void miehuo()
  143. {        stop();
  144.          delay(100);
  145.                  DJ=1;
  146.                  delay(200);               
  147.                  DJ=0;
  148.                  qianjin();
  149.                  delay(50);
  150. }
  151. void main()
  152. {
  153.         init();
  154. //         zkb1 = 40;
  155. //         zkb2 = 30;
  156.         IN1 = 0;
  157.         IN2 = 1;
  158.     IN3 = 0;
  159.     IN4 = 1;
  160.           while(1)
  161.         if((right2 == 1)&&(right1 == 1)&&(left1 == 1)&&(left2 == 1))
  162.                           { miehuo();      }
  163.                           else
  164.                          { xunji();    }
  165. }
復制代碼


循跡.zip (27.55 KB, 下載次數: 8)


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

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: www.亚洲一区二区三区 | 日韩一区二区免费视频 | 国产丝袜一区二区三区免费视频 | 国产精品美女 | 亚洲精品久久久一区二区三区 | 欧美精品被 | 精品亚洲永久免费精品 | 九色网址 | 中文字幕在线不卡播放 | 女人毛片a毛片久久人人 | 久久精品黄色 | 欧美精品综合在线 | 久草视频观看 | 亚洲成人一级片 | 91视频网址 | 美女视频h | 久久免费视频1 | 天天干天天爽 | 亚洲欧美日韩电影 | 又爽又黄axxx片免费观看 | 香蕉视频91 | 91精品国产综合久久久久久首页 | 亚洲 欧美 综合 | 欧美日韩在线观看一区 | 欧美一区中文字幕 | 四虎影视在线 | 国产在线一区观看 | 中文字幕日韩欧美一区二区三区 | 欧美色综合一区二区三区 | 日韩精品久久久久 | 最新国产在线 | 亚洲网址 | 九一在线观看 | 日韩中文字幕免费 | 成人h动漫亚洲一区二区 | 久久一及片 | 久久精品国产一区二区三区 | 一区二区三区国产好 | 中文字幕在线不卡播放 | 奇米影视77 | 伊人中文字幕 |