MASTER Y ESCLAVO EN PIC

Este programa contiene el código del master y un esclavo. Se debe disponer de 2 PIC's, los cuales, están conectados a través del protocolo SPI y se enviarán valores del potenciómetro.
  • Código del Master:
#include <clase14.h>
//SPI MASTER
#use spi (MASTER, SPI1, MODE=0, BITS=8, STREAM=SPI_1)
#define LCD_ENABLE_PIN PIN_D0
#define LCD_RS_PIN PIN_D1
#define LCD_RW_PIN PIN_D2
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7
#include <lcd.c>
int valor;
void main()
{
   setup_adc_ports(AN0);
   setup_adc(ADC_CLOCK_INTERNAL|ADC_TAD_MUL_0);
   lcd_init();
   lcd_gotoxy(1,1);
   lcd_putc("Susana master");
   lcd_gotoxy(1,2);
   lcd_putc("valor=");
  
   while(TRUE)
   {
      valor=read_adc();
      lcd_gotoxy(9,2);
      printf(lcd_putc,"%X",valor);
      output_toggle(PIN_B4);
      delay_ms(100);     
      SPI_WRITE(valor);
   }
}

  • Código del esclavo:
#include <slave.h>
//SPI slave, el slave es como una impresora a un computadora, varias compus a una principal
#use spi (SLAVE, SPI1, MODE=0, BITS=8, STREAM=SPI_1)
#define LCD_ENABLE_PIN PIN_D0
#define LCD_RS_PIN PIN_D1
#define LCD_RW_PIN PIN_D2
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7
#include <lcd.c>
int valor;
#INT_SSP
void  SSP_isr(void) //interrupcion SPI
{
   valor=spi_read();
   lcd_gotoxy(9,2);
   printf(lcd_putc,"%X",valor);
}
void main()
{
   //la interrupcion es cuando master manda un dato, se interrumpe el toggle
   enable_interrupts(INT_SSP);
   enable_interrupts(GLOBAL);
   lcd_init();
   lcd_putc("Susana slave");
   lcd_gotoxy(1,2);
   lcd_putc("Valor=");
  
   while(TRUE)
   {
      output_toggle(PIN_A5); //para este entretenido el programa y se interumpa
     
   }
}

  • Simulación en Proteus:

No hay comentarios:

Publicar un comentario

Ultima entrada ingresada

SISTEMA DE RIEGO AUTOMÁTICO CON MÚSICA

El objetivo era hacer un programa que pueda activar una bomba de agua en la noche, y que por las mañanas reproduzca música para las plantas....