Thông báo

Collapse
No announcement yet.

MATRIX 8x24

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

  • MATRIX 8x24

    Em ghép 3 LED 8x8 thành 8x24
    Sử dụng ĂT9C51
    P0- hàng
    P1,P2,P3- cột
    Quét cột

    Mình mô phỏng trên Protues đã để delay rất nhanh rùi nhưng nó bị nháy loạn lên ko lên chữ được.
    Các bạn xem có sai sót gì chỉ cho mình nhé !

    Với các hàm như vây giờ dịch LED sang trái ntn vậy?

    PHP Code:
    #include <sfr51.inc>
    ORG 0030H
    main
    :
    mov R0,#0
    mov p1,#00h
    mov p2,#00h
    mov p3,#000h
    mov p0,#00h
    lap:
    mov A,R0
    mov DPTR
    ,#cot
    movc A,@A+DPTR
    mov p1
    ,A


    mov A
    ,R0
    mov DPTR
    ,#hang
    movc A,@A+DPTR
    mov p0
    ,A
    lcall delay
    inc R0
    cjne R0
    ,#16,lap
    sjmp main
    lcall delay
    sjmp main
    delay
    :
     
    mov tmod,#001h
     
    mov th0,#low(-10)
     
    mov tl0,#high(-10)
     
    Setb tr0
     jnb tf0
    ,$
     
    clr tf0
     clr tr0
     ret
     
    ;hang:DB 00h,55h
     
    ;cot:DB 0ffh,055h
     cot
    :DB 01h,02h,04h,08h,10h,20h,40h,80h,01h,02h,04h,08h,10h,20h,40h,80h
    hang
    :DB 07h,03h,c9h,cch,c9h,03h,07h,ffh,ffh,89h,00h,24h,24h,00h,00h,ffh
        
    end 

    Có file đính kèm ( code + mô phỏng)

    http://www.mediafire.com/?jgzymkzqxzo
    http://www.mediafire.com/?jgzymkzqxzo

  • #2
    UPPPPPP
    AI học ASEMBLY giúp mình với đi
    Mình đã để vòng lặp
    Sjmp main
    Nhưng mà nó ko giữ nguyên chữ A ! sau khoảng 2 s thì thấy những ký tự của chữ A nó cứ nháy loạn lên.
    Pác nào có kinh nghiệm hoặc đã từng bị rùi chỉ giùm em nhé

    Comment


    • #3
      Nguyên văn bởi tuyetkjem Xem bài viết
      UPPPPPP
      AI học ASEMBLY giúp mình với đi
      Mình đã để vòng lặp

      Nhưng mà nó ko giữ nguyên chữ A ! sau khoảng 2 s thì thấy những ký tự của chữ A nó cứ nháy loạn lên.
      Pác nào có kinh nghiệm hoặc đã từng bị rùi chỉ giùm em nhé
      Chào bạn! mô phỏng trên proteus cho kết quả không chính xác đâu bạn!
      quan sát được k thì còn phụ thuộc vào cpu, ram máy tính của bạn, nói chung là mô phỏng chỉ là mô phỏng, máy tính của mình mô phỏng quét led ma trận chạy ngon , nhưng copy sang máy thằng bạn thì k nhìn ra chữ gì nữa. Làm thực tế đi bạn!
      phần chữ chạy thì bạn chèn thêm mã tắt led vào trong bản dữ liệu cột và hàng.
      lần đầu tiên bạn quét từ vị trí 0 đến vị trí 15 trong bảng dữ liệu
      rồi lần tiếp theo bạn quét từ vị trí 1 đến vị trí 16 trong bảng dữ liệu
      .................
      cứ thế và cứ thế
      bạn sẽ thấy chứ A chạy từ phải qua trái!
      Chúc bạn thành công!
      0945061338(vocam.h@gmail.com,lehanhdtk3@gmail.com)
      ||
      PROGRAMING(C,ASM),HARDWARE,LMD,RTC,GPRS,GPS....ALL OF VDK

      Comment


      • #4
        Nguyên văn bởi vo_cam Xem bài viết
        Chào bạn! mô phỏng trên proteus cho kết quả không chính xác đâu bạn!
        quan sát được k thì còn phụ thuộc vào cpu, ram máy tính của bạn, nói chung là mô phỏng chỉ là mô phỏng, máy tính của mình mô phỏng quét led ma trận chạy ngon , nhưng copy sang máy thằng bạn thì k nhìn ra chữ gì nữa. Làm thực tế đi bạn!
        phần chữ chạy thì bạn chèn thêm mã tắt led vào trong bản dữ liệu cột và hàng.
        lần đầu tiên bạn quét từ vị trí 0 đến vị trí 15 trong bảng dữ liệu
        rồi lần tiếp theo bạn quét từ vị trí 1 đến vị trí 16 trong bảng dữ liệu
        .................
        cứ thế và cứ thế
        bạn sẽ thấy chứ A chạy từ phải qua trái!
        Chúc bạn thành công!
        Cảm ơn bạn nhé !
        Mình sẽ làm mạch thực tế xem sao?
        bạn có thể nói rõ hơn cho mình cách dịch LED nhé ! chỉnh luôn cái code trên cho mình rễ hiểu nhé!

        Comment


        • #5
          Thế này: dùng một thanh ghi để lưu giá trị bắt đầu xuất ra màn hình(ban đầu có thể cho bằng 0).
          Bạn đưa 16 dữ liệu ra bắt đầu từ vị trí thanh ghi đó.( chú ý trong khoảng 0-15).
          Cứ sau một khoảng thời gian tăng giá trị thanh ghi đó lên 1(khoảng 0.5 giây, giá trị thanh ghi này trong khoảng 0-15.

          Comment


          • #6
            Nguyên văn bởi tuyetkjem Xem bài viết
            UPPPPPP
            AI học ASEMBLY giúp mình với đi
            Mình đã để vòng lặp

            Nhưng mà nó ko giữ nguyên chữ A ! sau khoảng 2 s thì thấy những ký tự của chữ A nó cứ nháy loạn lên.
            Pác nào có kinh nghiệm hoặc đã từng bị rùi chỉ giùm em nhé
            mình có project ve matran 8x24 dùng 89c2051 hoặc 89c51, IC 74LS138 để quét cột! mình sẽ gửi lên cho bạn hiện giờ mình đang ở nhà bạn mai mình sẽ gửi lên cho bạn!

            Comment


            • #7
              đây là project mình làm rồi! có j bạn liên lạc qua mail ha!
              link: http://www.mediafire.com/?zxzgkmonynm

              Comment


              • #8
                các anh ơi cho em hoi cái này tí !!!
                Em là con gái nên không rành về điện tử lắm.bon em đang cùng nhau làm đề tài về led ma trận 8x24.Em có đọc qua bài của Anh nghiaha về led ma trận dung AVR nhưng sao em vẻ phần cứng không được .nhờ mấy anh tìm giúp xem em vẻ sai ở đâu.
                http://www.mediafire.com/?swp7n0qhfilagij
                Em cảm ơn nhiều lắm

                Comment


                • #9
                  ĐÚng vậy_mô phỏng protues matrix ko ăn thua đâu_kết nối lại lằng nhằng. Cứ làm cái mạch thật ngon ngon vào. Giá 1 matrix 8x8 giờ đã hơn 20k rồi. Tăng giá vèo vèo. Ở hp là hơn 30k. Chết luôn.Với matrix 8x24 thì dùng 8051 cũng ok. Tốn 2 PORT đk thôi_Nhưng mình làm thì chỉ mất 1 PORT và 1 chân đk là ok.


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

                  Comment


                  • #10
                    Anh có thể cho em xin 1 mạch xem thử không ạ?

                    Comment


                    • #11
                      mọi người ơi giúp em viết 1 ví dụ cho ma trận led 8x24 bang keil C với em gửi so đồ cho.Em bí quá không biết làm gì hết .em chỉ viết được cái 8x8 thôi
                      http://www.mediafire.com/?ayx7c3y5enb72f2

                      Comment


                      • #12
                        Nguyên văn bởi thuy_huyen Xem bài viết
                        mọi người ơi giúp em viết 1 ví dụ cho ma trận led 8x24 bang keil C với em gửi so đồ cho.Em bí quá không biết làm gì hết .em chỉ viết được cái 8x8 thôi
                        http://www.mediafire.com/?ayx7c3y5enb72f2
                        bạn đổi thứ tự các cột như vậy nếu quét hàng nhé!
                        Attached Files

                        Comment


                        • #13
                          hi all
                          có bạn nào giao tiếp đựoc với keyboard chưa ? chỉ giáo cho mình với , hic mình cũng lấy đựoc mã từ bàn phím nhưng chả đúng mã SCANCODE gì cả chả phải set 1 chả phải set2 cũng chả phải set3
                          mình sử dụng ngắt và chân P2_7 để nối vào chân data
                          hàm xử lý ngắt của mình như sau:


                          void Clock (void )interrupt 0 //su dung ngat ngoai 0, ham xua ly xung clock , data =P2_7
                          {
                          dem++;

                          if(dem==1)
                          {
                          if (P2_7)// neu bit stat =1 ,bắt đầu lại từ đầu
                          {

                          dem=0;
                          scancode=0;
                          P2_7=0;
                          }
                          else
                          {
                          ; // bo qua bit start
                          }
                          };
                          if (dem==2) //bit thu 1
                          {
                          if (P2_7)
                          {
                          scancode =1;
                          }

                          else
                          {
                          scancode = 0;
                          }
                          } ;
                          if (dem==3) //bit 2
                          {
                          if( P2_7)
                          {nhap=1;
                          nhap = nhap << 1;
                          scancode = scancode | nhap;
                          }
                          else
                          {
                          nhap=0;
                          nhap = nhap << 1;
                          scancode = scancode |nhap;
                          }
                          } ;
                          if (dem==4)
                          {
                          if (P2_7)
                          {nhap=1;
                          nhap = nhap << 2;
                          scancode = scancode |nhap;
                          }
                          else
                          {
                          nhap=0;
                          nhap = nhap << 2;
                          scancode = scancode |nhap;
                          }

                          };
                          if (dem==5)
                          {
                          if (P2_7)
                          {nhap=1;
                          scancode=scancode << 3;
                          scancode = scancode|nhap;
                          }
                          else
                          {
                          nhap=0;
                          nhap = nhap <<3;
                          scancode = scancode |nhap;
                          }

                          };
                          if (dem==6)
                          {
                          if (P2_7)
                          {nhap=1;
                          nhap = nhap << 4;
                          scancode = scancode |nhap;
                          }
                          else
                          {
                          nhap=0;
                          nhap = nhap << 4;
                          scancode = scancode |nhap;
                          }

                          };
                          if (dem==7)
                          {
                          if (P2_7)
                          {
                          nhap=1;
                          nhap = nhap << 5;
                          scancode = scancode |nhap;
                          }
                          else
                          {
                          nhap=0;
                          nhap = nhap << 5;
                          scancode = scancode|nhap;
                          }

                          };
                          if (dem==8)
                          {
                          if (P2_7)
                          {nhap=1;
                          nhap = nhap << 6;
                          scancode = scancode |nhap;
                          }
                          else
                          {
                          nhap=0;
                          nhap = nhap << 6;
                          scancode = scancode |nhap;
                          }

                          };
                          if (dem==9)
                          {
                          if (P2_7)
                          {nhap=1;
                          nhap = nhap << 7;
                          scancode = scancode |nhap;
                          }
                          else
                          {
                          nhap=0;
                          nhap = nhap << 7;
                          scancode = scancode |nhap;
                          }
                          };
                          if (dem==10) //bit chan le
                          {
                          if (P2_7)
                          {;}
                          else
                          {
                          scancode=0;
                          dem=0;
                          }
                          };
                          if (dem==11) // bit tsop
                          {
                          if(P2_7)
                          {
                          hien_thi_bit( scancode); // hàm này hiển thị mã scancode ở dạng nhị phân
                          scancode=0;
                          delay(1000);
                          dem=0;
                          }
                          else
                          {
                          scancode=0;
                          dem=0;}
                          };

                          }

                          hic chả bít sai ở đâu

                          Comment


                          • #14
                            các anh ơi cho em hoi cái này tí !!!
                            Em là con gái nên không rành về điện tử lắm.bon em đang cùng nhau làm đề tài về led ma trận 8x24.Em có đọc qua bài của Anh nghiaha về led ma trận dung AVR nhưng sao em vẻ phần cứng không được .nhờ mấy anh tìm giúp xem em vẻ sai ở đâu.
                            http://www.mediafire.com/?swp7n0qhfilagij
                            Em cảm ơn nhiều lắm

                            Comment


                            • #15
                              ThuyHuyen thử xem ở trên đó mạch của bạn mình đã sửa rùi! còn code bạn tham khảo của Phanit.com phần hỗ trợ học tập/project đó có đủ hết!

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X