找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

帖子
查看: 6369|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

通過定時(shí)器中斷控制循跡小車程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:79544 發(fā)表于 2015-7-23 19:06 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
  1. #include<reg52.h>       
  2. sbit P00=P0^0;          //循跡口               
  3. sbit P01=P0^1;
  4. sbit P02=P0^2;

  5. sbit P04=P0^4;           //電機(jī)1                左輪
  6. sbit P05=P0^5;

  7. sbit P06=P0^6;           //電機(jī)2
  8. sbit P07=P0^7;
  9. unsigned int i=0,j=0;
  10. void main()
  11. {
  12.    while(1)
  13.   {       
  14.    P04=1;P05=1;P06=1; P07=1;
  15.    TMOD=0X01;
  16.    EA=1;
  17.    ET0=1;          
  18.   
  19.         if(P00==0&&P01==1&&P02==0)// 小車直走定時(shí)0.002ms                 
  20.          {
  21.          TH0=0XFF;                  //定時(shí)0.005ms
  22.          TL0=0Xfe;
  23.          TR0=1;
  24.          }
  25.         if(P00==0&&P01==0&&P02==1) //小車右轉(zhuǎn)定時(shí)0.005ms          
  26.    {
  27.     TH0=0XFF;
  28.     TL0=0Xfe;                                  //0.01
  29.     TR0=1;  
  30.    }         
  31.           if(P00==1&&P01==0&&P02==0)//小車左轉(zhuǎn)定時(shí)0.005ms                       
  32.    {
  33.     TH0=0XFF;
  34.     TL0=0Xfe;
  35.     TR0=1;
  36.    }
  37.     if(P00==1&&P01==1&&P02==1)        //全部檢測到黑線時(shí) 車停
  38.           {
  39.            TH0=0XFF;
  40.        TL0=0Xfe;
  41.        TR0=1; }       


  42. /***********************************/
  43.          if(P00==0&&P01==1&&P02==1)//兩個(gè)傳感器測到 左拐
  44.           {TH0=0XFF;
  45.        TL0=0Xfe;
  46.        TR0=1; }       
  47.           if(P00==1&&P01==1&&P02==0)//兩個(gè)傳感器測到 左拐
  48.           {TH0=0XFF;
  49.        TL0=0Xfe;
  50.        TR0=1; }       
  51.           
  52. /**********************************/       
  53.        
  54. }
  55. }

  56. xiong() interrupt 1
  57. {         
  58.   if(P00==0&&P01==1&&P02==0)//小車直線快走  定時(shí)0.002ms                                
  59.            {
  60.     TH0=0XFF;
  61.     TL0=0Xfe;

  62.         P04=0;                                //電機(jī)1        左輪
  63.         P05=1;
  64.         P06=1;                           //電機(jī)2         右轉(zhuǎn)
  65.         P07=0;
  66.          }

  67.   if(P00==0&&P01==0&&P02==1) //小車右轉(zhuǎn)        定時(shí)0.005ms          
  68.    {                                       
  69.                                      
  70.     TH0=0XFF;
  71.     TL0=0Xfe;

  72.         P04=1;                        //電機(jī)1         左輪
  73.         P05=1;                        
  74.         P06=1;                      //電機(jī)2
  75.         P07=0;
  76.         i=1;
  77.    }
  78.           if(P00==0&&P01==0&&P02==0&&i==1)// 特別         出線時(shí)用
  79.                 {TH0=0XFF;
  80.                  TL0=0Xfe;
  81.                  P04=1;
  82.                  P05=1;
  83.                  P06=1;
  84.                  P07=0;
  85.                                  j=0;// q=0;w=0;
  86.                 }
  87.                                                        
  88.     if(P00==1&&P01==0&&P02==0)//小車左轉(zhuǎn)定時(shí)0.005ms
  89.        {
  90.         TH0=0XFF;
  91.         TL0=0Xfe;
  92.         P04=0;                                //電機(jī)1
  93.             P05=1;
  94.                                        
  95.             P06=1;                           //電機(jī)2
  96.             P07=1;
  97.         j=1;         
  98.               }
  99.    if(P00==0&&P01==0&&P02==0&&j==1)        // 特別 出線時(shí)用
  100.       { TH0=0XFF;
  101.         TL0=0Xfe;
  102.         P04=0;
  103.         P05=1;
  104.         P06=1;
  105.         P07=1;
  106.              i=0;//q=0;w=0;   
  107.            }                                                       
  108.          if(P00==1&&P01==1&&P02==1)
  109.          {                                                //全部檢測到黑線時(shí) 車停
  110.           TH0=0XFF;
  111.       TL0=0Xfe;
  112.           P04=1;          
  113.           P05=1;
  114.       P06=1;
  115.       P07=1;}
  116. /*********************************************/


  117.   if(P00==0&&P01==1&&P02==1)//兩個(gè)傳感器測到 左拐
  118.          {                                                                                  
  119.           TH0=0XFF;
  120.       TL0=0Xfe;
  121.           P04=1;          
  122.           P05=0;                                //  一個(gè)輪前轉(zhuǎn)一個(gè)輪后轉(zhuǎn) 轉(zhuǎn)90
  123.       P06=1;
  124.           P07=0;

  125.           }
  126.                
  127.               if(P00==1&&P01==1&&P02==0)//兩個(gè)傳感器測到 右拐
  128.            {                                                                                  
  129.             TH0=0XFF;
  130.         TL0=0Xfe;                         
  131.             P04=0;          
  132.             P05=1;
  133.         P06=0;                         //        一個(gè)輪前轉(zhuǎn)一個(gè)輪后轉(zhuǎn) 轉(zhuǎn)90
  134.         P07=1;

  135.                 }       
  136.         }
  137. /***************************************/
復(fù)制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:92665 發(fā)表于 2015-10-16 21:36 | 只看該作者
試了一下 很好的
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表