Thông báo

Collapse
No announcement yet.

giúp mình với mọi người

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

  • giúp mình với mọi người

    mình có 1 cái code lập trình điều khiển tốc độ động cơ 1 chiều nhưng mình không hiểu lắm mọi người giiair thích giùm

    #include <REGX52.H>
    #include <math.h>

    sbit tang_toc =P1^2;
    sbit giam_toc =P1^3;
    sbit dao_chieu =P1^4;

    sbit role=P1^0;

    int toc_do=255,dc=0;

    void key(void)
    {
    if(dao_chieu==0)
    {
    while(dao_chieu==0){;}
    dc++;
    if(dc==2) dc=0;
    }
    if(tang_toc==0)
    {
    while(tang_toc==0){;}
    toc_do+=15;
    if(toc_do>255) toc_do=255;
    }
    if(giam_toc==0)
    {
    while(giam_toc==0){;}
    toc_do-=15;
    if(toc_do<15) toc_do=0;
    }
    }
    void main()
    {
    while(1)
    {
    while(dc==0)//quay thuan
    {
    key();
    role=1;
    P2=toc_do;
    }

    while(dc==1)//quay nguoc
    {
    key();
    role=0;
    P2=toc_do;
    }

    }
    }

  • #2
    đoạn code này cũng dễ hiểu thôi mà, không biết b không hiểu chỗ nào?
    WS:
    Blog:

    Comment


    • #3
      Nguyên văn bởi quangtung112 Xem bài viết
      đoạn code này cũng dễ hiểu thôi mà, không biết b không hiểu chỗ nào?
      bạn cứ giải thích từ đầu cho mình được không.mình không hiểu lắm về động cơ 1 chiều nên không hiểu code.

      Comment


      • #4
        bạn có sơ đồ phần cứng thì post lên để dễ giải thích hơn chứ bạn. Động cơ 1 chiều theo mình biết thì để đảo chiều quay thì mình đảo chiều cấp nguồn của nó, để tăng tốc , giảm tốc thì bạn dùng PWM điều chế độ rộng xung để tăng giảm tốc độ quay của nó.

        Comment


        • #5
          Nguyên văn bởi trimen Xem bài viết
          bạn có sơ đồ phần cứng thì post lên để dễ giải thích hơn chứ bạn. Động cơ 1 chiều theo mình biết thì để đảo chiều quay thì mình đảo chiều cấp nguồn của nó, để tăng tốc , giảm tốc thì bạn dùng PWM điều chế độ rộng xung để tăng giảm tốc độ quay của nó.

          mình không add được file lên.nhưng mình không hiểu tại sao tốc_độ ban đầu dc gán =255;dc=0
          đa phần mình không hiểu các lệnh if và lệnh while trong đó.2 lệnh này giống nhau mà lại được lồng vào nhau

          Comment


          • #6
            lệnh if, while dùng để kiểm tra nút nhấn đó bạn, if là kiểm tra nếu nút đó có nhấn ( thường khi nhấn trạng thái của nút là 0) , sau đó while dùng để kiểm tra nút đó nhả chưa( trạng thái của nút là 0 khi nhấn vậy khi nút nhả thì trạng thái nút nhấn là 1, vòng while chạy với điều kiện trạng thái nút nhấn là 0 vậy khi là 1 sẽ thoát while ) và sau đó sẽ thực hiện việc khi nhấn nút. Bạn phải có sơ đồ phần cứng mình mới biết tại sao toc_do và dc lại như thế, nhưng theo như code thì dc=0 là quay thuận , dc=1 là quay nghịch vậy dc =0, toc_do =255 là để khởi tạo cho động cơ ban đầu là quay thuận và quay với tốc độ cao nhất.

            Comment


            • #7
              Không nhầm thì code này điều khiển động cơ dùng DAC , code cực dễ hiểu giải thích cái em hỏi ban đầu người viết code cho động cơ chạy tốc độ cao nhất là tương ứng 255 , biến dc chỉ chiều động cơ nếu bằng 0 thì quay thuận , bằng 1 quay ngược , các phím tăng , giảm tốc độ khi dc nhấn sẽ giảm đi 15 đơn vị ( chạy trong khoảng 0->255) nên sửa giá trị 15 bằng số to hơn 1 tý và là ước của 255 thì tốt hơn đỡ phải nhấn mỏi tay.

              Comment


              • #8
                Nguyên văn bởi fee_08 Xem bài viết
                Không nhầm thì code này điều khiển động cơ dùng DAC , code cực dễ hiểu giải thích cái em hỏi ban đầu người viết code cho động cơ chạy tốc độ cao nhất là tương ứng 255 , biến dc chỉ chiều động cơ nếu bằng 0 thì quay thuận , bằng 1 quay ngược , các phím tăng , giảm tốc độ khi dc nhấn sẽ giảm đi 15 đơn vị ( chạy trong khoảng 0->255) nên sửa giá trị 15 bằng số to hơn 1 tý và là ước của 255 thì tốt hơn đỡ phải nhấn mỏi tay.
                em hiểu rùi cảm ơn mọi người nhé.

                Comment


                • #9
                  Nguyên văn bởi trimen Xem bài viết
                  lệnh if, while dùng để kiểm tra nút nhấn đó bạn, if là kiểm tra nếu nút đó có nhấn ( thường khi nhấn trạng thái của nút là 0) , sau đó while dùng để kiểm tra nút đó nhả chưa( trạng thái của nút là 0 khi nhấn vậy khi nút nhả thì trạng thái nút nhấn là 1, vòng while chạy với điều kiện trạng thái nút nhấn là 0 vậy khi là 1 sẽ thoát while ) và sau đó sẽ thực hiện việc khi nhấn nút. Bạn phải có sơ đồ phần cứng mình mới biết tại sao toc_do và dc lại như thế, nhưng theo như code thì dc=0 là quay thuận , dc=1 là quay nghịch vậy dc =0, toc_do =255 là để khởi tạo cho động cơ ban đầu là quay thuận và quay với tốc độ cao nhất.
                  mình hiểu rùi.cảm ơn bạn nhiều nhé

                  Comment


                  • #10
                    sao k add đc file đính kèm thế mọi người

                    Comment


                    • #11
                      up lên host nào đó rồi cho lên, 4rum bị lỗi cái host thì phải, mà hình như chỉ 1 số file ko up dc thôi, trong đó có file rar
                      Website chính thức đổi địa chỉ website thành
                      Mời các bạn ghé thăm !!!

                      Comment

                      Về tác giả

                      Collapse

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

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

                      Collapse

                      Đang tải...
                      X