hola a todos bueno tengo una duda trato de programar mi pic de serie 16f877A
cotectado a un display que cuente del 0 al 10 en numero decimales despues del 11 al 15 en hexa decimales osea A, B, C, D, E, F y reincie nuevamente pero en la siguiente seire que solo llegue a E y en la siguiene llegue a D y asi susesivamente esta es la siguiente secuencia, que consta de la primera etapa en forma desendente y en la segunda etapa en forma ascendente y que todo sea seguido...
0, 1, 2, 3, ......, D, E, F
0, 1, 2, 3, ......, D, E
0, 1, 2, 3, ......, D
.
.
.
0, 1, 2, 3
0, 1, 2
0, 1
0
segunda etapa
F, E, D, ........, 3, 2, 1, 0
F, E, D, ........, 3, 2, 1
F, E, D, ........, 3, 2
.
.
.
F, E, D
F, E
F
y una ves que termine comiense nuevamente en un circulo vicioso
mi problema esque llega a F al momento de reiniciarse y empesar nuevamente se me cuelga y se queda en F que puedo hacer k esta mal del codigo que hice si tienen alguna idea o hay algo que le falta poarfa aganme saber ai esta la codigo....
alguien tiene elguna idea??????
cotectado a un display que cuente del 0 al 10 en numero decimales despues del 11 al 15 en hexa decimales osea A, B, C, D, E, F y reincie nuevamente pero en la siguiente seire que solo llegue a E y en la siguiene llegue a D y asi susesivamente esta es la siguiente secuencia, que consta de la primera etapa en forma desendente y en la segunda etapa en forma ascendente y que todo sea seguido...
0, 1, 2, 3, ......, D, E, F
0, 1, 2, 3, ......, D, E
0, 1, 2, 3, ......, D
.
.
.
0, 1, 2, 3
0, 1, 2
0, 1
0
segunda etapa
F, E, D, ........, 3, 2, 1, 0
F, E, D, ........, 3, 2, 1
F, E, D, ........, 3, 2
.
.
.
F, E, D
F, E
F
y una ves que termine comiense nuevamente en un circulo vicioso
mi problema esque llega a F al momento de reiniciarse y empesar nuevamente se me cuelga y se queda en F que puedo hacer k esta mal del codigo que hice si tienen alguna idea o hay algo que le falta poarfa aganme saber ai esta la codigo....
Código:
LIST P=16F877A
RADIX HEX
INCLUDE <P16F877A.INC>
__CONFIG 0X3D31
COUNTER1 EQU 20H
COUNTER2 EQU 21H
COUNTER3 EQU 22H
INDICE EQU 23H
CONTADOR EQU 24H
org 0x00
goto INICIO
org 0x4
INICIO
BSF STATUS,RP0
MOVLW B'10000000'
MOVWF TRISB
BCF STATUS,RP0
INI
CLRF PORTB
CLRF INDICE
MOVLW 0X0F
MOVWF CONTADOR
INCF CONTADOR,F
GOTO BUCLE
DCR
CLRF PORTB
CLRF INDICE
DECF CONTADOR,F
DECFSZ CONTADOR,F
GOTO BUCLE
GOTO INI
BUCLE
MOVF INDICE,W
CALL CODIGO
MOVWF PORTB
CALL DELAY1S
INCF INDICE
DECFSZ CONTADOR,F
GOTO BUCLE
GOTO DCR
CODIGO
ADDWF PCL,F
RETLW 0X3F ;0
RETLW 0X06 ;1
RETLW 0X5B ;2
RETLW 0X4F ;3
RETLW 0X66 ;4
RETLW 0X6D ;5
RETLW 0X7D ;6
RETLW 0X07 ;7
RETLW 0X7F ;8
RETLW 0X67 ;9
RETLW 0X5F ;10
RETLW 0X7C ;11
RETLW 0X58 ;12
RETLW 0X5E ;13
RETLW 0X79 ;14
RETLW 0X71 ;15
DELAY1S
MOVLW D'6'
MOVWF COUNTER3
MOVLW D'24'
MOVWF COUNTER2
MOVLW D'168'
MOVWF COUNTER1
LOOP
DECFSZ COUNTER1,1
GOTO LOOP
DECFSZ COUNTER2,1
GOTO LOOP
DECFSZ COUNTER3,1
GOTO LOOP
RETURN
END
alguien tiene elguna idea??????
Última edición: