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!