muchas gracias , he revisado los cambios de pagina y habia alguno mas que no estaba en la adecuada , creo haberlos puesto donde va cada uno , aun asi no funciona
estoy empezando a pensar que algo no me funciona en el isis para simular el circuito, pero seguramente sea algun error mas que se me ha pasado.
y hasta el momento no funciona
LIST p=16f73
list c=132
#include <p16f73>
opcion equ 0x81
step equ 0x20
phrase equ 0x21
play equ 0x22
stop equ 0x23
continue equ 0x24
timming equ 0x25
mas equ 0x27
suma equ 0x28
estado equ 0x29
PDel0 equ 0x30
PDel1 equ 0x31
PDel2 equ 0x32
org 0
goto empieza
org 4
goto interrupcion
empieza
;--------------------carga de los valores en sus registros
bcf status, rp0 ;pagina 0
movlw b'11111000' ;cargo a w
movwf timing ;y w a timing
bcf rcsta, cren ;desactiva la recepcion, por defecto estara a 0 pero por si acaso
bsf rcsta, spen ;habilito rc6/out y rc7/in
bsf status, rp0 ;pagina 1
movlw b'00010110'
movwf trisa
movlw b'11100001'
movf trisb
movlw b'11000000'
movwf trisc ;configuro los puertos de c como pone en el datasheet 11000000
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
bsf intcon, gie ;activacion de las interrupciones
bsf intcon, toie ;act. interrupcion del timer 0
bsf intcon, inte ;act. interrupcion del pb0
bsf intcon, rbie ;act. interrupcion del cambio de estado de la pb4-pb7
bcf status, rp0 ;pagina 0
goto start
start
movwf timing, w
movwf TXREG ; Movemos lo que queremos transmitir de w a TXREG
call FIN ;mueve a la subrutina FIN
;---------------------------------------aqui, me pregunto yo, si no habra que activar algún bit para que comienze la transmisión
FIN btfss txsta, trmt ; 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.
;---------------------------------------rutina de retardo de un tercio de segundo 333us aprox la he sacado
;---------------------------------------del programita tan guai que hay para descargar en este mismo foro, picdel
DEMORA movlw 8 ; 1 set numero de repeticion (C)
movwf PDel0 ; 1 |
PLoop0 movlw 215 ; 1 set numero de repeticion (B)
movwf PDel1 ; 1 |
PLoop1 movlw 241 ; 1 set numero de repeticion (A)
movwf PDel2 ; 1 |
PLoop2 clrwdt ; 1 clear watchdog
decfsz PDel2, 1 ; 1 + (1) es el tiempo 0 ? (A)
goto PLoop2 ; 2 no, loop
decfsz PDel1, 1 ; 1 + (1) es el tiempo 0 ? (B)
goto PLoop1 ; 2 no, loop
decfsz PDel0, 1 ; 1 + (1) es el tiempo 0 ? (C)
goto PLoop0 ; 2 no, loop
PDelL1 goto PDelL2 ; 2 ciclos delay
PDelL2 clrwdt ; 1 ciclo delay
return ; 2+2 Fin.
graciasmil y un saludo