Thông báo

Collapse
No announcement yet.

Sửa lỗi chuơng trình C trong 8051

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

  • Sửa lỗi chuơng trình C trong 8051

    chào các anh chị, hiện đang em viết chuơng trình C điều khiển 1 rơle để bật tắt, mong muốn của em là khi có tín hiệu tác động thì rơ le đóng, và khi không còn tín hiệu tác động thì sau khoảng 10s thì rơ le mới tắt,( tính từ thời điểm tín hiệu tác động ko còn). tuy nhiên em viết chương trình và mô phỏng thì để rơ le đóng, em lại phải giữ tín hiệu đó trong khoảng 10s thì rơ le mới chịu đóng, mong các anh chị giải thích giúp em, xem xin cảm ơn.

    chuơng trình như sau:

    #include <REGX52.H>
    #define vao P1_2
    #define led P2
    #define relay P3
    void khoitao(void);
    void delay(unsigned char time);
    void delay1(unsigned int ms);
    void delay2(int time);
    void main(void)
    {
    khoitao();
    while(1)
    {
    if(vao==0)
    {
    led=0x00;
    relay=0x00;
    }
    else
    {
    delay1(10000);
    led=0xff;
    relay=0xff;
    }

    }
    }
    void khoitao(void)
    {
    vao=1;
    led=0xff;
    relay=0xff;
    }
    void delay(unsigned char time)
    {
    while(time--)
    {
    TMOD=0x01;
    TH0=0xfc;
    TL0=0x66;
    TR0=1;
    while(!TF0);
    TR0=0;
    TF0=0;
    };
    }
    void delay1(unsigned int ms) //tao tre 1ms
    {
    unsigned int i,j;
    for (i=0;i<ms;i++)
    for (j=0;j<120;j++)
    {}
    }
    void delay2(int time)
    {
    while(time--)
    {
    unsigned char j = 122;
    while(j--);
    };
    }

  • #2
    cái này là do lúc mới khởi tạo thì bạn để biến 'vao' =1. nên lúc hoạt động, chương trình sẽ chạy ở đk thứ 2, và hầu hết thời gian của chương trình đều nằm trong delay. vì vậy khi bạn đưa tín hiệu vào phải chờ cho chương trình chạy hết delay thoát ra rồi nó mới kiểm tra lại biến 'vao'.
    để khắc phục mình có 2 cách sau:
    - sử dụng ngắt ngoài, đưa toàn bộ vòng lặp while vào ngắt.
    -đưa phần kiểm tra tín hiều vào trong chương trình con delay. nếu 'vao' = 0 thì break khỏi delay.

    Comment

    Về tác giả

    Collapse

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

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

    Collapse

    • mèomướp
      Trả lời cho Sửa bộ nguồn DC 60V 45A
      bởi mèomướp
      Dạ hông dám làm thì chắc chắn sẽ mãi ko thể làm được đâu ạ. Nguồn xung dân dụng vài kw giờ rất nhìu ạ, sạc ô tô điện, máy hàn, lò vi sóng, âm ly... tùy chất lượng mà độ phức tạp sẽ khác nhau ạ. Và cái giá phải trả về kinh tế...
      hôm nay, 13:11
    • tuyennhan
      Trả lời cho Sửa bộ nguồn DC 60V 45A
      bởi tuyennhan
      Sửa dạng này thì chuyên còn không dám chắc khộng cháy nổ với linh kiện bán ngoài chợ nói gì khộng chuyên .
      hôm nay, 09:25
    • tuyennhan
      Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
      bởi tuyennhan
      Đúng rồi chọn mua theo tai . ca thì phải toàn dải nhạc thì chỉ cao và thấp thé nên loa ca thì nghe nhạc không hay và ngược lại .
      Muốn ca và nhạc đều hay thì phải dúng 2 giàn , còn nếu chỉ có 1 thì phải chỉnh sửa lại sao cho ca và nhạc đều được không quá dở ....
      hôm nay, 09:10
    • Ng.Phuong.5
      Vấn đề in lỗ khoan ra pdf ở Orcad 9.2
      bởi Ng.Phuong.5
      Vấn đề cũ: khi in mạch ra pdf và bấm chọn Keep Drill Holes Open, in ra thì pdf trắng đen các lỗ chân linh kiện như nhau. Mặc dù có linh kiện phần Drill là 1mm, có linh kiện thì là 3mm. Cho em hỏi cách sửa phần này ở Orcad 9.2 với ạ.
      Mấy con...
      Hôm qua, 19:44
    • viettinh
      Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
      bởi viettinh
      Bác nói đúng quá. Cơ mà muốn mua hàng chính hãng, hàng thương hiệu mà tai lại hợp hàng tầu mới khổ chứ.
      Đang tính mua cái loa tầu nữa cột đằng sau loa này, Loa sony chỉ để hát nhép thôi, có dc k các bác ...
      Hôm qua, 18:12
    • nguyendinhvan
      Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
      bởi nguyendinhvan
      Theo tôi thì khi hpj sản xuất ra cái loa đó, đã có nhiều chuyên gia kỹ thuật hiệu chỉnh, tính toán các phần tử kỹ lưỡng rồi.
      Bây giờ tính toán hiệu chỉnh lại cần có đội ngũ tương đương với nhà sản xuất.
      Cách đơn giản...
      Hôm qua, 00:04
    • mèomướp
      Trả lời cho Sửa bộ nguồn DC 60V 45A
      bởi mèomướp
      Dạ cháu có ý tốt muốn động viên chú ấy ngâm cứu khoa học thôi ạ. Về phần kiểm tra dao động thì chú ấy chưa biết thì sẽ tìm hiểu được là cần những gì ạ, chắc chắn là khi hướng dẫn phần ấy các cô chú nào đó sẽ lưu ý cần loại sò công suất ra tránh cháy nổ rồi ạ....
      08-01-2025, 19:02
    • tuyennhan
      Trả lời cho Sửa bộ nguồn DC 60V 45A
      bởi tuyennhan
      Chủ thớt hỏi có kiểm tra được dao động mà không cấp nguồn thì rõ trình ở mức nào mà mèo còn xúi ngâm cứu nữa ác vậy ....
      08-01-2025, 15:43
    • tuyennhan
      Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
      bởi tuyennhan
      Loa bass đấu trực tiếp không qua phân tần để thành loa toàn dải xem có thoát tiếng khộng , nếu không thoát cần phải sửa lại mạch cs hay âm sắc nếu đủ trình còn nếu thoát ca hay nhưng chưa vừa ý vì bass kém chăc thì đấu lại như cũ và đấu thêm loa mid treble bên ngoài .
      08-01-2025, 15:28
    • mèomướp
      Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
      bởi mèomướp
      Dạ loa tép bé xíu như ngón chân cái thôi ạ. Thiếu gì chỗ để đâu. Quan trọng là gắn thêm nó loa nghe ok hay ko thôi ạ...
      08-01-2025, 11:44
    Đang tải...
    X