We will use the Pic 18F4550 and CAD MCP_3204, displaying the result on a LCD display.
For its operation will be necessary to use the library for use MCP_3204.C CAD SPI, and library of display LCD_Flexible.C
SPI Protocol:
ISIS Program: Use ISIS program to simulate the code.
///////////////////////////////////////////////////////////////////////////////////////////
// AUTOR: OSCAR GONZALEZ BURON ENERO/2014
///////////////////////////////////////////////////////////////////////////////////////////
// PROGRAMA: CAD_SPI VERSIÓN: 1.0
// DISPOSITIVO: PIC 18F4550 COMPILADOR: CCS vs4.023
// Entorno IDE: MPLAB SIMULADOR: Proteus 8.0 sp1
// TARJETA DE APLICACIÓN: UNIVERSAL TRAINER DEBUGGER: ICD3
///////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////
// CONVERSOR ANALOGICO/DIGITAL MCP3204 CON PROTOCOLO SPI ////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////
////////////////// Driver for MCP3204 A/D Converter ////////////////////////
//// ////
//// adc_init() ////
//// Call after power up ////
//// ////
//// value = read_analog_mcp( channel, mode ) ////
//// Read an analog channel ////
//// 0 through 3 and select ////
//// differential (0) or ////
//// single (1) mode ////
//// ////
//// value = read_analog( channel ) ////
//// Read an analog channel ////
//// 0 through 7 in single mode ////
//// ////
//// convert_to_volts( value, string ) ////
//// Fills in string with ////
//// the true voltage in ////
//// the form 0.000 ////
//// ////
////////////////////////////////////////////////////////////////////////////
//// (C) Copyright 1996,2003 Custom Computer Services ////
//// This source code may only be used by licensed users of the CCS C ////
//// compiler. This source code may only be distributed to other ////
//// licensed users of the CCS C compiler. No other use, reproduction ////
//// or distribution is permitted without written permission. ////
//// Derivative programs created using this software in object code ////
//// form are not restricted in any way. ////
////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////
// CABECERA ///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////
#include <18f4550.h>
#fuses XT,MCLR
#use delay(clock=20000000)
#include <LCD_flexible.c>
#include <D:\Proyectos Electronica\Project_IDE\2º\CAD_3204>
///////////////////////////////////////////////////////////////////////////////////////////
// VARIABLES GLOBALES /////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////
long int valor;
float voltaje;
///////////////////////////////////////////////////////////////////////////////////////////
// FUNCIONES //////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////
// PRINCIPAL //////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////
void main()
{
lcd_init();
adc_init();
lcd_putc("CAD MCP3204 I2C");
for(;;)
{
valor = read_analog(0);
voltaje = (valor*5.0)/4096; //Regla de 3; el dato es igual al valor leido multiplicado por Vref(5V) y //dividido entre el nº de bits del CAD (12bits=4096)
LCD_GOTOXY(1,2);
printf(lcd_putc,"Voltaje = %f V", voltaje);
}
}
No comments:
Post a Comment
Questions and doubts: