Thông báo

Collapse
No announcement yet.

gui cho minh so dô mạch nap 89s52

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

  • gui cho minh so dô mạch nap 89s52

    minh dang can gap? goi hung nhe

  • #2
    Nguyên văn bởi hung.10295 Xem bài viết
    minh dang can gap? goi hung nhe

    Comment


    • #3
      Nguyên văn bởi hung.10295 Xem bài viết
      minh dang can gap? goi hung nhe
      KO chịu tìm kiếm!

      Comment


      • #4
        có ai giúp em vói, em đang lạp trình cho động cơ DC bàng 89c51,
        em sủ dụng 6 nut nhấn , start, stop, quay thuan, quay nghich , tang , giam,
        em đã lập trình được start , stop ,thuận, nghich.
        còn phần thay đổi tốc độ DC thì em vẫn chưa lam được
        mong anh chị chỉ giùm em
        em là người mới nên chưa nắm rõ lắm

        #include <REGX51.H>

        /* Dinh nghia cac nut nhan*/
        #define start P2_0
        #define stop P2_1
        #define thuan P2_2
        #define nghich P2_3
        #define tang P2_4
        #define giam P2_5

        bit PWM;
        unsigned char dem=0;
        unsigned int phantram_PWM=10;

        /* Ham tao thoi gian tre*/

        void delay(unsigned int t)
        {
        unsigned int i,j;
        for(i=0;i<100;i++);
        for(j=0;j<t;j++);
        }


        /* Khoi tao Timer 100us*/

        void khoitaohethong()
        {
        //ES=1;
        EA=0;
        TMOD=0x02; // che do 8 bit tu nap
        TH0=0x9b; // nap gia tri 155 ma hex
        TL0=0x9b;
        EA=1;
        TR0=1;// Chay timer 0 bat dau dem so chu ki may
        ET0=1;
        }
        /* Ngat tao ra PWM*/

        void ngat_timer0(void) interrupt 1
        {
        TR0=0;
        TF0=0;
        dem++;
        if(dem>=phantram_PWM)
        {
        PWM=1;
        }
        else
        {
        PWM=0;
        }
        if(dem==10) dem=0;
        TR0=1;

        }
        /* Ham dung dong co*/
        void startdc(void)
        {
        if(start==0)
        P1_2=PWM;

        }
        void stopdc(void)
        {
        if(stop==0)
        P1_2=1;

        }

        /* Ham quay thuan dong co*/
        void quaythuan(void)
        {
        if(thuan==0)
        P1_3=1;

        }

        /* Ham quay nghich dong co*/

        void quaynghich(void)
        {
        if(nghich==0)
        P1_3=0;

        }
        /* Ham dieu khien tang toc*/
        unsigned char tangtoc(void)
        {
        if(tang==0)
        {
        while(tang==0)
        {;}
        phantram_PWM--;
        delay(100);
        if(phantram_PWM<1)
        {
        phantram_PWM=1;

        } }
        return (phantram_PWM);
        }
        /* Ham dieu khien giam toc*/
        unsigned char giamtoc(void)
        {
        if(giam==0)
        {
        while(giam==0)
        {;}
        phantram_PWM++;
        delay(100);
        if(phantram_PWM>40)
        phantram_PWM=40;
        }
        return (phantram_PWM);
        }
        /* Lua chon che do cua dong co*/

        unsigned char n;
        unsigned char chonchedo(void)
        {
        if(start==0)n=1;
        if(stop==0) n=2;
        if(thuan==0) n=3;
        if(nghich==0) n=4;
        if(tang==0)n=5;
        if(giam==0)n=6;
        switch(n)
        {
        case 0: {break;}
        case 1: {startdc();break;}
        case 2: {stopdc();break;}
        case 3: {quaythuan();break;}
        case 4: {quaynghich();break;}
        case 5: {tangtoc();break;}
        case 6: {giamtoc();break;}
        }
        return (n);
        }
        /* Chuong trinh chinh*/
        void main()
        {
        khoitaohethong();
        while(1)
        {
        startdc();
        stopdc();
        quaythuan();
        quaynghich();
        tangtoc();
        giamtoc();
        chonchedo();

        }
        }

        Comment

        Về tác giả

        Collapse

        hung.10295 Tìm hiểu thêm về hung.10295

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

        Collapse

        Đang tải...
        X