Jump to content
Sign in to follow this  
skyvirus

Ajuda em programaçao de PIC.....

Recommended Posts

skyvirus

antes de mais boa tarde...

tou a ter algumas dificuldades na construçao do seguinte programa, devido ao facto de nao ter muitas bases de Progamaçao em PIC o programa que tou a tentar construir e o seguinte....

lê o registo 0E0H informa se o byte tem nº par ou impar e se for par coloca RB1 =1 se impar coloca RB2=0, abaixo mostro o codigo que utilizei...

#include <p16f628A.inc>

__CONFIG _CP_OFF & _LVP_OFF & _BOREN_OFF & _MCLRE_ON & _WDT_OFF & _PWRTE_ON & _INTOSC_OSC_NOCLKOUT

i  EQU 0X0E2

; CONTA O NUMERO DE REPETIÇÕES DE 0 A 7

org 0x000

goto principal

org 0x00A

principal    MOVLW 0x07

        MOVWF CMCON        ; esta instrução liberta pinos RB0 a RB3 dos comparadores analógicos     

        BSF  STATUS, 5; selecciona o banco 1

        BCF TRISB,1 ;PROGRAMA O PINO RB1 COMO OUTPUT

       

        CLRF 0X0E1      ;LIMPA O REGISTO ONDE VAI FICAR A SOMA DOS ZEROS

        CLRF i ; INICIA O CONTADOR DE CICLO

        BCF STATUS, C; LIMPAR O CARRY

; INICIO DE CICLO QUE CONTA Nº DE 1S NO BYTE DA POSIÇÃO 0B0

INICIO:      RRF 0X0E0,1 ; RODA PARA A DIREITA PARA O CARRY

        BTFSC STATUS,0 ;TESTA O BIT SE ZERO

     

        INCF i,1  ; APANHOU UM '1'

        MOVLW 0X08  ; COLOCA NO w O FIM DO CICLO 8= Nº DE BITA A TESTAR

        ANDWF i,0

        BTFSC STATUS, Z

        GOTO INICIO

        BTFSS 0X0E1,0  ;TESTA O BIT MENOS PESADO DO VALOR DA CONTAGEM DE 1S

;SE FOR UM É PORQUE A SOMA DE UNS É IMPAR

        GOTO ESCREVE1

          BCF PORTB,1; ESCREVE O NO PINO RB1, PORQUE É PAR O Nº DE 1S

ESCREVE1:  BSF PORTB,1  ; ESCREVE 1 NO PINO RB1, PORQUE É IMPAR O Nº DE 1S EM 0E0H

 

        END

Agradecia ajuda.... OBRIGADO

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.