Thông báo

Collapse
No announcement yet.

Tìm hiểu bảng quang báo

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

  • Nguyên văn bởi hoang_hai Xem bài viết
    ok liền cảm ơn nhiều nhé
    mình thấy nó dịch từng bit như hình chữ cái rồi
    sao tăng nó lên nhanh thì proteus ko hiện dc nhỉ
    nếu làm mạch thật thì nó có hiện như mình mong muốn ko nhỉ bạn làm thử rồi cho mình biết kết quả trước đi
    chắc lúc nào mình cũng phai thử 1 cái bỏad thật mới dc
    thành công rồi
    còn 1 việc nữa là chạy chữ từ trái qua phải thôi

    Mình không dám khẳng định nhưng đến 90% bạn chuyển chương trình đó thành thực tế là chạy được. Kinh nghiệm rút ra từ mình, quét led 7 thanh mô phỏng trên proteus tốc độ cao không được, tìm cách sửa cả tháng, cuối cùng chán quá làm thử mạch, chẳng thay đổi gì, vẫn hiện bình thường .
    Bạn làm được cái gì cũng nên thử ở mạch thật vì từ mô phỏng đến thực tế khác nhau nhiều lắm. Làm mạch thật cũng giúp cho mình có nhiều kinh nghiệm mô phỏng hơn đấy

    Comment


    • Nguyên văn bởi Huntress1 Xem bài viết
      Mình không dám khẳng định nhưng đến 90% bạn chuyển chương trình đó thành thực tế là chạy được. Kinh nghiệm rút ra từ mình, quét led 7 thanh mô phỏng trên proteus tốc độ cao không được, tìm cách sửa cả tháng, cuối cùng chán quá làm thử mạch, chẳng thay đổi gì, vẫn hiện bình thường .
      Bạn làm được cái gì cũng nên thử ở mạch thật vì từ mô phỏng đến thực tế khác nhau nhiều lắm. Làm mạch thật cũng giúp cho mình có nhiều kinh nghiệm mô phỏng hơn đấy
      mình vẫn chưa hiểu làm thế nào để dich bit cho nó chạy chữ từ trái qua phải
      bạn nói như trên doc thì hiểu nhưng ko biết làm thế nào cả
      bạn nói kĩ lại 1 chút vấn đề chạy chữ cho mình hiểu với
      nick của mình là hoanghai_haui@yahoo.com
      mình có thể chat trực tiêp để hỏi bạn 1 số vấn đề với cái led ma tran này nhé
      Last edited by hoang_hai; 19-07-2009, 23:51.

      Comment


      • Dịch từ trái qua phải thì dịch ngược lại của từ phải qua!
        VD mã từ phải qua trái là 1000... 01000... 001000...
        thì mã kia là ...0001 ...00010 ...000100 ..

        Nói cho cùng! ngồi đây thế này với Proteus vẫn chỉ là lý thuyết xuông mà thôi! Nên làm mạch thật dù chỉ là mạch 8x8 đi nữa thì có kinh nghiệm thực tế vẫn hơn!

        P/S: Thấy mấy bài trước có người nói 89S nhớ nhiều hơn 89C, nên tìm hiểu kỹ lại nhé, đừng phát ngôn linh tinh!!!
        Trần Đức Sơn

        tel:0934691385

        Comment


        • Nguyên văn bởi hoang_hai Xem bài viết
          mình vẫn chưa hiểu làm thế nào để dich bit cho nó chạy chữ từ trái qua phải
          bạn nói như trên doc thì hiểu nhưng ko biết làm thế nào cả
          bạn nói kĩ lại 1 chút vấn đề chạy chữ cho mình hiểu với
          nick của mình là hoanghai_haui@yahoo.com
          mình có thể chat trực tiêp để hỏi bạn 1 số vấn đề với cái led ma tran này nhé
          Mình viết 1 cách cụ thể ra đây cho bạn hiểu nhé
          P0=10000000b ;//1
          P0=01000000b ;//2
          P0=00100000b ;//3
          P0=00010000b ;//4
          P0=00001000b ;//5
          P0=00000100b ;//6

          Code:
          Ma_cot[8]={...} // P0
          A[8]={a,b,c,d,e,f,g,h}
          while(1)
          {
          for(i=0;i<7;i++)
          {
          P2=A[i];P0=Ma_cot[i];delay();
          }
          dồn_mảng(A);
          }
          
          
          void dồn_mảng(char[] X)
          {
          char temp=X[0];
          for(i=0;i<7;i++)
          {
          X[i]=X[i+1];
          }
          X[7]=temp;
          }
          đại khái thuật toán là thế thôy, chứ mình chưa chắc đoạn trên đã chạy (mình nghĩ vậy thì viết ra thôy chứ chưa thử). Chủ yếu là bạn cần nắm cách làm rồi tự bạn phát triển thôy


          @cddt : đúng rồi, em nhầm thật, tại toàn làm = 89C cho nên cũng k để ý lắm về kái 89S, chỉ nhớ mang máng. Sơ ri bác, sơ ri cả nhà

          Comment


          • thế mình hiên chữ A rồi
            bây jowf mình muốn hiện chữ H ở vị trí đấy sao nó ko quét hết chữ A rồi sang quét chữ H mà no lai chay như thế này
            __11__ rồi lại 1__1
            _1__1_ rồi lại 1__1
            11__11 rồi lai 1__1
            .......
            dáng lẽ nó phải chạy hết chữ A từ trên suống rồi mới sang chư H
            bây jo nó chạy 2 chữ đồng thời luôn
            sửa giúp mình với
            đây là đoạn code
            #include<regx51.h>
            #include<stdio.h>
            #include<math.h>
            #include<stdlib.h>
            sbit DATA=P1^1;
            sbit SCK=P1^0;
            sbit SCL=P1^2;
            void tre(unsigned int t)
            {unsigned int i;
            for(i=1;i<t;++i);
            }
            int n;m;t;k;j;temp;X; i;
            code unsigned char row_on[] = {0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
            code unsigned char row_on1[] = {0x7F,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF};
            code unsigned char row_off[] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
            unsigned char chua[]= {0x30,0x48,0xcc,0xcc,0xfc,0xcc,0xcc,0xcc
            };
            unsigned char chuh[]= {0x88,0x88,0x88,0xf8,88,0x88,0x88,0x88
            };
            void main()
            {
            while(1)
            {
            for(n=0;n<8;n++)
            {P2=chua[n];
            P1=row_on[n];
            tre(50000);
            P1=row_off[n];
            P2=chuh[n];
            P1=row_on[n];
            tre(50000);
            P1=row_off[n];

            }}}
            trễ lớn để nhìn thấy sự dịch chuyển từng bit
            bây jo mình muốn nó hiện chữ A rồi xóa chữ A sau đó hiện chữ H ...
            mình muốn làm như vậy thì câu lệnh của mình phải sửa thế nào nhỉ
            Last edited by hoang_hai; 20-07-2009, 10:38.

            Comment


            • vậy mình phải làm thế nào để chữ nó chạy hết chữ A rồi mới chuyển sang chữ H
              hiện tại là nó đang chạy cả 2 chữ liên 1 lúc như ở trên mình viết đấy

              Comment


              • Thứ nhất, bạn nên sử dụng hàm delay mình viết ở trên, nó là delay ms nên sử dụng nó cũng dễ dàng hơn của bạn. VD muốn delay 1s thì chỉ cần delay(1000); còn hàm của bạn thì k biết delay bao nhiêu nữa.
                Thứ hai, đoạn code bạn viết thế kia thì nó quét 2 chữ đồng thời là đúng rồi. Bạn phải quét xong hoàn toàn chữ A rồi mới quét đến chữ H. Có thể bạn mới tiếp cận đến lập trình lần đầu tiên nên mình thấy bạn xử lý các thuật toán chẳng khả thi chút nào. Bạn hãy suy nghĩ về thuật toán xử lý trước khi bắt tay vào viết code, đừng mò mẫm như thế này.Hãy suy nghĩ logic một chút đi, suy nghĩ xem máy tính nó sẽ thực thi thế nào với từng dòng code của bạn

                Comment


                • Nguyên văn bởi Huntress1 Xem bài viết
                  Thứ nhất, bạn nên sử dụng hàm delay mình viết ở trên, nó là delay ms nên sử dụng nó cũng dễ dàng hơn của bạn. VD muốn delay 1s thì chỉ cần delay(1000); còn hàm của bạn thì k biết delay bao nhiêu nữa.
                  Thứ hai, đoạn code bạn viết thế kia thì nó quét 2 chữ đồng thời là đúng rồi. Bạn phải quét xong hoàn toàn chữ A rồi mới quét đến chữ H. Có thể bạn mới tiếp cận đến lập trình lần đầu tiên nên mình thấy bạn xử lý các thuật toán chẳng khả thi chút nào. Bạn hãy suy nghĩ về thuật toán xử lý trước khi bắt tay vào viết code, đừng mò mẫm như thế này.Hãy suy nghĩ logic một chút đi, suy nghĩ xem máy tính nó sẽ thực thi thế nào với từng dòng code của bạn
                  uh` mình mới bắt đầu học lập trinhf nên mình viết các chương trình khó quá
                  hàm delay thì mình nghĩ là ko vấn đề j rồi
                  còn viết code như thế nào để vừa đơn giản và có thể quét hết chữ A rồi đến quét chữ h vậy giúp mình luôn với
                  mình chỉ biết viết như thế kia thôi
                  vì lập trình cho led đơn thì nó sẽ thưc hiện các lệnh từ trên suống
                  còn cái này nó lại ko như thế
                  minh ko hiểu no thưc hiên như thế nào nữa
                  viết lại đoạn code cho mình với

                  Comment


                  • ko mình ko mò mẫm
                    mà là đang tìm hiểu nó
                    mình đang học ở trường mà chả hiểu j
                    nên phải tìm hiểu
                    mới đầu ko biết-->biết-->làm thử-->thất bại--->thất bại---->........---> kết quả(thành công)--->nộp bài cho thầy--->điểm và kinh nghiệm để sau này ứng dụng vào trong công việc
                    mới đầu ai cũng ko biết j hết
                    nghiên cứu nhiều và học nhiều sẽ có thành công nhờ sự giúp đỡ của bạn bè
                    nên mình phải hỏi nhiều tưng tí một rồi sẽ có lúc làm ra
                    hy vọng bạn nói kĩ cho mình đoạn này

                    Comment


                    • vì lập trình cho led đơn thì nó sẽ thưc hiện các lệnh từ trên suống
                      còn cái này nó lại ko như thế
                      sai rồi, dù bạn lập trình cho cái gì thì nó cũng thực hiện từ trên xuống hết.
                      Mình đã nói rất rõ ràng rồi
                      Hãy suy nghĩ logic một chút đi, suy nghĩ xem máy tính nó sẽ thực thi thế nào với từng dòng code của bạn

                      Comment


                      • ok rồi nó chạy như ý rồi
                        mình hỏi nốt 1 vấn đế này nữa la ok liền
                        mình cho delay cao lên thì nhìn thấy nó dịch chuyển từng bit một hết chữ A rồi đến chữ H rồi
                        nhưng cho nó delay thấp suống thif có 1 vấn đề là
                        tất cả những điểm nào để chữ A và chữ H sáng nó đều sáng cùng hết-->ko nhìn rõ là chữ j nữa
                        vậy khi vào làm board thật thì nó sẽ hiện như thế nào
                        bạn cắm board thật rồi cho mình biết kết quả trước nhé
                        (suy nghĩ dc máy tính nó thực hiện code của mình ntn rồi)

                        Comment


                        • Nguyên văn bởi hoang_hai Xem bài viết
                          ok rồi nó chạy như ý rồi
                          mình hỏi nốt 1 vấn đế này nữa la ok liền
                          mình cho delay cao lên thì nhìn thấy nó dịch chuyển từng bit một hết chữ A rồi đến chữ H rồi
                          nhưng cho nó delay thấp suống thif có 1 vấn đề là
                          tất cả những điểm nào để chữ A và chữ H sáng nó đều sáng cùng hết-->ko nhìn rõ là chữ j nữa
                          vậy khi vào làm board thật thì nó sẽ hiện như thế nào
                          bạn cắm board thật rồi cho mình biết kết quả trước nhé
                          (suy nghĩ dc máy tính nó thực hiện code của mình ntn rồi)
                          bạn làm như thế này tức là khi chạy thì nó hiện chữ A 1 lần, rồi chữ H 1 lần rồi lại chữ A, H, A, H, ... Thì khi tốc độ cao, với mắt thường dĩ nhiên bạn thấy cả 2 chữ đều sáng.
                          Bạn hãy suy nghĩ làm sao để chương trình nó chạy hiện ra chữ A đứng đó rồi 3 giây sau nó chuyển sang chữ H (tức là A, A, A, A, .3 giây.., A, H, H, H,...). Hiểu chứ

                          Comment


                          • Nguyên văn bởi Huntress1 Xem bài viết
                            bạn làm như thế này tức là khi chạy thì nó hiện chữ A 1 lần, rồi chữ H 1 lần rồi lại chữ A, H, A, H, ... Thì khi tốc độ cao, với mắt thường dĩ nhiên bạn thấy cả 2 chữ đều sáng.
                            Bạn hãy suy nghĩ làm sao để chương trình nó chạy hiện ra chữ A đứng đó rồi 3 giây sau nó chuyển sang chữ H (tức là A, A, A, A, .3 giây.., A, H, H, H,...). Hiểu chứ
                            uh`
                            thế thì minh dùng vòng lặp for khoảng 200-->300 là dc 3 đến 4 s
                            cậu thấy dùng như vậy dc chưa

                            Comment


                            • mình muốn mở rong port thì mình dùng con 74595
                              nhung cai chan data của nó mỗi lần chỉ nhận 1bit(0--1) mà mình chỉ biết viết lệnh để có thể truyền dc 1 byte(vào 1 port cua vdk) vậy muốn đưa 1 byte vào 74595 thì phải mình phải đưa 8bit vào chân data vậy bạn giúp mình viết câu lênh để có thể đưa 1 byte vao chan data nhanh nhất.nếu mình mà viết thì mình chỉ biết đưa từng bit vào một
                              vậy thì lâu lắm va còn tốn bộ nhớ, vậy có các nào nhanh hơn ko
                              mình ko nghĩ dc cách nào cả dùng for ko dc
                              Last edited by hoang_hai; 21-07-2009, 08:38.

                              Comment


                              • Nguyên văn bởi hoang_hai Xem bài viết
                                uh`
                                thế thì minh dùng vòng lặp for khoảng 200-->300 là dc 3 đến 4 s
                                cậu thấy dùng như vậy dc chưa
                                không phải. Ý bạn là thế này phải không :
                                quét_chữ_A();
                                delay();
                                Quét_chữ_H();
                                Nếu như thê này thì vẫn là A, H, A, H, ... thì vẫn không được.
                                Mình nói rồi, bạn tìm cách cho nó hiển thị A, A, A, ..., A, H, H, H, ...
                                Bạn có thể cho 1 biến đếm số lần rồi 1 câu điều kiện:
                                if (số_lần*thời_gian_viết_chữ_A >= 3000 ) viết_chữ_h;

                                mình muốn mở rong port thì mình dùng con 74595
                                nhung cai chan data của nó mỗi lần chỉ nhận 1bit(0--1) mà mình chỉ biết viết lệnh để có thể truyền dc 1 byte(vào 1 port cua vdk) vậy muốn đưa 1 byte vào 74595 thì phải mình phải đưa 8bit vào chân data vậy bạn giúp mình viết câu lênh để có thể đưa 1 byte vao chan data nhanh nhất.nếu mình mà viết thì mình chỉ biết đưa từng bit vào một
                                vậy thì lâu lắm va còn tốn bộ nhớ, vậy có các nào nhanh hơn ko
                                mình ko nghĩ dc cách nào cả dùng for ko dc
                                Bạn cứ làm hoàn chỉnh kái kia đi đã rồi nghĩ đến chuyện mở rộng port sau, 89c51 có thể điều khiển đến 3 bảng 8x8.
                                Còn nếu bạn muốn mở rộng port thì không nên dùng 74595 mà nên dùng 74hc138 với 3 đường vào 8 đường ra, cách sử dụng cũng dễ hơn nữa, bạn đọc datashaeet của nó là hiểu liền

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X