Ir ao conteúdo

Queria que alguém corrigi-se meu trabalho incial de microcontrolador....


jwmelo

Posts recomendados

Postado

Estou usando um P16F877A, uso o mplab para programa e compilar, só que não tem erro nenhum mais ele não acende o led....rsrsrsrsrsrsrs......objetivo é que quando apertar o botao o led acenda e ao soltar ele apague..... se alguem tiver alguma ideia de como programar esse PIC em assembler pode me ajudar??????

esse é meu código:

;****************************** Programa modelo ******************************
;******* Nome do programa ***********
;*****************************************************************************

;********************* Definição do processador *****************************

__CONFIG _CP_OFF & _CPD_OFF & _DEBUG_OFF & _LVP_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WDT_OFF

radix dec
#include <P16F877A.INC>
;*****************************************************************************

;*************************** Endereços na RAM ********************************



;************************** Memória de programa ******************************
org 0
goto inicio
;***************************** Interrupção ***********************************
org 4
nop
retfie
;*************************** Inicio do programa ******************************
inicio:
movlw B'00000000' ; w = 0
movwf INTCON ; Desabilita as interrupções
bcf STATUS,RP0 ; seleciona banco 0
movlw B'00001000'
movwf TRISC
movlw B'11110111'
movwf TRISB
principal:
BTFSC PORTC,4
goto acende_led
goto apaga_led

acende_led:
bsf PORTB,4
goto principal

apaga_led:
bcf PORTB,4
goto principal


END

Obrigado a todos.....

Postado

INCLUDE <P16F877A.INC> ;ARQUIVO PADRÃO MICROCHIP PARA 16F877A

__CONFIG _BODEN_OFF & _CP_OFF & _PWRTE_OFF & _WDT_OFF & _LVP_OFF & _XT_OSC

errorlevel -302,-305
;-------------------------------------------
#DEFINE BANK0 BCF STATUS,RP0 ;SETA BANK 0 DE MEMÓRIA
#DEFINE BANK1 BSF STATUS,RP0 ;SETA BANK 1 DE MAMÓRIA
;--------------------------------------------------
CBLOCK 0x20

ENDC
;-------------

ORG 0x00
GOTO INICIO
ORG 0x04
RETFIE

;---------------------------------
INICIO
CLRF PORTA

BANK1
MOVLW 0x06
MOVWF ADCON1
MOVLW B'00000000'
MOVWF TRISA
BANK0
;----------------------
LOOP:
BTFSC PORTC,4
goto acende_led
goto apaga_led
;---------------------
acende_led:
bsf PORTB,4
goto LOOP

apaga_led:
bcf PORTB,4
goto LOOP
;------------------------
END

Se testar num hardware de verdade,vai ter que dar um tempo para testar o botão ,senão vai ser muito rápido a mudança.

Existem mais detalhes a observar mas com o tempo voce perceberá...

Postado
não acendeu nada....=/

mude a seguinte linha

 BANK1
MOVLW 0x06
MOVWF ADCON1
MOVLW B'00000000'
MOVWF TRISA ; Aqui é o TRISB
BANK0

Ja modificado


INCLUDE <P16F877A.INC> ;ARQUIVO PADRÃO MICROCHIP PARA 16F877A

__CONFIG _BODEN_OFF & _CP_OFF & _PWRTE_OFF & _WDT_OFF & _LVP_OFF & _XT_OSC

errorlevel -302,-305
;-------------------------------------------
#DEFINE BANK0 BCF STATUS,RP0 ;SETA BANK 0 DE MEMÓRIA
#DEFINE BANK1 BSF STATUS,RP0 ;SETA BANK 1 DE MAMÓRIA
;--------------------------------------------------
CBLOCK 0x20

ENDC
;-------------

ORG 0x00
GOTO INICIO
ORG 0x04
RETFIE

;---------------------------------
INICIO
CLRF PORTA

BANK1
MOVLW 0x06
MOVWF ADCON1
MOVLW B'00000000'
MOVWF TRISB
BANK0
;----------------------
LOOP:
BTFSC PORTC,4
goto acende_led
goto apaga_led
;---------------------
acende_led:
bsf PORTB,4
goto LOOP

apaga_led:
bcf PORTB,4
goto LOOP
;------------------------
END

Postado

Ae,deculpa,eu não prestei atenção qual os pinos voce está usando.

 INCLUDE <P16F877A.INC> ;ARQUIVO PADRÃO MICROCHIP PARA 16F877A

__CONFIG _BODEN_OFF & _CP_OFF & _PWRTE_OFF & _WDT_OFF & _LVP_OFF & _XT_OSC

ERRORLEVEL -302,-305
;--------------------------------------------------
; CBLOCK 0X20

; ENDC
;-------------
ORG 0X00
GOTO INICIO
ORG 0X04
RETFIE
;---------------------------------
INICIO
CLRF PORTC
CLRF PORTB
BANKSEL TRISA
MOVLW 0X06
MOVWF ADCON1
BANKSEL TRISC
MOVLW B'00010000'
MOVWF TRISC
MOVLW B'00000000'
MOVWF TRISB
;----------------------
BANKSEL PORTC
LOOP:
BTFSC PORTC,4
GOTO APAGA_LED
GOTO ACENDE_LED
;---------------------
ACENDE_LED:
BSF PORTB,4
GOTO LOOP
;-----------------------
APAGA_LED:
BCF PORTB,4
GOTO LOOP
;------------------------
END

Postado

Rapaziada nenhum código funcionou, acho que deve ser defeito no proteus (circuito)... o estranho, q é o circuito pronto la de onde faço curso, no programa do VTRX aparece o LED do bit 4 acesso mais as entradas nao funcionam, já o programa do MOLEY aparece uns 4 leds acesso, a entrada comuta quando aperta mais nenhum led acende ou apaga....rsrsrs...vou tentar montar de volta outro circuito no proteus...Obrigado por enquaanto

  • 4 meses depois...

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...