You are on page 1of 12

LIST P=16F84A

INCLUDE P16F84A.INC
REG_L EQU 0x0C
REG_M EQU 0X0D
REG_H EQU 0X0E
ORG 0X00
CALL SET_PORTS
;...............................LUOT 1.....................................;
LOOP
LOOP1 ;...LED1:1...LED2:3...DO...LED3:1...LED4:0...XANH...;
MOVLW B'10000000' ;LED1: 1;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'11000001' ;LED2: 3;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'10000010' ;LED3: 1;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000011' ;LED4: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000000' ;LED DO;
MOVWF PORTA
CALL DELAY_10uS
MOVLW B'00000101' ;LED XANH;
MOVWF PORTA
CALL DELAY_10uS
CALL DELAY
GOTO LOOP1
RETURN
;...............................................................................
;
LOOP2 ;...LED1:1...LED2:2...DO...LED3:0...LED4:9...XANH...;
MOVLW B'10000000' ;LED1: 1;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'01000001' ;LED2: 2;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000010' ;LED3: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'10010011' ;LED4: 9;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000000' ;LED DO;
MOVWF PORTA
CALL DELAY_10uS
MOVLW B'00000101' ;LED XANH;
MOVWF PORTA
CALL DELAY_10uS
CALL DELAY
GOTO LOOP2
RETURN
;...............................................................................
....;
LOOP3 ;...LED1:1...LED2:1...DO...LED3:0...LED4:8...XANH...;
MOVLW B'10000000' ;LED1: 1;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'01000001' ;LED2: 1;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000010' ;LED3: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00010011' ;LED4: 8;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000000' ;LED DO;
MOVWF PORTA
CALL DELAY_10uS
MOVLW B'00000101' ;LED XANH;
MOVWF PORTA
CALL DELAY_10uS
CALL DELAY
GOTO LOOP3
RETURN
;...............................................................................
..;
LOOP4 ;...LED1:1...LED2:0...DO...LED3:0...LED4:7...XANH...;
MOVLW B'10000000' ;LED1: 1;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000001' ;LED2: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000010' ;LED3: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'11100011' ;LED4: 7;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000000' ;LED DO;
MOVWF PORTA
CALL DELAY_10uS
MOVLW B'00000101' ;LED XANH;
MOVWF PORTA
CALL DELAY_10uS
CALL DELAY
GOTO LOOP4
RETURN
;...............................................................................
.....;
LOOP5 ;...LED1:0...LED2:9...DO...LED3:0...LED4:6...XANH...;
MOVLW B'00000000' ;LED1: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'10010001' ;LED2: 9;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000010' ;LED3: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'01100011' ;LED4: 6;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000000' ;LED DO;
MOVWF PORTA
CALL DELAY_10uS
MOVLW B'00000101' ;LED XANH;
MOVWF PORTA
CALL DELAY_10uS
CALL DELAY
GOTO LOOP5
RETURN
;...............................................................................
....;
LOOP6 ;...LED1:0...LED2:8...DO...LED3:0...LED4:5...XANH...;
MOVLW B'00000000' ;LED1: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00010001' ;LED2: 8;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000010' ;LED3: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'10100011' ;LED4: 5;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000000' ;LED DO;
MOVWF PORTA
CALL DELAY_10uS
MOVLW B'00000101' ;LED XANH;
MOVWF PORTA
CALL DELAY_10uS
CALL DELAY
GOTO LOOP6
RETURN
;...............................................................................
.;
LOOP7 ;...LED1:0...LED2:7...DO...LED3:0...LED4:4...XANH...;
MOVLW B'00000000' ;LED1: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'11100001' ;LED2: 7;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000010' ;LED3: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00100011' ;LED4: 4;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000000' ;LED DO;
MOVWF PORTA
CALL DELAY_10uS
MOVLW B'00000101' ;LED XANH;
MOVWF PORTA
CALL DELAY_10uS
CALL DELAY
GOTO LOOP7
RETURN
;...............................................................................
;
LOOP8 ;...LED1:0...LED2:6...DO...LED3:0...LED4:3...XANH...;
MOVLW B'00000000' ;LED1: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'01100001' ;LED2: 6;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000010' ;LED3: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'11000011' ;LED4: 3;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000000' ;LED DO;
MOVWF PORTA
CALL DELAY_10uS
MOVLW B'00000101' ;LED XANH;
MOVWF PORTA
CALL DELAY_10uS
CALL DELAY
GOTO LOOP8
RETURN
;.............................................................................;
LOOP9 ;...LED1:0...LED2:5...DO...LED3:0...LED4:2...XANH...;
MOVLW B'00000000' ;LED1: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'10100001' ;LED2: 5;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000010' ;LED3: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'01000011' ;LED4: 2;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000000' ;LED DO;
MOVWF PORTA
CALL DELAY_10uS
MOVLW B'00000101' ;LED XANH;
MOVWF PORTA
CALL DELAY_10uS
CALL DELAY
GOTO LOOP9
RETURN
;........................................................................;
LOOP10 ;...LED1:0...LED2:4...DO...LED3:0...LED4:1...XANH...;
MOVLW B'00000000' ;LED1: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00100001' ;LED2: 4;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000010' ;LED3: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'10000011' ;LED4: 1;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000000' ;LED DO;
MOVWF PORTA
CALL DELAY_10uS
MOVLW B'00000101' ;LED XANH;
MOVWF PORTA
CALL DELAY_10uS
CALL DELAY
GOTO LOOP10
RETURN
;...........................................................................;
LOOP11 ;...LED1:0...LED2:3...DO...LED3:0...LED4:0...XANH...;
MOVLW B'00000000' ;LED1: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'11000001' ;LED2: 3;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000010' ;LED3: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000011' ;LED4: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000000' ;LED DO;
MOVWF PORTA
CALL DELAY_10uS
MOVLW B'00000101' ;LED XANH;
MOVWF PORTA
CALL DELAY_10uS
CALL DELAY
GOTO LOOP11
RETURN
;...........................................................................;
LOOP12 ;...LED1:0...LED2:2...DO...LED3:0...LED4:2...VANG...;
MOVLW B'10000000' ;LED1: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'11000011' ;LED2: 2;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'10000100' ;LED3: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000111' ;LED4: 2;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000000' ;LED DO;
MOVWF PORTA
CALL DELAY_10uS
MOVLW B'00000100' ;LED VANG;
MOVWF PORTA
CALL DELAY_10uS
CALL DELAY
GOTO LOOP12
RETURN
;...........................................................................;
LOOP13 ;...LED1:0...LED2:1...DO...LED3:0...LED4:1...VANG...;
MOVLW B'10000001' ;LED1: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'11000011' ;LED2: 1;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'10000100' ;LED3: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000111' ;LED4: 1;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000000' ;LED DO;
MOVWF PORTA
CALL DELAY_10uS
MOVLW B'00000100' ;LED VANG;
MOVWF PORTA
CALL DELAY_10uS
CALL DELAY
GOTO LOOP13
RETURN
;.............................................................................;
LOOP14 ;...LED1:0...LED2:0...DO...LED3:0...LED4:0...VANG...;
MOVLW B'10000001' ;LED1: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'11000011' ;LED2: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'10000100' ;LED3: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000111' ;LED4: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000000' ;LED DO;
MOVWF PORTA
CALL DELAY_10uS
MOVLW B'00000100' ;LED VANG;
MOVWF PORTA
CALL DELAY_10uS
CALL DELAY
GOTO LOOP14
RETURN
;.......................HET LUOT 1..................................;
;.......................LUOT 2......................................;
LOOPA ;...LED1:1...LED2:0...XANH...LED3:1...LED4:3...DO...;
MOVLW B'10000000' ;LED1: 1;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000001' ;LED2: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'10000010' ;LED3: 1;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'11000011' ;LED4: 3;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000010' ;LED XANH;
MOVWF PORTA
CALL DELAY_10uS
MOVLW B'00000011' ;LED DO;
MOVWF PORTA
CALL DELAY_10uS
CALL DELAY
GOTO LOOPA
RETURN
;......................................................................;
LOOPB ;...LED1:0...LED2:9...XANH...LED3:1...LED4:2...DO...;
MOVLW B'00000000' ;LED1: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'10010001' ;LED2: 9;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'10000010' ;LED3: 1;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'01000011' ;LED4: 2;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000010' ;LED XANH;
MOVWF PORTA
CALL DELAY_10uS
MOVLW B'00000011' ;LED DO;
MOVWF PORTA
CALL DELAY_10uS
CALL DELAY
GOTO LOOPB
RETURN
;......................................................................;
LOOPC ;...LED1:0...LED2:8...XANH...LED3:1...LED4:1...DO...;
MOVLW B'00000000' ;LED1: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00010001' ;LED2: 8;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'10000010' ;LED3: 1;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'10000011' ;LED4: 1;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000010' ;LED XANH;
MOVWF PORTA
CALL DELAY_10uS
MOVLW B'00000011' ;LED DO;
MOVWF PORTA
CALL DELAY_10uS
CALL DELAY
GOTO LOOPC
RETURN
;......................................................................;
LOOPD ;...LED1:0...LED2:7...XANH...LED3:1...LED4:0...DO...;
MOVLW B'00000000' ;LED1: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'11100001' ;LED2: 7;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'10000100' ;LED3: 1;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000011' ;LED4: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000010' ;LED XANH;
MOVWF PORTA
CALL DELAY_10uS
MOVLW B'00000011' ;LED DO;
MOVWF PORTA
CALL DELAY_10uS
CALL DELAY
GOTO LOOPD
RETURN
;......................................................................;
LOOPE ;...LED1:0...LED2:6...XANH...LED3:0...LED4:9...DO...;
MOVLW B'00000000' ;LED1: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'01100001' ;LED2: 6;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000010' ;LED3: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'10010011' ;LED4: 9;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000010' ;LED XANH;
MOVWF PORTA
CALL DELAY_10uS
MOVLW B'00000011' ;LED DO;
MOVWF PORTA
CALL DELAY_10uS
CALL DELAY
GOTO LOOPE
RETURN
;......................................................................;
LOOPF ;...LED1:0...LED2:5...XANH...LED3:0...LED4:8...DO...;
MOVLW B'00000000' ;LED1: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'10100001' ;LED2: 5;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000010' ;LED3: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00010011' ;LED4: 8;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000010' ;LED XANH;
MOVWF PORTA
CALL DELAY_10uS
MOVLW B'00000011' ;LED DO;
MOVWF PORTA
CALL DELAY_10uS
CALL DELAY
GOTO LOOPF
RETURN
;......................................................................;
LOOPG ;...LED1:0...LED2:4...XANH...LED3:0...LED4:7...DO...;
MOVLW B'00000000' ;LED1: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00100001' ;LED2: 4;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000010' ;LED3: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'11100011' ;LED4: 7;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000010' ;LED XANH;
MOVWF PORTA
CALL DELAY_10uS
MOVLW B'00000011' ;LED DO;
MOVWF PORTA
CALL DELAY_10uS
CALL DELAY
GOTO LOOPG
RETURN
;......................................................................;
LOOPH ;...LED1:0...LED2:3...XANH...LED3:0...LED4:6...DO...;
MOVLW B'00000000' ;LED1: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'11000001' ;LED2: 3;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000010' ;LED3: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'01100011' ;LED4: 6;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000010' ;LED XANH;
MOVWF PORTA
CALL DELAY_10uS
MOVLW B'00000011' ;LED DO;
MOVWF PORTA
CALL DELAY_10uS
CALL DELAY
GOTO LOOPH
RETURN
;......................................................................;
LOOPI ;...LED1:0...LED2:2...XANH...LED3:0...LED4:5...DO...;
MOVLW B'00000000' ;LED1: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'01000001' ;LED2: 2;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000010' ;LED3: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'10100011' ;LED4: 5;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000010' ;LED XANH;
MOVWF PORTA
CALL DELAY_10uS
MOVLW B'00000011' ;LED DO;
MOVWF PORTA
CALL DELAY_10uS
CALL DELAY
GOTO LOOPI
RETURN
;......................................................................;
LOOPJ ;...LED1:0...LED2:1...XANH...LED3:0...LED4:4...DO...;
MOVLW B'00000000' ;LED1: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'10000001' ;LED2: 1;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000010' ;LED3: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00100011' ;LED4: 4;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000010' ;LED XANH;
MOVWF PORTA
CALL DELAY_10uS
MOVLW B'00000011' ;LED DO;
MOVWF PORTA
CALL DELAY_10uS
CALL DELAY
GOTO LOOPJ
RETURN
;......................................................................;
LOOPK ;...LED1:0...LED2:0...XANH...LED3:0...LED4:3...DO...;
MOVLW B'00000000' ;LED1: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000001' ;LED2: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000010' ;LED3: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000011' ;LED4: 3;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000010' ;LED XANH;
MOVWF PORTA
CALL DELAY_10uS
MOVLW B'00000011' ;LED DO;
MOVWF PORTA
CALL DELAY_10uS
CALL DELAY
GOTO LOOPK
RETURN
;......................................................................;
LOOPL ;...LED1:0...LED2:2...VANG...LED3:0...LED4:2...DO...;
MOVLW B'00000000' ;LED1: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'01000001' ;LED2: 2;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000010' ;LED3: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'01000011' ;LED4: 2;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000001' ;LED VANG;
MOVWF PORTA
CALL DELAY_10uS
MOVLW B'00000011' ;LED DO;
MOVWF PORTA
CALL DELAY_10uS
CALL DELAY
GOTO LOOPL
RETURN
;......................................................................;
LOOPM ;...LED1:0...LED2:1...VANG...LED3:0...LED4:1...DO...;
MOVLW B'00000000' ;LED1: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'10000001' ;LED2: 1;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000010' ;LED3: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'10000011' ;LED4: 1;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000001' ;LED VANG;
MOVWF PORTA
CALL DELAY_10uS
MOVLW B'00000011' ;LED DO;
MOVWF PORTA
CALL DELAY_10uS
CALL DELAY
GOTO LOOPM
RETURN
;......................................................................;
LOOPN ;...LED1:0...LED2:0...VANG...LED3:0...LED4:0...DO...;
MOVLW B'00000000' ;LED1: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000001' ;LED2: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000010' ;LED3: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000011' ;LED4: 0;
MOVWF PORTB
CALL DELAY_10uS
MOVLW B'00000001' ;LED VANG;
MOVWF PORTA
CALL DELAY_10uS
MOVLW B'00000011' ;LED DO;
MOVWF PORTA
CALL DELAY_10uS
CALL DELAY
GOTO LOOPN
RETURN
;...............................................HET LUOT 2......................
...............;
GOTO LOOP
;........................................SET PORTS..............................
...............;
SET_PORTS
CLRW
MOVWF PORTB
BSF STATUS,RP0
CLRW
MOVLW TRISA
CLRW
MOVLW TRISB
BCF STATUS,RP0
RETURN
;..........................................TAO HAM DELAY_1mS....................
..............;
DELAY_1mS
CLRF REG_H
HERE NOP
DECFSZ REG_H
GOTO HERE
RETURN
;..........................................TAO HAM DELAY 3mS....................
.............;
DELAY_10uS
CALL DELAY_1mS
CALL DELAY_1mS
CALL DELAY_1mS
RETURN
;..........................................TAO HAM DELAY........................
...........;
DELAY
CLRW
MOVLW B'10110100'
MOVWF REG_L
DECFSZ REG_L
RETURN
;...............................................................................
..............;
END

You might also like