Thông báo

Collapse
No announcement yet.

Lập trình ASM cần được giúp đỡ

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

  • Lập trình ASM cần được giúp đỡ

    Chào các bạn, mình đang tự học lập trình ASM cho 8051, nên mong được giúp đỡ, bài toán của mình như sau:
    khi p1.5=1 thì led sáng dần từ p1.0 đến p1.4 và từ p2.0 đến p2.4 và chân p2.5 nhấp nháy
    khi p1.6=1 thì led sáng dần từ p1.0 đến p1.4 và từ p2.0 đến p2.4 (với tốc độ khác trên) và chân p2.5, p2.6 nhấp nháy
    khi p1.7=1 thì led sáng dần từ p1.0 đến p1.4 và từ p2.0 đến p2.4 (với tốc độ khác trên) và chân p2.5, p2.6 nhấp nháy
    mình gửi kèm file lập trình và mô phỏng proteus 8.1 nhờ các bạn giúp đỡ
    Click image for larger version

Name:	untitled.JPG
Views:	1
Size:	124.6 KB
ID:	1421672


    ORG 0000
    MAIN:
    KEY1:
    JNB P1.5,$
    LCALL CT1
    LCALL CT11
    CALL NHAY1
    JMP KEY1

    KEY2:
    JNB P1.6,$
    LCALL CT1
    LCALL CT2
    JMP KEY2

    KEY3:
    JNB P1.7,$
    LCALL CT1
    LCALL CT3
    JMP KEY3

    CT1: ;CHAY BINH THUONG
    CLR P1.6
    SETB P1.0
    LCALL DELAY
    CLR P1.0
    LCALL DELAY
    SETB P1.1
    LCALL DELAY
    CLR P1.1
    LCALL DELAY
    SETB P1.2
    LCALL DELAY
    CLR P1.2
    LCALL DELAY
    SETB P1.3
    LCALL DELAY
    CLR P1.3
    LCALL DELAY
    SETB P1.4
    LCALL DELAY
    CLR P1.4
    LCALL DELAY
    SJMP CT1

    NHAY1:
    SETB P2.5
    LCALL DELAY4
    CLR P2.5
    LCALL DELAY4
    JMP NHAY1

    NHAY2:
    SETB P2.6
    LCALL DELAY4
    CLR P2.6
    LCALL DELAY4
    JMP NHAY2

    CT11: ;CHAY BINH THUONG
    CLR P1.5
    SETB P2.0
    LCALL DELAY
    CLR P2.0
    LCALL DELAY
    SETB P2.1
    LCALL DELAY
    CLR P2.1
    LCALL DELAY
    SETB P2.2
    LCALL DELAY
    CLR P2.2
    LCALL DELAY
    SETB P2.3
    LCALL DELAY
    CLR P2.3
    LCALL DELAY
    SETB P2.4
    LCALL DELAY
    CLR P2.4
    LCALL DELAY
    SJMP CT11

    CT2: ;CHAY NHANH NHAT
    CLR P1.5
    SETB P2.0
    LCALL DELAY1
    CLR P2.0
    LCALL DELAY1
    SETB P2.1
    LCALL DELAY1
    CLR P2.1
    LCALL DELAY1
    SETB P2.2
    LCALL DELAY1
    CLR P2.2
    LCALL DELAY1
    SETB P2.3
    LCALL DELAY1
    CLR P2.3
    LCALL DELAY1
    SETB P2.4
    LCALL DELAY1
    CLR P2.4
    LCALL DELAY1
    SJMP CT2

    CT3: ;CHAY CHAM NHAT
    CLR P1.5
    SETB P2.0
    LCALL DELAY3
    CLR P2.0
    LCALL DELAY3
    SETB P2.1
    LCALL DELAY3
    CLR P2.1
    LCALL DELAY3
    SETB P2.2
    LCALL DELAY3
    CLR P2.2
    LCALL DELAY3
    SETB P2.3
    LCALL DELAY3
    CLR P2.3
    LCALL DELAY3
    SETB P2.4
    LCALL DELAY3
    CLR P2.4
    LCALL DELAY3
    SJMP CT3

    DELAY: ;BINH THUONG
    MOV R2,#90
    HERE1:MOV R3,#190
    HERE2JNZ R3,HERE2
    DJNZ R2,HERE1
    RET
    DELAY1: ;NHANH NHAT
    MOV R4,#80
    HERE11:MOV R5,#150
    HERE22JNZ R5,HERE22
    DJNZ R4,HERE11
    RET
    DELAY3: ;CHAM NHAT
    MOV R6,#255
    HERE3:MOV R7,#255
    HERE4: DJNZ R7,HERE4
    DJNZ R6,HERE3
    RET

    DELAY4:
    push 7
    push 6
    push 5
    push 4
    mov r4,#1
    mov r5,#20
    mov r6,#200
    mov r7,#249
    djnz r7,$
    djnz r6,$-4
    djnz r5,$-8
    djnz r4,$-12
    pop 4
    pop 5
    pop 6
    pop 7
    RET
    END

  • #2
    Chương trình này của bạn nếu nó có chạy thì chỉ chạy dc Key1 mà thôi, ko bò qua Key2 dc nhé.
    Bạn coi lại đi.
    Không biết ngày mai sẽ ra sao?
    Mà có ra sao cũng chẳng sao.

    Comment


    • #3
      bạn nên sửa lại đoạn về phím nhấn:
      mình vd:

      ORG 0000
      MAIN:
      JNB P1.5,$
      CALL CT1
      JNB P1.6,$
      CALL CT2
      JNB P1.7,$
      CALL CT3
      JMP main.

      CT1,CT2,CT3 bạn có thể tự làm.
      PCCC

      Comment

      Về tác giả

      Collapse

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

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

      Collapse

      Đang tải...
      X