Programación C de microcontroladores (C515C)
Ejemplo de solución:
/********************************************************************/
/*
CMC5-34:
/*
Autor:
/*
Fecha:
/*
Software:
/*
Hardware:
/*
Unidad LCD I2C
/*
/*
SCL -> P5.1
/*
SDA -> P5.0
/*
/*
UNIDAD DE TENSIÓN
/*
/*
V0..5P
/*
Uref 5V -> UREF
/*
GND
/********************************************************************/
#define MICROCONTROLLER_SAB80515A
#include <mcs51reg.h>
#include "iic.h"
#include "lcd.h"
#include "intbcd.h"
// Variables globales
unsigned int ADin;
// Prototipos de funciones
void init(void);
// Programa principal ------------------------------------------------
void main(void)
{
init();
for(;;)
{
if(BSY == 0)
{
ADin = ADDATH;
ADin <<= 2;
ADin |= (ADDATL>>6); // Leer los 2 bits inferiores del ADC,
IIC_START();
IIC_SEND(adr_lcd);
IIC_SEND(0x40);
wait_IIC(5);
IIC_SEND(0xb0|bcd1000);
IIC_SEND(0xb0|bcd100);
IIC_SEND(0xb0|bcd10);
CMC 5-3 Bloque de ensayos 3
CMC 5
Conversión AD continua de una tensión análoga
ACMC/hpo
07/04
SDCC
Flash PSD1
-> P6.3 (entrada análoga AN3)
-> AGND
// Funciones de software para bus I2C
// Funciones para la activación de la unidad LCD
// de I2C
// Bucle sinfín
// Espere mientras conversión en
// curso -> BSY = 1
// Leer los 8 bits superiores del ADC
// Desplazar 2 posiciones a la izquierda
// desplazar 6 posiciones a la derecha,
// enlazar con variable resultado
// O lógico
// Convertir variable resultado en
// dígitos BCD
// Visualizar en línea 1
// Comunicación TWI
// Direccionar LCD
// Secuencia de control para LCD
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
85