pic 16f84 mplab proyecto

Bueno pues queria pedirles ayuda con un programa que necesito hacer en mplab, es un proyecto para la escuela, y la verdad me cuestra trabajo entender el MPLAB(soy nuevo) y quisiera pedirles si me pueden ayudar tengo un programa que he estado haciendo el maestro me dijo que voy bien pero no entiendo mucho del programa(el mplab) les pondre lo que el maestro nos pidio y despues el programa que hice

El problema:
En una fábrica de galletas se tiene una banda transportadora que introduce las galletas dentro del horno solo que la velocidad de la banda es variable dependiendo del tipo de galletas que se estén elaborando de acuerdo con la siguiente tabla.

esta es la tabla :
Código:
     [B] E N T R A D A S   [/B]                      |   [B] SALIDAS[/B]
          Tipo de Galleta                 |     Velocidad
Nombre              |     A3  A2 A1 A0    |  B3  B2 B1  B0
Power Off           |     0  X   X  X     |  0   0   0   0
Basica              |     1  0   0  0     |  0   1   0   1
Polvoronpope        |     1  0   0  1     |  1   1   1   0
Chocomokas          |     1  0   1  0     |  1   0   1   0
Saladina            |     1  0   1  1     |  1   0   1   0
Creamigos           |     1  1   0  0     |  1   1   0   0
Canelocas           |     1  1   0  1     |  1   0   0   1
Cocómo              |     1  1   1  0     |  1   0   0   0
Cajetoma            |     1  1   1  1     |  1   1   1   1
*nota: (puse en un tabla el codigo por qe no pude sibir el archivo del trabajo, espero se entienda)*

El PIC tiene conectadas a sus entradas en el puerto A un selector digital que colocas los números
binarios en el puerto dependiendo de un teclado del selector. Las Salidas se conectan a un control de
digital de velocidad del motor de la banda transportadora. Si se inserta “0” (Cero) en el bit A3 se apaga
la banda.

Código:
;DECLARACION DE DATOS
	__CONFIG   _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC
	LIST	   P=16F84		; Procesador utilizado.
	INCLUDE  <P16F84.INC>
;CODIGOS

	ORG 0
EMPEZAMOS
	
	bsf 	STATUS,RP0	;se accesa al banco 1
	movlw 	b'00001111'
	movwf 	TRISA		;con esta instruccion se configura el puerto A para que sea de entrada
	clrf 	TRISB		;ya en esta parte de igual forma configuramos el puerto B como salida
	bcf 	STATUS,RP0	;se accesa el banco 0

MAIN
	movlw	d'16'		;ponemos 16 para confirmar que A3 esta encendido
	subwf	PORTB,W		;Se compruebam si la entrada A3 es 0 esta apagado
	btfss	STATUS,C	
	goto	MAQUINA
	movlw	b'00000000'	;Si esta apagado se ponen las salidas en 0
	goto 	VELOCIDAD	;se mueven las salidas puros 0 
MAQUINA
	movf	PORTB,W		;Leemos la entrada
	addwf	PCL,F		;Sumamos al contador de programa para saltar a la configuracion de la salida
	goto 	poweroff		
	goto 	poweroff
	goto	basica
	goto	basica
	goto	polvoronpope
	goto	polvoronpope
	goto	chocomocas
	goto	chocomocas
	goto	saladina
	goto	saladina
	goto	creamigos
	goto	canelocas
	goto	cocomo
	goto	cajetoma
poweroff
	movlw	b'00000000'
basica
	movlw	b'00001000'
	goto	VELOCIDAD		;En esta parte se asigna la salida de
polvoronpope				;acuerdo a la tabla que se encuentra
	movlw	b'00001001'		;en el pdf aqui lo que se hace es
	goto	VELOCIDAD		;mover a W el valor de la salida
chocomocas
	movlw	b'00001010'
	goto	VELOCIDAD
saladina
	movlw	b'00001011'
	goto	VELOCIDAD
creamigos
	movlw	b'00001100'
	goto	VELOCIDAD
canelocas
	movlw	b'00001101'
	goto	VELOCIDAD
cocomo
	movlw	b'00001110'
	goto	VELOCIDAD
cajetoma
	movlw	b'00001111'
	goto	VELOCIDAD

VELOCIDAD
	movwf	PORTA		
	goto MAIN		;Por ultimo movemos las salidas de acuerdo
					;a los de la entrada 	
END

Me pueden ayudar, se los agradecere mucho, ahora me urge un poco gracias a todos los qe me ayuden!!
 
Última edición:
Atrás
Arriba