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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機循跡智能車比賽 程序+原理圖

[復制鏈接]
跳轉到指定樓層
樓主
這是學校近期舉行的循跡智能車比賽使用的程序和代碼,并包含了原理圖

電路原理圖如下:


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

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

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

  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. /*初始化函數*/
  9. void init()               
  10. {
  11.         TMOD=0x02;                /*設置定時器0為工作方式2*/
  12.         
  13.         TH0=256-206;                /*初裝值設置約為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;                /*左前輪電機0接口初始化數值為0*/
  26.         Motor_L01=0;                /*左前輪電機1接口初始化數值為0*/
  27.         
  28.         Motor_R00=0;                /*右前輪電機0接口初始化數值為0*/
  29.         Motor_R01=0;                /*右前輪電機1接口初始化數值為0*/
  30.         
  31.         Motor_L10=0;                /*左后輪電機0接口初始化數值為0*/
  32.         Motor_L11=0;                /*左后輪電機1接口初始化數值為0*/
  33.         
  34.         Motor_R10=0;                /*右后輪電機0接口初始化數值為0*/
  35.         Motor_R11=0;                /*右后輪電機1接口初始化數值為0*/
  36. }


  37. /*在下面的函數中可進行小車四個電機的調速*/
  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.         /*向左小轉彎*/
  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.         /*向右小轉彎*/
  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.         /*向左大轉彎*/
  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.         /*向右大轉彎*/
  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中斷定義四個電機的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. }        
復制代碼


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


評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:375715 發表于 2019-4-28 02:20 來自觸屏版 | 只看該作者
謝謝分享
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表