Thông báo

Collapse
No announcement yet.

Giúp code gọi chương trình con bằng nút ấn MODE

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

  • #31
    Bạn thử code này xem có đúng với yêu cầu không !

    Ngồi hì hục cả tối mới viết được đoạn code này, bác tải về chạy thử xem !

    Code:
    MODE	EQU	P1.0
    START	EQU	P1.1
    STOP	EQU	P1.2
    ORG 00H
    ;****************************
    BEGIN:
    	acall MAIN
    	sjmp BEGIN
    ;****************************	
    MAIN:
    	acall KT_START
    	sjmp	MODE0
    	ret
    KT_START:
    	mov a, #0h
    	mov p2,	#0h
    	jb	START, $			;Cho den khi phim START duoc an
    	jnb	START, $			;Lenh nay de chong giu phim START
    	jb	STOP,	BACK		;STOP khong dc an thi thuc hien tiep	
    	jnb	STOP,	$			;Lenh nay de chong giu phim STOP
    	jb	STOP,	KT_START	;STOP duoc an nen quay lai tu dau
    BACK: ret
    ;--------- Chuong trinh con DELAY va KT phim MODE, STOP ---------------
    ; Neu can thoi gian tre khac thi ban thay doi cac gia tri nap vao thanh gi.
    DELAY:
    	push	5
    	push	6
    	push	7
    	mov	r7, #124
    L2:	mov r6,	#150
    L1:	mov r5, #2
    KT_PHIM:
    	jb STOP, SKIP
    	jnb STOP,	$
    	acall MAIN
    SKIP:
    	jb	MODE,	LOOP
    	jnb	MODE,	$
    	inc a
    	cjne a, #0h, NEXT
    	SJMP MODE0
    NEXT:	cjne a, #1h, NEXT_1
    		SJMP MODE1
    NEXT_1:	cjne a, #2h, NEXT_2
    		SJMP MODE2
    NEXT_2:	cjne a, #3h, NEXT_3
    		SJMP MODE3
    NEXT_3: mov a, #0h
    		sjmp MODE0
    LOOP:
    	djnz r5,	$
    	djnz r6,	L1
    	djnz r7,	L2
    	pop	7
    	pop	6
    	pop	5
    	ret
    ;............................
    ;------------ CAC CHUONG TRINH CON -------------
    MODE0:
    	MOV 	P2,#00001111B
    	CALL 	DELAY
    	MOV 	P2,#11110000B
    	CALL 	DELAY
    	SJMP	MODE0
    ;------------------------
    MODE1:
    	MOV 	P2,#00000000B
    	CALL 	DELAY
    	MOV 	P2,#00000001B	
    	CALL 	DELAY
    	MOV 	P2,#00000011B
    	CALL 	DELAY
    	MOV 	P2,#00000111B
    	CALL 	DELAY
    	MOV 	P2,#00001111B
    	CALL 	DELAY
    	MOV 	P2,#00011111B
    	CALL 	DELAY
    	MOV 	P2,#00111111B
    	CALL 	DELAY
    	MOV 	P2,#01111111B
    	CALL 	DELAY
    	MOV 	P2,#11111111B
    	CALL 	DELAY
    	SJMP	MODE1
    ;------------------------
    MODE2:
    	MOV P2,#00000000B
    	CALL DELAY
    	MOV P2,#10000000B
    	CALL DELAY
    	MOV P2,#11000000B
    	CALL DELAY
    	MOV P2,#11100000B
    	CALL DELAY
    	MOV P2,#11110000B
    	CALL DELAY
    	MOV P2,#11111000B
    	CALL DELAY
    	MOV P2,#11111100B
    	CALL DELAY
    	MOV P2,#11111110B
    	CALL DELAY
    	MOV P2,#11111111B
    	CALL DELAY
    	SJMP	MODE2
    ;------------------------
    MODE3:
    	MOV P2,#00000000B
    	CALL DELAY
    	MOV P2,#11000000B
    	CALL DELAY
    	MOV P2,#11110000B
    	CALL DELAY
    	MOV P2,#11111100B
    	CALL DELAY
    	MOV P2,#11111111B
    	CALL DELAY
    	SJMP	MODE3
    ;=====================================	
    END
    Mình đã mô phỏng code trên thành công nhưng không biết nó có như yêu cầu của bác hay không. Có gì cần trao đổi về code trên bác cứ hỏi nhé !

    Comment


    • #32
      Nguyên văn bởi Ck33spkt Xem bài viết
      Ngồi hì hục cả tối mới viết được đoạn code này, bác tải về chạy thử xem !



      Mình đã mô phỏng code trên thành công nhưng không biết nó có như yêu cầu của bác hay không. Có gì cần trao đổi về code trên bác cứ hỏi nhé !
      Tkhs bác nhiều, đúng như yêu cầu của em rồi. Việv bây giờ là ngồi gõ thêm chục cái mode nữa thôi
      Last edited by mrmiu; 29-04-2012, 11:05.

      Comment


      • #33
        em thêm mode vào sao nó báo lỗi nhỉ: "address out of range" chỗ khu vực NEXT tại SJMP MODE4 & 5,6,7,8

        Code:
        START	EQU	P1.0
        MODE	EQU	P1.1
        STOP	EQU	P1.2
        ORG 00H
        ;****************************
        BEGIN:
        	ACALL 	MAIN
        	SJMP	BEGIN
        ;****************************	
        MAIN:
        	ACALL	KT_START
        	SJMP	MODE1
        	RET
        KT_START:
        	MOV	a, #0h
        	MOV	P2,#0h
        	JB	START,$			;Cho den khi phim START duoc an
        	JNB	START,$			;Lenh nay de chong giu phim START
        	JB	STOP,BACK		;STOP khong dc an thi thuc hien tiep	
        	JNB	STOP,$			;Lenh nay de chong giu phim STOP
        	JB	STOP,KT_START		;STOP duoc an nen quay lai tu dau
        BACK: RET
        
        ;--------- Chuong trinh con DELAY va KT phim MODE, STOP ---------------
        
        DELAY:
        	PUSH	5
        	PUSH	6
        	PUSH	7
        	MOV	R7,#200
        L2:	MOV 	R6,#125
        L1:	MOV 	R5,#2
        
        KT_PHIM:
        	JB	STOP,SKIP
        	JNB	STOP,$
        	ACALL	MAIN
        SKIP:
        	JB	MODE,LOOP
        	JNB	MODE,$
        	INC	a
        	CJNE	a, #0h, NEXT
        	JMP 	MODE1
        NEXT:	CJNE 	a, #1h, NEXT_1
        	SJMP 	MODE2
        NEXT_1:	CJNE 	a, #2h, NEXT_2
        	SJMP	MODE3
        NEXT_2:	CJNE	a, #3h, NEXT_3
        	SJMP	MODE4
        NEXT_3:	CJNE	a, #4h,	NEXT_4
        	SJMP	MODE5
        NEXT_4:	CJNE	a, #5h,	NEXT_5
        	SJMP	MODE6
        NEXT_5:	CJNE	a, #6h, NEXT_6
        	SJMP	MODE7
        NEXT_6:	CJNE	a, #7h, NEXT_7
        	SJMP	MODE8
        NEXT_7: MOV	a, #0h
        	SJMP	MODE1
        LOOP:
        	DJNZ	r5,$
        	DJNZ 	r6,L1
        	DJNZ	r7,L2
        	POP	7
        	POP	6
        	POP	5
        	RET
        ;............................
        ;------------ CAC CHUONG TRINH CON -------------
        MODE1:
        	MOV 	P2,#00001111B
        	CALL 	DELAY
        	MOV 	P2,#11110000B
        	CALL 	DELAY
        	SJMP	MODE1
        ;------------------------
        MODE2:
        	MOV 	P2,#00000000B
        	CALL 	DELAY
        	MOV 	P2,#00000001B	
        	CALL 	DELAY
        	MOV 	P2,#00000011B
        	CALL 	DELAY
        	MOV 	P2,#00000111B
        	CALL 	DELAY
        	MOV 	P2,#00001111B
        	CALL 	DELAY
        	MOV 	P2,#00011111B
        	CALL 	DELAY
        	MOV 	P2,#00111111B
        	CALL 	DELAY
        	MOV 	P2,#01111111B
        	CALL 	DELAY
        	MOV 	P2,#11111111B
        	CALL 	DELAY
        	SJMP	MODE2
        ;------------------------
        MODE3:
        	MOV 	P2,#00000000B
        	CALL 	DELAY
        	MOV 	P2,#10000000B
        	CALL 	DELAY
        	MOV 	P2,#11000000B
        	CALL 	DELAY
        	MOV	P2,#11100000B
        	CALL 	DELAY
        	MOV 	P2,#11110000B
        	CALL 	DELAY
        	MOV 	P2,#11111000B
        	CALL 	DELAY
        	MOV 	P2,#11111100B
        	CALL 	DELAY
        	MOV 	P2,#11111110B
        	CALL 	DELAY
        	MOV 	P2,#11111111B
        	CALL 	DELAY
        	SJMP	MODE3
        ;------------------------
        MODE4:
        	MOV	P2,#00000000B
        	CALL	DELAY
        	MOV	P2,#00000011B
        	CALL	DELAY
        	MOV	P2,#00001111B
        	CALL	DELAY
        	MOV	P2,#00111111B
        	CALL	DELAY
        	MOV	P2,#11111111B
        	CALL	DELAY
        	SJMP	MODE4
        ;------------------------
        MODE5:
        	MOV 	P2,#00000000B
        	CALL 	DELAY
        	MOV 	P2,#11000000B
        	CALL 	DELAY
        	MOV 	P2,#11110000B
        	CALL 	DELAY
        	MOV 	P2,#11111100B
        	CALL 	DELAY
        	MOV 	P2,#11111111B
        	CALL 	DELAY
        	SJMP	MODE5
        ;------------------------
        MODE6:
        	MOV	P2,#00000000B
        	CALL	DELAY
        	MOV	P2,#10000001B
        	CALL	DELAY
        	MOV	P2,#11000011B
        	CALL	DELAY
        	MOV	P2,#11100111B
        	CALL	DELAY
        	MOV	P2,#11111111B
        	CALL	DELAY
        	SJMP	MODE6
        ;------------------------
        MODE7:
        	MOV	P2,#00000000B
        	CALL	DELAY
        	MOV	P2,#00011000B
        	CALL	DELAY
        	MOV	P2,#00111100B
        	CALL	DELAY
        	MOV	P2,#01111110B
        	CALL	DELAY
        	MOV	P2,#11111111B
        	CALL	DELAY
        	SJMP	MODE7
        ;------------------------
        MODE8:
        	MOV	P2,#00000000B
        	CALL	DELAY
        	MOV	P2,#00000001B
        	CALL	DELAY
        	MOV	P2,#00000010B
        	CALL	DELAY
        	MOV	P2,#00000101B
        	CALL	DELAY
        	MOV	P2,#00001011B
        	CALL	DELAY
        	MOV	P2,#00010111B
        	CALL	DELAY
        	MOV	P2,#00101111B
        	CALL	DELAY
        	MOV	P2,#01011111B
        	CALL	DELAY
        	MOV	P2,#10111111B
        	CALL	DELAY
        	MOV	P2,#01111111B
        	CALL	DELAY
        	MOV	P2,#11111111B
        	CALL	DELAY
        	SJMP	MODE8
        ;=====================================	
        END

        Comment


        • #34
          Nguyên văn bởi mrmiu Xem bài viết
          em thêm mode vào sao nó báo lỗi nhỉ: "address out of range" chỗ khu vực NEXT tại SJMP MODE4 & 5,6,7,8

          Code:
          START	EQU	P1.0
          MODE	EQU	P1.1
          STOP	EQU	P1.2
          ORG 00H
          ;****************************
          BEGIN:
          	ACALL 	MAIN
          	SJMP	BEGIN
          ;****************************	
          MAIN:
          	ACALL	KT_START
          	SJMP	MODE1
          	RET
          KT_START:
          	MOV	a, #0h
          	MOV	P2,#0h
          	JB	START,$			;Cho den khi phim START duoc an
          	JNB	START,$			;Lenh nay de chong giu phim START
          	JB	STOP,BACK		;STOP khong dc an thi thuc hien tiep	
          	JNB	STOP,$			;Lenh nay de chong giu phim STOP
          	JB	STOP,KT_START		;STOP duoc an nen quay lai tu dau
          BACK: RET
          
          ;--------- Chuong trinh con DELAY va KT phim MODE, STOP ---------------
          
          DELAY:
          	PUSH	5
          	PUSH	6
          	PUSH	7
          	MOV	R7,#200
          L2:	MOV 	R6,#125
          L1:	MOV 	R5,#2
          
          KT_PHIM:
          	JB	STOP,SKIP
          	JNB	STOP,$
          	ACALL	MAIN
          SKIP:
          	JB	MODE,LOOP
          	JNB	MODE,$
          	INC	a
          	CJNE	a, #0h, NEXT
          	JMP 	MODE1
          NEXT:	CJNE 	a, #1h, NEXT_1
          	SJMP 	MODE2
          NEXT_1:	CJNE 	a, #2h, NEXT_2
          	SJMP	MODE3
          NEXT_2:	CJNE	a, #3h, NEXT_3
          	SJMP	MODE4
          NEXT_3:	CJNE	a, #4h,	NEXT_4
          	SJMP	MODE5
          NEXT_4:	CJNE	a, #5h,	NEXT_5
          	SJMP	MODE6
          NEXT_5:	CJNE	a, #6h, NEXT_6
          	SJMP	MODE7
          NEXT_6:	CJNE	a, #7h, NEXT_7
          	SJMP	MODE8
          NEXT_7: MOV	a, #0h
          	SJMP	MODE1
          LOOP:
          	DJNZ	r5,$
          	DJNZ 	r6,L1
          	DJNZ	r7,L2
          	POP	7
          	POP	6
          	POP	5
          	RET
          ;............................
          ;------------ CAC CHUONG TRINH CON -------------
          MODE1:
          	MOV 	P2,#00001111B
          	CALL 	DELAY
          	MOV 	P2,#11110000B
          	CALL 	DELAY
          	SJMP	MODE1
          ;------------------------
          MODE2:
          	MOV 	P2,#00000000B
          	CALL 	DELAY
          	MOV 	P2,#00000001B	
          	CALL 	DELAY
          	MOV 	P2,#00000011B
          	CALL 	DELAY
          	MOV 	P2,#00000111B
          	CALL 	DELAY
          	MOV 	P2,#00001111B
          	CALL 	DELAY
          	MOV 	P2,#00011111B
          	CALL 	DELAY
          	MOV 	P2,#00111111B
          	CALL 	DELAY
          	MOV 	P2,#01111111B
          	CALL 	DELAY
          	MOV 	P2,#11111111B
          	CALL 	DELAY
          	SJMP	MODE2
          ;------------------------
          MODE3:
          	MOV 	P2,#00000000B
          	CALL 	DELAY
          	MOV 	P2,#10000000B
          	CALL 	DELAY
          	MOV 	P2,#11000000B
          	CALL 	DELAY
          	MOV	P2,#11100000B
          	CALL 	DELAY
          	MOV 	P2,#11110000B
          	CALL 	DELAY
          	MOV 	P2,#11111000B
          	CALL 	DELAY
          	MOV 	P2,#11111100B
          	CALL 	DELAY
          	MOV 	P2,#11111110B
          	CALL 	DELAY
          	MOV 	P2,#11111111B
          	CALL 	DELAY
          	SJMP	MODE3
          ;------------------------
          MODE4:
          	MOV	P2,#00000000B
          	CALL	DELAY
          	MOV	P2,#00000011B
          	CALL	DELAY
          	MOV	P2,#00001111B
          	CALL	DELAY
          	MOV	P2,#00111111B
          	CALL	DELAY
          	MOV	P2,#11111111B
          	CALL	DELAY
          	SJMP	MODE4
          ;------------------------
          MODE5:
          	MOV 	P2,#00000000B
          	CALL 	DELAY
          	MOV 	P2,#11000000B
          	CALL 	DELAY
          	MOV 	P2,#11110000B
          	CALL 	DELAY
          	MOV 	P2,#11111100B
          	CALL 	DELAY
          	MOV 	P2,#11111111B
          	CALL 	DELAY
          	SJMP	MODE5
          ;------------------------
          MODE6:
          	MOV	P2,#00000000B
          	CALL	DELAY
          	MOV	P2,#10000001B
          	CALL	DELAY
          	MOV	P2,#11000011B
          	CALL	DELAY
          	MOV	P2,#11100111B
          	CALL	DELAY
          	MOV	P2,#11111111B
          	CALL	DELAY
          	SJMP	MODE6
          ;------------------------
          MODE7:
          	MOV	P2,#00000000B
          	CALL	DELAY
          	MOV	P2,#00011000B
          	CALL	DELAY
          	MOV	P2,#00111100B
          	CALL	DELAY
          	MOV	P2,#01111110B
          	CALL	DELAY
          	MOV	P2,#11111111B
          	CALL	DELAY
          	SJMP	MODE7
          ;------------------------
          MODE8:
          	MOV	P2,#00000000B
          	CALL	DELAY
          	MOV	P2,#00000001B
          	CALL	DELAY
          	MOV	P2,#00000010B
          	CALL	DELAY
          	MOV	P2,#00000101B
          	CALL	DELAY
          	MOV	P2,#00001011B
          	CALL	DELAY
          	MOV	P2,#00010111B
          	CALL	DELAY
          	MOV	P2,#00101111B
          	CALL	DELAY
          	MOV	P2,#01011111B
          	CALL	DELAY
          	MOV	P2,#10111111B
          	CALL	DELAY
          	MOV	P2,#01111111B
          	CALL	DELAY
          	MOV	P2,#11111111B
          	CALL	DELAY
          	SJMP	MODE8
          ;=====================================	
          END
          ngoài tầm với của lệnh SJMP, dùng lệnh LJMP thế vào

          Comment


          • #35
            Nguyên văn bởi chung1608 Xem bài viết
            ngoài tầm với của lệnh SJMP, dùng lệnh LJMP thế vào
            OK rồi ạ. vậy mà ko nghĩ ra

            Comment


            • #36
              tại sao em thêm đến MODE10 thì ok, MODE11 thì ko thấy đâu cả

              Comment


              • #37
                Nguyên văn bởi mrmiu Xem bài viết
                tại sao em thêm đến MODE10 thì ok, MODE11 thì ko thấy đâu cả
                Bạn đưa code lên đây xem nào !

                Comment


                • #38
                  Code:
                  START	EQU	P1.0
                  MODE	EQU	P1.1
                  STOP	EQU	P1.2
                  ORG 00H
                  ;****************************
                  BEGIN:
                  	ACALL 	MAIN
                  	LJMP	BEGIN
                  ;****************************	
                  MAIN:
                  	ACALL	KT_START
                  	LJMP	MODE1
                  	RET
                  KT_START:
                  	MOV	a, #0h
                  	MOV	P2,#0h
                  	JB	START,$			;Cho den khi phim START duoc an
                  	JNB	START,$			;Lenh nay de chong giu phim START
                  	JB	STOP,BACK		;STOP khong dc an thi thuc hien tiep	
                  	JNB	STOP,$			;Lenh nay de chong giu phim STOP
                  	JB	STOP,KT_START		;STOP duoc an nen quay lai tu dau
                  BACK: RET
                  
                  ;--------- Chuong trinh con DELAY va KT phim MODE, STOP ---------------
                  
                  DELAY:
                  	PUSH	5
                  	PUSH	6
                  	PUSH	7
                  	MOV	R7,#200
                  L2:	MOV 	R6,#200
                  L1:	MOV 	R5,#2
                  
                  KT_PHIM:
                  	JB	STOP,SKIP
                  	JNB	STOP,$
                  	ACALL	MAIN
                  SKIP:
                  	JB	MODE,LOOP
                  	JNB	MODE,$
                  	INC	a
                  	CJNE	a, #0h, NEXT
                  	JMP 	MODE1
                  NEXT:	CJNE 	a, #1h, NEXT_1
                  	LJMP 	MODE2
                  NEXT_1:	CJNE 	a, #2h, NEXT_2
                  	LJMP	MODE3
                  NEXT_2:	CJNE	a, #3h, NEXT_3
                  	LJMP	MODE4
                  NEXT_3:	CJNE	a, #4h,	NEXT_4
                  	LJMP	MODE5
                  NEXT_4:	CJNE	a, #5h,	NEXT_5
                  	LJMP	MODE6
                  NEXT_5:	CJNE	a, #6h, NEXT_6
                  	LJMP	MODE7
                  NEXT_6:	CJNE	a, #7h, NEXT_7
                  	LJMP	MODE8
                  NEXT_7: CJNE	a, #8h, NEXT_8
                  	LJMP	MODE9
                  NEXT_8:	CJNE	a, #9h, NEXT_9
                  	LJMP	MODE10
                  NEXT_9:	CJNE	a, #10h, NEXT_10
                  	LJMP	MODE11
                  NEXT_10:
                  	CJNE	a, #11h, NEXT_11
                  	LJMP	MODE12
                  NEXT_11:
                  	MOV	a, #0h
                  	LJMP	MODE1
                  LOOP:
                  	DJNZ	r5,$
                  	DJNZ 	r6,L1
                  	DJNZ	r7,L2
                  	POP	7
                  	POP	6
                  	POP	5
                  	RET
                  ;............................
                  ;------------ CAC CHUONG TRINH CON -------------
                  MODE1:
                  	MOV 	P2,#00001111B
                  	CALL 	DELAY
                  	MOV 	P2,#11110000B
                  	CALL 	DELAY
                  	LJMP	MODE1
                  ;------------------------
                  MODE2:
                  	MOV 	P2,#00000000B
                  	CALL 	DELAY
                  	MOV 	P2,#00000001B	
                  	CALL 	DELAY
                  	MOV 	P2,#00000011B
                  	CALL 	DELAY
                  	MOV 	P2,#00000111B
                  	CALL 	DELAY
                  	MOV 	P2,#00001111B
                  	CALL 	DELAY
                  	MOV 	P2,#00011111B
                  	CALL 	DELAY
                  	MOV 	P2,#00111111B
                  	CALL 	DELAY
                  	MOV 	P2,#01111111B
                  	CALL 	DELAY
                  	MOV 	P2,#11111111B
                  	CALL 	DELAY
                  	LJMP	MODE2
                  ;------------------------
                  MODE3:
                  	MOV 	P2,#00000000B
                  	CALL 	DELAY
                  	MOV 	P2,#10000000B
                  	CALL 	DELAY
                  	MOV 	P2,#11000000B
                  	CALL 	DELAY
                  	MOV	P2,#11100000B
                  	CALL 	DELAY
                  	MOV 	P2,#11110000B
                  	CALL 	DELAY
                  	MOV 	P2,#11111000B
                  	CALL 	DELAY
                  	MOV 	P2,#11111100B
                  	CALL 	DELAY
                  	MOV 	P2,#11111110B
                  	CALL 	DELAY
                  	MOV 	P2,#11111111B
                  	CALL 	DELAY
                  	LJMP	MODE3
                  ;------------------------
                  MODE4:
                  	MOV	P2,#00000000B
                  	CALL	DELAY
                  	MOV	P2,#00000011B
                  	CALL	DELAY
                  	MOV	P2,#00001111B
                  	CALL	DELAY
                  	MOV	P2,#00111111B
                  	CALL	DELAY
                  	MOV	P2,#11111111B
                  	CALL	DELAY
                  	LJMP	MODE4
                  ;------------------------
                  MODE5:
                  	MOV 	P2,#00000000B
                  	CALL 	DELAY
                  	MOV 	P2,#11000000B
                  	CALL 	DELAY
                  	MOV 	P2,#11110000B
                  	CALL 	DELAY
                  	MOV 	P2,#11111100B
                  	CALL 	DELAY
                  	MOV 	P2,#11111111B
                  	CALL 	DELAY
                  	LJMP	MODE5
                  ;------------------------
                  MODE6:
                  	MOV	P2,#00000000B
                  	CALL	DELAY
                  	MOV	P2,#10000001B
                  	CALL	DELAY
                  	MOV	P2,#11000011B
                  	CALL	DELAY
                  	MOV	P2,#11100111B
                  	CALL	DELAY
                  	MOV	P2,#11111111B
                  	CALL	DELAY
                  	LJMP	MODE6
                  ;------------------------
                  MODE7:
                  	MOV	P2,#00000000B
                  	CALL	DELAY
                  	MOV	P2,#00011000B
                  	CALL	DELAY
                  	MOV	P2,#00111100B
                  	CALL	DELAY
                  	MOV	P2,#01111110B
                  	CALL	DELAY
                  	MOV	P2,#11111111B
                  	CALL	DELAY
                  	LJMP	MODE7
                  ;------------------------
                  MODE8:
                  	MOV	P2,#00000000B
                  	CALL	DELAY
                  	MOV	P2,#00000001B
                  	CALL	DELAY
                  	MOV	P2,#00000010B
                  	CALL	DELAY
                  	MOV	P2,#00000101B
                  	CALL	DELAY
                  	MOV	P2,#00001011B
                  	CALL	DELAY
                  	MOV	P2,#00010111B
                  	CALL	DELAY
                  	MOV	P2,#00101111B
                  	CALL	DELAY
                  	MOV	P2,#01011111B
                  	CALL	DELAY
                  	MOV	P2,#10111111B
                  	CALL	DELAY
                  	MOV	P2,#01111111B
                  	CALL	DELAY
                  	MOV	P2,#11111111B
                  	CALL	DELAY
                  	LJMP	MODE8
                  ;------------------------
                  MODE9:
                  	MOV	P2,#00000000B
                  	CALL	DELAY
                  	MOV	P2,#10000000B
                  	CALL	DELAY
                  	MOV	P2,#01000000B
                  	CALL	DELAY
                  	MOV	P2,#10100000B
                  	CALL	DELAY
                  	MOV	P2,#11010000B
                  	CALL	DELAY
                  	MOV	P2,#11101000B
                  	CALL	DELAY
                  	MOV	P2,#11110100B
                  	CALL	DELAY
                  	MOV	P2,#11111010B
                  	CALL	DELAY
                  	MOV	P2,#11111101B
                  	CALL	DELAY
                  	MOV	P2,#11111110B
                  	CALL	DELAY
                  	MOV	P2,#11111111B
                  	CALL	DELAY
                  	LJMP	MODE9
                  ;------------------------
                  MODE10:
                  	MOV	P2,#00000000B
                  	CALL	DELAY
                  	MOV	P2,#10000000B
                  	CALL	DELAY
                  	MOV	P2,#10000001B
                  	CALL	DELAY
                  	MOV	P2,#11000001B
                  	CALL	DELAY
                  	MOV	P2,#11000011B
                  	CALL	DELAY
                  	MOV	P2,#11100011B
                  	CALL	DELAY
                  	MOV	P2,#11100111B
                  	CALL	DELAY
                  	MOV	P2,#11110111B
                  	CALL	DELAY
                  	MOV	P2,#11111111B
                  	CALL	DELAY
                  	LJMP	MODE10
                  ;--------------------------------------
                  MODE11:
                  	MOV	P2,#00000000B
                  	CALL	DELAY
                  	MOV	P2,#00000011B
                  	CALL	DELAY
                  	LJMP	MODE11
                  ;--------------------------------------
                  MODE12:
                  	MOV	P2,#00000000B
                  	CALL	DELAY
                  	MOV	P2,#10000000B
                  	CALL	DELAY
                  	MOV	P2,#00000001B
                  	CALL	DELAY
                  	MOV	P2,#01000000B
                  	CALL	DELAY
                  	MOV	P2,#00000010B
                  	CALL	DELAY
                  	MOV	P2,#00100000B
                  	CALL	DELAY
                  	MOV	P2,#00000100B
                  	CALL	DELAY
                  	MOV	P2,#00010000B
                  	CALL	DELAY
                  	MOV	P2,#00001000B
                  	CALL	DELAY
                  	LJMP	MODE12
                  ;=====================================	
                  END

                  Comment


                  • #39
                    Nguyên văn bởi mrmiu Xem bài viết
                    Code:
                    START	EQU	P1.0
                    MODE	EQU	P1.1
                    STOP	EQU	P1.2
                    ORG 00H
                    ;****************************
                    BEGIN:
                    	ACALL 	MAIN
                    	LJMP	BEGIN
                    ;****************************	
                    MAIN:
                    	ACALL	KT_START
                    	LJMP	MODE1
                    	RET
                    KT_START:
                    	MOV	a, #0h
                    	MOV	P2,#0h
                    	JB	START,$			;Cho den khi phim START duoc an
                    	JNB	START,$			;Lenh nay de chong giu phim START
                    	JB	STOP,BACK		;STOP khong dc an thi thuc hien tiep	
                    	JNB	STOP,$			;Lenh nay de chong giu phim STOP
                    	JB	STOP,KT_START		;STOP duoc an nen quay lai tu dau
                    BACK: RET
                    
                    ;--------- Chuong trinh con DELAY va KT phim MODE, STOP ---------------
                    
                    DELAY:
                    	PUSH	5
                    	PUSH	6
                    	PUSH	7
                    	MOV	R7,#200
                    L2:	MOV 	R6,#200
                    L1:	MOV 	R5,#2
                    
                    KT_PHIM:
                    	JB	STOP,SKIP
                    	JNB	STOP,$
                    	ACALL	MAIN
                    SKIP:
                    	JB	MODE,LOOP
                    	JNB	MODE,$
                    	INC	a
                    	CJNE	a, #0h, NEXT
                    	JMP 	MODE1
                    NEXT:	CJNE 	a, #1h, NEXT_1
                    	LJMP 	MODE2
                    NEXT_1:	CJNE 	a, #2h, NEXT_2
                    	LJMP	MODE3
                    NEXT_2:	CJNE	a, #3h, NEXT_3
                    	LJMP	MODE4
                    NEXT_3:	CJNE	a, #4h,	NEXT_4
                    	LJMP	MODE5
                    NEXT_4:	CJNE	a, #5h,	NEXT_5
                    	LJMP	MODE6
                    NEXT_5:	CJNE	a, #6h, NEXT_6
                    	LJMP	MODE7
                    NEXT_6:	CJNE	a, #7h, NEXT_7
                    	LJMP	MODE8
                    NEXT_7: CJNE	a, #8h, NEXT_8
                    	LJMP	MODE9
                    NEXT_8:	CJNE	a, #9h, NEXT_9
                    	LJMP	MODE10
                    NEXT_9:	CJNE	a, #10h, NEXT_10
                    	LJMP	MODE11
                    NEXT_10:
                    	CJNE	a, #11h, NEXT_11
                    	LJMP	MODE12
                    NEXT_11:
                    	MOV	a, #0h
                    	LJMP	MODE1
                    LOOP:
                    	DJNZ	r5,$
                    	DJNZ 	r6,L1
                    	DJNZ	r7,L2
                    	POP	7
                    	POP	6
                    	POP	5
                    	RET
                    ;............................
                    ;------------ CAC CHUONG TRINH CON -------------
                    MODE1:
                    	MOV 	P2,#00001111B
                    	CALL 	DELAY
                    	MOV 	P2,#11110000B
                    	CALL 	DELAY
                    	LJMP	MODE1
                    ;------------------------
                    MODE2:
                    	MOV 	P2,#00000000B
                    	CALL 	DELAY
                    	MOV 	P2,#00000001B	
                    	CALL 	DELAY
                    	MOV 	P2,#00000011B
                    	CALL 	DELAY
                    	MOV 	P2,#00000111B
                    	CALL 	DELAY
                    	MOV 	P2,#00001111B
                    	CALL 	DELAY
                    	MOV 	P2,#00011111B
                    	CALL 	DELAY
                    	MOV 	P2,#00111111B
                    	CALL 	DELAY
                    	MOV 	P2,#01111111B
                    	CALL 	DELAY
                    	MOV 	P2,#11111111B
                    	CALL 	DELAY
                    	LJMP	MODE2
                    ;------------------------
                    MODE3:
                    	MOV 	P2,#00000000B
                    	CALL 	DELAY
                    	MOV 	P2,#10000000B
                    	CALL 	DELAY
                    	MOV 	P2,#11000000B
                    	CALL 	DELAY
                    	MOV	P2,#11100000B
                    	CALL 	DELAY
                    	MOV 	P2,#11110000B
                    	CALL 	DELAY
                    	MOV 	P2,#11111000B
                    	CALL 	DELAY
                    	MOV 	P2,#11111100B
                    	CALL 	DELAY
                    	MOV 	P2,#11111110B
                    	CALL 	DELAY
                    	MOV 	P2,#11111111B
                    	CALL 	DELAY
                    	LJMP	MODE3
                    ;------------------------
                    MODE4:
                    	MOV	P2,#00000000B
                    	CALL	DELAY
                    	MOV	P2,#00000011B
                    	CALL	DELAY
                    	MOV	P2,#00001111B
                    	CALL	DELAY
                    	MOV	P2,#00111111B
                    	CALL	DELAY
                    	MOV	P2,#11111111B
                    	CALL	DELAY
                    	LJMP	MODE4
                    ;------------------------
                    MODE5:
                    	MOV 	P2,#00000000B
                    	CALL 	DELAY
                    	MOV 	P2,#11000000B
                    	CALL 	DELAY
                    	MOV 	P2,#11110000B
                    	CALL 	DELAY
                    	MOV 	P2,#11111100B
                    	CALL 	DELAY
                    	MOV 	P2,#11111111B
                    	CALL 	DELAY
                    	LJMP	MODE5
                    ;------------------------
                    MODE6:
                    	MOV	P2,#00000000B
                    	CALL	DELAY
                    	MOV	P2,#10000001B
                    	CALL	DELAY
                    	MOV	P2,#11000011B
                    	CALL	DELAY
                    	MOV	P2,#11100111B
                    	CALL	DELAY
                    	MOV	P2,#11111111B
                    	CALL	DELAY
                    	LJMP	MODE6
                    ;------------------------
                    MODE7:
                    	MOV	P2,#00000000B
                    	CALL	DELAY
                    	MOV	P2,#00011000B
                    	CALL	DELAY
                    	MOV	P2,#00111100B
                    	CALL	DELAY
                    	MOV	P2,#01111110B
                    	CALL	DELAY
                    	MOV	P2,#11111111B
                    	CALL	DELAY
                    	LJMP	MODE7
                    ;------------------------
                    MODE8:
                    	MOV	P2,#00000000B
                    	CALL	DELAY
                    	MOV	P2,#00000001B
                    	CALL	DELAY
                    	MOV	P2,#00000010B
                    	CALL	DELAY
                    	MOV	P2,#00000101B
                    	CALL	DELAY
                    	MOV	P2,#00001011B
                    	CALL	DELAY
                    	MOV	P2,#00010111B
                    	CALL	DELAY
                    	MOV	P2,#00101111B
                    	CALL	DELAY
                    	MOV	P2,#01011111B
                    	CALL	DELAY
                    	MOV	P2,#10111111B
                    	CALL	DELAY
                    	MOV	P2,#01111111B
                    	CALL	DELAY
                    	MOV	P2,#11111111B
                    	CALL	DELAY
                    	LJMP	MODE8
                    ;------------------------
                    MODE9:
                    	MOV	P2,#00000000B
                    	CALL	DELAY
                    	MOV	P2,#10000000B
                    	CALL	DELAY
                    	MOV	P2,#01000000B
                    	CALL	DELAY
                    	MOV	P2,#10100000B
                    	CALL	DELAY
                    	MOV	P2,#11010000B
                    	CALL	DELAY
                    	MOV	P2,#11101000B
                    	CALL	DELAY
                    	MOV	P2,#11110100B
                    	CALL	DELAY
                    	MOV	P2,#11111010B
                    	CALL	DELAY
                    	MOV	P2,#11111101B
                    	CALL	DELAY
                    	MOV	P2,#11111110B
                    	CALL	DELAY
                    	MOV	P2,#11111111B
                    	CALL	DELAY
                    	LJMP	MODE9
                    ;------------------------
                    MODE10:
                    	MOV	P2,#00000000B
                    	CALL	DELAY
                    	MOV	P2,#10000000B
                    	CALL	DELAY
                    	MOV	P2,#10000001B
                    	CALL	DELAY
                    	MOV	P2,#11000001B
                    	CALL	DELAY
                    	MOV	P2,#11000011B
                    	CALL	DELAY
                    	MOV	P2,#11100011B
                    	CALL	DELAY
                    	MOV	P2,#11100111B
                    	CALL	DELAY
                    	MOV	P2,#11110111B
                    	CALL	DELAY
                    	MOV	P2,#11111111B
                    	CALL	DELAY
                    	LJMP	MODE10
                    ;--------------------------------------
                    MODE11:
                    	MOV	P2,#00000000B
                    	CALL	DELAY
                    	MOV	P2,#00000011B
                    	CALL	DELAY
                    	LJMP	MODE11
                    ;--------------------------------------
                    MODE12:
                    	MOV	P2,#00000000B
                    	CALL	DELAY
                    	MOV	P2,#10000000B
                    	CALL	DELAY
                    	MOV	P2,#00000001B
                    	CALL	DELAY
                    	MOV	P2,#01000000B
                    	CALL	DELAY
                    	MOV	P2,#00000010B
                    	CALL	DELAY
                    	MOV	P2,#00100000B
                    	CALL	DELAY
                    	MOV	P2,#00000100B
                    	CALL	DELAY
                    	MOV	P2,#00010000B
                    	CALL	DELAY
                    	MOV	P2,#00001000B
                    	CALL	DELAY
                    	LJMP	MODE12
                    ;=====================================	
                    END
                    Bạn sửa lại 2 dòng:
                    NEXT_9: CJNE a, #10h, NEXT_10
                    NEXT_10: CJNE a, #11h, NEXT_11
                    thành:
                    NEXT_9: CJNE a, #10, NEXT_10
                    NEXT_10: CJNE a, #11, NEXT_11
                    bỏ đi chữ 'h' là được

                    Comment


                    • #40
                      ok thks các bác, em đã hoàn thành rồi ạ. vậy là xong và cũng đã học hỏi đc kha khá

                      Comment


                      • #41
                        Mấy bác cho e hỏi nếu dùng nút MODE để cho nó nháy các hiệu ứng từ đầu đến cuối thì viết như thế nào nhỉ?
                        Trong chương trình con có lệnh LJMP thì nó cứ nhảy ở chương trình đó hoài à.
                        ĐT: 0972 20 58 68
                        Gmail:

                        Comment


                        • #42
                          Nguyên văn bởi hoangnam555 Xem bài viết
                          Mấy bác cho e hỏi nếu dùng nút MODE để cho nó nháy các hiệu ứng từ đầu đến cuối thì viết như thế nào nhỉ?
                          Trong chương trình con có lệnh LJMP thì nó cứ nhảy ở chương trình đó hoài à.
                          Theo mình chỉ dùng nút MODE để cho chạy các hiệu ứng khác nhau thì bác cho thể làm như sau:
                          - Tạo sẵn một vài chương trình con hiệu ứng.
                          - Công việc chính của con VĐK là kiểm tra phím MODE và gọi chương trình hiệu ứng tương ứng với số lần bấm phím MODE.
                          VD: khi bấm MODE lần thứ nhất thì bạn sẽ cho nó gọi CT con 1 chẳng hạn, rồi trong quá trình thực hiện chương trình con 1 thì bạn phải tiếp tục kiểm tra xem phím MODE có được ấn hay không? Nếu MODE được ấn thì bạn lại cho nó thoát khỏi CT con 1 nhảy đến chương trình con tương ứng với ý bạn. Còn nó kiểm tra không thấy ấn MODE thì cho nó tiếp tục thực hiện chương trình con 1.

                          Comment


                          • #43
                            chắc cậu này học khoa Điện

                            Comment


                            • #44
                              Nguyên văn bởi hoangnam555 Xem bài viết
                              Mấy bác cho e hỏi nếu dùng nút MODE để cho nó nháy các hiệu ứng từ đầu đến cuối thì viết như thế nào nhỉ?
                              Trong chương trình con có lệnh LJMP thì nó cứ nhảy ở chương trình đó hoài à.
                              cậu có thể dùng 1 biển đếm số lần ấn nút MODE rồi ứng với từng giá trị sẽ tương ứng với mỗi chương trình con mà bạn muốn chạy..
                              nếu dùng C thì có thể dùng hàm Random sinh mã bất kỳ rồi sẽ cho chương trình chọn hiệu ứng theo mã đc sinh ra.( k bít Keil_C có hỗ trợ k.? )

                              Comment


                              • #45
                                ai viết dùm mây dòng đếm số lần nhấn MODE ko? mình đang học ASM.
                                ĐT: 0972 20 58 68
                                Gmail:

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X