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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

智能尋跡小車CODE

[復制鏈接]
跳轉到指定樓層
樓主
第一次發帖 給我點黑b吧


資料下載:
智能尋跡小車CODE 11-14.rar (32.13 KB, 下載次數: 10)

  1. /*******************引腳定義****************/
  2. #include "reg51.h"  
  3. typedef unsigned int uint;  
  4. typedef unsigned char uchar;

  5. #define Duty_cycle  35  //占空比
  6. #define Cycle       100 //PWM周期

  7. sbit Sensor_1 = P1^1;  //紅外檢測
  8. sbit Sensor_2 = P1^2;  
  9. sbit Sensor_3 = P1^3;   

  10. sbit Motor_1H = P2^0;  //電機驅動控制信號
  11. sbit Motor_1L = P2^1;  
  12. sbit Motor_2H = P2^2;  
  13. sbit Motor_2L = P2^3;  

  14. sbit En_pwm1 = P2^4;          //使能信號(PWM)
  15. sbit En_pwm2 = P2^5;

  16. uchar timer1;           //定義變量
  17. /*******************************************************************************
  18. * 函 數 名       : Time1Config
  19. * 函數功能                 : 設置定時器
  20. * 輸    入       : 無
  21. * 輸    出       : 無
  22. *******************************************************************************/
  23. /**************設置定時器***********/
  24. void Time1Config()
  25. {
  26.         TMOD|= 0x10;   //設置定時計數器T1工作在模式1

  27.         /***定時器賦初始值,12MHZ下定時0.5ms***/  
  28.         TH1 = 0xFE;
  29.         TL1 = 0x0C;

  30.         ET1 = 1;          //開啟定時器1中斷
  31.         EA = 1;
  32.         TR1 = 1;         //開啟定時器       
  33. }

  34. /************************************************  
  35. 延時函數   
  36. 總共延時
  37. 1ms
  38. 乘以
  39. count  
  40. ************************************************/  
  41. void DelayX1ms(uint count)  
  42. {  
  43. uint j;  
  44. while(count--!=0)  
  45. {  
  46.   for(j=0;j<72;j++);
  47. }  
  48. }  
  49. /************************************************

  50. 電機轉動函數定義

  51. ************************************************/  

  52. void Go_Straight( )  
  53. {   
  54. Motor_1H = 0;  
  55. Motor_1L = 0;  
  56. Motor_2H = 0;  
  57. Motor_2L = 0;
  58. DelayX1ms(10);

  59. Motor_1H = 1;  
  60. Motor_1L = 0;  
  61. Motor_2H = 1;  
  62. Motor_2L = 0;
  63. DelayX1ms(20);
  64. }  

  65. void Turn_Left( )  
  66. {
  67. En_pwm1=0;
  68. En_pwm2=0;
  69. DelayX1ms(10);  

  70. Motor_1H = 0;  
  71. Motor_1L = 1;  
  72. Motor_2H = 1;  
  73. Motor_2L = 0;
  74. DelayX1ms(20);
  75. }  

  76. void Turn_Right( )  
  77. {  
  78. En_pwm1=0;
  79. En_pwm2=0;
  80. DelayX1ms(10);

  81. Motor_1H = 1;  
  82. Motor_1L = 0;  
  83. Motor_2H = 0;  
  84. Motor_2L = 1;
  85. DelayX1ms(20);
  86. }  

  87. void Go_Back( )  
  88. {  
  89. Motor_1H = 0;  
  90. Motor_1L = 0;  
  91. Motor_2H = 0;  
  92. Motor_2L = 0;
  93. DelayX1ms(10);

  94. Motor_1H = 0;  
  95. Motor_1L = 1;  
  96. Motor_2H = 0;  
  97. Motor_2L = 1;
  98. DelayX1ms(20);
  99. }


  100. /**************主函數**************************/  
  101. void main( )  
  102. {  
  103. Time1Config();  //定時器初始化

  104. while(1)  
  105. {  
  106. if(Sensor_1==0 && Sensor_2==1 && Sensor_3==0)      //狀態:軌跡居中
  107.    Go_Straight();                                  //方向:前進
  108. else if(Sensor_1==0 && Sensor_2==0 && Sensor_3==1)       //狀態:偏左
  109.    Turn_Right();                                     //方向:右轉
  110. else if(Sensor_1==1 && Sensor_2==0 && Sensor_3==0) //狀態:偏右
  111.    Turn_Left();                                //方向:左轉
  112. else if(Sensor_1==0 && Sensor_2==0 && Sensor_3==0)       //狀態:偏離軌道
  113.    Go_Back();                                      //方向:后退
  114. else  Go_Straight( );                              //其他情況:前進
  115. }     
  116. }

  117. /*******************************************************************************
  118. * 函 數 名       : Time1
  119. * 函數功能                 : 定時器1的中斷函數
  120. * 輸    入       : 無
  121. * 輸    出       : 無
  122. * 備    注       : 3 為定時器1的中斷號 1 定時器0的中斷號 0 外部中斷1 2 外部中斷2  4 串口中斷
  123. *******************************************************************************/
  124. /********************定時器1的中斷函數********************/
  125. void Time1(void) interrupt 3    //3 為定時器1的中斷號
  126. {
  127.            timer1++;         
  128.         if(timer1>Cycle)              //PWM周期為100*0.5ms
  129.                 {
  130.                         timer1=0;
  131.                 }
  132.                 if(timer1 < Duty_cycle)            //改變Duty_cycle這個值可以改變直流電機的速度
  133.                 {
  134.                         En_pwm1=1;
  135.                         En_pwm2=1;
  136.                 }
  137.                 else
  138.                 {
  139.                         En_pwm1=0;
  140.                         En_pwm2=0;
  141.                 }       
  142.         TH1 = 0xFE;                   //重新賦初值
  143.         TL1 = 0x0C;
  144. }
復制代碼


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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一级一级一级毛片 | 亚洲激情自拍偷拍 | 精精国产xxxx视频在线播放7 | 国产成人综合在线 | 99精品九九 | 亚洲国产精品久久 | 国产精品久久久亚洲 | 亚洲a在线视频 | 国产精品久久久久婷婷二区次 | 色视频成人在线观看免 | 在线看无码的免费网站 | 国产精品中文在线 | 久久精品成人 | 亚洲视频二区 | 日韩一二区在线观看 | 欧美理论 | 97精品国产97久久久久久免费 | 狠狠色综合网站久久久久久久 | 亚洲午夜久久久 | 亚洲高清在线观看 | www.国产精品| 国产精品永久久久久 | 婷婷在线视频 | 欧美精品在线免费观看 | 亚洲精品一区二区三区在线 | 久久99国产精品 | 91视频网| 天天拍天天操 | 影音先锋男| 99热热热热 | 一级免费在线视频 | 99热这里都是精品 | 久久午夜国产精品www忘忧草 | 国产精品视频一区二区三区四蜜臂 | 国内在线视频 | 色综合99 | 中文字幕av亚洲精品一部二部 | 国产乱精品一区二区三区 | 国产亚洲一区二区在线观看 | 欧美日韩在线播放 | 男女视频免费 |