Post by salias on May 31, 2010 19:26:05 GMT 8
Hi,
I not expert on pic programmer but can do programming if have hex or bin file.
I need to program PIC but dont know how to convert the appropriate to hex file.
The appropriate assembly programming is listed as follows:
LIST P=PIC16F84
INCLUDE "P16F84A.INC"
; SET PORT A AS INPUT
; SET PORT B AS OUTPUT
BSF STATUS,RP0
MOVLW 0X0F
MOVWF TRISA
MOVLW 0X00
MOVWF TRISB
;BLINK INDICATOR LEDS TWICE
BCF STATUS, RP0
MOVLW 0X0C
MOVWF PORTB
CALL DELAY
CLRF PORTB
CALL DELAY
MOVLW 0X0C
MOVWF PORTB
CALL DELAY
; PTT RD1 DISABLED
; PTT RD2 DISABLED
CLRF PORTB
; PORTA0 - INPUT RX RD1
; PORTA1 - INPUT RX RD2
; PORTA2 - INPUT SWITCH RD1
; PORTA3 - INPUT SWITCH RD2
; PORTB0 - OUTPUT PTT RD1
; PORTB1 - OUTPUT PTT RD2
; PORTB2 - OUTPUT LED TX RD1
; PORTB3 - OUTPUT LED TX RD2
START
BTFSC PORTA,0 ; IS RX RD1 HIGH?
GOTO IS_SW_RD1_ON
PTT_RD2_DISABLED
BCF PORTB,1 ; PTT RD2 DISABLED
BTFSC PORTA,1 ; IS RX RD2 HIGH?
GOTO IS_SW_RD2_ON
PTT_RD1_DISABLED
BCF PORTB,0 ; PTT RD1 DISABLED
GOTO START
IS_SW_RD1_ON
BTFSS PORTA,2 ; IS SW RD1 ON?
GOTO IS_RX_RD2_HIGH
GOTO PTT_RD2_DISABLED
IS_RX_RD2_HIGH
BTFSC PORTA,1 ; IS RX RD2 HIGH?
GOTO PTT_RD2_DISABLED
BCF PORTB,0 ; PTT RD1 DISABLED
BSF PORTB,1 ; PTT RD2 ENABLED
BSF PORTB,3 ; BLINK TX RD2 LED
CALL DELAY
BCF PORTB,3
CALL DELAY
GOTO START
IS_SW_RD2_ON
BTFSS PORTA,3 ; IS SW RD2 ON?
GOTO IS_RX_RD1_HIGH
GOTO PTT_RD1_DISABLED
IS_RX_RD1_HIGH
BTFSC PORTA,0 ; IS RX RD1 HIGH?
GOTO PTT_RD1_DISABLED
BCF PORTB,1 ; PTT RD2 DISABLED
BSF PORTB,0 ; PTT RD1 ENABLED
BSF PORTB,2 ; BLINK TX RD1
CALL DELAY
BCF PORTB,3
CALL DELAY
GOTO START
DELAY
MOVLW D'100' ; THIS IS DELAY SUBPROGRAM
MOVWF 2F ; TO BLINK INDICATOR LEDs
LOOP1
MOVLW D'255'
MOVWF 2E
LOOP2
DECFSZ 2E,F
GOTO LOOP2
DECFSZ 2F,F
GOTO LOOP1
RETURN
END
Please refer to attach files for more info
I not expert on pic programmer but can do programming if have hex or bin file.
I need to program PIC but dont know how to convert the appropriate to hex file.
The appropriate assembly programming is listed as follows:
LIST P=PIC16F84
INCLUDE "P16F84A.INC"
; SET PORT A AS INPUT
; SET PORT B AS OUTPUT
BSF STATUS,RP0
MOVLW 0X0F
MOVWF TRISA
MOVLW 0X00
MOVWF TRISB
;BLINK INDICATOR LEDS TWICE
BCF STATUS, RP0
MOVLW 0X0C
MOVWF PORTB
CALL DELAY
CLRF PORTB
CALL DELAY
MOVLW 0X0C
MOVWF PORTB
CALL DELAY
; PTT RD1 DISABLED
; PTT RD2 DISABLED
CLRF PORTB
; PORTA0 - INPUT RX RD1
; PORTA1 - INPUT RX RD2
; PORTA2 - INPUT SWITCH RD1
; PORTA3 - INPUT SWITCH RD2
; PORTB0 - OUTPUT PTT RD1
; PORTB1 - OUTPUT PTT RD2
; PORTB2 - OUTPUT LED TX RD1
; PORTB3 - OUTPUT LED TX RD2
START
BTFSC PORTA,0 ; IS RX RD1 HIGH?
GOTO IS_SW_RD1_ON
PTT_RD2_DISABLED
BCF PORTB,1 ; PTT RD2 DISABLED
BTFSC PORTA,1 ; IS RX RD2 HIGH?
GOTO IS_SW_RD2_ON
PTT_RD1_DISABLED
BCF PORTB,0 ; PTT RD1 DISABLED
GOTO START
IS_SW_RD1_ON
BTFSS PORTA,2 ; IS SW RD1 ON?
GOTO IS_RX_RD2_HIGH
GOTO PTT_RD2_DISABLED
IS_RX_RD2_HIGH
BTFSC PORTA,1 ; IS RX RD2 HIGH?
GOTO PTT_RD2_DISABLED
BCF PORTB,0 ; PTT RD1 DISABLED
BSF PORTB,1 ; PTT RD2 ENABLED
BSF PORTB,3 ; BLINK TX RD2 LED
CALL DELAY
BCF PORTB,3
CALL DELAY
GOTO START
IS_SW_RD2_ON
BTFSS PORTA,3 ; IS SW RD2 ON?
GOTO IS_RX_RD1_HIGH
GOTO PTT_RD1_DISABLED
IS_RX_RD1_HIGH
BTFSC PORTA,0 ; IS RX RD1 HIGH?
GOTO PTT_RD1_DISABLED
BCF PORTB,1 ; PTT RD2 DISABLED
BSF PORTB,0 ; PTT RD1 ENABLED
BSF PORTB,2 ; BLINK TX RD1
CALL DELAY
BCF PORTB,3
CALL DELAY
GOTO START
DELAY
MOVLW D'100' ; THIS IS DELAY SUBPROGRAM
MOVWF 2F ; TO BLINK INDICATOR LEDs
LOOP1
MOVLW D'255'
MOVWF 2E
LOOP2
DECFSZ 2E,F
GOTO LOOP2
DECFSZ 2F,F
GOTO LOOP1
RETURN
END
Please refer to attach files for more info