Thông báo

Collapse
No announcement yet.

Cần hỏi về một đoạn code

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

  • Cần hỏi về một đoạn code

    em đang thực hành môn Vi Điều khiển viết code cho 89c51 điều khiển quét led chạy từ 1 đến 1000 dưới đây là đoạn Code em viết , nhưng không hiểu mô phỏng trên proteus không được , không biết có gì sai , mong các cao nhân trợ giúp ;

    ORG 0H
    AJMP MAIN
    MAIN:
    ORG 0030H
    MOV DPTR,#DATALED
    MOV R0,#0h
    MOV R1,#0h
    MOV R2,#0h
    MOV R3,#0h

    LOOP:
    MOV A,R0
    MOVC A,@A+DPTR
    ACALL DELAY1S
    MOV P2,#01h
    MOV P1,A
    ACALL DELAY
    INC R0
    CJNE R0,#10,NEXT
    INC R1
    MOV R0,#0

    NEXT:
    MOV A,R1
    MOVC A,@A+DPTR
    ACALL DELAY
    MOV P2,#02h
    MOV P1,A
    CJNE R1,#10,NEXT2
    INC R2
    MOV R1,#0

    NEXT1:
    MOV A,R2
    MOVC A,@A+DPTR
    MOV P2,#04h
    MOV P1,A
    ACALL DELAY
    CJNE R2,#10,NEXT2
    INC R3
    MOV R2,#0

    NEXT2:
    MOV A,R3
    MOVC A,@A+DPTR
    MOV P2,#08h
    MOV P1,A
    ACALL DELAY
    CJNE R3,#10,LOOP
    LJMP MAIN

    DELAY1S:
    MOV R5,#255
    LOOP2: MOV R6,#200
    DJNZ R6,$
    DJNZ R5,LOOP2
    RET

    DELAY:
    MOV R7,100
    DJNZ R7,$
    RET

    ORG 0300H
    DATALED:
    DB 40h,0F9h,0A4h,0B0h,099h,012h,002h,078h,000h,010h
    END

  • #2
    Nguyên văn bởi ngocrubi Xem bài viết
    em đang thực hành môn Vi Điều khiển viết code cho 89c51 điều khiển quét led chạy từ 1 đến 1000 dưới đây là đoạn Code em viết , nhưng không hiểu mô phỏng trên proteus không được , không biết có gì sai , mong các cao nhân trợ giúp ;

    ORG 0H
    AJMP MAIN
    MAIN:
    ORG 0030H
    MOV DPTR,#DATALED
    MOV R0,#0h
    MOV R1,#0h
    MOV R2,#0h
    MOV R3,#0h

    LOOP:
    MOV A,R0
    MOVC A,@A+DPTR
    ACALL DELAY1S
    MOV P2,#01h
    MOV P1,A
    ACALL DELAY
    INC R0
    CJNE R0,#10,NEXT
    INC R1
    MOV R0,#0

    NEXT:
    MOV A,R1
    MOVC A,@A+DPTR
    ACALL DELAY
    MOV P2,#02h
    MOV P1,A
    CJNE R1,#10,NEXT2
    INC R2
    MOV R1,#0

    NEXT1:
    MOV A,R2
    MOVC A,@A+DPTR
    MOV P2,#04h
    MOV P1,A
    ACALL DELAY
    CJNE R2,#10,NEXT2
    INC R3
    MOV R2,#0

    NEXT2:
    MOV A,R3
    MOVC A,@A+DPTR
    MOV P2,#08h
    MOV P1,A
    ACALL DELAY
    CJNE R3,#10,LOOP
    LJMP MAIN

    DELAY1S:
    MOV R5,#255
    LOOP2: MOV R6,#200
    DJNZ R6,$
    DJNZ R5,LOOP2
    RET

    DELAY:
    MOV R7,100
    DJNZ R7,$
    RET

    ORG 0300H
    DATALED:
    DB 40h,0F9h,0A4h,0B0h,099h,012h,002h,078h,000h,010h
    END
    mã 7 đoạn sai.
    code sau tôi đã sửa lại,muốn đếm nhanh hay chậm sửa lại giá trị R4
    code này đếm đến 9999.(bạn có thể sửa lại các lệnh so sánh r0,r1,r2,r3 để có giá tri đếm
    mong muốn)
    Code:
         ORG 0H
    AJMP MAIN
    MAIN:
    ORG 0030H
    MOV DPTR,#DATALED
    MOV R0,#0h
    MOV R1,#0h
    MOV R2,#0h
    MOV R3,#0h
    MOV R4,#50
    LOOP:
    MOV A,R0
    MOVC A,@A+DPTR
    MOV P2,#08h
    MOV P1,A
    ACALL DELAY
    MOV P1,#0FFH
    MOV A,R1
    MOVC A,@A+DPTR
    MOV P2,#04h
    MOV P1,A
    ACALL DELAY
    MOV P1,#0FFH
    MOV A,R2
    MOVC A,@A+DPTR
    MOV P2,#02h
    MOV P1,A
    ACALL DELAY
    MOV P1,#0FFH
    MOV A,R3
    MOVC A,@A+DPTR
    MOV P2,#01h
    MOV P1,A
    ACALL DELAY
    MOV P1,#0FFH //XOA LED
    DJNZ R4,LOOP
    MOV R4 ,#50//TAO TIMER
    INC R0
    CJNE R0,#10,TIEP
    MOV R0,#00
    INC R1
    TIEP:
    CJNE R1,#10,TIEP_1
    MOV R1,#00
    INC R2
    TIEP_1:
    CJNE R2,#10,TIEP_2
    MOV R2,#00
    INC R3
    TIEP_2:
    CJNE R3,#10,LOOP
    MOV R3,#00
    LJMP MAIN
    
    DELAY1S:
    MOV R5,#255
    LOOP2: MOV R6,#200
    DJNZ R6,$
    DJNZ R5,LOOP2
    RET
    
    DELAY:
    MOV R7,100
    DJNZ R7,$
    RET
    
    ORG 0300H
    DATALED:
    DB 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90
    END
    Attached Files
    Last edited by tdm; 13-04-2011, 14:20.
    |

    Comment

    Về tác giả

    Collapse

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

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

    Collapse

    Đang tải...
    X