Hola buenas
Hace tiempo no me conectaba a estos foros =P.
Tengo un problema y me gustaría ver si me pueden ayudar. Tengo el siguiente problema.
He programado un PIC16F84A con el siguiente programa, al simularlo corre perfectamente y hace todos los cambios, el programa hace la función de 3 PWM´s y lo he colocado en un LED RGB y e podido programar varios colores, pero al querer que cada cierto tiempo cambie, este si lo hace 1 ves del original al siguiente del tercero en adelante no los cambia, pero en los simuladores si hace todos los cambios.
En resumen es un problema de Realidad Vs. Simulación. Alguien sabe que me falla en la realidad?
Aquí les pongo el programa
Hace tiempo no me conectaba a estos foros =P.
Tengo un problema y me gustaría ver si me pueden ayudar. Tengo el siguiente problema.
He programado un PIC16F84A con el siguiente programa, al simularlo corre perfectamente y hace todos los cambios, el programa hace la función de 3 PWM´s y lo he colocado en un LED RGB y e podido programar varios colores, pero al querer que cada cierto tiempo cambie, este si lo hace 1 ves del original al siguiente del tercero en adelante no los cambia, pero en los simuladores si hace todos los cambios.
En resumen es un problema de Realidad Vs. Simulación. Alguien sabe que me falla en la realidad?
Aquí les pongo el programa
Código:
__CONFIG _CP_OFF & _WDT_OFF & _HS_OSC & _PWRTE_ON
list P=16f84A
INCLUDE "P16F84A.INC"
#DEFINE PWMR PORTB, 1
#DEFINE PWMA PORTB, 2
#DEFINE PWMV PORTB, 3
#DEFINE RETOMAR 0X30, 0
TMR0AUX EQU 0X20
VALORR EQU 0X21
VALORA EQU 0X22
VALORV EQU 0X23
ROJO EQU 0X24
AZUL EQU 0X25
VERDE EQU 0X26
SIGUI1 EQU 0X27
SIGUI2 EQU 0X28
SIGCOLOR EQU 0X29
ORG 0X00
GOTO INICIO
ORG 0X04
BSF RETOMAR
BCF INTCON, 2
INCFSZ SIGUI1
GOTO NADA
INCFSZ SIGUI2
GOTO NADA
INCF SIGCOLOR
PRIMERO MOVF SIGCOLOR, 0
XORLW D'1'
BTFSS STATUS, Z
GOTO SEGUNDO
MOVLW D'254'
MOVWF ROJO
MOVLW D'0'
MOVWF VERDE
MOVLW D'254'
MOVWF AZUL
GOTO NADA
SEGUNDO MOVF SIGCOLOR, 0
XORLW D'2'
BTFSS STATUS, Z
GOTO TERCERO
MOVLW D'253'
MOVWF ROJO
MOVLW D'0'
MOVWF VERDE
MOVLW D'254'
MOVWF AZUL
GOTO NADA
TERCERO MOVF SIGCOLOR, 0
XORLW D'3'
BTFSS STATUS, Z
GOTO CUARTO
MOVLW D'0'
MOVWF ROJO
MOVLW D'0'
MOVWF VERDE
MOVLW D'254'
MOVWF AZUL
GOTO NADA
CUARTO MOVF SIGCOLOR, 0
XORLW D'4'
BTFSS STATUS, Z
GOTO QUINTO
MOVLW D'0'
MOVWF ROJO
MOVLW D'254'
MOVWF VERDE
MOVLW D'254'
MOVWF AZUL
GOTO NADA
QUINTO MOVF SIGCOLOR, 0
XORLW D'5'
BTFSS STATUS, Z
GOTO SEXTO
MOVLW D'0'
MOVWF ROJO
MOVLW D'254'
MOVWF VERDE
MOVLW D'64'
MOVWF AZUL
GOTO NADA
SEXTO MOVF SIGCOLOR, 0
XORLW D'6'
BTFSS STATUS, Z
GOTO SEPTIMO
MOVLW D'254'
MOVWF ROJO
MOVLW D'254'
MOVWF VERDE
MOVLW D'0'
MOVWF AZUL
GOTO NADA
SEPTIMO MOVF SIGCOLOR, 0
XORLW D'7'
BTFSS STATUS, Z
GOTO OCTAVO
MOVLW D'254'
MOVWF ROJO
MOVLW D'128'
MOVWF VERDE
MOVLW D'0'
MOVWF AZUL
GOTO NADA
OCTAVO MOVF SIGCOLOR, 0
XORLW D'8'
BTFSS STATUS, Z
GOTO NOVENO
MOVLW D'183'
MOVWF ROJO
MOVLW D'180'
MOVWF VERDE
MOVLW D'72'
MOVWF AZUL
GOTO NADA
NOVENO MOVF SIGCOLOR, 0
XORLW D'9'
BTFSS STATUS, Z
GOTO DECIMO
MOVLW D'111'
MOVWF ROJO
MOVLW D'145'
MOVWF VERDE
MOVLW D'139'
MOVWF AZUL
GOTO NADA
DECIMO MOVLW D'254'
MOVWF ROJO
MOVLW D'0'
MOVWF AZUL
MOVLW D'0'
MOVWF VERDE
CLRF SIGCOLOR
GOTO NADA
NADA RETFIE
INICIO CLRF STATUS
BSF STATUS, RP0
CLRF TRISA
CLRF TRISB
MOVLW B'10100000'
MOVWF 0X0B
MOVLW B'10000101'
MOVWF OPTION_REG
BCF STATUS, RP0
CLRF SIGCOLOR
MOVLW D'254'
MOVWF ROJO
MOVWF VALORR
MOVLW D'0'
MOVWF AZUL
MOVWF VALORA
MOVLW D'0'
MOVWF VERDE
MOVWF VALORV
CLRF PORTA
CLRF PORTB
;SECCION DEL PWM PARA EL COLOR ROJO--------------------------------------------------
SIGPWMR MOVF TMR0,0
MOVWF TMR0AUX
MOVF VALORR, 0
BTFSC STATUS, Z
GOTO NOROJO
BCF PWMR
XORWF TMR0AUX, 0
BTFSS STATUS, Z
GOTO SIGPWMA
NOROJO BSF PWMR
CLRF VALORR
;SECCION DEL PWM PARA EL COLOR AZUL--------------------------------------------------
SIGPWMA MOVF VALORA, 0
BTFSC STATUS, Z
GOTO NOAZUL
BCF PWMA
XORWF TMR0AUX, 0
BTFSS STATUS, Z
GOTO SIGPWMV
NOAZUL BSF PWMA
CLRF VALORA
;SECCION DEL PWM PARA EL COLOR VERDE-------------------------------------------------
SIGPWMV MOVF VALORV, 0
BTFSC STATUS, Z
GOTO NOVERDE
BCF PWMV
XORWF TMR0AUX, 0
BTFSS STATUS, Z
GOTO RELLENO
NOVERDE BSF PWMV
CLRF VALORV
;SECCION DEL RELLENADO DE COLOR-------------------------------------------------------
RELLENO BTFSS RETOMAR
GOTO SIGPWMR
MOVF ROJO, 0
MOVWF VALORR
MOVF AZUL, 0
MOVWF VALORA
MOVF VERDE, 0
MOVWF VALORV
BCF RETOMAR
GOTO SIGPWMR
END
Última edición por un moderador: