Hello Everyone,
I have a silly problem, but need help in this moment.
I need the pic to depending on the input output only to a different port
I have tried many thing so far I have this, and seems not to work
Any Ideas?
Your Help is very much appreciated!
Ps: sorry the code is not clean but I have tried quite a few things already
This is what I have
I have a silly problem, but need help in this moment.
I need the pic to depending on the input output only to a different port
I have tried many thing so far I have this, and seems not to work
Any Ideas?
Your Help is very much appreciated!
Ps: sorry the code is not clean but I have tried quite a few things already
This is what I have
Code:
;--------------------------------------------------------------------------
list p=12F629
#include<p12f629.inc>
ERRORLEVEL -302 ;remove messages
__CONFIG _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT
; globals
;filedif equ 20h ;this is the first available file
; equ 21h
; equ 22h
; equ 23h
; equ 24h
; equ 25h
fileG equ 29h ; test file
fileA equ 26h ;delay fileA
fileB equ 27h ;delay fileB
fileC equ 28h ;delay fileC
; bits on GPIO
pin7 equ 0 ;GP0
pin6 equ 1 ;GP1
pin5 equ 2 ;GP2
pin4 equ 3 ;GP3
pin3 equ 4 ;GP4
pin2 equ 5 ;GP5
input equ 0x80 ;input register
Start org 0x0000 ;program starts at location 000
nop
nop
nop
nop ;NOPs to get past reset vector address
nop
nop
SetUp bsf STATUS,RP0 ;Bank 1
movlw b'10000110' ;Turn off T0CKI, prescale for TMR0 = 1:128
movwf OPTION_REG
movlw 0x18 ;Set GP0,1,2,5 as outputs. GP04 as input
movwf TRISIO
;calibrating the internal oscillator
call 0x3ff ;get the calibration value
movwf OSCCAL ;calibrate oscillator
bcf STATUS, RP0 ;bank 0
movlw 0x07 ;turn comparators off
movwf CMCON
clrf GPIO ;Clear GPIO of junk
goto Main
;Delay 0.51 sec
Del_1 movlw 40h
movwf fileC
DelX decfsz fileA,1 ; ,1 denotes the result of the decrement
; goto DelX
decfsz fileB,1 ; is placed in the file
; goto DelX
decfsz fileC,1
goto DelX
retlw 00
Left ; movlw 0x3E
; movwf TRISIO
movlw 0xff
movwf GPIO
nop
clrf GPIO
retlw 00
;goto Main
Right ; movlw 0x3D
; movwf TRISIO
movlw 0xff
movwf GPIO
nop
clrf GPIO
retlw 00
; goto Main
UpLeft; movlw 0x3B
; movwf TRISIO
movlw 0xff
movwf GPIO
nop
clrf GPIO
retlw 00
; goto Main
DownRight ; movlw 0x1f
; movwf TRISIO
movlw 0xff
movwf GP5
nop
clrf GPIO
; goto Main
retlw 00
Main
movf GPIO,0
;movf filedif,0x01
; movlw 01h
; movwf 05
BTFSS GPIO,01h
call Left
;call Del_1
; movlw 02h
; movwf 05
BTFSS GPIO,02h
call Right
;call Del_1
; movlw 03h
; movwf 05
BTFSS GPIO,0x03
call UpLeft
;call Del_1
; movlw 04h
; movwf 05
BTFSS GPIO,0x04
call DownRight
;call Del_1
goto Main
;OSCCAL calibration value
org 0x3ff
movlw 0x20
; initialize eeprom locations
ORG 0x2100
DE 0x00, 0x01, 0x02, 0x03
end