Thông báo

Collapse
No announcement yet.

help pwm cho 8051dùng dk led

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

  • help pwm cho 8051dùng dk led

    các pro cho em hỏi tí.Em muốn diều chế pwm cho 89c51 ma không biết code viết sao? anh nào cho e xin cái code điều chế pwm cho 8051 đi, e dùng để dk độ sáng của led.! thanks code C nha !

  • #2
    Bạn cần 1 timer để làm tốt đc điều này.
    Thuật toán như sau:
    Giả sử timer cứ 1ms thì ngắt xảy ra 1 lần, trong ngắt ta tăng biến i, có 1 biến t nào đó để tham chiếu so sánh với i.
    ta có 1 hàm Pwm nào đó có dính tới cái tham số t ở trên
    - Ta có hàm Pwm(unsigned char p)//Nhớ là p<100 thui nhé.
    {
    t=p;//Copy p
    }
    -Vậy trong ngắt nó là như thế này
    i++;
    if(i<t)
    {
    P1_0=1;//Bat P1_0
    }
    else if(i>=t && i<100)
    {
    P1_0=0;//Tat P1_0
    }
    else
    {
    i=0;
    }
    Tinh thần bất an viết thế ko bit đã chuẩn xác chưa. Các pro chỉ giáo.


    Add: 97 Quán Nam - Lê Chân - Hải Phòng.
    Tel: 031 518648 Phone: 0904 283 505

    Comment


    • #3
      hix.Pro nào chỉ mình code làm thay đổi độ sáng của led đi.như mấy cái quảng cáo người ta hay làm đó .Các led chạy nối đuôi nhau nhưng độ sáng thay đổi ! thanks

      Comment


      • #4
        Thì Pwm như trên là thay đổi đc độ sáng rồi đấy.HIc hic.


        Add: 97 Quán Nam - Lê Chân - Hải Phòng.
        Tel: 031 518648 Phone: 0904 283 505

        Comment


        • #5
          Pro koi giúp mình code này sao mà không chay thế : mình tham khảo trên mạng .Mà pwm mô phỏng có thấy rõ không bạn.

          //############################################
          #include<regx52.h>
          #include<stdio.h>
          #include<intrins.h>
          unsigned int i,j,k;
          //###### ham delay tao thoi gian tre 0.5s ######
          void delay(unsigned int ms)
          {
          unsigned int a;
          unsigned char b;
          for(a=0;a<ms;a++)
          {
          for(b=0;b<125;b++)
          {
          }
          }
          }

          void khoitaotimer0(void)// Ham khoi tao
          {
          EA=0;// Cam ngat toan cuc
          TMOD=0x02;// Timer 0 che do 2 8 bit auto reload
          TH0=0x9B;// Gia tri nap lai 155 doi ra so hex
          TL0=0x9B;// Gia tri khoi tao 155 doi ra so hex
          ET0=1;// Cho phep ngat timer 0
          EA=1;// Cho phep ngat toan cuc
          TR0=1;// Chay timer 0 bat dau dem so chu ki may
          }
          unsigned char dem=0;// Khai bao bien dem de dem tu 1 den 10
          unsigned char phantramxung;// Bien chua phan tram xung(0...10)
          void timer0(void) interrupt 1 //Ngat timer 0
          {
          TR0=0;// Dung chay timer 0
          TF0=0;// Xoa co, o che do co tu duoc xoa,che do khac can toi cu viet vao day
          if(dem<phantramxung)
          {
          P2_0=1;// Neu bien dem < phan tram xung thi dua gia tri 1 rachan, xung 5V
          }
          else P2_0=0;// Neu dem = phan tram xung
          TR0=1;// Cho chay timer
          }
          void main(void)
          {
          while(1)
          {
          phantramxung=9;
          delay(2000);
          phantramxung=4;
          delay(2000);
          }
          }

          Comment


          • #6
            Thực sự khi post code lên thì it ai đọc lắm_Mình cũng vậy_Chỉ cho cái thuật toán là ổn lắm rồi_Phần còn lại bạn phải tự xử chứ. Như mình đã nói ở phần trước đó, bạn hãy viết 1 hàm Pwm nào đó với tham số duty đi kèm, tần số pwm thì đã đc quyết định bởi timer của bạn rồi.


            Add: 97 Quán Nam - Lê Chân - Hải Phòng.
            Tel: 031 518648 Phone: 0904 283 505

            Comment


            • #7
              thank ban nhe. minh hieu dc vấn đề rùi !

              Comment


              • #8
                PS: hoangdai .Pro ơi chi mình viết code cho 16 led đơn sáng dồn đi ( 2port vdk 89c51), Minh thất trên mạng toàn là asm.Minh thì mù tịt về asm.Thanks

                Comment


                • #9
                  những thứ đó có nhiều rồi sao cứ phải cày như vây nhỉ
                  sao ko dùng những thứ có sẵn ỳ
                  thích nghiên cứu à?

                  Comment


                  • #10
                    ý cua bạn là gì minh không hiểu ?
                    "những thứ đó có nhiều rồi sao cứ phải cày như vây nhỉ
                    sao ko dùng những thứ có sẵn ỳ
                    thích nghiên cứu à?"
                    có sắn là ở đâu và ntn ? mình đã nói là mình kiếm dc vài code asm nhưng đọc kg hiểiu vì không biết asm.?

                    Comment


                    • #11
                      Nguyên văn bởi loiquang89 Xem bài viết
                      Pro koi giúp mình code này sao mà không chay thế : mình tham khảo trên mạng .Mà pwm mô phỏng có thấy rõ không bạn.

                      //############################################
                      #include
                      #include
                      #include
                      unsigned int i,j,k;
                      //###### ham delay tao thoi gian tre 0.5s ######
                      void delay(unsigned int ms)
                      {
                      unsigned int a;
                      unsigned char b;
                      for(a=0;a
                      {
                      for(b=0;b<125;b++)
                      {
                      }
                      }
                      }

                      void khoitaotimer0(void)// Ham khoi tao
                      {
                      EA=0;// Cam ngat toan cuc
                      TMOD=0x02;// Timer 0 che do 2 8 bit auto reload
                      TH0=0x9B;// Gia tri nap lai 155 doi ra so hex
                      TL0=0x9B;// Gia tri khoi tao 155 doi ra so hex
                      ET0=1;// Cho phep ngat timer 0
                      EA=1;// Cho phep ngat toan cuc
                      TR0=1;// Chay timer 0 bat dau dem so chu ki may
                      }
                      unsigned char dem=0;// Khai bao bien dem de dem tu 1 den 10
                      unsigned char phantramxung;// Bien chua phan tram xung(0...10)
                      void timer0(void) interrupt 1 //Ngat timer 0
                      {
                      TR0=0;// Dung chay timer 0
                      TF0=0;// Xoa co, o che do co tu duoc xoa,che do khac can toi cu viet vao day
                      if(dem
                      {
                      P2_0=1;// Neu bien dem < phan tram xung thi dua gia tri 1 rachan, xung 5V
                      }
                      else P2_0=0;// Neu dem = phan tram xung
                      TR0=1;// Cho chay timer
                      }
                      void main(void)
                      {
                      while(1)
                      {
                      phantramxung=9;
                      delay(2000);
                      phantramxung=4;
                      delay(2000);
                      }
                      }
                      mình vẫn không hiểu lắm về code này...mô phỏng thì thấy thế này...

                      Click image for larger version

Name:	cocconden_27.JPG
Views:	1
Size:	70.6 KB
ID:	1346594

                      Comment


                      • #12
                        với những bạn không biết nhiều về VDK thì nên dùng phần mềm hỗ trợ.chứ nói thế hay nói nữa cũng không hiểu đâu.
                        học VDK đâu phải một xớm một triều là được
                        Sửa chữa, cung cấp máy cắt dây, máy xung, máy phay CNC....
                        website: suntech-vn.com
                        phone. 0974 354 077
                        Email.

                        Comment


                        • #13
                          Nguyên văn bởi v.sondt Xem bài viết
                          với những bạn không biết nhiều về VDK thì nên dùng phần mềm hỗ trợ.chứ nói thế hay nói nữa cũng không hiểu đâu.
                          học VDK đâu phải một xớm một triều là được
                          học VDK tất nhiên là ko thể hiểu ngay được mà phải có thời gian rồi SẼ HIỄU còn nếu mà lệ thuộc vào phần mềm thì đến chết cũng chả hiểu...

                          Comment


                          • #14
                            mình viết thử vài đoạn code nhưng khi mô phỏng thì thấy nó chop tắt , không nhìn dcc led sáng yếu ? Là do mình sai hay sao ?Pro ban cho mình xin cái code hiệu ứng sao băng dùng 8051 với thanks

                            Comment


                            • #15
                              các bác ơi!em mới học cũng chưa biết phaie bắt đầu tư đâu mong các bác mách jup là muốn học tốt vxl thì bắt đầu ntn a! cảm ơn nhiều!

                              Comment

                              Về tác giả

                              Collapse

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

                              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 qua, 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 qua, 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 qua, 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...
                                09-01-2025, 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 ...
                                09-01-2025, 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...
                                09-01-2025, 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