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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2655|回復: 0
收起左側

智能尋跡小車CODE

[復制鏈接]
ID:160968 發表于 2017-1-9 16:20 | 顯示全部樓層 |閱讀模式
第一次發帖 給我點黑b吧
0.png

資料下載:
智能尋跡小車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. }
復制代碼


回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本不卡中文字幕 | 国产日韩精品一区二区 | 自拍视频一区 | 天天草夜夜草 | 久久人人爽人人爽人人片 | 九九99久久 | 欧美一区二区在线播放 | 黄色在线小视频 | 黄色片在线免费观看 | 日本伊人久久 | 91看片网| 黑人精品xxx一区一二区 | 91欧美大片 | 97在线免费观看 | 欧美色偷偷 | 少妇一级淫片免费放 | 国产精品入口66mio男同 | 婷婷99| 青娱乐99| 国内精品视频在线观看 | 国产三级在线观看视频 | 成人免费看片视频 | 黄网站免费在线观看 | 国产精品黄色 | 日韩精品极品视频在线观看免费 | 久久手机视频 | 日韩中文字幕 | 午夜精品在线观看 | 色天使在线视频 | 欧美成人午夜 | www.久久| 欧美一级片在线 | 成人免费毛片嘿嘿连载视频 | 欧美69视频 | 国产精品成人一区二区 | 国产理论片 | 婷婷四房综合激情五月 | 国产欧美日韩一区二区三区 | 肉丝美脚视频一区二区 | 五月天婷婷视频 | 五月天婷婷激情网 |