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

標題: 51單片機小車仿真程序 [打印本頁]

作者: 5523223221312    時間: 2018-5-11 10:31
標題: 51單片機小車仿真程序
51單片機小車仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)



單片機源程序如下:
  1. /* 買了個四驅車的底盤,雙直流電機,一只驅動左邊兩輪,一只驅動                  
  2. 右邊兩輪。驅動電壓為4.5-9V,配兩個紅外對管,打算一直裝在小車前方                  
  3. ,一只裝在小車底盤,分別檢測前方障礙和臺階,小車碰到前方障礙后                    
  4. 左邊兩輪停止,右輪驅動,實現轉彎。碰到臺階后小車先后退,然后左輪                  
  5. 停止,右輪驅動實現轉彎,轉彎結束后小車繼續前進,如此循環*/           

  6. #include<reg52.h>
  7. #define uchar unsigned char
  8. #define uint unsigned int
  9. uchar cs1,cs2,num1,num2;
  10. uchar code table[]={0,1};          //占空比50%
  11. sbit qdg=P3^4;                                  //前紅外對管,檢測小車前方障礙
  12. sbit xdg=P3^5;                                  //下紅外對管,檢測小車是否碰到臺階
  13. sbit in1=P1^0;                                  //L298輸入
  14. sbit in2=P1^1;                                  //L298輸入
  15. sbit in3=P1^2;                                  //L298輸入
  16. sbit in4=P1^3;                              //L298輸入
  17. sbit ena=P1^4;                              //L298輸入使能A   
  18. sbit enb=P1^5;                              //L298輸入使能B

  19. void delay(int z)                          //延時函數
  20. {
  21.         uint x,y;
  22.         for(x=z;x>0;x--)
  23.            for(y=110;y>0;y--);
  24. }

  25. void init()                                        //初始化函數
  26. {
  27.         TMOD=0x11;
  28.         TH0=(65536-500)/256;
  29.         TL0=(65536-500)%256;
  30.         ET0=1;
  31.         TR0=1;
  32.         EA=1;
  33. }

  34. void main()
  35. {
  36.   init();
  37.   while(1)
  38.    {
  39.           if(qdg==1)                  //如果前方沒有檢測到障礙,對管輸出高電平                 
  40.                 {
  41.                    ena=1;                  //L298使能端A為高
  42.                    enb=1;                  //L298使能端B為高
  43.                    in2=0;                  //L298IN2為低,小車左輪前進          
  44.                    in4=0;                  //L298IN4為低,小車右輪前進          
  45.                 }
  46.           else
  47.                 {
  48.                    ena=0;                  //如果前方檢測到障礙,L298使能端為低 ,左輪停止(小車轉彎)                  
  49.                    delay(1000);
  50.                    ena=1;                  //一秒后轉彎結束,繼續兩輪驅動前進
  51.                 }
  52.           if(xdg==0)                  //如果小車下方未檢測到障礙(碰到臺階)          
  53.             {
  54.                    in2=1;                  //L298IN2為高,小車左輪后退
  55.                    in4=1;                  //L298IN4為高,小車右輪后退
  56.                    delay(1000);
  57.                    ena=0;                  //后退一秒后,左輪停止(轉彎)  
  58.                    delay(1000);          //一秒后轉彎結束,小車繼續前進
  59.                 }
  60.         }
  61. }

  62. void timer0() interrupt 1
  63. {
  64.     TH0=(65536-500)/256;
  65.     TL0=(65536-500)%256;
  66.     cs1++;
  67.     if (cs1==10)   
  68.           {
  69.                 cs1=0;   
  70.             num1++;
  71.                 if(num1==3)
  72.                 num1=0;
  73.                 in1=table[num1];

  74.                 num2++;
  75.                 if(num2==3)
  76.                 num2=0;
  77.                 in3=table[num2];
  78.           }
  79. }
復制代碼


所有資料51hei提供下載:
小車.rar (59.09 KB, 下載次數: 98)



作者: 5523223221312    時間: 2018-5-11 10:35
真的挺好的
作者: 雜七雜稀碎的    時間: 2018-6-22 23:45
想請教一下你這個紅外感應是怎么弄的呀?仿真圖里是只有兩個按鈕呢?
作者: 雜七雜稀碎的    時間: 2018-6-22 23:46
想請教一下,這個小車的紅外是怎么加上去的呀?




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