EngineersGarage

  • Engineers Garage Main Site
  • Visit our active EE Forums
    • EDABoard.com
    • Electro-Tech-Online
  • Projects & Tutorials
    • Circuits
    • Electronic Projects
    • Tutorials
    • Components
  • Digi-Key Store
    • Cables, Wires
    • Connectors, Interconnect
    • Discrete
    • Electromechanical
    • Embedded Computers
    • Enclosures, Hardware, Office
    • Integrated Circuits (ICs)
    • Isolators
    • LED/Optoelectronics
    • Passive
    • Power, Circuit Protection
    • Programmers
    • RF, Wireless
    • Semiconductors
    • Sensors, Transducers
    • Test Products
    • Tools
  • Advertise
You are here: Home / Replies / hai duddy,              The

hai duddy,              The

|

Microcontroller › PIC › Reg-RTC › hai duddy,              The

August 21, 2015 at 9:38 am #13192
karthick.v
Participant
hai duddy,
              The following is the rtc program i have an doubt in this program that why we are giving for hours    sendi2c(0x02);//////for minutes  sendi2c(0x01);////for seconds  sendi2c(0x00);//////date  sendi2c(0x04);/////month sendi2c(0x05);//////year sendi2c(0x07);///////
// RTC Interface with PIC 16F877A:
#include<pic.h>
void portconfig();
void sendi2c(char x);
char receivei2c();
void start();
void stop();
void rpstart();
void delay();
void lcd_cmd();
void cmd(char , char );
//void lcd_data(char);
char arr[ ]="TIME :  :  :  .";
char arr1[ ]="DATE :  –  –  . ";
void lcd_con(int );
void time();
void date();
int conv(int i);
void rtc_write();
void rtc_read();
int h,y;
void main()
{
int h,y,D2;
portconfig();
ADCON1=0X07;
lcd_cmd();
SSPCON=0X38;
SSPCON2=0X00;
SSPSTAT=0X80;
SSPADD=9;
 
cmd(0X80,0);
for(h=0;arr[h]!='';h++)
{
cmd(arr[h],1);
}
cmd(0XC0,0);
for(h=0;arr1[h]!='';h++)
{
cmd(arr1[h],1);
}
 
while(1)
{
time();
date();
//cmd(0X01,0);
//cmd(0X80,0);
//rtc_write();
//rtc_read();
 
}
}
//void rtc_write()
//{
//start();
//sendi2c(0XD0);
//sendi2c(0X0F);
//sendi2c('a');
//stop();
//}
//void rtc_read()
//{
//start();
//sendi2c(0xD0);
//sendi2c(0X0F);
//rpstart();
//sendi2c(0xD1);
//y=receivei2c();
//stop();
////lcd_con(y);
////cmd(0x89,0);
//}
void portconfig()
{
TRISB=0X00;
TRISE=0X00;
PORTB=0X00;
PORTE=0X00;
TRISD=0;
PORTD=0;
TRISC3=1;
TRISC4=1;
}
void lcd_cmd()
{
cmd(0x38,0);
cmd(0x0C,0);
cmd(0x06,0);
cmd(0x01,0);
cmd(0x80,0);
delay();
}
 
void cmd(char d, char e)
{
RE0=e;
RE1=0;
RE2=1;
PORTB=d;
delay();
RE2=0;
}
 
void time()
{
          //Hours
start();
sendi2c(0xD0);
sendi2c(0x02);
rpstart();
sendi2c(0xD1);
y=receivei2c();
stop();  
lcd_con(y);
cmd(0x86,0); 
 
             //Minutes
start();
sendi2c(0xD0);
sendi2c(0x01);
rpstart();
sendi2c(0xD1);
y=receivei2c();
stop();
lcd_con(y);
cmd(0x89,0);
 
             //Seconds
start();
sendi2c(0xD0);
 
rpstart();
sendi2c(0xD1);
y=receivei2c();
stop();
lcd_con(y);
cmd(0x8C,0);    
}
 
void date()
{
              //DATE
start();
sendi2c(0xD0);
sendi2c(0x04);
//stop();
rpstart();
//start();
sendi2c(0xD1);
y=receivei2c();
stop();
lcd_con(y);
cmd(0xC6,0);
 
             //MONTH
start();
sendi2c(0xD0);
sendi2c(0x05);
rpstart();
sendi2c(0xD1);
y=receivei2c();
stop();
lcd_con(y);
cmd(0xC9,0);
 
              //Year
start();
sendi2c(0xD0);
sendi2c(0x07);
rpstart();
sendi2c(0xD1);
y=receivei2c();
stop();
lcd_con(y);
cmd(0xCC,0);
}
 
void lcd_con(int i)
{
 
int D1,D2;
int temp;
temp=i;
i=(((temp&0X7F)>>4)*10+(temp&0X0F));
 
D1=i/10;
D2=i%10;
 
cmd(D1+48,1);
cmd(D2+48,1);
}
 
void delay()
{
int j;
for(j=0;j<500;j++);
}
 
char receivei2c()
{
SSPIF=0;
RCEN=1;
char rc;
while(SSPIF==0);
SSPIF=0;
rc=SSPBUF;
return rc;
}
 
void rpstart()
{
delay();
RSEN=1;
while(!SSPIF);
SSPIF=0;
}
 
void start()
{
delay();
SEN=1;
while(!SSPIF);
SSPIF=0;
}
 
void sendi2c(char x)
{
delay();
SSPBUF=x;
while(!SSPIF);
SSPIF=0;
}
 
void stop()
{
delay();
PEN=1;
while(!SSPIF);
SSPIF=0;
}

RSS Recent Posts

  • Harman Kardon radio module BMW noise February 16, 2026
  • Arduino standalone minimal February 16, 2026
  • analog logic of shmidt trigger bjt circuit February 16, 2026
  • CR2/CR123A Batteries In Projects February 16, 2026
  • Math problem February 15, 2026

Stay Up To Date

Newsletter Signup
EngineersGarage

Copyright © 2026 WTWH Media LLC. All Rights Reserved. The material on this site may not be reproduced, distributed, transmitted, cached or otherwise used, except with the prior written permission of WTWH Media
Privacy Policy | Advertising | About Us

Search Engineers Garage

  • Engineers Garage Main Site
  • Visit our active EE Forums
    • EDABoard.com
    • Electro-Tech-Online
  • Projects & Tutorials
    • Circuits
    • Electronic Projects
    • Tutorials
    • Components
  • Digi-Key Store
    • Cables, Wires
    • Connectors, Interconnect
    • Discrete
    • Electromechanical
    • Embedded Computers
    • Enclosures, Hardware, Office
    • Integrated Circuits (ICs)
    • Isolators
    • LED/Optoelectronics
    • Passive
    • Power, Circuit Protection
    • Programmers
    • RF, Wireless
    • Semiconductors
    • Sensors, Transducers
    • Test Products
    • Tools
  • Advertise