joseph raj
Junior Member level 2
displaying rtc on lcd
Hi every one, i need idea or if possible code.
I need to display rtc value on lcd.
i am using PIC16F877A and DS1307 series RTC and lcd JHD162A
i am using MPlab ide with hitechc c compiler
I am attaching sorce code which i have written which make rtc run.
#include<htc.h>
extern void I2C_start(void);
extern void I2C_stop(void);
extern void I2C_send(unsigned char);
extern void I2C_recv(void);
extern void rtc_initial(void);
extern void ms_delay(unsigned int);
extern void lcd_cmd(unsigned char);
extern void lcd_data(unsigned char);
extern void lcd_ready(void);
extern void ms_delay(unsigned int);
extern void lcd_init(void);
#define LCD_data PORTD
#define busy_bit RD7
#define sec 0x30
#define min 0x31
#define hour 0x32
#define day 0x33
#define date 0x34
#define month 0x35
#define year 0x36
#define sda RE1
#define scl RE0
#define LCD_en RA0
#define LCD_rw RA1
#define LCD_rs RA2
void main(void)
{
TRISA=0;
TRISD=0;
TRISE=0;
lcd_init();
I2C_start();
rtc_initial();
I2C_stop();
}
void rtc_initial(void)
{
I2C_send(0xD0);
I2C_recv();
I2C_stop();
return;
}
void I2C_start(void)
{
scl=0;
sda=1;
ms_delay(1);
sda=0;
return;
}
void I2C_stop(void)
{
ms_delay(1);
sda=0;
scl=1;
ms_delay(1);
sda=1;
ms_delay(1);
scl=0;
return;
}
void I2C_send(unsigned char value)
{
scl=0;
ms_delay(1);
LCD_data=value;
//lcd_data(LCD_data);
scl=1;
ms_delay(1);
scl=0;
ms_delay(1);
sda=1;
scl=1;
ms_delay(1);
scl=0;
ms_delay(1);
return;
}
void I2C_recv(void)
{
unsigned char value;
sda=1;
scl=1;
ms_delay(1);
LCD_data=value;
scl=0;
ms_delay(1);
sda=1;
scl=0;
ms_delay(1);
sda=0;
scl=1;
ms_delay(1);
scl=0;
ms_delay(1);
return;
}
void lcd_init(void)
{
ADCON1=0x06;
lcd_cmd(0X38);
lcd_cmd(0X0E);
lcd_cmd(0X01);
lcd_cmd(0X06);
lcd_cmd(0X80);
lcd_data('T');
lcd_data('I');
lcd_data('M');
lcd_data('E');
lcd_data(':');
lcd_cmd(0x0C0);
lcd_data('D');
lcd_data('A');
lcd_data('T');
lcd_data('E');
lcd_data(':');
return;
}
please help me out .Its really very urgent.
Hi every one, i need idea or if possible code.
I need to display rtc value on lcd.
i am using PIC16F877A and DS1307 series RTC and lcd JHD162A
i am using MPlab ide with hitechc c compiler
I am attaching sorce code which i have written which make rtc run.
#include<htc.h>
extern void I2C_start(void);
extern void I2C_stop(void);
extern void I2C_send(unsigned char);
extern void I2C_recv(void);
extern void rtc_initial(void);
extern void ms_delay(unsigned int);
extern void lcd_cmd(unsigned char);
extern void lcd_data(unsigned char);
extern void lcd_ready(void);
extern void ms_delay(unsigned int);
extern void lcd_init(void);
#define LCD_data PORTD
#define busy_bit RD7
#define sec 0x30
#define min 0x31
#define hour 0x32
#define day 0x33
#define date 0x34
#define month 0x35
#define year 0x36
#define sda RE1
#define scl RE0
#define LCD_en RA0
#define LCD_rw RA1
#define LCD_rs RA2
void main(void)
{
TRISA=0;
TRISD=0;
TRISE=0;
lcd_init();
I2C_start();
rtc_initial();
I2C_stop();
}
void rtc_initial(void)
{
I2C_send(0xD0);
I2C_recv();
I2C_stop();
return;
}
void I2C_start(void)
{
scl=0;
sda=1;
ms_delay(1);
sda=0;
return;
}
void I2C_stop(void)
{
ms_delay(1);
sda=0;
scl=1;
ms_delay(1);
sda=1;
ms_delay(1);
scl=0;
return;
}
void I2C_send(unsigned char value)
{
scl=0;
ms_delay(1);
LCD_data=value;
//lcd_data(LCD_data);
scl=1;
ms_delay(1);
scl=0;
ms_delay(1);
sda=1;
scl=1;
ms_delay(1);
scl=0;
ms_delay(1);
return;
}
void I2C_recv(void)
{
unsigned char value;
sda=1;
scl=1;
ms_delay(1);
LCD_data=value;
scl=0;
ms_delay(1);
sda=1;
scl=0;
ms_delay(1);
sda=0;
scl=1;
ms_delay(1);
scl=0;
ms_delay(1);
return;
}
void lcd_init(void)
{
ADCON1=0x06;
lcd_cmd(0X38);
lcd_cmd(0X0E);
lcd_cmd(0X01);
lcd_cmd(0X06);
lcd_cmd(0X80);
lcd_data('T');
lcd_data('I');
lcd_data('M');
lcd_data('E');
lcd_data(':');
lcd_cmd(0x0C0);
lcd_data('D');
lcd_data('A');
lcd_data('T');
lcd_data('E');
lcd_data(':');
return;
}
please help me out .Its really very urgent.