Thông báo

Collapse
No announcement yet.

Tutorial: Led ma trận bằng hình ảnh (completed)

Collapse
This is a sticky topic.
X
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Nguyên văn bởi H.Hai Xem bài viết
    Bác nghaiha cho e hỏi chút xíu.Hai dòng lệnh khai báo màu đỏ sao e không thấy sử dụng.E đã mô phỏng theo bài của bác nhưng chữ hiển thị không dc đầy đủ.
    Những ô màu xanh không sáng.Bác xem và kiểm tra lại giúp e.E rất thích bài viết của bác về chủ đề này.E cám ơn!
    Con led hai màu lấy trong Proteus là gì vậy ?Hay là vẫn một màu mà thay đổi dòng của nó ?

    Comment


    • bạn nghaiha cho hỏi tại sao lại không thể dùng được mang 2 chiều vậy mình không hiểu?

      Comment


      • Nguyên văn bởi nghaiha Xem bài viết
        Đây là em giới thiệu mang tính học thuật chứ không phải làm thực tế. Sau này bác có dùng phần mềm tạo font gì khác nữa thì vẫn phải tham khảo nguyên lý em đã trình bày trong phần excel. Bác hiểu rồi chứ.
        Hình như nguyên lý này chỉ có mỗi mình bạn nghaiha tìm ra hay sao ý nhỉ

        Comment


        • Mong được các bác giúp đỡ ( dù biết là sai mục MCU)

          Em lấy mạch led 8x8 của bác nghaiha , em thay con MCU AVG bằng con 89C52. Em đã viết chương trình led sáng xen kẻ như bác nghaiha nhưng sao khi nạp vào mạch thật hoặc mô phỏng thì nó không giống như Bài 1 vậy. Mong các bác chỉ giúp .
          Đây là chương trinh mạch + sơ đồ
          CODE:
          #include <at89x52.h>
          #define DATA P2_0//Du lieu noi tiep ra 74595
          #define INPUT P2_1//Clock cho phep dich 74595
          #define OUTPUT P2_2//Clock cho phep chot 74595
          #define A P2_0//Dau vao A cua 74138
          #define B P2_1//Dau vao B cua 74138
          #define C P2_2//Dau vao C cua 74138
          #define ENBALE P2_3//Tin hieu cho phep dau ra cua 74138
          void delay(unsigned int ms)
          {
          unsigned int i,j;
          for (i=0;i<ms;i++)
          for (j=0;j<121;j++);
          }
          void scanmatrix();
          void data_in(unsigned char k);
          void out_595(void);

          void main(void)
          {

          P0=0xFF;
          P2=0xFF;
          INPUT=1;
          OUTPUT=1; while(1)
          {
          scanmatrix();
          }
          }
          void scanmatrix()
          {
          unsigned char i,j;
          for (i=0;i<=7;i++)
          {
          for(j=0;j<12;j++)
          {
          data_in(0);
          data_in(1);
          }
          out_595();
          P2=i+8;
          delay(20) ;

          }
          }
          void data_in(unsigned char k)
          {
          DATA=k;
          INPUT=1;
          INPUT=0;
          }
          void out_595(void)
          {
          OUTPUT=1;delay(1);
          OUTPUT=0; delay(1);
          }
          Học hỏi là trên hết .

          Comment


          • Trong này có sơ đồ mạch và chương trình mô phỏng , các bạn xem hộ mình cái nha.
            http://www.mediafire.com/?sharekey=8...eada0a1ae8665a
            Học hỏi là trên hết .

            Comment


            • Bác định nghĩa các chân quét hàng và quét cột giống nhau:

              #define DATA P2_0//Du lieu noi tiep ra 74595
              #define INPUT P2_1//Clock cho phep dich 74595
              #define OUTPUT P2_2//Clock cho phep chot 74595
              #define A P2_0//Dau vao A cua 74138
              #define B P2_1//Dau vao B cua 74138
              #define C P2_2//Dau vao C cua 74138

              phải sửa thành
              #define DATA P0_0//Du lieu noi tiep ra 74595
              #define INPUT P0_1//Clock cho phep dich 74595
              #define OUTPUT P0_2//Clock cho phep chot 74595
              #define A P2_0//Dau vao A cua 74138
              #define B P2_1//Dau vao B cua 74138
              #define C P2_2//Dau vao C cua 74138
              #define ENBALE P2_3//Tin hieu cho phep dau ra cua 74138

              Chương trình tôi sửa cho bác như sau: phần chữ đỏ là phần sửa hoặc thêm vào, bác mô phỏng nhá

              #include <at89x52.h>
              #define DATA P0_0//Du lieu noi tiep ra 74595
              #define INPUT P0_1//Clock cho phep dich 74595
              #define OUTPUT P0_2//Clock cho phep chot 74595

              #define A P2_0//Dau vao A cua 74138
              #define B P2_1//Dau vao B cua 74138
              #define C P2_2//Dau vao C cua 74138
              #define ENBALE P2_3//Tin hieu cho phep dau ra cua 74138

              unsigned char Flag = 0;

              void delay(unsigned int ms)
              {
              unsigned int i,j;

              for (i=0;i<ms;i++)
              for (j=0;j<121;j++);
              }

              void scanmatrix();
              void data_in(unsigned char k);
              void out_595(void);

              void main(void)
              {

              P0=0xFF;
              P2=0xFF;
              INPUT=1;
              OUTPUT=1;
              while(1)
              {
              scanmatrix();
              }
              }
              void scanmatrix()
              {
              unsigned char i,j;

              for (i=0;i<8;i++)
              {
              for(j=0;j<12;j++)
              {
              if(Flag == 0)
              {

              data_in(0);
              data_in(1);
              else
              {
              data_in(1);
              data_in(0);
              }

              }
              out_595();
              P2=i+8;
              delay(20) ;
              }
              Flag = ~ Flag;
              }

              void data_in(unsigned char k)
              {
              DATA=k;
              INPUT=1;
              INPUT=0;
              }

              void out_595(void)
              {
              OUTPUT=1; delay(1);
              OUTPUT=0; delay(1);
              }
              ----------------------
              Bể học là mênh mông!

              Comment


              • Nguyên văn bởi wish_blue07 Xem bài viết
                Trong này có sơ đồ mạch và chương trình mô phỏng , các bạn xem hộ mình cái nha.
                http://www.mediafire.com/?sharekey=8...eada0a1ae8665a
                Nguyên văn bởi manhha2799 Xem bài viết
                HTML Code:

                #INT_TIMER1
                void ngat_timer1()
                { int temp,k;

                spi_write(DMem[r]);
                LatchData();
                PORTD=r+8;
                r++;

                if (r==8)
                {
                for (k=0;k<=7;k++)
                {
                DMem[k]=~(chu_c[k]>>rr);
                }
                rr++;
                if (rr==8)
                {
                rr=0;
                }

                r=0;
                }
                }

                Bác xem giùm em, em cho chạy chữ từ phải sang trái mà chữ chạy thì được, nhưng sao mà nó cứ nháy nháy liên tục. Không biết có cách nào cho nó khỏi nhấp nháy. Mà chỉ dịch qua thôi.
                Phần ngắt Timer1 ta đã dành cho việc quét led rồi. Không cần can thiệp vào hàm này làm gì. Muốn dịch chữ bác thử thay đổi nội dung của DMem thôi nhé.

                Ban đầu bác thử thay đổi nội dung DMem trong vòng lặp while (1){} xem sao.


                các bác ơi chỉ em chỗ dịch chữ sang phải với em làm thế này mà mãi ko ổn

                while (1){
                for(j=0;j<=7;j++)
                {
                DMem[j*3] =(DMem[j*3]<<1) |(DMem[j*3+1]>>7);
                DMem[j*3+1]=(DMem[j*3+1]<<1)|(DMem[j*3+2]>>7);
                DMem[j*3+2]=(DMem[j*3+2]<<1)|(DMem[j*3]>>7);

                delay_ms(3);
                }

                Comment


                • Nguyên văn bởi hai_abc Xem bài viết
                  Bác định nghĩa các chân quét hàng và quét cột giống nhau:

                  #define DATA P2_0//Du lieu noi tiep ra 74595
                  #define INPUT P2_1//Clock cho phep dich 74595
                  #define OUTPUT P2_2//Clock cho phep chot 74595
                  #define A P2_0//Dau vao A cua 74138
                  #define B P2_1//Dau vao B cua 74138
                  #define C P2_2//Dau vao C cua 74138

                  phải sửa thành
                  #define DATA P0_0//Du lieu noi tiep ra 74595
                  #define INPUT P0_1//Clock cho phep dich 74595
                  #define OUTPUT P0_2//Clock cho phep chot 74595
                  #define A P2_0//Dau vao A cua 74138
                  #define B P2_1//Dau vao B cua 74138
                  #define C P2_2//Dau vao C cua 74138
                  #define ENBALE P2_3//Tin hieu cho phep dau ra cua 74138

                  Chương trình tôi sửa cho bác như sau: phần chữ đỏ là phần sửa hoặc thêm vào, bác mô phỏng nhá

                  #include <at89x52.h>
                  #define DATA P0_0//Du lieu noi tiep ra 74595
                  #define INPUT P0_1//Clock cho phep dich 74595
                  #define OUTPUT P0_2//Clock cho phep chot 74595

                  #define A P2_0//Dau vao A cua 74138
                  #define B P2_1//Dau vao B cua 74138
                  #define C P2_2//Dau vao C cua 74138
                  #define ENBALE P2_3//Tin hieu cho phep dau ra cua 74138

                  unsigned char Flag = 0;

                  void delay(unsigned int ms)
                  {
                  unsigned int i,j;

                  for (i=0;i<ms;i++)
                  for (j=0;j<121;j++);
                  }

                  void scanmatrix();
                  void data_in(unsigned char k);
                  void out_595(void);

                  void main(void)
                  {

                  P0=0xFF;
                  P2=0xFF;
                  INPUT=1;
                  OUTPUT=1;
                  while(1)
                  {
                  scanmatrix();
                  }
                  }
                  void scanmatrix()
                  {
                  unsigned char i,j;

                  for (i=0;i<8;i++)
                  {
                  for(j=0;j<12;j++)
                  {
                  if(Flag == 0)
                  {

                  data_in(0);
                  data_in(1);
                  else
                  {
                  data_in(1);
                  data_in(0);
                  }

                  }
                  out_595();
                  P2=i+8;
                  delay(20) ;
                  }
                  Flag = ~ Flag;
                  }

                  void data_in(unsigned char k)
                  {
                  DATA=k;
                  INPUT=1;
                  INPUT=0;
                  }

                  void out_595(void)
                  {
                  OUTPUT=1; delay(1);
                  OUTPUT=0; delay(1);
                  }
                  cám ơn bác, nhưng khi em nạp vào thì nó cũng không sáng xen kẽ như bài 1 của anh nghaiha . Chỉ sáng từng hàng 1, chớp và tắt. Bác xem hộ em với nha.Dữ liệu thì nó vào rồi , nhưng hình như việc cấp nguồn cho hàng chưa phù hợp bác ơi.
                  Học hỏi là trên hết .

                  Comment


                  • Có ai giúp em với , đang lâm vào tình thế tiến thoái lưỡng nan , nên cần phao cứu hộ . Giúp chút nha
                    Học hỏi là trên hết .

                    Comment


                    • Mô phỏng ma trận led trong protues chán quá.Chỉ có loại ứng dụng cho quét cột.Sửa chữa mãi mới quét hàng đc_nhưng rất tiếc nó quét bị thiếu pixel.Mình làm theo bác Nghaiha nhưng ko đc.Có lẽ sang mạch thật sẽ khác chăng????.(Code và phần cứng mô phỏng y hệt luôn)


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

                      Comment


                      • Nguyên văn bởi hoangdai Xem bài viết
                        Mô phỏng ma trận led trong protues chán quá.Chỉ có loại ứng dụng cho quét cột.Sửa chữa mãi mới quét hàng đc_nhưng rất tiếc nó quét bị thiếu pixel.Mình làm theo bác Nghaiha nhưng ko đc.Có lẽ sang mạch thật sẽ khác chăng????.(Code và phần cứng mô phỏng y hệt luôn)
                        Trước đây mình mô phỏng trên proteus cũng bị thiếu điểm ảnh giống bạn(nhiều người nói do proteus không hỗ trợ thời gian thực,rồi chương trình mô phỏng kém....bảo mình làm mạch thật mà xem)

                        Loay hoay mãi cuối cùng cũng sáng đầy đủ

                        bạn thử làm giống mình xem: Trong hàm ngắt,bạn đưa dữ liệu ra hàng trước,sau đó mới đẩy dữ liệu ra 74hc595 và đưa ra cột.

                        Comment


                        • uh.Cám ơn nhé


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

                          Comment


                          • bạn thử xem đã chỉnh tần số con AVR trong protues chưa?cho thành 8M,ok
                            Phạm Duy Quý

                            PN:0973291335


                            Dám nghĩ,dám nói,dám làm

                            Comment


                            • Hình như các cao thủ đã chán chủ đề ledmatrix này rùi!
                              Đã ai làm được các hiệu ứng như chữ chạy sang phải,trái,chữ mất từ giữa ra ....chưa?Hướng dẫn cho mình với.
                              Thú thật cái tutorial của bác nghaiha viết rất dễ hiểu,nhưng mình cũng chỉ làm đc vài hiệu ứng đơn giản như chữ đứng yên,chạy từ trên xuống dưới,từ dưới lên trên thui.

                              mail của mình là : haui0037@yahoo.com.vn

                              Comment


                              • Nếu bạn đã làm được từng đó hiệu ứng rồi và "thực sự hiểu" thì các hiệu ứng khác bạn hoàn toàn có thể tự nghĩ ra và chỉnh sửa code đôi chút là ổn thôi
                                còn nhiều bạn chỉ copy code rồi chỉnh đôi chút mà không hiểu rõ về bản chất nó thì rất khó để tự mình viết thêm nhiều hiệu ứng..
                                . khuyên bạn chỉ cần từ một hiệu ứng thôi nhưng bạn hiểu rõ cách mà bảng quang báo bạn thực hiện để tạo ra nó ra sao thì bạn sẽ làm được khá nhiều hiệu ứng khác thôi.

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                • mèomướp
                                  Trả lời cho Công thức điện tử
                                  bởi mèomướp
                                  Dạ thời thế giờ thay đổi theo hướng tích cực hơn rồi chú trung sĩ ạ. Kiến thức được chia sẻ ngày càng nhìu nên làm ăn gian dối ko còn dễ dàng như trước đâu ạ. Những thợ nhỏ rồi sẽ thành công nhân sản xuất đồ mới hết thay vì sửa chữa lặt vặt...
                                  Hôm qua, 21:21
                                • mèomướp
                                  Trả lời cho Xin hỏi về màn hình laptop
                                  bởi mèomướp
                                  Dạ cùng chuẩn tín hiệu thì chắc chắn là nhận ạ. Vì bản chất oled hay lcd thì đều phải có mạch chuyển đổi trên thanh gỗ rồi chuyển sang những chip xử lý hàng nghìn chân gắn trên những tab mỏng dính rồi mới ra các điểm ảnh theo hàng...
                                  Hôm qua, 20:31
                                • yname11
                                  Trả lời cho Xin hỏi về màn hình laptop
                                  bởi yname11
                                  Ok , thanks bác đã chỉ...
                                  Hôm qua, 15:06
                                • nguyendinhvan
                                  Công thức điện tử
                                  bởi nguyendinhvan
                                  Sau bao năm nghiên cứu cái dtvn. Tôi phát hiện công thức này. Các anh em xem đúng bao nhiêu phần trăm nhé !

                                  Chập thì thay. Cháy thì tháo
                                  Làm thì láo. Báo thì hay
                                  May thì khoe. Rủi thì bỏ
                                  Thành tích nhỏ. Báo thành to
                                  Làm cho có. Báo chi li
                                  Sai cả li. Báo
                                  ...
                                  Hôm qua, 00:35
                                • yname11
                                  Trả lời cho Xin hỏi về màn hình laptop
                                  bởi yname11
                                  có chắc ko b, màn lcd phải có cao áp mới sáng, màn led thì ko có, ko có cáp chuyển đổi thì lắp thế nào đc ??...
                                  25-11-2024, 22:31
                                • mèomướp
                                  Trả lời cho Xin hỏi về màn hình laptop
                                  bởi mèomướp
                                  Dạ ý chú là màn oled ấy ạ. Cùng chuẩn lvds cùng độ phân giải thì cắm được ạ. Còn nó mà khác thì hơi khó vì oled các điểm ảnh nó tự phát sáng chứ ko dùng đèn nền như lcd. Cháu chỉ biết đến vậy thôi ạ. Chú muốn nghịch phải tự tìm hiểu kỹ trước khi mua thôi, khó mà ông thợ nào tư vấn vụ này...
                                  25-11-2024, 22:14
                                • bactho
                                  Trả lời cho Tự làm máy đo Cuộn cảm
                                  bởi bactho
                                  Hay đấy bạn ạ. Đây có thể hiểu là máy đo cuộn dây. Tiện đây xin cho hỏi bạn có hiểu rõ về máy nạp rôm pcb 45 của hãng thiên minh không giúp mình cách cài fw của nó với vì mình vừa được anh bạn cho nhưng lại không biết cài fw nên chưa dùng được. Nếu có thể thì bạn giúp mình với...
                                  25-11-2024, 21:48
                                • yname11
                                  Trả lời cho Xin hỏi về màn hình laptop
                                  bởi yname11
                                  màn của mình là LCD , giờ m muốn mua màn LED để thay thế (ko muốn dùng màn LCD nữa) , lên muốn hỏi xem có cáp chuyển đổi nào có thể cắm đc màn LED vào ko , tất nhiên phải có cùng số chân pin với màn cũ rồi . VD: màn cũ là lcd mỏng , 40 pin...
                                  25-11-2024, 21:43
                                • bactho
                                  Trả lời cho các bạn giúp mình về file HEX với!!!
                                  bởi bactho
                                  Bạn vào trang phuclanshop.com ,tìm đến góc kỹ thuật. Tác giả vương khánh hưng nói rất rõ về điều bạn tìm...
                                  25-11-2024, 21:21
                                • mèomướp
                                  Trả lời cho Xin hỏi về màn hình laptop
                                  bởi mèomướp
                                  Dạ màn hình lcd đều có thể lai cấy cho nhau được hết ạ. Các loại cáp, bo mạch chuyển đổi lvds rất nhìu, với dòng sony còn phải nhổ cả chip nhớ của main cũ đưa lên gỗ thì mới lắp sang máy khác đc, chưa kể các bệnh về màu... ngay cả...
                                  25-11-2024, 20:43
                                Đang tải...
                                X