Pesquisar neste blog

22/05/2022

Memória EEPROM com PIC 16F877A

 Objetivo: Gravar um dado na memória EEPROM a cada pressionada de botão

Código feito no CCS C Compiler

#include <16F877A.h>
#device adc = 10
#include <math.h>
#use delay(clock = 4MHz)
#fuses XT, NOWDT, NOPROTECT, NOBROWNOUT, PUT, NOLVP
#include <lcd.c>

#define value pin_b1

int8 data = 30, a = 100, location = 0, read_data; // read_data = 255
float analog_temp, actual_temp, temp_ms;

void main(){
   setup_adc(ADC_CLOCK_DIV_32);
   lcd_init();
   read_data = read_eeprom(15); //retornar um byte de um endereço de memória específico
   lcd_gotoxy(1, 1);
   printf(lcd_putc, "Local 15: %u", read_data);
   lcd_gotoxy(1, 2);
   printf(lcd_putc, "Verificar dados: %u", a);
   
   while(TRUE) {
      if(input(value)){// a cada precionada grava byte
         delay_ms(1000);
         data++;
         location++;
         a++;
         write_eeprom(location, data); //Grava um byte no endereço EEPROM de dados especificado
         read_data = read_eeprom(location);
         lcd_gotoxy(21, 2);
         printf(lcd_putc, "Local %u : %u", location, read_data);
      }
   }
   
}

Saída gerada no software Proteus versão 7.9



Nenhum comentário: