Thông báo

Collapse
No announcement yet.

Quét 14 Led Dùng 8051

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

  • Quét 14 Led Dùng 8051

    E xin vào luôn
    E cần quét 14 con led trên 89s52 nhưng 1 prot chỉ có 8 cổng mà e cần tới 14. E nghĩ là cần phải ghép 2 cổng lại mà không biết thế lệnh bà khai báo thế nào
    Mấy a cao thủ giúp e
    Bài tập e như sau
    Có 14 led
    Đầu tiên 12 led sáng lan dần và sáng led 13 rồi tắt hết
    Tiếp theo 12 led cũng sáng lan dần và sáng led thứ 14 rồi tắt hết
    Tiếp chu kỳ 6 lần
    Cuối cùng là 12 led sáng lan dần và giữ sáng led 13 và 14 chớp tắt luân phiên 6 lần xong tắt hết và trở về ban đâu

    Thank mấy a ạ

  • #2
    Có ai giúp dùm e với e làm hoài chỉ có dùng 1 port 8 cổng thôi ak

    Comment


    • #3
      bạn làm được 1 port rồi thì y chang cho port còn lại thôi mà. không thì quất luôn cái biến "tmp" 16bits rồi cắt nó ra 8bits cho từng port. mà phần cứng như bạn nói chắc là mỗi led mỗi Pin hả?

      Comment


      • #4
        Nguyên văn bởi hd03 Xem bài viết
        bạn làm được 1 port rồi thì y chang cho port còn lại thôi mà. không thì quất luôn cái biến "tmp" 16bits rồi cắt nó ra 8bits cho từng port. mà phần cứng như bạn nói chắc là mỗi led mỗi Pin hả?
        Dạ đúng rồi a mỗi led e là mỗi pin của port
        Như xài port 0 thì led 1 là port0.1 tiếp là pỏrt0.2.....
        Cái biến a nói a ko bik lun à a cho e ví dụ được ko a. Thank a nhiều

        Comment


        • #5
          E vẫn chưa tìm ra cách quét mong mấy a giúp cho e gần tới hạn rồi, hjc

          Comment


          • #6
            mình không có trình biên dịch nên giúp bạn theo kiểu mì ăn liền thế này:
            tạo 1 cái mảng chứa data 0x01, 0x03, 0x07, ...
            lần 1: xuất Port0 = 0x01;
            lần 2: xuất Port0 = 0x03;
            lần 3: xuất Port0 = 0x07;
            ...
            lần 8: xuất Port0 = 0xff;
            lần 9: xuất Port1 = 0x01;
            ...
            lần 13: xuất Port0 = 0x1f;

            rồi xuất 0x00 ra 2 port 0 và 1 để xóa hết

            làm tương tự cho tới lần thứ 14
            lần 14: xuất Port1 = 0x3f;
            rồi lại xóa trắng

            lặp lại 6 lần, đếm đủ 6 chu kỳ rồi thì xóa trắng tiếp
            tương tự, nhưng lần thứ 13 thì xuất 0x00 cho Port0 và 0x10 cho Port1
            cho P1_6 =1 delay 0,5s (nhấp nháy)
            cho P1_6 =0 delay 0,5s
            nhấp nháy 6 lần, đủ rồi thì xóa hết cho chạy lại từ đầu

            cách này không hay lắm, bạn nên tạo biến tmp động sẽ hay hơn!!

            Comment


            • #7
              Cach quet theo led:
              - tao array digit[13]: digit[0] cho led 1, digit[1] cho led 2, ......, digit[13] cho led 14.
              - port2 dua data(digit[x]) ra
              - port0(mo cho) cho led 1 den led 8
              - port1(mo cho) cho led 9 den 14
              - lan1 port0=00000001, port1=00000000, port2=digit[0]
              - lan2 port0=00000010, port1=00000000, port2=digit[1]
              ....
              - lan8 port0=10000000, port1=00000000, port2=digit[7]
              - lan9 port0=00000000, port1=00000001, port2=digit[8]
              .....
              - lan14 port0=00000000, port1=00100000, port2=digit[13]
              lap lai


              0912666017

              Comment


              • #8
                bạn viết bằng ngôn ngữ gì vậy ? Bạn đã làm dc chưa ? Bạn đưa code lên chỉ cho dễ !


                Comment

                Về tác giả

                Collapse

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

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

                Collapse

                Đang tải...
                X