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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1074|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美在线视频一区 | 亚洲日韩中文字幕一区 | 天堂中文在线播放 | 欧美性精品 | 日韩高清一区 | 精品欧美一区二区三区久久久 | 欧美一级久久久猛烈a大片 日韩av免费在线观看 | 国产亚洲精品美女久久久久久久久久 | 国产高潮av| 成人久久久久久久久 | 中文字幕不卡在线观看 | 国产欧美精品区一区二区三区 | 亚洲精品一区二区三区蜜桃久 | 亚洲精品在线看 | 欧美黄色一区 | 奇米影视首页 | 精品91久久 | 欧美一区二区综合 | 久久精品中文字幕 | 亚洲综合大片69999 | av色噜噜| 91精品久久久久久久久99蜜臂 | 国产真实精品久久二三区 | www国产成人| 国产精品爱久久久久久久 | 久久综合久久自在自线精品自 | 成人免费精品 | 91精品国产一区二区三区 | 五月婷亚洲 | 亚洲国产精品视频一区 | 成人三级视频 | 91亚洲一区| av大片在线| 91久久精品国产免费一区 | 一区二区在线视频 | 日韩中文字幕在线播放 | 欧美福利专区 | 午夜视频一区 | 久久精品久久精品久久精品 | 久久久久久99 | 欧美性大战久久久久久久蜜臀 |