Thông báo

Collapse
No announcement yet.

Mong anh chị em giúp đỡ về AT89C2051

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

  • Mong anh chị em giúp đỡ về AT89C2051

    Em đang làm một bộ điều khiển đơn giản như sau:
    - Khi có sườn xuống ở chân ngắt P3.2 thì cổng P3.4=1, p3.5=0
    - Khi có sườn xuống ở chân ngắt P3.3 thì P3.4=0, P3.5=1
    Em viết chương trình như sau:
    #include<at89c2051>
    main()
    {
    EA=1; //Cho phép su dung ngat
    EX0=0; //cho phep ngat ngoai 0
    EX1=1; //Cho phép ngat ngoai 1
    IT0=1; //cho phep ngat ngoai 0 la theo suon xuong
    IT1=1; //Cho phep ngat ngoai 1 la theo suon xuong
    While(1)
    {
    }
    }
    void Ngatcounter(void) interrupt 0
    {
    P3_4=1;
    P3_5=0;
    }
    void ngatsensor(void) interrupt 2
    {
    P3_4=0;
    P3_5=1;
    }
    Em muốn hỏi các anh chị vài vấn đề:
    1. Ban đầu khi chưa có ngắt nào cả thì em muốn set P3.4=0, P3.5=1, nhưng kể từ khi có ngắt(ngắt nào cũng đuoc) thì P3.4 va P3.5 chỉ được set theo chương trình ngắt. Vậy phải bổ sung chương trình như thế nào?
    2. Giả sử khi ngắt P3.2 xảy ra, theo câu lệnh thì P3.4=1, P3.5=0, sau khi kết thúc ngắt 0 mà chưa có ngắt 1 thì trạng thái P3.4 và P3.5 có bị thay đổi không (Em chỉ muốn thay đổi khi có ngắt 1)
    3. Câu này đáng ra phải hỏi từ đầu. muốn thiết lập P3.4 và P3.5 là đầu ra ( để cấp nguồn cho opto PC817) thì phải thiết lập chương trình ra sao?
    Vì không phải dân điện tử mà lại là ks điện nên việc tìm hiểu về 8051 hơi khó khăn( Mặc dầu trước đây có học 16f877a nhưng cũng chỉ là học cho đủ môn chuyên ngành).
    Rất mong anh chị em trên diễn đàn giúp đỡ. Em đang làm mạch đk nho nhỏ cho công ty.
    Xin cảm ơn!

  • #2
    1. theo mình thì cho P3.4=0, P3.5=1 vào đầu chương trình chính, (ngoài hàm while) thì mặc định sẽ như bạn đặt thôi.
    2. không thay đổi vì chương trình đó chỉ thực hiện khi có ngắt
    3. VĐK hiểu là ra hay vào không quan trọng bằng bạn đang muốn port đó là đầu ra hay đầu vào. (Tất nhiên nếu bạn chọn 0 là vào, 1 là ra). túm lại là tùy bạn, vì chỉ đk opto thôi mà

    Comment


    • #3
      Cảm ơn lee rất nhiều. Mình đặt ngoài hàm while trong hàm main thì mô phỏng ok rồi. Chắc lắp mạch luôn

      Comment

      Về tác giả

      Collapse

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

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

      Collapse

      Đang tải...
      X