hola a todos, acabo de terminar de hacer un proyecto y lo simulo con el isis y funciona perfectamente pero lo he costruido y no me funciona.
se trata de un secuenciador hos pongo el *.ASM
;------------------------------------------------------------
; Código assembler generado por Niple V5.2.0
; Proyecto: taxis
; Autor:
; Fecha: 22/11/2007
; PIC: 16F84A
; Velocidad de reloj: 4 Mhz
; Descripcion:
;------------------------------------------------------------
LIST P=PIC16F84A
_XT_OSC equ 0x3FFD
_WDT_OFF equ 0x3FFB
_PWRTE_ON equ 0x3FF7
_CP_OFF equ 0x3FFF
__config _XT_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF
;------------------------------------------------------------
; Declaración de Registros
;------------------------------------------------------------
w equ 0x0000
status equ 0x0003
portb equ 0x0006
pclath equ 0x000a
_np_tiempo equ 0x000e
_np_tiempo1 equ 0x0010
_np_tiempo2 equ 0x0011
_np_tiempo3 equ 0x0012
trisb equ 0x0086
;------------------------------------------------------------
; Declaración de Bits
;------------------------------------------------------------
c equ 0 ;carry / borrow bit
rb0_int equ 0 ;bit 0 del puerto b
rb1 equ 1 ;bit 1 del puerto b
rb2 equ 2 ;bit 2 delpuerto b
rb3 equ 3 ;bit 3 del puerto b
rb4 equ 4 ;bit 4 del puerto b
rp0 equ 5 ;registrer bank select bit
rp1 equ 6 ;registrer bank select bit
z equ 2 ;bit cero
;------------------------------------------------------------
; Inicio
;------------------------------------------------------------
reset org 0
goto paso2
;------------------------------------------------------------
; programa principal
;------------------------------------------------------------
paso2
movlw b'00000001' ;configurar el puerto b como ssssssse
bsf status,rp0 ;cambiar a banco 1
movwf trisb
bcf status,rp0 ;cambiar a banco 0
bcf portb,rb1
bcf portb,rb2
bcf portb,rb3
bcf portb,rb4
btfsc portb,rb0_int ;si el bit rb0_int = 1
goto paso2 ;cierra el ciclo
bsf portb,rb1 ;rele1 on
movlw .25 ;temporizador 250 mse
call tiempo_100_1000_mc
bcf portb,rb1 ;rele 1 off
movlw .25 ;temporizador 250 mse
call tiempo_100_1000_mc
bsf portb,rb2 ;rele1 on
movlw .25 ;temporizador 250 mse
call tiempo_100_1000_mc
bcf portb,rb2 ;rele 1 off
movlw .25 ;temporizador 250 mse
call tiempo_100_1000_mc
bsf portb,rb3 ;rele1 on
movlw .25 ;temporizador 250 mse
call tiempo_100_1000_mc
bcf portb,rb3 ;rele 1 off
movlw .25 ;temporizador 250 mse
call tiempo_100_1000_mc
bsf portb,rb4 ;rele1 on
movlw .25 ;temporizador 250 mse
call tiempo_100_1000_mc
bcf portb,rb4 ;rele 1 off
movlw .10 ;temporizador 10 seg
call tiempo_1_255_mega_c
goto paso2 ;cierra el ciclo
;------------------------------------------------------------
; Declaración de Subrutinas
;------------------------------------------------------------
tiempo_100_1000_mc
movwf _np_tiempo
goto tiempo_100_1000_mc_1
tiempo_100_1000_mc_bucle2
nop
nop
nop
nop
nop
nop
nop
tiempo_100_1000_mc_1
movlw .22
movwf _np_tiempo1
tiempo_100_1000_mc_bucle1
movlw .150
movwf _np_tiempo2
tiempo_100_1000_mc_bucle
decfsz _np_tiempo2,1
goto tiempo_100_1000_mc_bucle
decfsz _np_tiempo1,1
goto tiempo_100_1000_mc_bucle1
nop
decfsz _np_tiempo,1
goto tiempo_100_1000_mc_bucle2
return
tiempo_1_255_mega_c
movwf _np_tiempo
goto tiempo_1_255_mega_c_1
tiempo_1_255_mega_c_bucle2
nop
nop
nop
nop
nop
nop
nop
tiempo_1_255_mega_c_1
movlw .10
movwf _np_tiempo1
tiempo_1_255_mega_c_bucle1
nop
nop
movlw .99
movwf _np_tiempo2
tiempo_1_255_mega_c_bucle0
nop
nop
nop
movlw .200
movwf _np_tiempo3
tiempo_1_255_mega_c_bucle
nop
nop
decfsz _np_tiempo3,1
goto tiempo_1_255_mega_c_bucle
nop
nop
nop
decfsz _np_tiempo2,1
goto tiempo_1_255_mega_c_bucle0
nop
nop
nop
decfsz _np_tiempo1,1
goto tiempo_1_255_mega_c_bucle1
decfsz _np_tiempo,1
goto tiempo_1_255_mega_c_bucle2
return
End
El practico es tambien muy basico, masa a la pata 5, +5v a la 14
y e resto como el dibujo.
haber si me podeis decir que me pasa
saludos y muchas gracias