Thông báo

Collapse
No announcement yet.

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

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

  • 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.

  • #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


    • #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


      • #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


        • #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


          • #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


            • #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...
              X