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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

小白 51單片機循跡車實現程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:425203 發表于 2018-11-12 19:05 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
最最簡單的51循跡程序

單片機源程序如下:
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. sbit DO = P3^1;
  6. sbit AO = P3^2;
  7. sbit beef = P3^4;
  8. sbit s1=P1^0;
  9. sbit s2=P1^1;
  10. sbit s3=P1^2;
  11. sbit s4=P1^3;
  12. sbit ENA=P2^0;
  13. sbit ENB=P2^1;
  14. sbit l1=P1^4;
  15. sbit l2=P1^5;
  16. sbit r1=P1^6;
  17. sbit r2=P1^7;
  18. sbit bzy=P0^3;
  19. sbit bzz=P0^4;
  20. uchar t=0;
  21. uchar zkb1=0;
  22. uchar zkb2=0;
  23. sbit smg1=P2^4;
  24. sbit smg2=P2^5;
  25. sbit smg3=P2^6;
  26. sbit smg4=P2^7;
  27. sbit in=P2^3;
  28. sbit out=P2^2;
  29. uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  30. uchar code table1[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
  31. uint a,b,c,d,h,i,j;
  32. uint f,g,e;
  33. void cijiance();
  34. void delay20us()
  35. {
  36. uchar a;
  37.         for(a=0;a<100;a++);

  38. }
  39. void delayms(uint xms)
  40. {
  41.         uint i,j;
  42.         for(i=xms;i>0;i--)
  43.                 for(j=110;j>0;j--);
  44. }
  45. void  init ()  
  46. {  
  47.     EA = 1;  
  48.     TMOD = 0x11;  
  49.     TH0 =(65536 - 100) / 256;  
  50.     TL0 = (65536 - 100)% 256;     
  51.     ET0 = 1;  
  52.     TR0 = 1;  
  53.        
  54. }

  55. void time ()interrupt 1
  56. {
  57.         TH0 =(65536 - 100) / 256;  
  58.     TL0 = (65536 - 100)% 256;
  59.         ++t;
  60.         if (t<zkb1)
  61.         {
  62.                 ENA=1;
  63.         }
  64.         else
  65.         {
  66.                 ENA=0;
  67.         }
  68.         if(t<zkb2)
  69.         {
  70.                 ENB=1;
  71.         }
  72.         else
  73.         {       
  74.                 ENB=0;
  75.         }
  76.         if(t>=200)
  77.         {
  78.                 t=0;
  79.         }
  80. }
  81. void T0_time() interrupt 3
  82. {
  83.   TH0=0;
  84.         TL0=0;
  85.         g++;
  86. }
  87. void ceju()
  88. {       

  89. out=0;


  90. TH0=0;
  91. TL0=0;
  92. while(1)       
  93.                 {  
  94.                            g=0;
  95.                                 in=0;
  96.                         out=1;
  97.             delay20us();
  98.                         out=0;
  99.             while(in==0);
  100.                           TR0=1;
  101.                         while(in==1);
  102.                         while(1)
  103.                         {
  104.        h=TH0;
  105.                          i=TL0;
  106.                          j=TH0;
  107.                         if(h==j)
  108.                                 break;
  109.                                 }
  110.                                 f=TH0*256+TL0;
  111.               e=((f+g*65536)*18)/1000;     
  112.         d=e%1000%100%10;
  113.         c=e%1000%100/10;
  114.               b=e%1000/100;
  115.                                 a=e/1000;
  116.                                 TR0=0;
  117.         TL0=0;
  118.                          TH0=0;
  119.         if(b>0)
  120.         {
  121. c=c+1;
  122. }
  123.           smg1=0;
  124.     P0=table[d];
  125.                 delayms(1);
  126.                 smg1=1;
  127.            P0=0xff;
  128.                 smg2=0;
  129.     P0=table[c];
  130.                 delayms(1);
  131.                 smg2=1;
  132.                 P0=0xff;
  133.                 smg3=0;
  134.     P0=table1[b];
  135.                 delayms(1);
  136.                 smg3=1;
  137.                 P0=0xff;
  138.                 smg4=0;
  139.     P0=table[a];
  140.                 delayms(1);
  141.                 smg4=1;
  142.                 P0=0xff;               
  143. }
  144. }
  145. void ltx()
  146. {
  147.         zkb1=30;
  148.         zkb2=60;
  149.         s1=1;s2=0;
  150.         s3=1;s4=0;
  151. }
  152. void rtx()
  153. {
  154.         zkb1=60;
  155.         zkb2=30;
  156.         s1=0;s2=1;
  157.         s3=0;s4=1;
  158. }
  159. void ltd()
  160. {
  161.         zkb1=40;
  162.         zkb2=65;
  163.         s1=1;s2=0;
  164.         s3=1;s4=0;
  165. }
  166. void rtd()
  167. {
  168.         zkb1=60;
  169.         zkb2=40;
  170.         s1=0;s2=1;
  171.         s3=0;s4=1;
  172. }

  173. void stop2()
  174. {
  175.         s1=0;s2=0;
  176.         s3=0;s4=0;
  177.         zkb1=14;
  178.         zkb2=14;
  179. }
  180. void qianjin()
  181. {
  182.         s1=0;s2=1;
  183.         s3=1;s4=0;
  184.         zkb1=55;
  185.         zkb2=52;
  186. }       
  187. void qianjin1()
  188. {
  189.         s1=0;s2=1;
  190.         s3=1;s4=0;
  191.         zkb1=54;
  192.         zkb2=52;
  193. }       
  194. void xunji ()
  195. {
  196.         if(l1==1&&l2==0&&r1==0&&r2==0)
  197.         {
  198.                 ltd();
  199.         }
  200.         if(l1==0&&l2==0&&r1==1&&r2==0)
  201.         {
  202.                 rtd();
  203.         }
  204.         if(l1==0&&l2==1&&r1==0&&r2==0)
  205.         {
  206.                 ltd();
  207.         }
  208.         if(l1==0&&l2==0&&r1==0&&r2==1)
  209.         {
  210.                 rtd();
  211.         }
  212.         if(l1==1&&l2==1&&r1==1&&r2==1)
  213.         {
  214.                 qianjin();
  215.                 delayms(50);
  216.                 if(l1==1&&l2==1&&r1==1&&r2==1)
  217.                 {
  218.                         stop2();
  219.                         ceju();
  220.                 }
  221.                 else
  222.                 {
  223.                         if(l1==0&&l2==0&&r1==0&&r2==0)
  224.                         {
  225.                                 qianjin();
  226.                         }
  227.                 }
  228.         }
  229.         if(bzz==1&&l1==0&&l2==0&&r1==0&&r2==0&&bzy==1&&bzz==1)
  230.         {
  231.                 qianjin1();
  232.         }
  233. //        if(l1==0&&l2==0&&r1==0&&r2==0&&bzy==0&&bzz==1)
  234. //        {
  235. //                ltd();
  236. //                delayms(300);
  237. //                qianjin();
  238. //                delayms(200);
  239. //                rtd();
  240. //                delayms(300);
  241. //        }
  242.         if(l1==0&&l2==0&&r1==0&&r2==0&&bzy==0&&bzz==1)
  243.         {
  244.                 ltx();
  245.                 delayms(100);
  246.                 stop2();
  247.                 delayms(200);
  248.                 qianjin();
  249.                 delayms(500);
  250.                 stop2();
  251.                 delayms(200);
  252.                 rtx();
  253.                 delayms(400);
  254.                 stop2();
  255.                 delayms(200);
  256.                 qianjin();
  257.                 delayms(400);
  258.                 stop2();
  259.                 delayms(200);
  260.                 ltx();
  261.                 delayms(200);
  262.                
  263. }
  264. //if(l1==0&&l2==0&&r1==0&&r2==0&&bzy==1&&bzz==0)
  265. //        {
  266. //                rtx();
  267. //                delayms(300);
  268. //                stop2();
  269. //                delayms(200);
  270. //                qianjin();
  271. //                delayms(600);
  272. //                stop2();
  273. //                delayms(200);
  274. //                ltx();
  275. //                delayms(400);
  276. //                stop2();
  277. //                delayms(200);
  278. //                qianjin();
  279. //                delayms(600);
  280. //               
  281. //    }
  282.         cijiance();
  283. }
  284. void cijiance()
  285. {
  286.         if(DO==1)
  287.         {
  288.         delayms(10);
  289.         beef=1;
  290.         }
  291.         else if (DO==0)
  292.         {
  293.         delayms(10);
  294.         beef=0;
  295.         }
  296. }


  297. void main ()
  298. {       
  299.         init();
  300.         s1=0;s2=1;
  301.         s3=1;s4=0;
  302.         zkb1=15;
  303.         zkb2=14;
  304.         while(1)
  305.         {

  306.                 xunji();
  307.         }
  308. }
復制代碼

所有資料51hei提供下載:
循跡小車.rar (48.52 KB, 下載次數: 21)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 美女爽到呻吟久久久久 | 精品视频导航 | 精品伦精品一区二区三区视频 | 色婷婷精品国产一区二区三区 | 亚洲免费高清 | 精品国产18久久久久久二百 | 国产98色在线 | 日韩 | 99久久免费精品国产男女高不卡 | 国产精品视频一区二区三 | 欧美精品第三页 | 性一交一乱一透一a级 | 天天操综合网站 | 日韩一及片 | 久久久一区二区三区四区 | 一区二区三区中文 | 97av视频在线观看 | 国产美女精品 | 久久夜夜 | 欧美日韩中文在线 | 天天操伊人 | 成人小视频在线观看 | 亚洲三区视频 | 第一福利社区1024 | 午夜激情在线 | 操一草 | 91精品欧美久久久久久久 | 午夜成人免费视频 | 亚洲免费一区 | 日本天堂一区 | 国产精品亚洲成在人线 | 日韩精品一区二区三区四区 | 欧美成人一区二免费视频软件 | 九九久久久 | 三级成人片 | 精品国产乱码久久久久久中文 | 国产9 9在线 | 中文 | 精品久久久久久久久亚洲 | 亚洲二区视频 | 午夜不卡一区二区 | 国产午夜精品理论片a大结局 | 国产91在线视频 |