PROGRAMAÇÃO DIMMER
Por: SonSolimar • 25/9/2018 • 1.832 Palavras (8 Páginas) • 279 Visualizações
...
CLRF CCPR1L; INICIA O PWM EM ZERO, ( CCPR1L É ULTILIZADO PARA CONFIGURA OS 8 BITS MAIS SIGNIFICATIVOS DO PWM)
;______________________________________________________________________________
MAIN; INICIO
MOVLW 0X00 ; ACIDIONAR O VALOR "0" NA VARIAVEL W.
MOVWF CONTADOR ; MOVER O VALOR DA VARIAVEL W PARA A VARIAVEL CONTADOR.
EXIBIR_NO_DISPLAY ; CHAMA SUBROTINA EXIBIR_NO_DISPLAY.
CALL ATUALIZA ; CHAMA SUBROTINA PARA APRESENTAR O VALOR DA VARIAVEL "CONTADOR" NO DISPLAY DE 7 SEGMENTOS.
CALL VERIFICACAO_DO_PWM ;SUBROTINA PARA VERIRIFICAR VALOR DA VARIAVEL CONTADOR E ADICIONAR O PERCENTUAL NA SAIDA DO PWM.
BTFSS PORTB,1 ; VERIFICA SE O BOTAO (RB1) ESTA PRESIONADO; SE ESTIVER EXECUTE A PROXIMA INSTRUCAO SENAO, EXECUTE A SEGUNDA INSTRUCAO.
GOTO INCREMENTAR_INICIO ; SALTA PARA LABEL INCREMENTAR_INICIO
BTFSS PORTB,0 ; VERIFICA SE O BOTAO (RB2) ESTA PRESIONADO; SE ESTIVER EXECUTE A PROXIMA INSTRUCAO SENAO, EXECUTE A SEGUNDA INSTRUCAO.
GOTO DECREMENTAR_INICIO ; SALTA PARA LABEL DECREMENTAR_INICIO.
GOTO EXIBIR_NO_DISPLAY ; CHAMA SUBROTINA EXIBIR_NO_DISPLAY.
;______________________________________________________________________________
VERIFICACAO_DO_PWM ; VERIRIFICAR VALOR DA VARIAVEL CONTADOR E ADICIONAR O PERCENTUAL NA SAIDA DO PWM.
;DISPLAY EM ZERO, SEM PWM.
MOVF CONTADOR,W ;MOVER O VALOR DA VARIAVEL "CONTADOR" PARA O REGISTRADOR "W".
XORLW B'0000' ;OPERACAO L0GICA OU EXCLUSIVO, ENTRE UM VALOR LITERAL INFORMADO E O VALOR CONTIDO NO REGISTRADOR W. O BIT Z DO REGISTRADOR STATUS SERA ZERADO O VALOR QUANDO O VALOR DE W FOR IGUAL AO VALOR LITERAL INFORMADO.
BTFSC STATUS,Z ; VERIFICAR O VALOR DO REGISTRADOR Z, CASO SEJA "0" EXECUTE A PROXIMA INTRUCAO, SENAO EXECUTE A SEGUNDA INSTUCAO.
CALL ZERO
;DISPLAY EM UM, 10 PORCENTO PWM
MOVF CONTADOR,W ;MOVER O VALOR DA VARIAVEL "CONTADOR" PARA O REGISTRADOR "W".
XORLW B'0001' ;OPERACAO L0GICA OU EXCLUSIVO, ENTRE UM VALOR LITERAL INFORMADO E O VALOR CONTIDO NO REGISTRADOR W. O BIT Z DO REGISTRADOR STATUS SERA ZERADO O VALOR QUANDO O VALOR DE W FOR IGUAL AO VALOR LITERAL INFORMADO.
BTFSC STATUS,Z ; VERIFICAR O VALOR DO REGISTRADOR Z, CASO SEJA "0" EXECUTE A PROXIMA INTRUCAO, SENAO EXECUTE A SEGUNDA INSTUCAO.
CALL UM
;DISPLAY EM DOIS, 20 PORCENTO PWM
MOVF CONTADOR,W ;MOVER O VALOR DA VARIAVEL "CONTADOR" PARA O REGISTRADOR "W".
XORLW B'0010' ;OPERACAO L0GICA OU EXCLUSIVO, ENTRE UM VALOR LITERAL INFORMADO E O VALOR CONTIDO NO REGISTRADOR W. O BIT Z DO REGISTRADOR STATUS SERA ZERADO O VALOR QUANDO O VALOR DE W FOR IGUAL AO VALOR LITERAL INFORMADO.
BTFSC STATUS,Z ; VERIFICAR O VALOR DO REGISTRADOR Z, CASO SEJA "0" EXECUTE A PROXIMA INTRUCAO, SENAO EXECUTE A SEGUNDA INSTUCAO.
CALL DOIS
;DISPLAY EM TRES, 30 PORCENTO PWM
MOVF CONTADOR,W ;MOVER O VALOR DA VARIAVEL "CONTADOR" PARA O REGISTRADOR "W".
XORLW B'0011' ;OPERACAO L0GICA OU EXCLUSIVO, ENTRE UM VALOR LITERAL INFORMADO E O VALOR CONTIDO NO REGISTRADOR W. O BIT Z DO REGISTRADOR STATUS SERA ZERADO O VALOR QUANDO O VALOR DE W FOR IGUAL AO VALOR LITERAL INFORMADO.
BTFSC STATUS,Z ; VERIFICAR O VALOR DO REGISTRADOR Z, CASO SEJA "0" EXECUTE A PROXIMA INTRUCAO, SENAO EXECUTE A SEGUNDA INSTUCAO.
CALL TRES
;DISPLAY EM QUATRO, 40 PORCENTO PWM
MOVF CONTADOR,W ;MOVER O VALOR DA VARIAVEL "CONTADOR" PARA O REGISTRADOR "W".
XORLW B'0100' ;OPERACAO L0GICA OU EXCLUSIVO, ENTRE UM VALOR LITERAL INFORMADO E O VALOR CONTIDO NO REGISTRADOR W. O BIT Z DO REGISTRADOR STATUS SERA ZERADO O VALOR QUANDO O VALOR DE W FOR IGUAL AO VALOR LITERAL INFORMADO.
BTFSC STATUS,Z ; VERIFICAR O VALOR DO REGISTRADOR Z, CASO SEJA "0" EXECUTE A PROXIMA INTRUCAO, SENAO EXECUTE A SEGUNDA INSTUCAO.
CALL QUATRO
;DISPLAY EM CINCO, 50 PORCENTO PWM
MOVF CONTADOR,W ;MOVER O VALOR DA VARIAVEL "CONTADOR" PARA O REGISTRADOR "W".
XORLW B'0101' ;OPERACAO L0GICA OU EXCLUSIVO, ENTRE UM VALOR LITERAL INFORMADO E O VALOR CONTIDO NO REGISTRADOR W. O BIT Z DO REGISTRADOR STATUS SERA ZERADO O VALOR QUANDO O VALOR DE W FOR IGUAL AO VALOR LITERAL INFORMADO.
BTFSC STATUS,Z ; VERIFICAR O VALOR DO REGISTRADOR Z, CASO SEJA "0" EXECUTE A PROXIMA INTRUCAO, SENAO EXECUTE A SEGUNDA INSTUCAO.
CALL CINCO
;DISPLAY EM SEIS, 60 PORCENTO PWM
MOVF CONTADOR,W ;MOVER O VALOR DA VARIAVEL "CONTADOR" PARA O REGISTRADOR "W".
XORLW B'0110' ;OPERACAO L0GICA OU EXCLUSIVO, ENTRE UM VALOR LITERAL INFORMADO E O VALOR CONTIDO NO REGISTRADOR W. O BIT Z DO REGISTRADOR STATUS SERA ZERADO O VALOR QUANDO O VALOR DE W FOR IGUAL AO VALOR LITERAL INFORMADO.
BTFSC STATUS,Z ; VERIFICAR O VALOR DO REGISTRADOR Z, CASO SEJA "0" EXECUTE A PROXIMA INTRUCAO, SENAO EXECUTE A SEGUNDA INSTUCAO.
CALL SEIS
;DISPLAY EM SETE, 70 PORCENTO PWM
MOVF CONTADOR,W
...