亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? final_code.c

?? 用于stc單片機控制循跡車的源碼 以此控制你的小車循跡運行
?? C
字號:
#include <Mega32.h>
#include <stdio.h>

#define stop 0
#define straight 3
#define left_turn 1
#define right_turn 2
#define middle 4
#define left 5
#define right 6
#define move 7
#define begin {
#define end   }

int sensor_timer, go_timer, turn_timer;
int Ain, midRd, leftRd, rightRd; 		//raw A to D number
char car_state, sensor_state;
bit sensor, go, turn;

void main(void);
void initialize(void);
void sensor_check(void);
void move_car(void);

//------------------------------------------------------------------
interrupt [TIM2_OVF] void timer2_ovf(void)
begin
   TCNT2 = 6;
   sensor_timer ++;
   if (turn)
   turn_timer++;

end

//------------------------------------------------------------------
void main(void)
begin
   initialize();
   #asm
   sei
   #endasm

   while(1)
   begin
     sensor_check();
   end
end


//------------------------------------------------------------------
void sensor_check(void)
begin
     switch (sensor_state)
     begin
            case move:
            move_car();
            sensor_timer = 0;
            sensor_state = right;

       break;
       case right:
       if (sensor_timer >= 2)
       begin
            //get the sample
            Ain = ADCH;
	    ADMUX =  0b01100001;   //Read Port A1
            //start another conversion
            ADCSR.6=1;
            rightRd = Ain;
            sensor_state = left;
       end
       else sensor_state = right;
       break;

       case left:
       if (sensor_timer >= 4)
       begin
            //get the sample
            Ain = ADCH;
 	    ADMUX =  0b01100000;   //Read Port A0
            //start another conversion
            ADCSR.6=1;
            leftRd = Ain;  
            sensor_state = middle;
       end
       else sensor_state = left;
       break;

       case middle:
       if (sensor_timer >= 6)
       begin
            // get the sample
            Ain = ADCH;
 	    ADMUX = 0b01100010;   //Read Port A2
            // start another conversion
            ADCSR.6=1;
            midRd = Ain;  
            sensor_state = move;       
       end
       else sensor_state = middle;
       break;
    end
end


//------------------------------------------------------------------
void move_car(void)
begin
     //printf("%d\n\r",midRd);
     switch (car_state)
     begin

          case stop:
          // Car is not over a path
          if (midRd>80 && leftRd>80 && rightRd>80)
          begin
               TCCR0 = 0b00000000;
               PORTB.3 = 0;
               //Stops steering motor
               PORTA.3 = 0;
               PORTA.4 = 0;
               PORTA.5 = 0;
               PORTA.6 = 0;
          end
          
          else
          begin
                TCCR0 = 0b01101100;   //Enable PWM mode PRESCALER 64    
                 OCR0 = 128; 
                 car_state = straight;
 		      end
 		      break;
 		      
          case straight:
          if (midRd>80 && leftRd>80 && rightRd>80)
          begin
               TCCR0 = 0b00000000;
               PORTB.3 = 0;
               //Stops steering motor
               PORTA.3 = 0;
               PORTA.4 = 0;
               PORTA.5 = 0;
               PORTA.6 = 0; 
               car_state = stop;
          end

          else if (leftRd<40 && rightRd>80)
          begin
               //Turn off other transistors
               PORTA.5 = 0;
               PORTA.6 = 0;
               //Power steering motor left
               PORTA.3 = 1;
               PORTA.4 = 1;
               car_state =left_turn; 
                         turn = 1;
               end

          else if (rightRd<40 && leftRd>80)
          begin
               //Turns off other transistors
               PORTA.3 = 0;
               PORTA.4 = 0;
               //Power steering motor right
               PORTA.6 = 1;
               PORTA.5 = 1;
               car_state = right_turn; 
               turn = 1;
	  end
          break;

          case left_turn: 
          if (turn_timer >= 1500)
          begin
              // Car is not over a path
              if (midRd>80 && leftRd>80 && rightRd>80)
              begin   
                   //Turn off all motors
                   TCCR0 = 0b00000000;  
                   PORTB.3 = 0;
                   PORTA.3 = 0;
                   PORTA.4 = 0;
                   PORTA.5 = 0;
                   PORTA.6 = 0;  
                   car_state = stop;
              end    
              turn_timer = 0;
          end

          //If middle sensor is not over the path
          if (midRd>80 && leftRd<40 && rightRd>80)
          begin
               //Power steering motor left
               PORTA.3 = 1;
               PORTA.4 = 1;
               PORTA.5 = 0;
               PORTA.6 = 0;
          end

          //Car has readjusted itself to course - ie it has turned left
          else if (midRd<40 && leftRd>80 && rightRd>80)
          begin
               //Left Brake
               PORTA.5 = 0;
               PORTA.4 = 0;
               PORTA.3 = 1;   
               PORTA.6 = 1;
               car_state = stop;
          end

          //If the car overshoots to the left
          else if (rightRd<40 && leftRd>80)
          begin
              //Left Brake
              PORTA.5 = 0;
              PORTA.4 = 0;
              PORTA.3 = 1;
              PORTA.6 = 1;
              car_state = right_turn;
          end
          break;

          case right_turn:  
     
          if (turn_timer >= 1500)
          begin
    	       if (midRd>80 && leftRd>80 && rightRd>80)
    	       begin
                    //Turn off all motors
                    TCCR0 = 0b00000000; 
    	            PORTB.3 = 0;
                    PORTA.3 = 0;
                    PORTA.4 = 0;
                    PORTA.5 = 0;
                    PORTA.6 = 0;
                    car_state = stop;
    	       end   
    	       turn_timer = 0;
          end

          //If middle sensor is not over the path
          if (midRd>80 && rightRd<40 && leftRd>80)
          begin
               //Power steering motor right
               PORTA.6 = 1;
               PORTA.5 = 1;
               PORTA.4 = 0;
               PORTA.3 = 0;
          end

          //Car has readjusted itself to course - ie it has turned right
          else if (midRd<40 && leftRd>80 && rightRd>80)
          begin
              //Right Brake
              PORTA.5 = 0;
              PORTA.4 = 0;
              PORTA.3 = 1;
              PORTA.6 = 1;
              car_state = stop;
          end

          //If the car overshoots to the right
          else if (leftRd<40 && rightRd>80)
          begin
              //Right Brake
              PORTA.5 = 0;
              PORTA.4 = 0;
              PORTA.3 = 1;
              PORTA.6 = 1;
              car_state = left_turn;
          end
          break;
     end
