            LIST        p=16f73 
             list       c=132
			#include	<p16f73>			 
opcion       equ       0x01
step         equ       0x20
phrase       equ       0x21
play         equ       0x22
stop         equ       0x23
continue     equ       0x24
timming      equ       0x25
menos        equ       0x26
mas          equ       0x27
suma		 equ       0x28
estado       equ       0x29

	org     0                   
	goto    empieza
    org     4
    goto    interrupcion
    org     5
empieza
	movlw   b'11111010' ;carga  a w
    movwf   play 
    movlw   b'11111100' ;carga  a w
    movwf   stop
    movlw   b'11111011' ;carga  a w
    movwf   continue
	movlw	b'11111000' ;carga  a w
	movwf	timming
	movlw	b'10111000'	;mueve a w
	movwf	intcon        
	bsf     status, 5      
	movlw	b'00010110'
	movwf	trisa
	movlw	b'11100001'
	movf	trisb    
	movlw	b'11000000'	
	movwf   trisc       ;configuro los puertos de c
	bcf		rcsta,spen	;habilito rc6/out y rc7/in 
    movlw	b'10110100' ;Se elige el modo asincrono (SYNC=1),dato de 8 bits
    movwf   txsta       ;y alta velocidad (BRGH=1)
    movlw   26          ;Se carga 26 en el registro SPBRG
    movwf   spbrg   	;con lo cual se trabaja a 31250baudios con 20 mgh de f.osc  	
    bcf     status, 5
    goto    start
start
	movfw	timing, w
	movwf	TXREG		; Movemos lo que queremos transmitir 	
	bsf 	STATUS,5	; al registro TXREG y empezamos a transmitir 
FIN	
	btfss	RCSTA,1		; Compruebo si el bit TMRT del registro esta 
                        ; a '1' o a '0'.
	goto	FIN			; Si esta a '0' es que esta lleno TMRT y no 
						; ha terminado de transmitir, 
						; para ello TRMT tiene que estar a 1, hasta 
						; entonces esperamos. 
	bcf	STATUS,5    	; Elegimos BANCO0		
;aqui hacer un bucle que tarde 3 microsegundos
	
	goto    start
		    	
			    		
		    		

