Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #INCLUDE "P16F84A.INC"
- __CONFIG _XT_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF
- ;----------------------------------------------------------
- ; variable declaration
- VAL EQU 0x0C
- CONFIG_ADDR EQU 0x0D
- COUNTERA EQU 0x0E
- COUNTERB EQU 0x0F
- CONSTANT START_ADDR = 0x00
- ERRORLEVEL -302
- ORG 0x00
- GOTO START
- ORG 0x04
- GOTO START
- START
- BSF STATUS, RP0
- MOVLW 0x00
- MOVWF TRISB
- BCF STATUS, RP0
- CLRF PORTB
- MOVLW START_ADDR
- MOVWF CONFIG_ADDR
- READ_VAL
- MOVF CONFIG_ADDR, W
- MOVWF EEADR
- BSF STATUS, RP0
- MOVF EEDATA, W
- MOVWF VAL
- CALL OUTPUT_VAL
- INCF CONFIG_ADDR, F
- CALL DELAY
- XORLW 0x08
- BTFSS STATUS, Z
- GOTO READ_VAL
- GOTO START
- OUTPUT_VAL
- MOVF VAL, W
- MOVWF PORTB
- RETURN
- DELAY
- ;---------------------------------------------------------
- ; create a delay
- MOVLW D'5'
- MOVWF COUNTERA
- LOOPA
- CALL DELAYA
- DECFSZ COUNTERA, F
- GOTO LOOPA
- RETLW 0x00
- DELAYA
- MOVLW D'15'
- MOVWF COUNTERB
- LOOPB
- CALL DELAYB
- DECFSZ COUNTERB, F
- GOTO LOOPB
- RETLW 0x00
- DELAYB
- CLRF TMR0
- BCF INTCON, T0IF
- LOOPC
- BTFSS INTCON, T0IF
- GOTO LOOPC
- RETLW 0x00
- END
Advertisement
Add Comment
Please, Sign In to add comment