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 feed: Recent Posts Recent Posts

  • baud rate vs maximum cable length October 13, 2026
  • Request for a 5W transistor controlled LED flash light controller circuit review October 12, 2026
  • Frustration, single phase, high KW, high voltage battery charge module, rectifier. October 12, 2026
  • Delco alternator (12SI) AC-tap - what is the mate to this connector called and where to find it? October 11, 2026
  • Voltage divider response time - is it relevant? October 11, 2026

Stay Up To Date

Newsletter Signup
EngineersGarage

Copyright © 2026 Arrowfly 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 Arrowfly
Privacy Policy | Advertising

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