From: Bitrex on
I'm playing around with some 7400 series logic, trying to teach myself
the basics of digital design. I've been able to come up with a working
circuit for a 24 hour digital clock easily, but I'm struggling trying to
think of a way to make a 12 hour clock. Specifically my problem is the
reset of the hours counter - when the tens digit of the hours section is
0 I need the units counter to count from 1 to 9 and roll over to 0
(for example 09 pm to 10 pm) but when the tens digit of the hours
counter is a 1 I need the units counter to start counting at 1 (for
example 12 pm - 1 am). I'm using 74LS93 series plain binary counters
and assorted logic, and after working on it for a long while I can't
think of a way to get it to work without using something like a
presetable counter. Anyone have any ideas?
From: Raveninghorde on
On Wed, 13 Jan 2010 07:08:27 -0500, Bitrex
<bitrex(a)de.lete.earthlink.net> wrote:

>I'm playing around with some 7400 series logic, trying to teach myself
>the basics of digital design. I've been able to come up with a working
>circuit for a 24 hour digital clock easily, but I'm struggling trying to
>think of a way to make a 12 hour clock. Specifically my problem is the
>reset of the hours counter - when the tens digit of the hours section is
> 0 I need the units counter to count from 1 to 9 and roll over to 0
>(for example 09 pm to 10 pm) but when the tens digit of the hours
>counter is a 1 I need the units counter to start counting at 1 (for
>example 12 pm - 1 am). I'm using 74LS93 series plain binary counters
>and assorted logic, and after working on it for a long while I can't
>think of a way to get it to work without using something like a
>presetable counter. Anyone have any ideas?

What are you doing with the outputs from the LS93? Presumably you are
decoding these with other gates to drive a display?

If so I would decode a count of 0 as 1, 1 as 2 etc. Then when the LS93
hits 12 decode that to reset the counter so it runs 0 to 11.
From: Sylvia Else on
Bitrex wrote:
> I'm playing around with some 7400 series logic, trying to teach myself
> the basics of digital design. I've been able to come up with a working
> circuit for a 24 hour digital clock easily, but I'm struggling trying to
> think of a way to make a 12 hour clock. Specifically my problem is the
> reset of the hours counter - when the tens digit of the hours section is
> 0 I need the units counter to count from 1 to 9 and roll over to 0 (for
> example 09 pm to 10 pm) but when the tens digit of the hours counter is
> a 1 I need the units counter to start counting at 1 (for example 12 pm -
> 1 am). I'm using 74LS93 series plain binary counters and assorted
> logic, and after working on it for a long while I can't think of a way
> to get it to work without using something like a presetable counter.
> Anyone have any ideas?

Treat the sequence as

00 01 02 03 04 05 06 07 08 19 10 11

Increment left digit when right digit becomes 9. Clear both when both =
becomes 12.

Left digits are decoded as is.

Right digits are decoded such that 0 is displayed as 1, 1 as 2,... 9 as 0.

So the above sequence is displayed as

01 02 03 04 05 06 07 08 09 10 11 12

Sylvia


From: Bitrex on
Sylvia Else wrote:
> Bitrex wrote:
>> I'm playing around with some 7400 series logic, trying to teach myself
>> the basics of digital design. I've been able to come up with a
>> working circuit for a 24 hour digital clock easily, but I'm struggling
>> trying to think of a way to make a 12 hour clock. Specifically my
>> problem is the reset of the hours counter - when the tens digit of the
>> hours section is 0 I need the units counter to count from 1 to 9 and
>> roll over to 0 (for example 09 pm to 10 pm) but when the tens digit of
>> the hours counter is a 1 I need the units counter to start counting at
>> 1 (for example 12 pm - 1 am). I'm using 74LS93 series plain binary
>> counters and assorted logic, and after working on it for a long while
>> I can't think of a way to get it to work without using something like
>> a presetable counter. Anyone have any ideas?
>
> Treat the sequence as
>
> 00 01 02 03 04 05 06 07 08 19 10 11
>
> Increment left digit when right digit becomes 9. Clear both when both =
> becomes 12.
>
> Left digits are decoded as is.
>
> Right digits are decoded such that 0 is displayed as 1, 1 as 2,... 9 as 0.
>
> So the above sequence is displayed as
>
> 01 02 03 04 05 06 07 08 09 10 11 12
>
> Sylvia
>
>

Thanks for your reply. I forgot to mention that I was hoping to use BCD
to 7 segment decoders for the output, and I think it's going to be hard
to shift the output of the counter like that so the appropriate digits
are applied to the input of the decoder. I guess I can decode the
shifted outputs individually but it'll take a lot of logic.
From: Raveninghorde on
On Wed, 13 Jan 2010 08:29:07 -0500, Bitrex
<bitrex(a)de.lete.earthlink.net> wrote:

>Sylvia Else wrote:
>> Bitrex wrote:
>>> I'm playing around with some 7400 series logic, trying to teach myself
>>> the basics of digital design. I've been able to come up with a
>>> working circuit for a 24 hour digital clock easily, but I'm struggling
>>> trying to think of a way to make a 12 hour clock. Specifically my
>>> problem is the reset of the hours counter - when the tens digit of the
>>> hours section is 0 I need the units counter to count from 1 to 9 and
>>> roll over to 0 (for example 09 pm to 10 pm) but when the tens digit of
>>> the hours counter is a 1 I need the units counter to start counting at
>>> 1 (for example 12 pm - 1 am). I'm using 74LS93 series plain binary
>>> counters and assorted logic, and after working on it for a long while
>>> I can't think of a way to get it to work without using something like
>>> a presetable counter. Anyone have any ideas?
>>
>> Treat the sequence as
>>
>> 00 01 02 03 04 05 06 07 08 19 10 11
>>
>> Increment left digit when right digit becomes 9. Clear both when both =
>> becomes 12.
>>
>> Left digits are decoded as is.
>>
>> Right digits are decoded such that 0 is displayed as 1, 1 as 2,... 9 as 0.
>>
>> So the above sequence is displayed as
>>
>> 01 02 03 04 05 06 07 08 09 10 11 12
>>
>> Sylvia
>>
>>
>
>Thanks for your reply. I forgot to mention that I was hoping to use BCD
>to 7 segment decoders for the output, and I think it's going to be hard
>to shift the output of the counter like that so the appropriate digits
>are applied to the input of the decoder. I guess I can decode the
>shifted outputs individually but it'll take a lot of logic.

If you want to keep the LS93 rather than change counter then when the
count gets to 13 you need to reset the counters and then provide an
extra count pulse to the input of the counters to get the start count
as 01.

So decode the 13 state use this to reset the counters. Also feed the
pulse through a capacitor to differentiate it with a resistor to
ground to discharge the cap. Feed this into a gate along with the
existing clock signal so that either can clock the LS93. Make sure it
is the edge that is caused by 13 goint back to zero that is
differentiated, you may need an extra inverter.

That's the principle.