Lập trình SPI cho 89S52 để quét ma trận

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • vu_elec
    Thành viên mới
    • Aug 2011
    • 20

    #1

    Lập trình SPI cho 89S52 để quét ma trận

    Chuyện là e có làm ma trận 16x64 dùng 595. điều khiển bằng 89s52
    Vì mạch có giao tiếp với RS232 nên chân TXD vs RXD không đem ra xuất dữ liệu cho 595 được, vì thế e phải can thiệp bằng phần mềm.
    Dù đã cố hết sức rồi, nhưng mạch vẫn còn rung, tuy là không thấy, nhưng nhìn lâu sẽ nhức mắt.
    Vậy nên e mới nghĩ ra giải pháp dùng chân SPI để gửi data cho 595, nhưng chẳng biết làm thế nào.

    Mong được các cao thủ chỉ giúp.
  • congbinh1989
    Thành viên tích cực
    • May 2011
    • 153

    #2
    Đâu cần phải cứ dùng chân TXD hay RXD là có thể xuất dữ liệu cho 595. Bạn có thể dùng các chân bình thường khác để xuất dữ liệu mà, nếu thích bạn có thể làm nhiều kênh nối chứ cần gì phải sử dụng nguyên TXD hay RXD. Quan trọng hơn là bạn hiểu cặn kẽ quá trình đưa dữ liệu vào 595, khi đã hiểu rồi thì chả cần chân TXD hay RXD chúng ta vẫn đưa dữ liệu vào 595 đc, Mình đã làm LED ma trận 16x16, trong đó mình dùng 2 kênh xuất dữ liệu độc lâp ra 595

    Comment

    • vu_elec
      Thành viên mới
      • Aug 2011
      • 20

      #3
      Nguyên văn bởi congbinh1989 Xem bài viết
      Đâu cần phải cứ dùng chân TXD hay RXD là có thể xuất dữ liệu cho 595. Bạn có thể dùng các chân bình thường khác để xuất dữ liệu mà, nếu thích bạn có thể làm nhiều kênh nối chứ cần gì phải sử dụng nguyên TXD hay RXD. Quan trọng hơn là bạn hiểu cặn kẽ quá trình đưa dữ liệu vào 595, khi đã hiểu rồi thì chả cần chân TXD hay RXD chúng ta vẫn đưa dữ liệu vào 595 đc, Mình đã làm LED ma trận 16x16, trong đó mình dùng 2 kênh xuất dữ liệu độc lâp ra 595
      Cảm ơn bạn đã quan tâm. Đương nhiên là mình có thể dùng các chân khác.
      Mình vẫn xuất ra ma trận được, nhưng bị rung.
      Thử nghiệm với 16x32 thì chẳng sao, còn 16x64 thì rung.
      Do vi điều khiển phải đẩy hết 64 đường dữ liệu, nên thời gian quay về rất lâu.
      Có dùng chốt, nhưng vì 16 hàng, nên thời gian quay về cho đợt quét tiếp theo khá lâu.

      => Nên mạch bị rung

      Comment

      • congbinh1989
        Thành viên tích cực
        • May 2011
        • 153

        #4
        Thì cậu hạn chế số 595 cho 1 kênh gửu. Nếu nhiều quá thì sẽ bị rung là đúng rồi, còn nếu không muốn rung thì chỉ có cách tăng tần số thạch anh thôi( Nhưng chỉ tăng đc giới hạn ). Còn nếu không muốn tăng thì bạn chia ra. Giả sử bạn có 64 đường dữ liệu dùng 8 con 595 chung 1 kênh gửu, Giờ bạn chia ra, mỗi một kênh gửu thì chỉ cần 2 con 595 thôi.

        Comment

        • vu_elec
          Thành viên mới
          • Aug 2011
          • 20

          #5
          Nguyên văn bởi congbinh1989 Xem bài viết
          Thì cậu hạn chế số 595 cho 1 kênh gửu. Nếu nhiều quá thì sẽ bị rung là đúng rồi, còn nếu không muốn rung thì chỉ có cách tăng tần số thạch anh thôi( Nhưng chỉ tăng đc giới hạn ). Còn nếu không muốn tăng thì bạn chia ra. Giả sử bạn có 64 đường dữ liệu dùng 8 con 595 chung 1 kênh gửu, Giờ bạn chia ra, mỗi một kênh gửu thì chỉ cần 2 con 595 thôi.
          Mình đã thử tách ra thành 2 bên, mỗi bên 16x32, xuất dữ liệu đồng thời cho 2 con, nhưng sao mà nó vẫn rung. còn nếu xuất 1 bên thôi thì ổn.

          Comment

          • congbinh1989
            Thành viên tích cực
            • May 2011
            • 153

            #6
            Nguyên văn bởi vu_elec Xem bài viết
            Mình đã thử tách ra thành 2 bên, mỗi bên 16x32, xuất dữ liệu đồng thời cho 2 con, nhưng sao mà nó vẫn rung. còn nếu xuất 1 bên thôi thì ổn.
            Bạn có thể post đoạn code đó lên đây cho mình xem tại sao đc không

            Comment

            • kidteam
              Thành viên tích cực
              • Nov 2010
              • 1633

              #7
              chắc chú ấy làm được rồi nên mất tích luôn

              Comment

              Về tác giả

              Collapse

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

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

              Collapse

              Đang tải...