Thông báo

Collapse
No announcement yet.

Cần giúp Code ASM.

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

  • Cần giúp Code ASM.

    Chào các anh trai, em tên Tuyền (phái nữ). Có lẽ em là 1 trong rất ít phụ nữ đam mê VĐK.
    Em đang tập viết code .asm cho LED nhấp nháy (31 cổng) và tìm hiểu về con chip AT89C52, các anh giúp em làm cách để 8 cổng đầu tiên chạy độc lập cho viền (D1......D8), những cổng còn lại em tạo hiệu ứng, em nghĩ hoài chưa ra, mong các anh chỉ dẫn, thank you.

    ORG 0000H

    D1 BIT P1.7 ;pin 8
    D2 BIT P1.6 ;pin 7
    D3 BIT P1.5 ;pin 6
    D4 BIT P1.4 ;pin 5
    D5 BIT P1.3 ;pin 4
    D6 BIT P1.2 ;pin 3
    D7 BIT P1.1 ;pin 2
    D8 BIT P1.0 ;pin 1
    D9 BIT P0.0 ;pin 39
    D10 BIT P0.1 ;pin 38
    D11 BIT P0.2 ;pin 37
    D12 BIT P0.3 ;pin 36
    D13 BIT P0.4 ;pin 35
    D14 BIT P0.5 ;pin 34
    D15 BIT P0.6 ;pin 33
    D16 BIT P0.7 ;pin 32
    D17 BIT P2.7 ;pin 28
    D18 BIT P2.6 ;pin 27
    D19 BIT P2.5 ;pin 26
    D20 BIT P2.4 ;pin 25
    D21 BIT P2.3 ;pin 24
    D22 BIT P2.2 ;pin 23
    D23 BIT P2.1 ;pin 22
    D24 BIT P2.0 ;pin 21
    D25 BIT P3.6 ;pin 16
    D26 BIT P3.5 ;pin 15
    D27 BIT P3.4 ;pin 14
    D28 BIT P3.3 ;pin 13
    D29 BIT P3.2 ;pin 12
    D30 BIT P3.1 ;pin 11
    D31 BIT P3.0 ;pin 10

    MAIN: ;---------------------
    CALL QUETTRAI
    CALL DELAY
    CALL QUETPHAI
    CALL DELAY
    JMP MAIN
    ;-----------------------
    DELAY:
    MOV 38H,#100
    MOV 39H,#100
    MOV 40H,#100
    DE: DJNZ 38H,$
    MOV 38H,#100
    DJNZ 39H,DE
    MOV 39H,#4
    DJNZ 40H,DE
    RET

    QUETTRAI:
    SETB D1
    CALL DELAY
    SETB D2
    CALL DELAY
    SETB D3
    CALL DELAY
    SETB D4
    CALL DELAY
    SETB D5
    CALL DELAY
    SETB D6
    CALL DELAY
    SETB D7
    CALL DELAY
    SETB D8
    CALL DELAY
    SETB D9
    CALL DELAY
    SETB D10
    CALL DELAY
    SETB D11
    CALL DELAY
    SETB D12
    CALL DELAY
    SETB D13
    CALL DELAY
    SETB D14
    CALL DELAY
    SETB D15
    CALL DELAY
    SETB D16
    CALL DELAY
    SETB D17
    CALL DELAY
    SETB D18
    CALL DELAY
    SETB D19
    CALL DELAY
    SETB D20
    CALL DELAY
    SETB D21
    CALL DELAY
    SETB D22
    CALL DELAY
    SETB D23
    CALL DELAY
    SETB D24
    CALL DELAY
    SETB D25
    CALL DELAY
    SETB D26
    CALL DELAY
    SETB D27
    CALL DELAY
    SETB D28
    CALL DELAY
    SETB D29
    CALL DELAY
    SETB D30
    CALL DELAY
    SETB D31
    CALL DELAY
    RET

    QUETPHAI:
    SETB D31
    CALL DELAY
    SETB D30
    CALL DELAY
    SETB D29
    CALL DELAY
    SETB D28
    CALL DELAY
    SETB D27
    CALL DELAY
    SETB D26
    CALL DELAY
    SETB D25
    CALL DELAY
    SETB D24
    CALL DELAY
    SETB D23
    CALL DELAY
    SETB D22
    CALL DELAY
    SETB D21
    CALL DELAY
    SETB D20
    CALL DELAY
    SETB D19
    CALL DELAY
    SETB D18
    CALL DELAY
    SETB D17
    CALL DELAY
    SETB D16
    CALL DELAY
    SETB D15
    CALL DELAY
    SETB D14
    CALL DELAY
    SETB D13
    CALL DELAY
    SETB D12
    CALL DELAY
    SETB D11
    CALL DELAY
    SETB D10
    CALL DELAY
    SETB D9
    CALL DELAY
    SETB D8
    CALL DELAY
    SETB D7
    CALL DELAY
    SETB D6
    CALL DELAY
    SETB D5
    CALL DELAY
    SETB D4
    CALL DELAY
    SETB D3
    CALL DELAY
    SETB D2
    CALL DELAY
    SETB D1
    CALL DELAY
    RET
    END

  • #2
    Các anh đâu mất rồi? Giúp cho em code này đi.....

    Comment


    • #3
      Em nên sử dụng vòng lặp để code gọn hơn.
      Để vi điều khiển vừa quét viền vừa điều khiển các cổng khác tạo hiệu ứng em làm như sau:
      Đưa chương trình quét viền vào ngắt của timer, còn chương trình tạo hiệu ứng viết trong chương trình chính.

      Comment


      • #4
        Cụ thể cho em đi, em còn kém lắm.

        Comment


        • #5
          Em nên sử dụng vòng lặp để code gọn hơn.
          Để vi điều khiển vừa quét viền vừa điều khiển các cổng khác tạo hiệu ứng em làm như sau:
          Đưa chương trình quét viền vào ngắt của timer, còn chương trình tạo hiệu ứng viết trong chương trình chính.
          Vậy ta nên để thời gian quyét là bao nhiêu để nhìn không bị đau mắt vậy anh?

          Comment


          • #6
            Em nghĩ thời gian quét là 1s hoặc 2s gì đó.... Em cũng không rành. Anh cho em ý kiến. Cảm ơn anh nhiều

            Comment


            • #7
              Nguyên văn bởi OpenDoor Xem bài viết
              Em nên sử dụng vòng lặp để code gọn hơn.
              Để vi điều khiển vừa quét viền vừa điều khiển các cổng khác tạo hiệu ứng em làm như sau:
              Đưa chương trình quét viền vào ngắt của timer, còn chương trình tạo hiệu ứng viết trong chương trình chính.
              Bác có thể cho em xin 1 đoạn code asm để thực hiện ý tưởng trên được ko?

              Comment


              • #8
                Các anh cao thủ đâu hết rồi !!! Sao chẳng ai giúp em vậy.

                Comment

                Về tác giả

                Collapse

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

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

                Collapse

                Đang tải...
                X