hace 12 años
Depende del pic que se use puesto que el patillaje varia según la gama que se escoja...por cada conjunto pulsador-3 salidas estás usando 4 patillas..Ahora debes escoger el pic..
Ejemplo de parte del programa:
#define PULSADOR1 PORTA,0
#define SALIDAS PORTB ;supongamos que escogemos B0,B1,B2
cblock 0Xxx ;dirección donde empiezan los registros del usuario
contador
.
.
.
endc
banco0 macro
bcf ESTADO,RP0
bcf ESTADO,RP1
endm
banco1 macro
bsf ESTADO,RP0
bcf ESTADO,RP1
endm
org 0
goto inicio
org 5
clrf PORTB ; borrar puerto salida o puertos según pic
clrf contador
banco1
movlw b'xxxxxxxx' ; ceros o unos según se configure como entrada o salida
movwf TRISA
clrf TRISB ; configuramos como salidas
banco0
btfsc PULSADOR1 ;esperamos que se pulse
goto $-1
call tiempo_50ms ;rutina tiempo entre 20-50ms para eliminar rebotes
btfss PULSADOR1 ;esperamos que se suelte
goto $-1
incf contador,f
movlw .4
sublw contador,w
btfss ESTADO,Z
goto $+2
goto reset
movf contador,w
mowf SALIDAS ;esto es para un solo pulsador.Para activar más salidas
;en el mismo puerto tienes que hacer máscara:
;movf PORTB,W
;andlw b'11111000'
;iorwf contador,w
;movwf SALIDAS
goto ciclo
reset
clrf SALIDAS
goto ciclo
...................................................................................
¿Realmente quieres cerrar esta reparación?
Sí
No
¿Realmente quieres reabrir esta reparación?
Sí
No
¿Realmente quieres borrar este post?
Sí
No