Help with the source code

Status
Not open for further replies.

kaizer002

Newbie level 5
Joined
Jan 6, 2010
Messages
9
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,356
hello everyone.

I need some help regarding on our source which is compiled for our project. Our project supposed to be is a digital clock with stopwatch(with reset, and stop), and a countdown timer but we only built a digital clock.

We used 4 buttons for setting time (hold, hours, minutes, and seconds).

Schematic:



Code:

Code:
#include <16F877A.h>
#fuses XT,NOWDT,PUT,NOBROWNOUT,NOLVP
#use delay(clock = 4000000)
#byte PORTA=0X05
#byte PORTC=0x07
#byte PORTB=0X06
#define A0 PIN_A0
#define A1 PIN_A1
#define A2 PIN_A2
#define A3 PIN_A3
#define A4 PIN_A4


int sec1,sec2,min1,min2,hour1,hour2;
int num1=5,num2=5,num3=5;

int counter=125;
int flag=0;




const int table[10]={0b01101111, 
0b01111111, 
0b00000111, 
0b01111101, 
0b01101101, 
0b01100110, 
0b01001111, 
0b01011011, 
0b00000110, 
0b00111111};



void main()
{
PORTB=0X00;
PORTC=0X00;


set_tris_a(0xff);
set_tris_c(0x00);
set_tris_b(0x00);
set_RTCC(6);
setup_counters(RTCC_INTERNAL,RTCC_DIV_32);
enable_interrupts (INT_RTCC);
enable_interrupts (GLOBAL);

for(;;)
{
PORTB=table[sec1];
PORTC=0X01;
delay_ms(15);

PORTB=table[sec2];
PORTC=0x02;
delay_ms(15);

PORTB=table[min1];
PORTC=0x04;
delay_ms(15);

PORTB=table[min2];
PORTC=0x08;
delay_ms(15);

PORTB=table[hour1];
PORTC=0x10;
delay_ms(15);

PORTB=table[hour2];
PORTC=0x20;
delay_ms(15);



if(flag==1){


flag=0;
}





 if(input(A4)==1)
                          {
                        disable_interrupts(INT_RTCC);

                      if(input(A2)==1) { --num1; }
                      if(num1==0){
                           if(++min1>9) {
                                       min1=0;
                                if(++min2>5) {  min2=0; }
                                          }
                                        num1=5;
                                        }
                      if(input(A3)==1){ --num2; }
                                   
                               if(num2==0) {
                                     if( ++hour1>9 ) 
                                                     {                                                          
                                                  hour1=0;
                                                 ++hour2;
                                                      }
                                     if( (hour2==1) & (hour1==3) )  {
                                                              hour1=1;
                                                               hour2=0;
                                                                    }
                                                       num2=5;                       
                                              }
                     if(input(A1)==1) { --num3; }
                      if(num3==0){
                           if(++sec1>9) {
                                       sec1=0;    
                                if(++sec2>5) {  sec2=0; }
                                          }
                                        num3=5;           
                                        }
                          }


                    else if(input(A4)==0){
                                enable_interrupts(INT_RTCC); 
                                        }
}

}

#int_RTCC
void microII()

{ //void switch_time();
if(--counter>0)return;
counter=125;
flag=1;


if(++sec1>9){
sec1=0;

if(++sec2>5){
sec2=0;

if(++min1>9){
min1=0;

if(++min2>5){
min2=0;
if( ++hour1>9 )
{
hour1=0;
++hour2;
}
if( (hour2==1) & (hour1==3) ) {
sec1=0;
sec2=0;
min1=0;
min2=0;
hour1=1;
hour2=0;
}


}
}
}
}


}
 

Please be more specific. What is your problem exactly?
Describe your problem properly and you may get help.
 

Actually, I built a digital clock with hours, minutes and seconds. Now, I want to add some features in my clock like it can perform like stopwatch and can be stopped, and reset.
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…