Um exemplo de I2C usando o DS1307 e LCD com o Atmega8

Olá a todos,

de novo com mais um exemplo, desta vez I2C que nos permite num bus de dados comunicar com vários dispositivos em “simultâneo”, neste exemplo usa-se um LCD e um DS1307 RTC.

as livrarias são da autoria de Peter Fleury adaptadas de modo a conseguir-se comunicar com vários dispositivos, neste exemplo apenas temos 2 dispositivos, mais a frente iremos incrementar outros dispositivos.

Sugere-se esta pagina que explica muito bem o funcionamento do I2C.

I2C

Já sabem o código fonte é a pedido.

 Fiquem Atentos!!

/*
* iic_PCF8574.c
*Author: Norlinux
*http://www.microelectronic.pt
*https://www.facebook.com/MundoDosMicrocontroladores/
*http://maquina.96.lt
*Released under GPLv3.
*Please refer to LICENSE file for licensing information.
*which can be found at http://www.gnu.org/licenses/gpl.txt
*/
#include <avr/io.h>
#include
#include
#include
#include <avr/pgmspace.h>
#include <avr/interrupt.h>
#ifndef F_CPU
# define F_CPU 8000000UL
#endif
#include <util/delay.h>
#include "lcdpcf8574/lcdpcf8574.h"
#include "ds1307/DS1307.h"
int main(void)
{
sei();
char data[8], time[8];
//init lcd
lcd_init(LCD_DISP_ON );
//lcd go home
lcd_home();
//set data
//DS1307_setDate(19,11,17);
while(1) {
DS1307ReadDATA(data); //Read date from DS1307 I2C clock.
lcd_gotoxy(0,0); // x = horizontal, y = vertical (line).
lcd_puts(data);
DS1307ReadHOUR(time); //Read time from DS1307 I2C clock.
lcd_gotoxy(0,1);// x = horizontal, y = vertical (line).
lcd_puts(time);
_delay_ms(100);
}
}

 

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s