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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4526|回復: 1
收起左側

小車循跡avr單片機版源程序

[復制鏈接]
ID:193574 發表于 2017-4-25 20:38 | 顯示全部樓層 |閱讀模式
小車循跡avr版
0.png

  1. #include<mega128.h>
  2. #include "delay.h"
  3. #define left1   PORTC.0  
  4. #define left2   PORTC.1
  5. #define min     PORTC.2
  6. #define right1  PORTC.3
  7. #define right2  PORTC.4  
  8. #define Turn_Left       PORTC.5
  9. #define Turn_Right      PORTC.6
  10. #define u8      unsigned char
  11. #define u16     unsigned int  

  12. void  Init_IO(void)
  13. {
  14.     DDRC = DDRC&0xe0; //將C端口低5位定義為輸入,浮空
  15.     PORTC = 0xe0;//
  16.     DDRB = 0xff; //將B端口設為輸出模式
  17.     PORTB = 0xff;
  18.     PORTA = 0xff;
  19.     DDRA = 0xff;
  20. }   

  21. void Adjust_Speed(u8 Left_Speed,u8 Right_Speed)
  22. {
  23.       OCR1A = (u16)Right_Speed*10 ;//Left_Speed:1--100,為右電機占空比
  24.       OCR1B = (u16)Left_Speed*10;//Right_Speed:1--100,為左電機的占空比   
  25. }

  26. void    Init_Timer1(void)
  27. {       u16     i,j;
  28.         i = 300; //實際測試發現1600時電機速度還是很快的。
  29.         j = 300;
  30.         TCCR1A = 0xa0;//相位與頻率修正PWM,TOP值為ICR1,向上計數匹配清零,向下計數匹配時置1
  31.         TCCR1B = 0x12;//系統時鐘8分頻,A,B同時輸出PWM   
  32.         OCR1A = i; //右電機
  33.         OCR1B = j;  //在電機
  34.         ICR1 = 1000;
  35. }

  36. void main(void)
  37. {   
  38.         Init_IO();
  39.         Init_Timer1();
  40.         while(1)
  41.         {
  42.            if(PINC==0xfb)//只有中間循跡管檢測到黑線11011
  43.            {
  44.                Adjust_Speed(90,90);//前進(35,35):一圈循跡時間16.3S  (38,38)一圈循跡時間15.5s (40,40)一圈循跡時間16.34s (50,50)15.34s(60,60)14.21s
  45.                PORTA = 0xfe;        //(80,80)13.68s
  46.            }
  47.            
  48.          if(PINC==0xf9)//中間和左邊第二個循跡管檢測到黑線10011
  49.          {
  50.                Adjust_Speed(20,60);//左轉
  51.               //  delay_ms(5);
  52.                PORTA = 0xfd;
  53.           }
  54.             
  55.            if(PINC==0xfd)//左邊第二個循跡管檢測到黑線10111
  56.            {
  57.                 Adjust_Speed(15,65);//左轉
  58.                //delay_ms(5);
  59.                  PORTA = 0xfb;
  60.            }
  61.             
  62.            if(PINC==0xfc)//左邊兩個同時檢測到黑線00111
  63.            {
  64.            
  65.                 Adjust_Speed(10,70);//左轉
  66.                  PORTA = 0xf7;
  67.            }
  68.            
  69.           if(PINC==0xfe)//左邊第一個循跡管檢測到黑線01111
  70.           {
  71.               
  72.                Adjust_Speed(7,85);//左轉
  73.              //   delay_ms(5);
  74.                 PORTA = 0xef;
  75.           }
  76.            
  77.             if(PINC==0xf3)//中間和右邊第二個循跡管檢測到黑線11001
  78.           {
  79.               
  80.                Adjust_Speed(35,15);//右轉
  81.                 PORTA = 0xdf;
  82.            }
  83.           if(PINC==0xf7)//右邊第二個循跡管檢測到黑線11101
  84.           {
  85.                Adjust_Speed(70,13);//右轉  
  86.                 PORTA = 0xbf;
  87.            }  
  88.            if(PINC==0xe7)//右邊兩個檢測到黑線11100
  89.            {
  90.                Adjust_Speed(80,10);//右轉  
  91.                PORTA = 0x7f;
  92.            }  
  93.            if(PINC==0xef)//右邊第一個檢測到黑線11110
  94.            {
  95.                Adjust_Speed(100,10);//右轉   
  96.                PORTA = 0xfc;
  97.            }   
  98.            if(PINC==0xe3)//右側三個循跡管同時檢測到黑線(直角)11000
  99.            {
  100.                Adjust_Speed(40,0);//右轉
  101.                PORTA = 0xf8;   
  102.            }
  103.            if(PINC==0xe7)//左側三個循跡管同時檢測到黑線(直角)00011左轉
  104.           {
  105.                Adjust_Speed(0,40);//左轉
  106.                 PORTA = 0xf0;
  107.            }
  108.            if(PINC==0xe0)//5個循跡管同時檢測到交叉00000直走
  109.            {
  110.              Adjust_Speed(25,25);//直走
  111.               PORTA = 0xe0;
  112.            }
  113.        //    if(PINC==0xff)
  114.          //  {
  115.            //    Adjust_Speed(0,100);//直走
  116.              // PORTA = 0xc0;   
  117.            //}
  118. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

下載:
小車循跡AVR版.rar (65.89 KB, 下載次數: 9)
回復

使用道具 舉報

ID:194034 發表于 2017-5-4 11:28 | 顯示全部樓層
真的很好,我很需要。謝謝
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一区自拍 | 国产精品色哟哟网站 | 亚洲 日本 欧美 中文幕 | 欧美久久综合 | 中文字幕一区二区三区在线乱码 | 日韩午夜电影在线观看 | 久久高清| 国产高清久久久 | 精品国产18久久久久久二百 | 亚洲精品视频在线 | 国产在线h | 成人性视频在线播放 | 亚洲精品乱码久久久久久久久久 | 国产精品18hdxxxⅹ在线 | 亚洲精品乱码久久久久v最新版 | 日韩成人在线视频 | 国产午夜精品视频 | 国产精品色一区二区三区 | 欧美一区二区三区在线观看视频 | 久久av资源网 | 亚洲图片一区二区三区 | 日韩在线免费观看视频 | 在线小视频 | 日韩中文字幕一区 | 欧日韩不卡在线视频 | 日本三级黄视频 | www.97国产 | 亚洲欧美综合 | 久久久久久久综合色一本 | 超碰在线免费av | 国产精品久久九九 | 日韩欧美在线观看视频网站 | 亚洲va欧美va天堂v国产综合 | 久久成人18免费网站 | 日本在线观看网址 | 久久三级av | 男人天堂99| 亚洲欧美国产精品久久 | 亚洲国产精品视频一区 | 天天操天天射综合 | 免费xxxx大片国产在线 |