Ir ao conteúdo
  • Cadastre-se
Kauany Renata

Resolvido - programar pic16f876a com mplab

Recommended Posts

Seguinte pessoal, to tentando programar um PIC16F876A no MPLAB X IDE v3.4

Problema que nada que eu faça funciona. Tudo que eu faço não acontece nada, ja tentei pegar códigos prontos na internet mas ai o MPLAB acusa erros pois tudo que eu acho são códigos que usam uma extensão CCS compiler pro MPLAB mas no meu não ta funcionando. Então tento adaptar os códigos para a linguagem q funcione e mesmo assim nada. Reduzi o código para só piscar o LED e mesmo assim nada:

#include <xc.h>
#include <stdlib.h>
#include <stdio.h>
#include <pic16f876a.h> //Biblioteca do dispositivo PIC16F876A

// CONFIG
__CONFIG( XT & WDTDIS & PWRTEN & BOREN & LVPDIS )
#pragma config FOSC = HS        // Oscillator Selection bits (HS oscillator)
#pragma config WDTE =        // Watchdog Timer ligado
#pragma config PWRTE = OFF      // Power-up Timer Enable bit (PWRT disabled)
#pragma config BOREN = OFF      // Brown-out Reset Enable bit (BOR disabled)
#pragma config LVP = OFF        // Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit (RB3 is digital I/O, HV on MCLR must be used for programming)
#pragma config CPD = OFF        // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off)
#pragma config WRT = OFF        // Flash Program Memory Write Enable bits (Write protection off; all program memory may be written to by EECON control)
#pragma config CP = OFF         // Flash Program Memory Code Protection bit (Code protection off)


#ifndef _XTAL_FREQ
#define _XTAL_FREQ 20000000
#define __delay_us(x) _delay((unsigned long)((x)*(_XTAL_FREQ/4000000.0)))
#define __delay_ms(x) _delay((unsigned long)((x)*(_XTAL_FREQ/4000.0)))
#endif
#pragma intrinsic(_delay)

//Configuração das portas

#define PORTA (*(volatile near unsigned char*)0x05)      //PORTA no endereço 0x05
#define TRISA (*(volatile near unsigned char*)0x85)       //TRISA no endereço 0x85

#define TRISB (*(volatile near unsigned char*)0x86)       //TRISB no endereço 0x86
#define PORTB (*(volatile near unsigned char*)0x06)       //PORTB no endereço 0x06

#define PORTC (*(volatile near unsigned char*)0x07)      // PORTC no endereço 0x07
#define TRISC (*(volatile near unsigned char*)0x87)      //TRISC no endereço 0x87

#define STATUS (*(volatile near unsigned char*)0x81)       //Informa o endereço de memoria do registrador STATUS

void main() {  

    TRISA = 0b00000000; // define as portas A como saida 
    TRISB = 0b00000000; //define as portas B como saida 
    TRISC = 0b10000000; //define as portas C como entrada, exceto pin18

    PORTB = 0B00000000; //Limpa portB  
    PORTC = 0B00000000; //Limpa portC

    for (;;) {

      
        PORTC = 0B11111111;
        
        __delay_ms(100);
        PORTC = 0B00000000;
        __delay_ms(100);
        
        
    }
}

Me ajudem por favor!

Editado por Wesley Marcello

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando migrei do ccs para mplab tb tive as mesmas dificuldades.

Vai compilando códigos simples até maiores.

Primeiro faz só o esse código:

 

#include <xc.h>

#include <pic16f876a.h>

 

main()

{

While(1)

{;}

}

 

Vê se compila...a partir daí tu coloca os fuses e vai incrementando.

Se não compilar isso aí pode ser algum problema de diretório, daí sugiro apagar esse projeto é criar um novo. Presta bastante atenção nos erros. E o mais importante: paciência. Depois que estiver mais familiarizado daí sim pode partir para converter programas do ccs pro mplab.

 

Abraço 

Editado por Rafael Del Pino
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Talvez (talvez) ajudasse a te ajudarem se dissesse QUAIS erros aparecem né.

 

Tenta setar os fuses no ato da programação, verifique sua montagem, reset, vcc, led invertido, que cor ele é  e etc

Algo me diz que é alguma cagadinha bem básica

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

puts! sabia! o led tinha que ser verde né! Já falei que não pode pow!!

 

Parece que você compila um e quer gravar outro. 'Prestenção' nas mensagens! Prestenção no failed to program device. Aí não né! Prestenção!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites
34 minutos atrás, Isadora Ferraz disse:

puts! sabia! o led tinha que ser verde né! Já falei que não pode pow!!

 

Parece que você compila um e quer gravar outro. 'Prestenção' nas mensagens! Prestenção no failed to program device. Aí não né! Prestenção!!!!

Pow se eu to vindo aqui é porque tenho dificuldade, na moral mesmo. porque n pode ser LED verde? Nunca soube disso. E o q quer dizer esse erro? Na moral mesmo, n manjo. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

kk. Hoje eu tava precisando rir 1 pouco mesmo. Permita-me não comentar sobre a cor do led ok?

Seguinte... nunca usei este ambiente mplabx mas ao ler(*) as mensagens em vermelho me pareceu que o sistema (programador ou gravador) localiza um mc diferente daquele que esperava. Penso que você deve verificar nas configurações do sistema a partir desta pista. você quer gravar o 876A né? Poizé. Verique nos menus onde menciona isso.

Já tentou simular? p.ex. no proteus?

(*) se tem alguma dificuldade com inglês (está lascado neste ramo) tente usar o google tradutor

 

Sobre a montagem, coloque um capacitor 100nF entre pino reset e gnd ok?

 

Sobre a cor do led, é que... af... quase esqueci que falei que não ia comentar

 

Ah ... quase ia esquecendo:de nada e desculpa! kk!

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

O meu problema n é o inglês não, até porque se fosse, como você disse, existe o google tradutor. Meu problema era identificar a solução para tal. Consegui resolver, era o MPLAB. Mt obrigada. Ah e funcionou com o LED VERDE mesmo. Grata. :tw_blush:

Compartilhar este post


Link para o post
Compartilhar em outros sites

you are welcome

Well...

Se achas que és a única pessoa nesta existência que teve ou terá o mesmo problema, esta foi e será sua única dificuldade na sua vida toda, nunca mais-jamais-pelo resto da vida vais precisar consultar foruns de novo, tudo bem. Nem precisas publicar a solução efetiva. Caso contrário, não te acanhes em compartilhar a real solução. Afinal, este é o preço que o forum "cobra"

kss

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema era o MPLAB, reinstalei e deu certo. Com certeza precisarei de fóruns como este, até mesmo este, novamente. Não sei tudo, mt pelo contrário. Só espero não encontrar alguém que satirize da minha falta de conhecimento quando precisar de ajuda novamente. 

Grata. 

Compartilhar este post


Link para o post
Compartilhar em outros sites
57 minutos atrás, Kauany Renata disse:

reinstalei e deu certo

tá vendo? nem doeu

Sobre sátiras, desconhecimentos e afins 1ª mente desculpa. é mais forte que eu. Mas no meio delas você notaria alguma tentativa de ajuda sim. Se não as percebeu, não te preocupes: você faz parte da maioria

 

E se depender de mim, de novo, não te preocupes...

helper--;//entendes inglês... e de C?... talvez..

o comentário é uma poesia final kk

 

Boa sorte na carreira

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×