找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2006|回復: 0
收起左側(cè)

關(guān)于用51單片機完成尋跡小車的一些程序問題

[復制鏈接]
ID:295220 發(fā)表于 2018-5-25 14:57 | 顯示全部樓層 |閱讀模式
   這是我根據(jù)論壇內(nèi)一位大神的程序序修改得到的一個程序,但是我有三個問題,如上所示。當我去掉這個for循環(huán)后,L298N直接就帶不起來直流電機了,在這里我想問一下各位大佬這個for循環(huán)和這兩個delay函數(shù)的作用是什么?

單片機源程序如下:
  1. #include <reg51.h>
  2. sbit IN1=P0^0;               
  3. sbit IN2=P0^1;
  4. sbit IN3=P0^2;
  5. sbit IN4=P0^3;
  6. sbit L_PWM=P0^4;           
  7. sbit R_PWM=P0^5;           
  8. sbit hongwai_l=P1^0;
  9. sbit hongwai_r=P1^1;
  10. #define L_go      IN1=1;IN2=0
  11. #define L_back    IN1=0;IN2=1
  12. #define L_stop    IN1=0;IN2=0        
  13. #define R_go      IN3=1;IN4=0
  14. #define R_back    IN3=0;IN4=1
  15. #define R_stop    IN3=0;IN4=0
  16. #define car_go               L_go;R_go;               
  17. #define car_back             L_back;R_back        
  18. #define car_left             R_go;L_stop               
  19. #define car_right            L_go;R_stop              
  20. #define car_stop             L_stop;R_stop        
  21. #define car_left_360         R_go;L_back               
  22. #define car_right_360        L_go;R_back               
  23. unsigned char l_tt=0;        
  24. unsigned char l_Lpwm=3;        
  25. unsigned char l_Rpwm=3;      
  26. void timer0()interrupt 1   using 2
  27. {
  28.         TH0=0XFC;        
  29.         TL0=0X17;
  30.         l_tt++;
  31.         if(l_tt>9)l_tt=0;        
  32.         
  33.         if(l_tt<=l_Lpwm){
  34.                  L_PWM=1;
  35.         }
  36.         else{
  37.                 L_PWM=0;
  38.         }
  39.         if(l_tt<=l_Rpwm){
  40.                 R_PWM=1;
  41.         }
  42.         else{
  43.                 R_PWM=0;
  44.         }
  45. }        

  46. void Delay(unsigned int t)
  47. {
  48.         unsigned int c;
  49.         while(t--){
  50.                 c=10000;
  51.                 while(c--);
  52.         }
  53. }
  54. void time1init()
  55. {
  56.        EA=1;                                                
  57.         TMOD|=0X11;                        
  58.         TH0= 0XFC;               
  59.         TL0= 0X14;
  60.         TR0= 1;
  61.         ET0= 1;        
  62. }
  63. void main(void)
  64. {
  65.         unsigned char i;
  66.          
  67.       if(hongwai_r==0&&hongwai_l==0)
  68.             {
  69.             while(1)
  70.       {      
  71.           l_Lpwm=3;
  72.                 l_Rpwm=3;                 
  73.                 car_go;                        
  74.                 for(i=0;i<10;i++)   //問題一:這里的這個for循環(huán)的作用是什么??
  75.        {
  76.                         l_Lpwm++;            
  77.                         Delay(20000);              //問題二:這里的這個Delay函數(shù)的作用是什么??
  78.               }               
  79.                 Delay(5);                           //問題三:這里的這個Delay函數(shù)的作用是什么??
  80.       }
  81.        }
復制代碼



回復

使用道具 舉報

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

本版積分規(guī)則

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

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

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