Thông báo

Collapse
No announcement yet.

cho mình xin chương trinh bám vạch kẻ đường dạng robocon viết cho 8951

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • cho mình xin chương trinh bám vạch kẻ đường dạng robocon viết cho 8951

    các bác ai có cho em sơm sớm tí nha

  • #2
    chương trình bám vạch kẻ đường theo robocon cho 8951

    bác nào có thì cho em nhé. Viết bằng ASM thi quá tốt

    Comment


    • #3
      Nguyên văn bởi navyofficer Xem bài viết
      bác nào có thì cho em nhé. Viết bằng ASM thi quá tốt
      Bạn mà xin thế này thì có mà đến tết công gô cũng chẳng có ai cho bạn đâu !
      Dẫu có người cho, bạn lấy về cũng chẳng giải quyết được vấn đề gì !

      Comment


      • #4
        Mình chỉ có code C cho Pic thôi..bạn tham khảo nhé? ( hoặc chuyển qua dùng pic luôn cho tiện đi )
        http://www.dientuvietnam.net/forums/...ic-full-43496/


        /*
        Chuong trinh do duong gap vat
        Dem 3 vach thi dung lai va gap vat
        Ngay viet 22/5/2011

        */
        #include <16f877A.h>
        #include <def_877A.h>
        #fuses HS,NOWDT,NOPROTECT,NOLVP
        #use delay(clock = 20000000Hz)

        //#use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7)
        #use fast_io (a)
        #use fast_io (B)
        #use fast_io (c)
        #use fast_io (d)
        #use fast_io (e)
        /****************************************
        * CONSTANTS - HANG SO*/

        //#define SENSOR PORTD //Cam bien o port D
        #define MOTOR_LEFT_DIR RC0 //Cho phep dong co trai
        #define MOTOR_LEFT_PWM RC1 //PWM DONG CO TRAI
        #define MOTOR_RIGHT_PWM RC2 // PWM DONG CO PHAI
        #define MOTOR_RIGHT_DIR RC3 // CHO PHP DONG CO PHAI
        #define PIW_NANG_HA RC4 // NANG HA VAT
        #define PIW_KEP_NHA RC6 //KEP NHA VAT
        #define DIR_NANG_HA RC5 // DAO CHIEU QUAY MOTOR NANG HA
        #define DIR_KEP_NHA RC7 // DAO CHIEU QUAY MOTOR KEP NHA
        char dem_vach=0;
        int8 j=0, k= 0b01100110;
        int8 SENSOR;

        //- CAC HAM SU DUNG TRONG CHUONG TRINH
        void left_motor_forward(); //DONG CO TRAI QUAY THUAN
        void right_motor_forward(); //DONG CO PHAI QUAY THUAN
        void left_motor_reverse(); // DONG CO TRAI QUAY NGUOC
        void right_motor_reverse(); //DONG CO PHAI QUAY NGUOC
        void left_motor_stop(); //DONG CO TRAI DUNG
        void right_motor_stop(); //DONG CO PHAI DUNG
        void motor_stop(); //DUNG TOAN BO
        void speed (signed int left_motor_speed, signed int right_motor_speed);
        void DO_DUONG(); //CHUONG TRINH CON DO DUONG
        VOID RE_TRAI(); // CHUONG TRINH RE TRAI
        VOID RE_PHAI(); //CHUONG TRINH RE PHAI
        void NANG_HA_VAT(); //CHUONG TRINH NANG HA VAT
        void KEP_NHA_VAT(); //CHUONG TRINH KEP NHA VAT
        ///////////////////////////////////////////////////////////


        // KHAI BAO NGAT/////////////////////////
        //NGAT NGOAI KHI GAP VAT THI QUAY DAU LAI (DI TIM DUONG KHAC


        ////////////////////////////////////////////////////////////
        //CAC HAM DIEU KHIEN TOC DO DONG CO
        void left_motor_forward(int value)
        {
        MOTOR_LEFT_DIR=1;
        setup_timer_2(T2_DIV_BY_4,124,1); // Dieu xung 10kHz
        setup_ccp1(CCP_PWM);
        set_pwm1_duty(value);
        }

        void right_motor_forward(int value)
        {
        MOTOR_RIGHT_DIR=1;
        setup_timer_2(T2_DIV_BY_4,124,1); // Dieu xung 10kHz
        setup_ccp2(CCP_PWM);
        set_pwm2_duty(value);
        }

        void left_motor_reverse(int value)
        {
        MOTOR_LEFT_DIR=0;
        setup_timer_2(T2_DIV_BY_4,124,1); // Dieu xung 10kHz
        setup_ccp1(CCP_PWM);
        set_pwm1_duty(value);
        }

        void right_motor_reverse(int value)
        {
        MOTOR_RIGHT_DIR=0;
        setup_timer_2(T2_DIV_BY_4,124,1); // Dieu xung 10kHz
        setup_ccp2(CCP_PWM);
        set_pwm2_duty(value);
        }

        void left_motor_stop()
        {
        setup_ccp1(CCP_OFF);
        }

        void right_motor_stop()
        {
        setup_ccp2(CCP_OFF);
        }


        void motor_stop()
        {
        left_motor_stop();
        right_motor_stop();
        }


        //HAM XUAT TOC DO 2 DONG CO: Left motor: -100 - 100 , Right motor: -100 - 100
        // 0:Stop,100:FORWARD 100%,-100:Reverse 100%
        //--------------CAC HAM HO TRO SPEED------------------------------------------
        void speed (signed int left_motor_speed, signed int right_motor_speed)
        {
        int left_pwm_value=0,right_pwm_value=0;
        /* Left motor */
        if( left_motor_speed >= 0 )
        {
        left_pwm_value = 1.25*left_motor_speed; // (125*left_motor_speed/100)
        left_motor_forward(left_pwm_value);
        }
        else
        {
        left_motor_speed = -left_motor_speed;
        left_pwm_value = 1.25*left_motor_speed; // (125*left_motor_speed/100)
        left_motor_reverse(left_pwm_value);
        }

        /* Right motor */
        if( right_motor_speed >= 0 )
        {
        right_pwm_value = 1.25*right_motor_speed; // (125*left_motor_speed/100)
        right_motor_forward(right_pwm_value);
        }
        else
        {
        right_motor_speed = -right_motor_speed;
        right_pwm_value = 1.25*right_motor_speed; // (125*left_motor_speed/100)
        right_motor_reverse(right_pwm_value);
        }
        }
        //------------------------------------------------------------------------------
        //RE TRAI VA RE PHAI//////////////////

        VOID RE_TRAI(right_motor_forward,left_motor_stop)
        {
        speed (100,0);
        }
        VOID RE_PHAI(right_motor_forward,left_motor_stop)
        {
        speed (0,100);
        }
        ///////////////////////////////////////////////////////////////
        // NANG HA VAT VA KEP NHA/////////////////////////////
        VOID NANG_VAT()
        {
        DIR_NANG_HA = 1;
        PIW_NANG_HA =0;
        Delay_ms(5000000);
        PIW_NANG_HA = 1;//ket thuc nang vat
        DIR_NANG_HA = 1;

        }
        VOID HA_VAT()
        {
        DIR_NANG_HA =0;
        PIW_NANG_HA =0;
        Delay_ms(5000000);
        PIW_NANG_HA = 1;//ket thuc ha vat
        DIR_NANG_HA =1;
        }
        VOID KEP_VAT()
        {
        DIR_KEP_NHA=1;
        PIW_KEP_NHA=0; // cho phep kep vat
        Delay_ms(1000000);
        PIW_KEP_NHA=1; // ket thuc kep vat
        }
        VOID NHA_VAT()
        {
        DIR_KEP_NHA=0;
        PIW_KEP_NHA=0; //cho phep nha vat
        Delay_ms(1000000);
        PIW_KEP_NHA=1;// ket thuc nha vat
        DIR_KEP_NHA=1;
        }

        ////////////////////////////
        //CHUONG TRINH DO DUONG

        void DO_DUONG(SENSOR)
        {
        SWITCH (SENSOR)
        {
        case 0b11100111:
        speed(100,100);

        break;
        case 0b11110011:
        speed(90,80);

        break;
        case 0b11111001:
        speed(70,80);

        break;
        case 0b11111100:
        speed(60,70);

        break;
        case 0b11111110:
        speed(50,60);

        break;
        case 0b11001111:
        speed(80,90);

        break;
        case 0b10011111:
        speed(70,80);

        break;
        case 0b00111111:
        speed(60,70);

        break;
        case 0b01111111:
        speed(50,60);
        break;
        case 0b11111111:
        speed(0,0);
        break;
        }
        }
        //-------------------------Chuong trinh dem vach------------------///////////
        VOID DEM_VACH()
        {

        SENSOR = input_d();
        if( SENSOR!=k)//vi D3 va D4 dang bi noi dat==>xem lai mach ve
        {
        k=SENSOR;
        if(k==0b01100110)
        {
        j++;
        if(j>8) j=0;
        }
        }
        }
        /*
        #INT_ext
        Void ngat()
        {
        KEP_VAT();
        NANG_VAT();
        HA_VAT();
        NHA_VAT();
        speed(0,100);
        }
        //--------------------------------------------------------------------------
        //MAN FUNCTION - CHUONG TRINH CHINH
        /* CHUONG TRÌNH CHÍNH */

        void main ()
        {

        SENSOR = input_d();
        TRISC=0x00; // PORTC là ngõ ra ( dong co)
        TRISD=0xff; // PORTD là ngõ vào (cam bien quang)
        trisb=0xff;//xac lap dau vao
        trise=0;//xac lap dau ra
        trisa=0;//xac lap dau ra
        portb = 0xff;
        Output_bit(Pin_C4,1);
        Output_bit(Pin_C5,1);
        Output_bit(Pin_C6,1);
        Output_bit(Pin_C7,1);
        enable_interrupts(int_ext);
        Ext_int_edge(H_to_L);
        enable_interrupts(global);
        while(true)
        {
        IF (J==3)
        {

        KEP_VAT();
        NANG_VAT();

        HA_VAT();
        NHA_VAT();
        j=0;
        }
        else
        DEM_VACH();
        DO_DUONG(SENSOR);
        if (j==3)
        {
        KEP_VAT();
        NANG_VAT();

        HA_VAT();
        NHA_VAT();
        j=0;

        }
        else
        DEM_VACH();
        DO_DUONG(SENSOR);
        }
        }
        Quang Nhat
        ---------------------------------------
        Yahoo :quangnhat85ls
        Mail :
        Nhận thiết kế và ép nhựa cho đồ điện tử

        Comment

        Về tác giả

        Collapse

        navyofficer Tìm hiểu thêm về navyofficer

        Bài viết mới nhất

        Collapse

        Đang tải...
        X