Thông báo

Collapse
No announcement yet.

8051 với LM358

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

  • 8051 với LM358

    em lập trình cho 8051 đọc tín hiệu đầu ra của một con LM358. giả sử tín hiệu đầu ra của LM358 được nối vào chân P3^5 của 8051. Bài lập trình như sau
    #include <reg51.h>
    sbit LED=P2^1;
    void main
    {
    bit x;
    // set P3.5 input
    P3 |=(1<<5);
    x=P3^5;
    while(1)
    {
    if(x) {LED=1; }
    else {LED=0;}
    }
    }
    Nhưng mà khi em mô phỏng trên proteus thì chân P3^5 luôn ở mức cao (vì đã set P3^5=1) và tín hiệu đầu ra của LM358 cũng luôn ở mức cao cho dù tín hiệu đầu vào V+ > V- hay V+ <V- đều như nhau. Mạch mô phỏng em đã đính kèm.

    Vậy em muốn đọc tín hiệu của LM358 một cách chính xác bằng 8051 thì phải làm thế nào nhỉ. Xin mọi người giúp đỡ

  • #2
    Mô phỏng sai. Nên nhớ Proteus nó cũng chỉ là mô phỏng mà thôi. Nó không phải là tất cả.

    Comment


    • #3
      Chán nhỉ. Thế là tại phần mềm mô phỏng mà không phải tại phần lập trình của em à. Em chỉ sợ có chỗ nào đấy mình chưa sử dụng đúng. Vì em cũng mới chuyển sang lập trình cho 8051 nên một số cái chưa rõ lắm.

      Comment


      • #4
        Chưa nói về LM358 vội. Chương trình của cậu viết cho 8051 như thế thì sao đọc được trạng thái của P3.5 chứ.Theo chương trình cậu viết thì P3.5 chỉ đựoc đọc 1 lần ở câu lênh gán x=P3^5. Phải nhét nó vào trong vòng lặp while(1):
        ;
        while(1)
        {
        x=P3^5;
        if(x) {LED=1; }
        else {LED=0;}
        }
        - Đến phần LM358. Giữa đầu vào của 8051 và đầu ra của LM358 phải có 1 điện trở. khi đó mới có thể thấy được D3 thay đổi trạng thái theo 2 đầu vào.
        KL:
        Phần mềm Proteus này mô phỏng pro lắm.yên tâm đi!

        Comment


        • #5
          Nguyên văn bởi duong_act Xem bài viết
          Mô phỏng sai. Nên nhớ Proteus nó cũng chỉ là mô phỏng mà thôi. Nó không phải là tất cả.
          Với trường hợp này chắc không sai đâu .
          Bạn thử mô phỏng đầu ra của LM358 xem khi thay đổi điện áp vào có ra mức 1 và 0 không.
          Mình thì không viết C cho 8051 nhưng bạn thử xem trong vòng lặp while bạn nên cho thời gian trễ thì mô phỏng mới thấy rõ được . Một số trường hợp không để delay không chạy
          Chuyên cung cấp inverter dạng sin chuẩn
          Email :

          Comment


          • #6
            Mắc điện trở như thế nào nhỉ. Điện trở kéo lên hay kéo xuống hay là trên đường nối đầu ra LM358 với 8051 em đã thử. Không kết quả. em đã thử ngắt không cho đầu ra của LM358 nối vào đầu vào 8051 thì kết quả cho 1 0 rõ ràng. Em cho delay cũng không thấy thay đổi gì.

            Comment


            • #7
              Nguyên văn bởi dinhquang Xem bài viết
              Mắc điện trở như thế nào nhỉ. Điện trở kéo lên hay kéo xuống hay là trên đường nối đầu ra LM358 với 8051 em đã thử. Không kết quả. em đã thử ngắt không cho đầu ra của LM358 nối vào đầu vào 8051 thì kết quả cho 1 0 rõ ràng. Em cho delay cũng không thấy thay đổi gì.
              híc,tớ vừa test lại rồi . Phải cho qua 7404 và sửa lại định nghĩa chân 3.3 của bạn là chân đầu vào.
              Mình viết bằng asm nên kô share .
              Attached Files
              Chuyên cung cấp inverter dạng sin chuẩn
              Email :

              Comment


              • #8
                Nguyên văn bởi ngchien Xem bài viết
                híc,tớ vừa test lại rồi . Phải cho qua 7404 và sửa lại định nghĩa chân 3.3 của bạn là chân đầu vào.
                Mình viết bằng asm nên kô share .
                file hex + proteus 7.6
                Attached Files
                Chuyên cung cấp inverter dạng sin chuẩn
                Email :

                Comment


                • #9
                  a cho e xin cái mạch mô phỏng đính kèm đc ko a cái a để bị lỗi e ko xem đc

                  Comment

                  Về tác giả

                  Collapse

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

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

                  Collapse

                  Đang tải...
                  X