在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機(jī)智能循跡小車制作

            單片機(jī)智能循跡小車制作

            作者: 時間:2016-11-30 來源:網(wǎng)絡(luò) 收藏
            電路圖和制作詳情請從這里下載附件:http://www.51hei.com/bbs/dpj-18970-1.html,下面是程序源代碼

            /****
            **********************************
            *程序說明:
            *此ATmega128單片機(jī)程序
            *包含功能:
            *1、
            *2、
            *3、
            *4、
            *5、
            **********************************
            *文件:main.c
            *用途:系統(tǒng)主程序
            *注意:系統(tǒng)時鐘8MHZ
            *編譯環(huán)境:Code VisionAVR
            **********************************
            *版本:智能循跡小車v1.0
            *作者:吾ARM1
            *修改時間?012年4月19日
            *完成時間:2012年4月16日
            **********************************/

            本文引用地址:http://www.biyoush.com/article/201611/323709.htm

            #include
            #include "delay.h"
            #define left1 PORTC.0
            #define left2 PORTC.1
            #define min PORTC.2
            #define right1 PORTC.3
            #define right2 PORTC.4
            #define Turn_Left PORTC.5
            #define Turn_Right PORTC.6
            #define u8 unsigned char
            #define u16 unsigned int

            void Init_IO(void)
            {
            DDRC = DDRC&0xe0; //將C端口低5位定義為輸入,浮空
            PORTC = 0xe0;//
            DDRB = 0xff; //將B端口設(shè)為輸出模式
            PORTB = 0xff;
            PORTA = 0xff;
            DDRA = 0xff;
            }

            void Adjust_Speed(u8 Left_Speed,u8 Right_Speed)
            {
            OCR1A = (u16)Right_Speed*10 ;//Left_Speed:1--100,為右電機(jī)占空比
            OCR1B = (u16)Left_Speed*10;//Right_Speed:1--100,為左電機(jī)的占空比
            }

            void Init_Timer1(void)
            { u16 i,j;
            i = 300; //實際測試發(fā)現(xiàn)1600時電機(jī)速度還是很快的。
            j = 300;
            TCCR1A = 0xa0;//相位與頻率修正PWM,TOP值為ICR1,向上計數(shù)匹配清零,向下計數(shù)匹配時置1
            TCCR1B = 0x12;//系統(tǒng)時鐘8分頻,A,B同時輸出PWM
            OCR1A = i; //右電機(jī)
            OCR1B = j; //在電機(jī)
            ICR1 = 1000;
            }

            void main(void)
            {
            Init_IO();
            Init_Timer1();
            while(1)
            {
            if(PINC==0xfb)//只有中間循跡管檢測到黑線11011
            {
            Adjust_Speed(90,90);//前進(jìn)(35,35):一圈循跡時間16.3S (38,38)一圈循跡時間15.5s (40,40)一圈循跡時間16.34s (50,50)15.34s(60,60)14.21s
            PORTA = 0xfe; //(80,80)13.68s
            }

            if(PINC==0xf9)//中間和左邊第二個循跡管檢測到黑線10011
            {
            Adjust_Speed(20,60);//左轉(zhuǎn)
            // delay_ms(5);
            PORTA = 0xfd;
            }

            if(PINC==0xfd)//左邊第二個循跡管檢測到黑線10111
            {
            Adjust_Speed(15,65);//左轉(zhuǎn)
            //delay_ms(5);
            PORTA = 0xfb;
            }

            if(PINC==0xfc)//左邊兩個同時檢測到黑線00111
            {

            Adjust_Speed(10,70);//左轉(zhuǎn)
            PORTA = 0xf7;
            }

            if(PINC==0xfe)//左邊第一個循跡管檢測到黑線01111
            {

            Adjust_Speed(7,85);//左轉(zhuǎn)
            // delay_ms(5);
            PORTA = 0xef;
            }

            if(PINC==0xf3)//中間和右邊第二個循跡管檢測到黑線11001
            {

            Adjust_Speed(35,15);//右轉(zhuǎn)
            PORTA = 0xdf;
            }
            if(PINC==0xf7)//右邊第二個循跡管檢測到黑線11101
            {
            Adjust_Speed(70,13);//右轉(zhuǎn)
            PORTA = 0xbf;
            }
            if(PINC==0xe7)//右邊兩個檢測到黑線11100
            {
            Adjust_Speed(80,10);//右轉(zhuǎn)
            PORTA = 0x7f;
            }
            if(PINC==0xef)//右邊第一個檢測到黑線11110
            {
            Adjust_Speed(100,10);//右轉(zhuǎn)
            PORTA = 0xfc;
            }
            if(PINC==0xe3)//右側(cè)三個循跡管同時檢測到黑線(直角)11000
            {
            Adjust_Speed(40,0);//右轉(zhuǎn)
            PORTA = 0xf8;
            }
            if(PINC==0xe7)//左側(cè)三個循跡管同時檢測到黑線(直角)00011左轉(zhuǎn)
            {
            Adjust_Speed(0,40);//左轉(zhuǎn)
            PORTA = 0xf0;
            }
            if(PINC==0xe0)//5個循跡管同時檢測到交叉00000直走
            {
            Adjust_Speed(25,25);//直走
            PORTA = 0xe0;
            }
            // if(PINC==0xff)
            // {
            // Adjust_Speed(0,100);//直走
            // PORTA = 0xc0;
            //}

            }

            }



            評論


            技術(shù)專區(qū)

            關(guān)閉