Solicito ayuda para un programa (Para desplazar una oración)

Que tal compañeros,

Tengo una duda en mi programa, ya lo he escrito y se que tiene muchas fallas; Pues no tengo mucha experiencia programando PIC's.

Para hacer este programa me base en uno que edite, al colocarle un valor en el deep en Binario me soltaba el numero en Decimal y descendía cada segundo hasta llegar a 0.

Ahora lo que tengo que hacer al tener '00' en el deep, salga una oración; '01' otra oración; '10' otra oración, cambiando una letra por segundo. Y aparte el 3 bit del deep, cambie la temporización del cambio de cada letra; Es decir si el deep tiene esta configuración '100' - Se desplegara la oración 1 con la temporizacion de 3 segundos por letra.

Espero me hayan entendido: Aquí esta mi código...
Código:
;Practica 3 (628)
;Cardenas
;La final

; By: HAckerjj!!!!

; AMX432!!! - Cap. Jair Gracia :::::---::::----::: 

; Papa-Alfa-Romeo-Alfa Metro-India Goulf-Romeo-Union-Papa-Oscar 6IM9 ---...--- :)

 __CONFIG _WDT_OFF&_INTRC_OSC_NOCLKOUT&_CP_OFF&_PWRTE_OFF&_MCLRE_OFF&_LVP_OFF&_BODEN_OFF	

LIST p=16F628A
include P16F628A.INC
RADIX 		HEX
 
	ORG		0	

Inicio
	movlw	07h			; Apaga los comparadores
	movwf	CMCON		; Activa los pines como I/0
	bsf		03,05
	movlw	0xFF
	movwf 	05
	clrf	06
	bcf		03,05
	clrf	05
	clrf	06
Boton	
	btfss	05,03
	goto	Boton
	movf	05,00
	andlw	b'00000011'
	movwf	0F
	movf	0F,01
	btfsc	03,02
	goto	alarma

Cambio
	btfsc	05,02
	goto	Compa

Comp
	btfsc	05,00
	goto	comp2
	goto	comp1

comp1
	btfsc	05,01
	goto palabra3
	goto palabra

comp2
	btfsc	05,01
	goto alarma
	goto palabra1

Compa
	btfsc	05,00
	goto	compa2
	goto	compa1

compa1
	btfsc	05,01
	goto palabras3
	goto palabras

compa2
	btfsc	05,01
	goto alarma
	goto palabras1

palabra1
	movf	0F,00
	call 	Decoder1
	movwf	06
	call 	Retardo1seg
	decfsz	0F,01
	goto 	palabra1
	goto	Boton
	
palabras1
	movf	0F,00
	call 	Decoder1
	movwf	06
	call 	Retardo3seg
	decfsz	0F,01
	goto 	palabras1
	goto	Boton

palabra
	movf	0F,00
	call 	Decoder
	movwf	06
	call 	Retardo1seg
	decfsz	0F,01
	goto 	palabra
	goto	Boton
	
palabras
	movf	0F,00
	call 	Decoder
	movwf	06
	call 	Retardo3seg
	decfsz	0F,01
	goto 	palabras
	goto	Boton
	
palabra3
	movf	0F,00
	call 	Decoder2
	movwf	06
	call 	Retardo1seg
	decfsz	0F,01
	goto 	palabra3
	goto	Boton	
	
palabras3
	movf	0F,00
	call 	Decoder2
	movwf	06
	call 	Retardo3seg
	decfsz	0F,01
	goto 	palabras3
	goto	Boton

alarma
	movf	0F,00
	call	Decoder3
	movwf	06
	call	Retardo1seg
	goto	Boton
	
;Rutina de visualizacion

Decoder1	
	addwf	02,01
	retlw	b'11110111'	;A
	retlw	b'11010000'	;r
	retlw	b'11111100'	;B

Decoder	
	addwf	02,01
	retlw	b'11110001'	;F
	retlw	b'10111000'	;L
	retlw	b'11110111'	;A

Decoder2	
	addwf	02,01
	retlw	b'11110111'	;A
	retlw	b'11110000'	;h
	retlw	b'11011000'	;c

Decoder3	
	addwf	02,01
	retlw	b'11011100'	;o
	retlw	b'11010000'	;r
	retlw	b'11111001'	;E
	
;Rutina de retardo

Retardo1seg
	movlw	d'10'
	movwf	0C
Cicloexterno2
	movlw	d'100'
	movwf	0B
Cicloexterno1
	movlw	d'249'
	movwf	0E
Ciclointerno
	nop
	decfsz	0E,01
	goto	Ciclointerno
	decfsz	0B,01
	goto	Cicloexterno1
	decfsz	0C,01
	goto	Cicloexterno2
	return

Retardo3seg
	movlw	d'60'
	movwf	0C
Ciclo2externo2
	movlw	d'100'
	movwf	0B
Ciclo2externo1
	movlw	d'249'
	movwf	0E
Ciclo2interno
	nop
	decfsz	0E,01
	goto	Ciclointerno
	decfsz	0B,01
	goto	Cicloexterno1
	decfsz	0C,01
	goto	Cicloexterno2
	return

end

Me gustaría no cambiar mucho la estructura del programa si es posible; Espero obtener sus respuestas, y agradezco por el tiempo.

Saludos a todos.
 
Última edición por un moderador:
Atrás
Arriba