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

  • 100uF bypass Caps? May 19, 2025
  • Fuel Auto Shutoff May 18, 2025
  • Actin group needed for effective PCB software tutorials May 18, 2025
  • how to work on pcbs that are thick May 18, 2025
  • compatible eth ports for laptop May 18, 2025

Stay Up To Date

Newsletter Signup
EngineersGarage

Copyright © 2025 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