Hola, desearía ayuda para programar el PIC 16F84A en el programa MPLAB IDE, y es que es un proyecto que tengo que hacer, pero estamos todos bastantes perdidos en clase y necesitamos entregar el proyecto pasado mañana. No pido que lo hagan, pero si que me den unas pautas por las cuales guiarme. El problema es este:
;Diseñar un circuito electrónico con microcontrolador PIC 16F84A, donde en el puerto B se conectan 7 pulsadores que
corresponden a las 7 notas de la escala musical, DO=RB0, RE=RB1, MI=RB2, FA=RB3, SOL=RB4, LA=RB5, SI=RB6. Al activar
cualquiera de los pulsadores, en el pin RA0 del puerto A se debe generar la nota correspondiente al pulsador activado.
Si se activan varios pulsadores a la vez, en la salida se debe generar la frecuencia correspondiente al pulsador cuyo
número de orden sea mayor, por ejemplo, si se pulsan a la vez RB4 y RB6 de debe generar la frecuencia correspondiente
al pulsador que está conectado al pin RB6. (Do=261Hz, Re=293Hz, Mi=329Hz, Fa=349Hz, Sol=393Hz, La=440Hz y Si=493Hz).
Tengo el repertorio de instrucciones del PIC, y tengo los Hz de cada nota pasadas a 'ms' por la fórmula Temporización = Tcm x Prescaler x (256 - Carga TMR0). Pero mi problema es que me pierdo a la hora de configurar cada nota para que suene, llamar a las subrutinas y todo eso... Tengo configurado esto, pero me temo que va mal:
;ZONA DE CÓDIGOS*******************************************************************************************************
ORG 0
bsf STATUS,RP0
movlw b'01111111'
movwf TRISB
movlw b'11110'
movwf TRISA
movlw b'00000010'
movwf OPTION_REG
bcf STATUS,RP0
Principal
btfsc PORTB,6
call Nota_SI
btfsc PORTB,5
call Nota_LA
btfsc PORTB,4
call Nota_SOL
btfsc PORTB,3
call Nota_FA
btfsc PORTB,2
call Nota_MI
btfsc PORTB,1
call Nota_RE
btfsc PORTB,0
call Nota_DO
goto Principal
Nota_SI movlw TMR0_SI
movwf PORTA
goto Fin
Nota_LA movlw TMR0_LA
movwf PORTA
goto Fin
Nota_SOL movlw TMR0_SOL
movwf PORTA
goto Fin
Nota_FA movlw TMR0_FA
movwf PORTA
goto Fin
Nota_MI movlw TMR0_MI
movwf PORTA
goto Fin
Nota_RE movlw TMR0_RE
movwf PORTA
goto Fin
Nota_DO movlw TMR0_DO
movwf PORTA
Cualquier ayuda me vendrá de lujo! -.-'
Gracias y un saludo foreros!