end


//------------------------------------------------------------------
void initialize(void)
begin
     DDRA = 0b11111000;         //Makes PortA0 - A2 inputs, A3 - A7 outputs 
     DDRB.3 = 1;                //Makes PortB0 output
     TCCR2 = 0b00000011;        //Normal Mode with Prescaler of 64
     TIMSK = 0b01000000;        //Enable Timer 0 interrupt
     sensor_timer = 0;
     car_state = stop;
     sensor_state = right;
     PORTA.4 = 0;               //No power to motor circuitry
     PORTA.5 = 0;
     PORTA.6 = 0;
     PORTA.7 = 0;
     go_timer = 0;
     ADMUX = 0b01100010;
     ADCSR = 0b11000111;        //ADC running with prescaler of 128 so 8 usec per reading
end

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人国产精品免费| 国产精品亚洲专一区二区三区| 亚洲午夜激情av| 免费成人av资源网| 色综合色狠狠综合色| 欧美日韩国产一级二级| 91精品国产综合久久精品| 欧美精品一区二区三区视频 | 成人一二三区视频| 欧美性生交片4| 日韩一级视频免费观看在线| 中文字幕第一区综合| 亚洲大片免费看| 精品在线你懂的| 色成人在线视频| 国产精品入口麻豆原神| 欧美a一区二区| 欧美日韩视频第一区| 亚洲乱码日产精品bd| 成人av电影免费在线播放| 欧美成人一区二区三区| 日韩精品国产欧美| 成人黄色av网站在线| 欧美一级搡bbbb搡bbbb| 亚洲欧洲日产国码二区| 欧美aⅴ一区二区三区视频| 成人性生交大片免费看中文| 久久久久国产精品麻豆ai换脸| 亚洲电影在线播放| 本田岬高潮一区二区三区| 日韩亚洲欧美综合| 亚洲成人av一区二区| 国产91精品免费| 精品久久免费看| 日本亚洲视频在线| 欧美亚洲动漫精品| 亚洲图片欧美激情| 国产成人在线看| 国产日韩亚洲欧美综合| 美女高潮久久久| 欧美视频在线观看一区二区| 欧美国产一区在线| 国产麻豆精品95视频| 欧美大片在线观看一区二区| 亚洲成av人**亚洲成av**| 欧美系列一区二区| 亚洲综合网站在线观看| 91视频国产观看| 亚洲欧美在线视频| 在线亚洲精品福利网址导航| 18欧美亚洲精品| 欧美日韩视频专区在线播放| 日韩中文字幕1| 久久五月婷婷丁香社区| 99久久婷婷国产| 亚洲福利电影网| 欧美成人精精品一区二区频| 成人午夜精品在线| 亚洲精品国产a| 日韩一区二区在线播放| 国产成人福利片| 亚洲精品写真福利| 日韩欧美成人午夜| 成人91在线观看| 视频一区在线播放| 欧美国产一区二区在线观看| 在线观看欧美黄色| 久久国产乱子精品免费女| 国产精品每日更新| 日韩一区二区在线播放| 成人av免费在线观看| 偷拍与自拍一区| 国产精品网站一区| 欧美一区二区免费| 92精品国产成人观看免费| 毛片一区二区三区| 亚洲天堂网中文字| 精品免费视频一区二区| 91丨国产丨九色丨pron| 国内成人精品2018免费看| 亚洲精品国产一区二区三区四区在线 | 99久久婷婷国产| 亚洲欧美乱综合| 日韩欧美黄色影院| 精品国产99国产精品| av高清久久久| 日韩二区在线观看| 国产精品视频免费| 欧美三级电影在线看| 韩国精品在线观看| 亚洲精品欧美激情| 欧美丰满少妇xxxxx高潮对白 | 中国av一区二区三区| 在线免费视频一区二区| 午夜国产精品一区| 中日韩免费视频中文字幕| 日韩一区二区三区在线| 成人亚洲精品久久久久软件| 琪琪久久久久日韩精品| 一区二区三区在线影院| 国产欧美精品一区二区色综合| 日韩视频一区二区三区在线播放 | 欧美色视频一区| 国产一区二区三区四区五区入口| 综合色天天鬼久久鬼色| 日韩免费观看2025年上映的电影| 99久久精品免费看国产| 久久精品国内一区二区三区| 日韩毛片精品高清免费| 精品噜噜噜噜久久久久久久久试看| 日本电影欧美片| www.激情成人| 91丨porny丨在线| 91亚洲精品乱码久久久久久蜜桃| 久久99在线观看| 天天影视色香欲综合网老头| 亚洲日韩欧美一区二区在线| 欧美大片一区二区| 欧美日韩一本到| 欧美日韩高清不卡| 欧美一区二区福利视频| 日韩午夜在线观看| 亚洲精品在线观看视频| 久久人人97超碰com| 国产精品天天看| 自拍偷拍亚洲综合| 亚洲一区影音先锋| 丝袜国产日韩另类美女| 美女www一区二区| 国产乱人伦精品一区二区在线观看| 韩国一区二区三区| 成人视屏免费看| 91浏览器在线视频| 91超碰这里只有精品国产| 欧美一区二区三区播放老司机| 精品999久久久| 国产精品久久毛片av大全日韩| 亚洲日本一区二区| 日本不卡一区二区三区高清视频| 日韩精品1区2区3区| 久久66热re国产| 9色porny自拍视频一区二区| 欧洲在线/亚洲| 欧美大黄免费观看| 国产精品久久精品日日| 亚洲一本大道在线| 韩国欧美一区二区| 99视频一区二区三区| 欧美色图一区二区三区| 精品久久五月天| 亚洲色图欧美在线| 久久99久久99| 91香蕉视频在线| 亚洲精品在线免费观看视频| 亚洲欧美韩国综合色| 久久99国产精品成人| 91蜜桃网址入口| 2017欧美狠狠色| 亚洲国产综合色| 成人av在线网| 日韩午夜av一区| 亚洲日本欧美天堂| 国产一区二区三区综合| 欧美三区在线观看| 国产女人18毛片水真多成人如厕 | 欧美色综合久久| 中文字幕的久久| 久久国产精品99久久人人澡| 99久久亚洲一区二区三区青草| 日韩久久久久久| 亚洲国产一二三| av电影天堂一区二区在线| 日韩欧美国产综合在线一区二区三区| 国产欧美日本一区二区三区| 免费在线观看一区二区三区| 在线观看国产一区二区| 国产精品理伦片| 国产一区二区三区黄视频 | 中文字幕第一页久久| 蜜桃传媒麻豆第一区在线观看| 色婷婷av一区二区三区gif| 久久久五月婷婷| 日韩av高清在线观看| 色婷婷av一区二区三区之一色屋| 国产女人18毛片水真多成人如厕| 另类的小说在线视频另类成人小视频在线| 色综合视频一区二区三区高清| 久久综合成人精品亚洲另类欧美 | 性久久久久久久久| 色综合激情五月| 国产精品久久久久久久久免费相片 | 欧美国产一区二区| 欧美日韩国产综合视频在线观看| 国产日产欧美一区| 国产成人精品一区二区三区四区 | 色综合一区二区| 国产精品天干天干在观线| 大尺度一区二区| 中文一区在线播放| 成人福利电影精品一区二区在线观看|