Pesquisar neste blog

14/05/2022

Memória Externa RS232 com PIC 16F877A

Código feito no CCS C Compiler

#include <16F877A.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock = 20MHz)
#use rs232(baud = 9600, xmit = PIN_C6, rcv = PIN_C7)
#ifndef lcd_enable
   #define lcd_enable pin_E1 // pino enable do LCD
   #define lcd_rs pin_E2 // pino rs do LCD
   //#define lcd_rw pin_e2 // pino rw do LCD
   #define lcd_d4 pin_d4 // pino de dados d4 do LCD
   #define lcd_d5 pin_d5 // pino de dados d5 do LCD
   #define lcd_d6 pin_d6 // pino de dados d6 do LCD
   #define lcd_d7 pin_d7 // pino de dados d7 do LCD
#endif
#include "mod_lcd.c"
//#include "input.c"
#include "2401.c"

void main() {
   BYTE value,value_recebido, cmd;
   EEPROM_ADDRESS address;
   unsigned int8 i = 0;
   init_ext_eeprom();
   lcd_ini();
   delay_us(50);
   // TODO: USER CODE!!
   printf (lcd_escreve,"\f iniciando...");
   delay_ms(2000);

   for(i = 0; i <= 128; i++){
      WRITE_EXT_EEPROM(i, 255 );
      WRITE_EXT_EEPROM(0, 8 ); 
      WRITE_EXT_EEPROM(1, 7);
      WRITE_EXT_EEPROM(2, 'P');
      WRITE_EXT_EEPROM(3, 'A');
      WRITE_EXT_EEPROM(4, 55);
      //WRITE_EXT_EEPROM(1, 7); //valores repetidos
   }
   value_recebido = READ_EXT_EEPROM(0);

   while(true){
      printf (lcd_escreve,"\f IFMT ");
      //printf("\n\rTemp = %d", value);
      printf (lcd_escreve,"\n\rValor: %i %c", value_recebido, value_recebido);
      delay_ms(2000);
   }
}

Saída gerada no Software PicsimLab























Nenhum comentário: