From: JosephKK on
On Thu, 14 Jan 2010 10:15:50 +0200, "Gerhard" <gvdberg(a)risccsir.co.za> wrote:

>"John Larkin" <jjlarkin(a)highNOTlandTHIStechnologyPART.com> wrote in message
>news:klsrk55bq84affa8n0frskn3hmucvkttnr(a)4ax.com...
>> 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?
>>
>> One caution: it's tempting, when using discrete logic, to build
>> klugey, asynchronous hairballs. That tends to be most efficient when
>> wiring up 7400-series logic, but it doesn't scale. Do that some, but
>> note that most "modern" logic is done in CPLDs and FPGAs and ASICs
>> with zillions of fast gates and flops available, and is usually fully
>> synchronous. I'd suggest you follow up this project with an identical
>> function, but implemented fully synchronously in a small FPGA. Dev
>> kits aren't expensive.
>>
>> There is a place for asynchronous hairball logic, so it's good to be
>> comfortable with both.
>>
>> John
>
>I would second the above ideas and suggest that you also try to do a
>clock that employ synchronous counters with a pre-load function
>such as 74LS160, 74LS161 ....(there are counters with pre-load).
>Please do not stop to live your dream of designing and building a TTL clock.
>
>I would suggest that you also try to design the clock using one of the
>inexpensive CPLD or FPGA kits.
>Having attained the skill to do that would serve you well in future.
>
>The Xilinx SK-CRIIL-G Coolrunnner Development Kit includes a
>2X16 LCD display at a very reasonable cost. +-$50
>See
>http://www.xilinx.com/products/boards/CR-II-SK/CR2-SK-SS.pdf
>http://dkc3.digikey.com/PDF/T091/p0587.pdf 3rd in list of develoment kits.
>
>Gerhard van den Berg
>Meraka CSIR
>
>
That may be later in Bitrex' self learning course. Personally, i think 'e
is on the right path for now.

BTW thanks for the link, i think is may get one on those to have fun with.
From: Glenn Gundlach on
On Jan 14, 9:26 pm, Andy <1...(a)2.3> wrote:
> On Wed, 13 Jan 2010 07:08:27 -0500, Bitrex
>
> <bit...(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?
>
> Here are the schematics of a clock I built in the '70s:http://tinypic.com/r/1zb5f1i/6http://tinypic.com/r/2lm78xv/6
> The clock has been running for over 35 years.

Put a PROM on the hours counter to transcode between 12 and 24 hour
and let the counter run always 24 hr mode. If you want to learn logic
you also need to know look up tables. My digital clock performs
exactly those functions in a Freescale 68HC908JK8 processor. Assembly
programming and logic design are very similar.


From: wicore on
On 13 Jan, 13:08, Bitrex <bit...(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?

If I understand you correct you want the following sequnce:
01 02 03 04 05 06 07 08 09 10 11 12 01 ...
I would recommend to use two synchronous counters with a parallel load
(eg 74x160/2).
Decode the state '12' to generate PE (parallel load enable) and set
the parallel
load value to '01' - done. Note that PE must also be a synchronous
input.

/ww
From: krw on
On Sat, 16 Jan 2010 03:05:11 -0800 (PST), wicore
<williwie(a)hotmail.com> wrote:

>On 13 Jan, 13:08, Bitrex <bit...(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?
>
>If I understand you correct you want the following sequnce:
>01 02 03 04 05 06 07 08 09 10 11 12 01 ...
>I would recommend to use two synchronous counters with a parallel load
>(eg 74x160/2).
>Decode the state '12' to generate PE (parallel load enable) and set
>the parallel
>load value to '01' - done. Note that PE must also be a synchronous
>input.

Or decode '13' if the PE is asynchronous. It's really ugly
(introduces a race and a lot of glitches), but it'll usually work for
a clock.
From: Bitrex on
Andy wrote:
> 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?
>
> Here are the schematics of a clock I built in the '70s:
> http://tinypic.com/r/1zb5f1i/6
> http://tinypic.com/r/2lm78xv/6
> The clock has been running for over 35 years.

I see what you did there. It looks like the SN74121 is used to give the
counter an extra pulse so that when the clock is in 12 hour mode it
rolls over to 1 instead of 0. That's the thing that was giving me
headaches trying to figure out. I've decided to go with the synchronous
counters as suggested by others in my design, which have parallel load
so I can duck that issue... :) I like the time-set circuitry, I wonder
if I can adapt that to a synchronous design. I imagine I will have to
find a way to substitute the 1 Hz clock with a sped up clock so the
changes will happen more quickly.