Thông báo

Collapse
No announcement yet.

Giúp em sửa chương trình nhanh chậm này

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

  • Giúp em sửa chương trình nhanh chậm này

    Chương trình yêu cầu phải cho port 0 chạy trước,rồi nhấn 1 trong 2 nút:thì nó sẽ chạy nhanh hơn hoặc chậm hơn..Nhưng em hok biết chèn cái cho port 0 chạy trước ở đâu trong đoạn chương trình này,mà chỉ làm đc 2 nút nhanh chậm thội..Ai rảnh sửa giúp em

    ORG 0
    START:
    MOV P3,#0
    SETB P3.6
    SETB P3.7
    MAIN:
    JNB P3.6,CV1
    JNB P3.7,CV2
    JMP MAIN
    CV1:

    MOV DPTR,#MALED
    MOV R7,#0
    LOOP:
    MOV A,R7
    MOVC A,@A+DPTR
    MOV P0,A
    CALL DELAY
    INC R7
    CJNE R7,#8,LOOP
    JMP MAIN
    MALED:
    DB 0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,080H,0H
    CV2:

    MOV DPTR,#MALED1
    MOV R5,#0
    LOOP1:
    MOV A,R5
    MOVC A,@A+DPTR
    MOV P0,A
    CALL DELAY1
    INC R5
    CJNE R5,#8,LOOP1
    JMP MAIN
    MALED1:
    DB 0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,080H,0H
    DELAY:
    MOV TMOD,#00000001B
    MOV R4,#20
    LAP1:
    MOV TH0,#HIGH(-15000)
    MOV TL0,#LOW(-15000)
    SETB TR0
    JNB TF0,$
    CLR TF0
    CLR TR0
    DJNZ R4,LAP

    DELAY1:
    MOV TMOD,#00000001B
    MOV R3,#10
    LAP:
    MOV TH0,#HIGH(-15000)
    MOV TL0,#LOW(-15000)
    SETB TR0
    JNB TF0,$
    CLR TF0
    CLR TR0
    DJNZ R3,LAP1

    RET
    END

    Với cho em hỏi 1 cái nữa là:nếu điều khiển 8 chân của 1 port,rồi kèm theo 4 chân port nữa...có cách nào tắt led của 12 chân đó ko..rồi 4 chân còn lại chạy tiếp tục với 1 port khác ko???
    Xin cảm ơn ạ

  • #2
    Bạn thử sửa lại CT như sau xem sao.

    Code:
    ORG 0h
    START:
    	MOV P3,#0
    	SETB P3.6
    	SETB P3.7
    MAIN:
    	MOV DPTR, #MALED
    	MOV R7, #0
    LOOP:
    	MOV A, R7
    	MOVC A,@A+DPTR
    	MOV P0, A
    	JNB P3.6, CV1
    TIEP1:	JNB P3.7, CV2
    TIEP2:	INC R7
    	CJNE R7, #8,LOOP
    	JMP MAIN
    ;============
    CV1: 
    	CALL DELAY
    	SJMP TIEP1
    CV2:	CALL DELAY1
    	SJMP TIEP2
    ;=========================
    DELAY:
    	MOV TMOD,#00000001B
    	MOV R4,#20
    LAP1:
    	MOV TH0,#HIGH(-15000)
    	MOV TL0,#LOW(-15000)
    	SETB TR0
    	JNB TF0,$
    	CLR TF0
    	CLR TR0
    	DJNZ R4,LAP
    	RET
    ;=========================
    DELAY1:
    	MOV TMOD,#00000001B
    	MOV R3,#10
    LAP:
    	MOV TH0,#HIGH(-15000)
    	MOV TL0,#LOW(-15000)
    	SETB TR0
    	JNB TF0,$
    	CLR TF0
    	CLR TR0
    	DJNZ R3,LAP1
    RET
    ;============================================
    MALED:
    	DB 0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,080H,0H
    END
    Mình thấy cái Nhãn MALED1 và MALED của bạn giống nhau nên bỏ đi, dùng 1 cái thôi.
    Nếu cần bạn còn phải cho thêm vào code trên phần chống giữ phím nữa thì chương trình sẽ hoạt động chuẩn hơn.
    Mình cũng là người mới tìm hiểu về lập trình và sửa lại chương trình trên theo như mình nghĩ, có thể chưa chắc nó đã hoạt động đúng như yêu cầu. Nhưng hy vọng nó có thể giúp ích được cho bạn.
    Thân !

    Comment

    Về tác giả

    Collapse

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

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

    Collapse

    Đang tải...
    X