944,123 Members | Top Members by Rank

Ad:
  • C++ Discussion Thread
  • Unsolved
  • Views: 13215
  • C++ RSS
Mar 13th, 2007
0

digital clock

Expand Post »
i face a problem, im doing a programing that program into the PIC16F684. im doing a digital clock, now i only able to show the second value that display 1 to 60, i dont know how to do the minute value. im using while loop.
  1. while(1 == 1)
  2. {
  3. if (0 == DisplayLED)
  4. {
  5. RA5 = LEDDigit[DisplayValue %10] >> 6;
  6. PORTC = LEDDigit[DisplayValue %10] & 0x03F;
  7. }
  8. else
  9. {
  10. RA5 = LEDDigit[(DisplayValue /10) & 0x0F] >> 6;
  11. PORTC = LEDDigit[(DisplayValue /10) & 0x0F] & 0x03F;
  12. }
  13. TRISA = TRISA ^ 0b011111;
  14. PORTA = PORTA & 0b111100;
  15. DisplayLED = DisplayLED ^ 1; // Other Digit Next
  16.  
  17. NOP();
  18. for (i = 0; i < 660; i++);
  19. NOP();
  20.  
  21. j = j + 1;
  22. if (100 == j)
  23. {
  24. DisplayValue++;
  25. j = 0;
  26. }
  27. }
how to add the minutes value? as well hour and day...thank... S.O.S.....
Last edited by WaltP; Mar 13th, 2007 at 1:51 pm. Reason: Please use CODE tags
Similar Threads
Reputation Points: 10
Solved Threads: 0
Newbie Poster
vedybird is offline Offline
2 posts
since Mar 2007
Mar 14th, 2007
0

Re: digital clock

Well first I'd probably rename DisplayValue to be something more meaningful like DisplaySeconds.

Then I might add
C++ Syntax (Toggle Plain Text)
  1. if ( DisplaySeconds == 60 ) {
  2. DisplaySeconds = 0;
  3. DisplayMinutes++;
  4. }

I gather from your code you have a pair of 7-segment displays for displaying seconds.
Do you have another pair for the minutes as well.
Team Colleague
Reputation Points: 5862
Solved Threads: 950
Posting Sage
Salem is offline Offline
7,164 posts
since Dec 2005
Mar 14th, 2007
0

digital clock

yeah, i got the right circuit diagram just dont know how to write the program to apply the minutes. i had connected 4 7segments to the 4 transistors and the 4 transistors connected to RA0, RA1, RA2 and RA3 on the PIC16F684.
should i add another if...else statement in the while loop? where should i add into if yes. thank
Reputation Points: 10
Solved Threads: 0
Newbie Poster
vedybird is offline Offline
2 posts
since Mar 2007
Mar 14th, 2007
0

Re: digital clock

Here's an algorhithm in C/C++. You can convert it into whatever you're using.
C++ Syntax (Toggle Plain Text)
  1. int sec = 0;
  2. int min = 0;
  3. int hour = 0;
  4. while(1)
  5. {
  6. sleep(1000); //delay in milliseconds
  7. ++sec;
  8. if(sec == 60)
  9. {
  10. sec = 0;
  11. ++min;
  12. if(min == 60)
  13. {
  14. min = 0;
  15. ++hour;
  16. if(hour == 24)
  17. {
  18. hour = 0;
  19. }
  20. }
  21. }
  22. display(hour, min, sec);
  23. }
Last edited by Lerner; Mar 14th, 2007 at 3:55 pm.
Reputation Points: 718
Solved Threads: 373
Nearly a Posting Maven
Lerner is offline Offline
2,253 posts
since Jul 2005
Mar 14th, 2007
0

Re: digital clock

Well what you do in software depends entirely on what you've done with the hardware.

Say for example, you use 4 bits to drive one 7-segment display, then use the other 4 bits to choose one of 4 displays

Say
bit 7 selects the 10's for M
bit 6 selects the units for M
bit 5 selects the 10's for S
bit 4 selects the units for S
Team Colleague
Reputation Points: 5862
Solved Threads: 950
Posting Sage
Salem is offline Offline
7,164 posts
since Dec 2005
Jul 30th, 2009
0

Re: digital clock

plz i need full program of digital clock in c++

giv me peply
Reputation Points: 10
Solved Threads: 0
Newbie Poster
nagarajuamrabad is offline Offline
2 posts
since Jul 2009
Jul 30th, 2009
0

Re: digital clock

digital clock program code is needed..try to solve my probs.
Reputation Points: 10
Solved Threads: 0
Newbie Poster
nagarajuamrabad is offline Offline
2 posts
since Jul 2009
Jul 30th, 2009
0

Re: digital clock

when your display value reaches 60, you add 1 to minutes, and
keep doing this until your minutes adds to 1 hour;

Try this circular loop :
C++ Syntax (Toggle Plain Text)
  1. displayValue = ++displayValue % 60;
  2. min = displayValue % 60 + displayValue/60
  3. hour = min % 60 + min/60
Reputation Points: 840
Solved Threads: 594
Senior Poster
firstPerson is offline Offline
3,865 posts
since Dec 2008

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in C++ Forum Timeline: Validating input into array C++
Next Thread in C++ Forum Timeline: Very simple question





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC