LCD Nokia 5110

Ola,

Um LCD pratico e muito versátil é o Nokia 5110 ( PCD8544 ), irei editar um vídeo demonstrativo das básicas funcionalidades que poderemos usar com este LCD.

Uma imagem ( logo ) é possível ser apresentada, com um senão, é que cada imagem poderá ocupar cerca de 504bytes, para alguns uC poderá ser demasiado ou então limitar o restante programa que pretendemos construir.

No entanto fiz algo muito simples, com um DS1302-Atmega8-Nokia5110, temos um dispositivo útil, “relógio digital”, conforme podem ver no vídeo abaixo.

Fiz alguns ajustes na biblioteca no LCD, deixando o restante código intacto, eventualmente vai ser necessário algumas melhorias, ficara para futuro trabalho, por enquanto para o que se pretende esta funcional, parabéns a quem a construiu.

Como se tem verificado os trabalhos incidem principalmente em AVR, não em arduino, para esse modulo existe imensas bibliotecas estáveis.

Deixo aqui um pequeno excerto de código, caso considerem útil o restante código podem solicitar , publicarei oportunamente.

Nokia5110 RTC DS1302
/*
 * Nokia5110_RTC.c
 * www.microelectronic.pt
 * Created: 19-02-2017 15:04:37
 *  Author: Norlinux
 */ 
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
#include <stdio.h>

#include "nokia/5110.h"
#include "nokia/images.h"
#include "rtc/DS1302.h"

int main(void)
{
	LcdInit();
	rtc_init();
	
	  for (uint8_t i=0; i<=25;i++){
		  LcdClear();
		  LcdRect(i,83-i,i,47-i,2);
		  LcdUpdate();
		  _delay_ms(80);
	  };
	LcdClear();
	LcdImage(avr_logo);
	LcdUpdate();
	unsigned char buf[18] = {0};
	char *dia[] = {"" ,"Seg", "Ter", "Qua", "Qui", "Sex", "Sab","Dom"};
		//RTC2_VALUE->day=19;
		//RTC2_VALUE->month=2;
		//RTC2_VALUE->year=17;
		//RTC2_VALUE->wday=7;
		//RTC2_VALUE->hours=15;
		//RTC2_VALUE->minutes=40;
		//RTC2_VALUE->seconds=00;
		//rtc_set_datetime(RTC2_VALUE);
    while(1)
    {
		rtc_update(RTC2_VALUE);
		sprintf((char*)buf, "%02i:%02i:%02i %s",RTC2_VALUE->hours,RTC2_VALUE->minutes, RTC2_VALUE->seconds,dia[RTC2_VALUE->wday]);
		LcdGotoXYFont(1,5);
		LcdStr(FONT_1X,buf);
		LcdUpdate();
    }
}

2 comentários

    • Diogo J. on 24 Fevereiro, 2017 at 16:14
    • Responder

    Boa Tarde,

    O meu relógio não actualiza as horas fica sempre com a hora que registou, o que estarei a fazer de errado?

    1. Ola, só vejo uma razão:
      – as linhas de código de inicialização do relógio depois de ter acertado o CS1302, tem de ser retiradas, voltar a compilar e enviar para o micro, espero ter ajudado.

Deixe uma resposta

Your email address will not be published.

www.000webhost.com