
;
; By Tomastell       OScilador interno on   WDT  on
; para 16f84 ******programado como oscilador interno******
; no tiene cristal de 4.00 Mhz para simplificar el circuito
;*******************************************************************************************

	  LIST    P=16f84a;f=inhx8m
	
w       equ     0			
f       equ     1	
same	  equ	    1

z       equ   2			
zero	  equ	  2
c	  equ	  0
carry	  equ	  0
	
count1  equ     0C      		
count2  equ	    0D			

portb   equ     06      		
porta	  equ	    05			
status  equ     03     			
time	  equ	    .30			

	  org     0				

init   
	movlw   0				
	tris    portb			
	movwf   portb			
	movlw	B'00000001' 	     
	tris	porta                  
	bcf	porta,0	 			

start
	goto	pulsa 
	
;* ESCRIBE EL MENSAGE AQUI *

fila1	call	lh
	call	lo
	call	ll
	call	la
        call    space1
        call    lm
	call	lu
	call	ln
	call	ld
	call	lo 
	goto	pulsa			

;* fin del mensage  *
	         					
pulsa	bcf	status,1
	movf	porta,w			
	movwf	status			
	btfsc	status,0
	goto	pulsa			
	goto	fila1	


;*RUTINA PARA SACAR LOS CARACTERES A LOS  LED'S EN EL PUERTO B  (PORTB)*

la	call 	wait
	movlw B'01111111'                              
	movwf	portb                                         ;01111111
	call 	wait                                          ;10001000
	movlw	B'10001000'                                   ;10001000
	movwf	portb                                         ;10001000
      call 	wait                                          ;10001000
	movlw	B'10001000'                                   ;10001000
	movwf	portb                                         ;01111111
      call 	wait                                          ;00000000
	movlw	B'10001000'
	movwf	portb
      call 	wait
	movlw	B'10001000'       
	movwf	portb           
      call 	wait
	movlw	B'10001000'
	movwf	portb 
      call 	wait
	movlw	B'01111111'
	movwf	portb
      call 	wait
	movlw	B'00000000'
	movwf	portb
	call 	space1
	return

ld	call 	wait
	movlw B'11111111'                              
	movwf	portb                                         ;11111111
	call 	wait                                          ;10000001
	movlw	B'10000001'                                   ;10000001
	movwf	portb                                         ;10000001
      call 	wait                                          ;10000001
	movlw	B'10000001'                                   ;10000001
	movwf	portb                                         ;01111110
      call 	wait                                          ;00000000
	movlw	B'10000001'
	movwf	portb
      call 	wait
	movlw	B'10000001'
	movwf	portb  
      call 	wait
	movlw	B'10000001'
	movwf	portb 
      call 	wait
	movlw	B'01111110'
	movwf	portb
      call 	wait
	movlw	B'00000000'
	movwf	portb
	call 	space1
	return		

ll	call 	wait
	movlw B'10000001'                              
	movwf	portb                                         ;10000001
	call 	wait                                          ;11111111
	movlw	B'11111111'                                   ;10000001
	movwf	portb                                         ;00000001
      call 	wait                                          ;00000001
	movlw	B'10000001'                                   ;00000001
	movwf	portb                                         ;00000001
      call 	wait                                          ;00000000
	movlw	B'00000001'
	movwf	portb
      call 	wait
	movlw	B'00000001'
	movwf	portb  
      call 	wait
	movlw	B'00000001'
	movwf	portb 
      call 	wait
	movlw	B'00000001'
	movwf	portb
      call 	wait
	movlw	B'00000000'
	movwf	portb
	call 	space1
	return

lm	call 	wait
	movlw B'11111111'                              
	movwf	portb                                         ;11111111
	call 	wait                                          ;01000000
	movlw	B'01000000'                                   ;00100000
	movwf	portb                                         ;00010000
      call 	wait                                          ;00100000
	movlw	B'00010000'                                   ;01000000
	movwf	portb                                         ;11111111
      call 	wait                                          ;00000000
	movlw	B'00010000'
	movwf	portb
      call 	wait
	movlw	B'00100000'
	movwf	portb  
      call 	wait
	movlw	B'01000000'
	movwf	portb 
      call 	wait
	movlw	B'11111111'
	movwf	portb
      call 	wait
	movlw	B'00000000'
	movwf	portb
	call 	space1
	return

ln	call 	wait
	movlw B'11111111'                              
	movwf	portb                                         ;11111111
	call 	wait                                          ;01000000
	movlw	B'01000000'                                   ;00100000
	movwf	portb                                         ;00010000
      call 	wait                                          ;00001000
	movlw	B'00100000'                                   ;00000100
	movwf	portb                                         ;11111111
      call 	wait                                          ;00000000
	movlw	B'00010000'
	movwf	portb
      call 	wait
	movlw	B'00001000'
	movwf	portb  
      call 	wait
	movlw	B'00000100'
	movwf	portb 
      call 	wait
	movlw	B'11111111'
	movwf	portb
      call 	wait
	movlw	B'00000000'
	movwf	portb
	call 	space1
	return

lo	call 	wait
	movlw B'01111110'                              
	movwf	portb                                         ;01111110
	call 	wait                                          ;10000001
	movlw	B'10000001'                                   ;10000001
	movwf	portb                                         ;10000001
      call 	wait                                          ;10000001
	movlw	B'10000001'                                   ;10000001
	movwf	portb                                         ;01111110
      call 	wait                                          ;00000000
	movlw	B'10000001'
	movwf	portb
      call 	wait
	movlw	B'10000001'
	movwf	portb  
      call 	wait
	movlw	B'10000001'
	movwf	portb 
      call 	wait
	movlw	B'01111110'
	movwf	portb
      call 	wait
	movlw	B'00000000'
	movwf	portb
	call 	space1
	return

lu	call 	wait
	movlw B'11111110'                              
	movwf	portb                                         ;11111110
	call 	wait                                          ;00000001
	movlw	B'00000001'                                   ;00000001
	movwf	portb                                         ;00000001
      call 	wait                                          ;00000001
	movlw	B'00000001'                                   ;00000001
	movwf	portb                                         ;11111110
      call 	wait                                          ;00000000
	movlw	B'00000001'
	movwf	portb
      call 	wait
	movlw	B'00000001'
	movwf	portb  
      call 	wait
	movlw	B'00000001'
	movwf	portb 
      call 	wait
	movlw	B'11111110'
	movwf	portb
      call 	wait
	movlw	B'00000000'
	movwf	portb
	call 	space1
	return


space1	movlw	B'00000000'		
	call 	wait
	movlw	B'00000000'
	movwf	portb
	movlw	B'00000000'
	return

wait    
	movlw   time	        
	movwf   count1

d1	movlw   time		
	movwf   count2	
					
d2	decfsz  count2,same	
	goto 	d2			
	decfsz  count1		
	goto 	d1		
	retlw 	00   
END



