Thông báo

Collapse
No announcement yet.

[help] quét led matrix dùng 89C51

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

  • [help] quét led matrix dùng 89C51

    Hi ae, mình dùng 8951 để quét 10 con led matrix 16x40 mà nó bị chớp dữ quá, mọi người giúp mình với
    vì xuất 1 lúc 16 bit nên mình dùng 2 con 74595 để chốt, 3 con 74159 để quét hàng
    code dùng keil C: [C] led matrix - Pastebin.com
    Last edited by Jin9x; 13-10-2013, 20:05.

  • #2
    nó chớp là do tần số quét chưa phù họp bạn cho nó nhanh hơn sẽ hết chớp

    Comment


    • #3
      Nguyên văn bởi diamond Xem bài viết
      nó chớp là do tần số quét chưa phù họp bạn cho nó nhanh hơn sẽ hết chớp
      mình thử rồi bạn, giảm xuống nữa thì nó ko kịp hiện led ra chứ đừng nói là chớp

      Comment


      • #4
        Theo mình đầu tiên là cái hàm delay chỉ nên dùng đến biến int thôi, long 4byte đó đại loại delay nên sửa lại như sau:
        Code:
        #include <intrins.h>
        
        void delay( unsigned int n)
        {
            while(n--)
                _nop_();
        }
        hàm dich cũng nên được sửa lại như sau:
        Code:
        void dich( unsigned char ch)
        {
        	char i;
        	;
        	for( i=0; i<8; i++)
        	{
        		ch<<=1;
        		DS=CY;
        		SCK=0;
        		SCK=1;
        	}
        }
        Mà bạn dùng 10 con 16x40 thật à? khủng thế chắc 89xx gánh không nổi đâu.

        Comment


        • #5
          Nguyên văn bởi myth-coder Xem bài viết
          Theo mình đầu tiên là cái hàm delay chỉ nên dùng đến biến int thôi, long 4byte đó đại loại delay nên sửa lại như sau:
          Code:
          #include <intrins.h>
          
          void delay( unsigned int n)
          {
              while(n--)
                  _nop_();
          }
          hàm dich cũng nên được sửa lại như sau:
          Code:
          void dich( unsigned char ch)
          {
          	char i;
          	;
          	for( i=0; i<8; i++)
          	{
          		ch<<=1;
          		DS=CY;
          		SCK=0;
          		SCK=1;
          	}
          }
          Mà bạn dùng 10 con 16x40 thật à? khủng thế chắc 89xx gánh không nổi đâu.
          thanks bạn
          mình lắp 10 con 8x8 thành 2 hàng, ban đầu nghĩ là do vdk yếu, nhưng cũng đang thử tìm coi có biện pháp khác ko

          Comment


          • #6
            Nguyên văn bởi Jin9x Xem bài viết
            thanks bạn
            mình lắp 10 con 8x8 thành 2 hàng, ban đầu nghĩ là do vdk yếu, nhưng cũng đang thử tìm coi có biện pháp khác ko
            Có vậy mà cậu làm tớ choáng, nếu chỉ thế này thôi thì xoàng, chạy chữ vô tư. Dùng chính ram của 89x52 làm đệm, dùng timer mà quét thì đảm bảo là vừa dễ lập trình mà mượt thì vô đối.

            Comment


            • #7
              Nguyên văn bởi myth-coder Xem bài viết
              Có vậy mà cậu làm tớ choáng, nếu chỉ thế này thôi thì xoàng, chạy chữ vô tư. Dùng chính ram của 89x52 làm đệm, dùng timer mà quét thì đảm bảo là vừa dễ lập trình mà mượt thì vô đối.
              ko hiểu sao mạch tớ vẫn bị chớp, hiện tại mình đang thử cách thủ công bằng cách xuất data trực tiếp thông qua 2 port của vdk (16 chân, quét 40 cột) chứ không qua IC dịch nữa, cách này thì ko bị giật

              Comment


              • #8
                Nguyên văn bởi myth-coder Xem bài viết
                Có vậy mà cậu làm tớ choáng, nếu chỉ thế này thôi thì xoàng, chạy chữ vô tư. Dùng chính ram của 89x52 làm đệm, dùng timer mà quét thì đảm bảo là vừa dễ lập trình mà mượt thì vô đối.
                ko hiểu sao mạch tớ vẫn bị chớp, hiện tại mình đang thử cách thủ công bằng cách xuất data trực tiếp thông qua 2 port của vdk (16 chân, quét 40 cột) chứ không qua IC dịch nữa, cách này thì ko bị giật

                Comment


                • #9
                  Nguyên văn bởi Jin9x Xem bài viết
                  mình thử rồi bạn, giảm xuống nữa thì nó ko kịp hiện led ra chứ đừng nói là chớp
                  mình nghĩ là bác nên thay đổi tần số quét. sẽ có một dải tần số quét phủ hợp (không bị chớp chớp)

                  Comment


                  • #10
                    Mà sao không phải là 16x32 mà lại x40? thực tế thì mình đang dùng cái matrix của bác daohuytien 16x32 dùng 159 quét dòng 595 quét cột, mình dùng timer quét rất mượt tần số quét là 440Hz hoặc 480Hz vì mình quét 1/8 nên mượt như Nhung chẳng rung không giật.

                    Comment


                    • #11
                      Nguyên văn bởi condonhan Xem bài viết
                      mình nghĩ là bác nên thay đổi tần số quét. sẽ có một dải tần số quét phủ hợp (không bị chớp chớp)
                      mình nghĩ là do mạch mình có vấn đề, mình thử để delay 1ms vẫn bị giật, tăng lên cũng ko được
                      Nguyên văn bởi myth-coder Xem bài viết
                      Mà sao không phải là 16x32 mà lại x40? thực tế thì mình đang dùng cái matrix của bác daohuytien 16x32 dùng 159 quét dòng 595 quét cột, mình dùng timer quét rất mượt tần số quét là 440Hz hoặc 480Hz vì mình quét 1/8 nên mượt như Nhung chẳng rung không giật.
                      bạn share cho mình cái file mô phỏng được ko, nếu có code c càng tốt
                      mình dùng protues, nếu bạn mô phỏng bằng soft khác thì cho mình xin cái hình chụp bản mô phỏng

                      Comment


                      • #12
                        Nguyên văn bởi Jin9x Xem bài viết
                        mình nghĩ là do mạch mình có vấn đề, mình thử để delay 1ms vẫn bị giật, tăng lên cũng ko được


                        bạn share cho mình cái file mô phỏng được ko, nếu có code c càng tốt
                        mình dùng protues, nếu bạn mô phỏng bằng soft khác thì cho mình xin cái hình chụp bản mô phỏng
                        bạn pót cái mạch mô phỏng với code bạn lên xem. Mạch của myth-coder dùng module TQ bán sẵn.

                        Comment


                        • #13
                          Nguyên văn bởi chung1608 Xem bài viết
                          bạn pót cái mạch mô phỏng với code bạn lên xem. Mạch của myth-coder dùng module TQ bán sẵn.
                          upload.zip

                          bạn xem giúp mình thử
                          mình viết từ đầu, đang muốn chạy mượt xíu trước khi viết thêm function cho nó

                          Comment


                          • #14
                            Nguyên văn bởi Jin9x Xem bài viết
                            mình thử rồi bạn, giảm xuống nữa thì nó ko kịp hiện led ra chứ đừng nói là chớp
                            cho nó nhanh lên chứ chậm chậm đi thì chớp càng dữ nữa
                            cái còn lại có thể do giải thuất của bạn viết thời gian sử lí lệnh quá lâu thì nó củn chớp đó coi lại code đi

                            Comment


                            • #15
                              Nguyên văn bởi Jin9x Xem bài viết
                              [ATTACH]76053[/ATTACH]

                              bạn xem giúp mình thử
                              mình viết từ đầu, đang muốn chạy mượt xíu trước khi viết thêm function cho nó
                              sau khi kiểm tra mình thấy mạch này là quét cột vì thế sẽ ko thể hiển thị đồng thời cả mịn và rõ đc. Quét cột bạn có 40 cột, tần số quét để ko bị giật là trên 50Hz. 1 chu kì phải quét 40 cột, thì mỗi cột chỉ sáng 2.5% của chu kì từ đó cho thấy nếu tăng tần số quét thì led ko sáng đc. Bạn phải chuyển sang quét hàng thì mới có thể hiển thị ko bị giật còn độ sáng led khi quét 16 cột thì có thể hơi mờ, muốn ko mờ thì chia ra quét cùng lúc 2 hàng hoặc 4 hàng.

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X