欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 單片機(jī)循跡智能車比賽 程序+原理圖 [打印本頁]

作者: skdjagjgag    時間: 2019-4-25 16:27
標(biāo)題: 單片機(jī)循跡智能車比賽 程序+原理圖
這是學(xué)校近期舉行的循跡智能車比賽使用的程序和代碼,并包含了原理圖

電路原理圖如下:


單片機(jī)源程序如下:
  1. /*申明:本程序不包含停車程序,初始速度值僅可以讓小車上賽道運(yùn)行,且只適應(yīng)初賽,新手修改參數(shù)請點(diǎn)擊左側(cè)菜單欄interrupt.c文件中找到void speed()函數(shù)修改參數(shù)*/
  2. /*主函數(shù)*/

  3. #include "reg52.h"
  4. #include "delay.h"
  5. #include "interrupt.h"
  6. #include "main.h"

  7. void main()
  8. {
  9.         init();                 /*車輛數(shù)據(jù)初始化*/
  10.         delay(1000);                /*延時1s后啟動小車*/
  11.         while(1)
  12.         {
  13.     speed();
  14.         }
  15. }
復(fù)制代碼
  1. /*中斷函數(shù)*/

  2. #include "interrupt.h"

  3. char SP_L0;    /*定義SP_L0代表左前輪速度*/
  4. char SP_R0;    /*定義SP_R0代表右前輪速度*/
  5. char SP_L1;    /*定義SP_L1代表左后輪速度*/
  6. char SP_R1;    /*定義SP_R1代表右后輪速度*/

  7. uchar t=0;    /*初始化全局變量t*/


  8. /*初始化函數(shù)*/
  9. void init()               
  10. {
  11.         TMOD=0x02;                /*設(shè)置定時器0為工作方式2*/
  12.         
  13.         TH0=256-206;                /*初裝值設(shè)置約為50us一次中斷*/
  14.         TL0=256-206;
  15.         
  16.         EA=1;
  17.         ET0=1;
  18.         TR0=1;
  19.         
  20.         Sensor_L0=1;                /*最左邊傳感器信號初始化為1*/
  21.         Sensor_L1=1;                /*次左邊傳感器信號初始化為1*/
  22.         Sensor_R1=1;                /*次右邊傳感器信號初始化為1*/
  23.         Sensor_R0=1;                /*最右邊傳感器信號初始化為1*/
  24.         
  25.         Motor_L00=0;                /*左前輪電機(jī)0接口初始化數(shù)值為0*/
  26.         Motor_L01=0;                /*左前輪電機(jī)1接口初始化數(shù)值為0*/
  27.         
  28.         Motor_R00=0;                /*右前輪電機(jī)0接口初始化數(shù)值為0*/
  29.         Motor_R01=0;                /*右前輪電機(jī)1接口初始化數(shù)值為0*/
  30.         
  31.         Motor_L10=0;                /*左后輪電機(jī)0接口初始化數(shù)值為0*/
  32.         Motor_L11=0;                /*左后輪電機(jī)1接口初始化數(shù)值為0*/
  33.         
  34.         Motor_R10=0;                /*右后輪電機(jī)0接口初始化數(shù)值為0*/
  35.         Motor_R11=0;                /*右后輪電機(jī)1接口初始化數(shù)值為0*/
  36. }


  37. /*在下面的函數(shù)中可進(jìn)行小車四個電機(jī)的調(diào)速*/
  38. void speed()
  39. {
  40.         /*直行*/
  41.         if(Sensor_L0 && Sensor_L1 && Sensor_R1 && Sensor_R0)        
  42.         {               
  43.                 SP_L0=50;
  44.                 SP_R0=50;
  45.                 SP_L1=50;
  46.                 SP_R1=50;                        
  47.         }
  48.         /*向左小轉(zhuǎn)彎*/
  49.         else if(!Sensor_L0 && Sensor_L1 && !Sensor_R1 && !Sensor_R0)        
  50.         {
  51.                 SP_L0=-50;
  52.                 SP_R0=50;
  53.                 SP_L1=50;
  54.                 SP_R1=50;                        
  55.         }
  56.         /*向右小轉(zhuǎn)彎*/
  57.         else if(!Sensor_L0 && !Sensor_L1 && Sensor_R1 && !Sensor_R0)        
  58.         {
  59.                 SP_L0=50;
  60.                 SP_R0=-50;
  61.                 SP_L1=50;
  62.                 SP_R1=50;                        
  63.         }
  64.         /*向左大轉(zhuǎn)彎*/
  65.         else if(Sensor_L0 && !Sensor_L1 && !Sensor_R1 && !Sensor_R0)        
  66.         {
  67.                 SP_L0=-50;
  68.                 SP_R0=50;
  69.                 SP_L1=-50;
  70.                 SP_R1=50;               
  71.         }
  72.         /*向右大轉(zhuǎn)彎*/
  73.         else if(!Sensor_L0 && !Sensor_L1 && !Sensor_R1 && Sensor_R0)                                
  74.         {
  75.                 SP_L0=50;
  76.                 SP_R0=-50;
  77.                 SP_L1=50;
  78.                 SP_R1=-50;
  79.         }
  80.         /*直行*/
  81.         else                        
  82.         {
  83.                 SP_L0=50;
  84.                 SP_R0=50;
  85.                 SP_L1=50;
  86.                 SP_R1=50;
  87.         }
  88. }


  89. /*利用定時器0中斷定義四個電機(jī)的pwm占空比*/
  90. void T0_time() interrupt 1
  91. {
  92.         t++;
  93.         if(t>=100)
  94.                 t=0;

  95. /*定義左前輪的pwm占空比*/        
  96.         if(SP_L0>=0)        
  97.         {
  98.                 Motor_L00=0;
  99.                 if(t<SP_L0)                 
  100.                 {
  101.                         Motor_L01=1;
  102.                 }        
  103.                 else
  104.                 {
  105.                         Motor_L01=0;
  106.                 }
  107.         }
  108.         else                                       
  109.         {
  110.                 Motor_L01=0;
  111.                 if(t<(-SP_L0))                 
  112.                 {
  113.                         Motor_L00=1;
  114.                 }        
  115.                 else
  116.                 {
  117.                         Motor_L00=0;
  118.                 }
  119.         }
  120.    
  121. /*定義右前輪的pwm占空比*/        
  122.         if(SP_R0>=0)        
  123.         {
  124.                 Motor_R00=0;
  125.                 if(t<SP_R0)                 
  126.                 {
  127.                         Motor_R01=1;
  128.                 }        
  129.                 else
  130.                 {
  131.                         Motor_R01=0;
  132.                 }
  133.         }
  134.         else                                       
  135.         {
  136.                 Motor_R01=0;
  137.                 if(t<(-SP_R0))                 
  138.                 {
  139.                         Motor_R00=1;
  140.                 }        
  141.                 else
  142.                 {
  143.                         Motor_R00=0;
  144.                 }
  145.         }

  146. /*定義左后輪的pwm占空比*/        
  147.         if(SP_L1>=0)        
  148.         {
  149.                 Motor_L10=0;
  150.                 if(t<SP_L1)                 
  151.                 {
  152.                         Motor_L11=1;
  153.                 }        
  154.                 else
  155.                 {
  156.                         Motor_L11=0;
  157.                 }
  158.         }
  159.         else                                
  160.         {
  161.                 Motor_L11=0;
  162.                 if(t<(-SP_L1))                 
  163.                 {
  164.                         Motor_L10=1;
  165.                 }        
  166.                 else
  167.                 {
  168.                         Motor_L10=0;
  169.                 }
  170.         }

  171. /*定義右后輪的pwm占空比*/
  172.         if(SP_R1>=0)        
  173.         {
  174.                 Motor_R10=0;
  175.                 if(t<SP_R1)                 
  176.                 {
  177.                         Motor_R11=1;
  178.                 }        
  179.                 else
  180.                 {
  181.                         Motor_R11=0;
  182.                 }
  183.         }
  184.         else                                       
  185.         {
  186.                 Motor_R11=0;
  187.                 if(t<(-SP_R1))                 
  188.                 {
  189.                         Motor_R10=1;
  190.                 }        
  191.                 else
  192.                 {
  193.                         Motor_R10=0;
  194.                 }
  195.         }
  196. }        
復(fù)制代碼


所有資料51hei提供下載:
2019循跡智能車比賽資料.zip (584.53 KB, 下載次數(shù): 43)



作者: yyhlsf    時間: 2019-4-28 02:20
謝謝分享




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1