hace 17 años
hola a todos inicio en estas cosas del pic, ya arme mi cargador, mi tarjeta de desarrollo (muy cavernicola), y por fin hice un programita de contador 0-9 disp 7 segmentos. en el sim2000 jala muy padre y segun no hay errores ni detalles pero en fisico solo hace 0-5. lo mismo me sucede con otros programas igual de sencillos dejo mi texto a ver que opinan. alguine me diria si esta mal mi programa o el sim2000.
LIST P=16f84A
RADIX HEX
trisB EQU 0X06
w EQU 0
f EQU 1
PC EQU 0x02
PUERTAB EQU 0x06
ESTADO EQU 0x03
;DEFINICION DE VARIABLES-------------------------------------------------
CUENTA EQU 0x12
TIME1 EQU 0x0e
TIME2 EQU 0X0f
TIME3 EQU 0x10
DIEZ EQU 0x11
; RUTINA PRINCIPAL--------------------------------------------------------
org 0
goto inicio ; salta Vector de Interrupcion
;------------------------------------------------------------------------
org 0x05
inicio bsf ESTADO,5 ; Seleccion del banco 1
clrf trisB
bcf ESTADO,5 ; Seleccion banco 0
clrf PUERTAB
movlw 0x0a
movwf DIEZ
;MODULO CONTADOR -------------------------------------------------------
reset clrf CUENTA
lcd movf CUENTA,w
call tabla
movwf PUERTAB
call retar1
incf CUENTA
movf CUENTA,w
sublw 0x0a
btfsc ESTADO,2
goto reset
goto lcd
;------------------------------------------------------------------------
retar1 movlw 0xff
movwf TIME1
ciclo1 decfsz TIME1,f ;1.24mSx 256(ffH)=317.442mS on y 317.44 off en teoria
goto retar2 ;pero en reailidad nos dio 60 mS on y 60 mS off
nop
return
;------------------------------------------------------------------------
retar2 movlw 0xff
movwf TIME2
ciclo2 decfsz TIME2,f
goto ciclo2 ;256x.025mS=1.24mS
goto retar3
;-------------------------------------------------------------------------
retar3 movlw 0xff
movwf TIME3
ciclo3 decfsz TIME3,F
goto ciclo3
goto ciclo1
;TABLA DE CONVERSION---------------------------------------------------------
tabla addwf PC,f ; pcl + W -> W
; El pcl se incrementa con el
; valor de W proporcionando un
; salto
display retlw 0x3f ; Retorna con el c¢digo del 0 3f
retlw 0x06 ; Retorna con el c¢digo del 1
retlw 0x5b ; Retorna con el c¢digo del 2
retlw 0x4f ; Retorna con el c¢digo del 3
retlw 0x66 ; Retorna con el c¢digo del 4
retlw 0x6d ; Retorna con el c¢digo del 5
retlw 0x7d ; Retorna con el c¢digo del 6
retlw 0x07 ; Retorna con el c¢digo del 7
retlw 0x7f ; Retorna con el c¢digo del 8
retlw 0x6f ; Retorna con el c¢digo del 9
END
orientenme por favor
¿Realmente quieres cerrar esta reparación?
Sí
No
¿Realmente quieres reabrir esta reparación?
Sí
No
¿Realmente quieres borrar este post?
Sí
No