Thông báo

Collapse
No announcement yet.

help me!!

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

  • help me!!

    các pro xem giúp em đoan code này lỗi ở đâu với em viết mà nó không chạy. Khi biên dịch thì nó không báo lỗi nào cả
    // Chuong trinh dieu khien dong co Mot chieu
    // Giao tiep voi may tinh qua cong noi tiep
    // AT89s52, Thach Anh 11.0592

    #include "at89x52.h"

    sbit PWM = P2^0;
    sbit nguoc = P2^5;
    sbit thuan = P2^3;

    void caicongcom() // cai dat cong com
    {

    TMOD=0x20; //Timer1, mode 2, baud rate 9600 bps
    TH1=0XFD;
    SCON=0x50;
    TR1=1;
    }
    void nhan() // chuong trinh con nhan ki tu tu may tinh
    {
    char x;
    if(RI==1)
    x=SBUF;
    RI=0;
    }
    void truyen(char y) // chuong trinh con gui ki tu len may tinh
    {
    SBUF=y;
    if(TI==1)
    TI=0;
    }
    void pwm(unsigned char duty) // chuong trinh con dieu che do rong xung
    {
    TH0=-100*duty/256;
    TL0=-100*duty%256;
    TR0=1;
    PWM=1;
    while(!TF0)
    {
    TF0=0;
    TR0=0;
    TH0=-100*(100-duty)/256;
    TL0=-100*(100-duty)%256;
    TR0=1;
    PWM=0;
    }
    while(!TF0)
    {
    TF0=0;
    TR0=0;
    }
    }
    void chay() // chuong trinh con chay dong co
    {
    thuan=1;
    nguoc=0;
    pwm(10);
    }
    void tangtoc() // chuong trinh con tang toc dong co
    {
    int t;
    t+=5;
    if (t>100) t=100;
    pwm(t);
    }
    void giamtoc() // chuong trinh con giam toc dong co
    {
    int t;
    t-=5;
    if (t<0) t=0;
    pwm(t);
    }
    void daochieu() // chuong trinh con dao chieu
    {
    int tg;
    thuan=tg;
    thuan=nguoc;
    nguoc=tg;
    }
    void dung()
    {
    thuan=0;
    nguoc=0;
    pwm(0);
    }
    void main() // chuong trinh chinh
    {
    char x;
    while(1)
    {
    caicongcom();
    nhan();
    switch (x)
    {
    case 67:{chay(); truyen(65);break;}
    case 84:{tangtoc(); truyen(66);break;}
    case 71:{giamtoc(); truyen(67);break;}
    case 68:{daochieu(); truyen(68);break;}
    case 81:{dung(); truyen(69);break;}
    }
    }
    }

  • #2
    suy nghĩ kiểu nông dân = "nghĩ sao làm vậy" .

    VDK có thực hiện đúng ct đó chứ , nhưng chỉ là lên mức 1 , roy xuống mức 0 . tắt . Vì sao vậy ?
    - là vì hàm pwm() lúc đầu đưa chân PWM =1 , sau đó chạy tràn bộ đếm timer thì về lại PWM=0 , thoát hàm . May ra cho cái vòng lặp for đếm 1==> 10000 lần thì mới thấy đc dộng cơ nhích chút đỉnh . ^^
    - Dùng ngắt tràn timer để tạo xung thì may ra đúng ý khổ chủ

    Comment

    Về tác giả

    Collapse

    Đức_CDT Tìm hiểu thêm về Đức_CDT

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

    Collapse

    • Andrea14
      Vấn đề về tốc độ quay
      bởi Andrea14
      Chào mọi người,

      Tôi muốn mô phỏng sự thay đổi các mùa bằng cách từ từ nghiêng một quả địa cầu 16 inch bằng một động cơ bước nhỏ. Một động cơ bước khác sẽ quay quả địa cầu theo thời gian thực. Hệ thống truyền động...
      hôm nay, 12:42
    • bqviet
      Trả lời cho Đấu tắt điện cho máy tính bảng
      bởi bqviet
      Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
      06-12-2025, 17:17
    • nguyendinhvan
      Trả lời cho Xin hỏi về mạch thu FM/AM trong catsette
      bởi nguyendinhvan
      Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
      05-12-2025, 19:59
    • afrendly
      Trả lời cho Đấu tắt điện cho máy tính bảng
      bởi afrendly
      Có vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
      04-12-2025, 01:27
    Đang tải...
    X