Thông báo

Collapse
No announcement yet.

Mạch điều chỉnh độ sáng đèn led ( HELP)!

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

  • Mạch điều chỉnh độ sáng đèn led ( HELP)!

    Chào các bạn, mình đang làm mạch sau:
    làm mạch điều chỉnh độ sáng led
    - Lập trình bằng C
    - Hiện thị ra led 7 đoạn 9 cấp độ sáng
    - dùng VĐK 8051
    MÌnh làm mạch trên bằng con 89S51, mình đã lập trình được và chạy thử trên protues 7.8.
    Sau đây là mạch demo của mình trên protues ( mình nén file rar, phiền các bạn đổi đuôi nhé)
    mach demo.rar.doc


    MÌnh dùng 7805 làm nguồn, đây là mạch orcad của nó :

    Click image for larger version

Name:	mach thuc hanh.JPG
Views:	1
Size:	61.9 KB
ID:	1413139

    CÒn đây là file orcad chi tiết :


    Desktop.rar.doc


    còn đây là code của mình
    /* ================================================== =========
    mo ta: mach dieu khien do sang led don
    phan cung: led don, led 7 thanh, 89s51
    thach anh: 12Mhz

    ================================================== =====*/

    #include <REGX51.H>
    #include<stdio.h>

    void hienthi(unsigned char x)
    { switch(x)
    { case 0: { P2=64; break;}
    case 1: { P2=121; break;}
    case 2: { P2=36; break;}
    case 3: { P2=48; break;}
    case 4: { P2=25; break;}
    case 5: { P2=18; break;}
    case 6: { P2=2; break;}
    case 7: { P2=120; break;}
    case 8: { P2=0; break;}
    case 9: { P2=16; break;}
    case 10: { P2=255;break;}
    }

    }

    unsigned char a=5 , dem=0, x=0,y ;
    void delay(long int t )
    { unsigned long int i;
    for( i=0; i<=t; i++);
    }

    void battat ()
    {
    if (P1_3==0){
    delay(300);
    while ( P1_3==0)
    {;}
    x++;
    }
    if (x%2==0){ hienthi(10);
    EA=0;
    TR0=0;
    }
    else { hienthi(a);
    EA=1;
    TR0=1;
    }

    }

    void lenxuong ()
    {
    if(( P1_1==0)&(P1_2==1))
    {delay(300);
    while( P1_1==0)
    {;}
    a++;
    if (a==10) a=9;
    }

    else if ((P1_1==1)&(P1_2==0))
    {delay(300);
    while ( P1_2==0)
    {
    ;// khoong lam gi
    }
    a--;
    }

    }

    void khoitaotimer(void)
    {
    EA=0;
    TMOD=0x02;// 8 BIT AUTO RELOAD
    TH0=0x9B;
    TL0=0x9B;
    ET0=1;
    EA=1;
    TR0=1;
    }
    void ngattimer (void) interrupt 1// ngat timer 0
    {
    TR0=0;
    dem++;
    if( dem<=a)P1_0=1;
    else P1_0=0;
    if ( dem==10) dem=0;
    TR0=1;
    }

    void main(void)
    { khoitaotimer();


    while(1)
    { battat();
    lenxuong();

    } }




    Mạch chạy mô phỏng tốt, nhưng khi mình làm mạch thật ( cắm ra bo ) thì nó lại gặp một số vấn đề sau:
    - mình lập trình cho led 7 đoạn lúc đầu tắt ( P2=255 , thế nhưng lúc bật nó lại sáng mờ mờ cả 7 thanh . mình phát hiện nó sáng mơ mờ là do điện áp trên các chân P2 nó ở tầm 2.5V( <5V nguồn) nên mới thế.
    - MÌnh nạp bằng mạch STK 500, dùng AVR studio thấy nạp bình thường ( ngon lành) nhưng khi chạy thử thì như trên. Hay tại mình chưa thiết lập đúng cho 8051 nhỉ


    Mong các bạn giúp với, tuần sau mình phải nộp cho thầy rồi. Mình xin cám ơn trước
    Last edited by havian; 02-06-2012, 02:19.

  • #2
    ko ai giúp mình à

    Mình mới phát hiện ra mạch bị vậy do VDK bị nhiễu nặng nề( nản quá) đã cho 2 con tụ 1000u/50v vào hai đầu cùng hai em 104 rồi nhưng vẫn nhiễu.( đã làm mạch in, phủ mass gnd nhưng vẫn nhiễu)...

    Bác nào có cach gì giúp mình với, hai ngày nữa nộp rồi

    Comment


    • #3
      Nguyên văn bởi havian Xem bài viết
      ko ai giúp mình à

      Mình mới phát hiện ra mạch bị vậy do VDK bị nhiễu nặng nề( nản quá) đã cho 2 con tụ 1000u/50v vào hai đầu cùng hai em 104 rồi nhưng vẫn nhiễu.( đã làm mạch in, phủ mass gnd nhưng vẫn nhiễu)...

      Bác nào có cach gì giúp mình với, hai ngày nữa nộp rồi
      theo tôi nghĩ bạn không lên mắc như vậy vì khi đó port2 của 8051 đang ở mức 1 ,như bạn đo được là 2,5v so với nguồn (5v) chênh lệch điện áp gây ra hiện tượng sáng lờ mờ .Bạn nên mắc thêm ic đệm dòng vd:74ls240 nhớ phải thêm điện trở giữa ic đệm và chân led ,bỏ điện trở ở chân anot của led7 đi nối thẳng vào nguồn







      mà tôi nghĩ nên dùng uln2803 thay cho 74ls240
      Last edited by khonggioihan; 04-06-2012, 06:31.

      Comment


      • #4
        nếu điện áp cấp cho vi điều khiển và dương nguồn led cùng nhau thì k có hiện tượng led sáng mờ đó đâu, bạn thử con ic khác xem thế nào hoặc đổi sang port khác .

        Comment


        • #5
          chỉ cẩn nút tăng giảm độ sáng thôi sao lại có 3 nút ấn vậy?

          Comment


          • #6
            1 nút tăng , 1 nút giảm , 1 nút bật tắt anh ạ

            Comment


            • #7
              Nguyên văn bởi havian Xem bài viết
              1 nút tăng , 1 nút giảm , 1 nút bật tắt anh ạ
              tôi nghĩ là có thể con 8051 của bạn có vấn đề rồi đó . bạn thử đổi con khác xem sao

              Comment


              • #8
                cho cái này nhá thích thêm cái nút nữa thì thêm
                mà cái file mô phỏng cậu gửi lên diễn đàn không chạy đâu nhá, mô phỏng đã sai rồi

                Comment


                • #9
                  Nhìn phần cứng là biết sai nhiều chỗ rồi. Thứ nhất P1.4 qua led tới GND: định ngắn mạch ở đây à. Thứ 2 bạn nên xem dòng hút vào 8051 là bao nhiêu. Mắc led7 thanh như vậy là sai. Liên hệ với tui: thanhlam1911@gmail.com, tui hỗ trợ cho.

                  Comment


                  • #10
                    cam ơn tan0710 nhung đoạn này mình chưa hiểu lắm:
                    IE=0x8b; //ngat o t INT0 va timer0 va timer1

                    sao lại cả ngắt 0, timer 0, 1

                    Comment


                    • #11
                      thì thừa cũng có sao đâu thích thì sửa lại cho timer 0 cũng chạy mà..khi làm mạch thì cho 7 con trở vào giữa port2 với led 7 vạch cho led sáng đều và bào vệ port cho 89 nhá

                      Comment


                      • #12
                        mình cũng vừa sửa thế, không biết có được ko

                        Comment


                        • #13
                          bao h dc thi alo cho anh nhe !

                          Comment


                          • #14
                            bao h dc thi alo cho anh nhe !
                            Tôi biết ông là thằng nào rôi, gia nhập ngày 4/6, ngay sau hôm lên cưa mạch cho ta hả ..

                            Comment


                            • #15
                              Kết quả mạch làm lại!

                              Lời đầu tiên , em xin cám ơn hai bác tan0710 và thanhlam1911.

                              mình đã làm lại mạch, đã tách riêng 2 khối nguồn và VĐK ra , gắn thêm trở 470k vào các chân ra led 7 đoạn, led đơn. Các chân porrt 0 đều kéo lên dương cả. Đây là ảnh của nó
                              Click image for larger version

Name:	Hình0529.jpg
Views:	1
Size:	62.1 KB
ID:	1362464

                              Còn đây là lúc nó chạy ổn ( chiếm 70% số lần thử)



                              Nhưng đôi lúc( 30%) nó bị chập cheng ( ko nặng như trước) nhưng cũng đáng lo, nhỡ đi nộp thầy mà bị thì ...

                              Click image for larger version

Name:	Hình0530.jpg
Views:	1
Size:	73.3 KB
ID:	1362465

                              Nó chỉ hiện thị led 7 Đoạn thôi, còn led đơn thì lại ko, code này mình viết như lúc đầu ( thứ xem thế nào, chưa nạp cái của bác tân hì hì)
                              Theo mình , có thể do mạch vẫn đôi lúc bị nhiễu. nhưng liệu đây có phải do code ko nhỉ( vì nhiễu thì làm sao led 7 đoạn hiện thị được) . Rất mong ý kiến các bác.

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X