[Update: added a picture, and updated schematics due to missing VCC connection on the 7-Seg].
This is my 7400 contest entry. It is an ultrasonic range finder implemented using TTL components and an ultrasonic sensor.

Due to the little time I had to work on this, everything is implemented on 3 messy breadboards.
How the circuit works:
IC1A (74LS123, a dual retriggerable one-shot) is used to generate a ~80ms time base to set the time between measurements. The exact value is not too important, but it should be above 60ms to allow some window of time where we are sure no measurement is taking place (max measurement time is ~25ms).
The output from IC1A is driving IC2 (74LS121, one shot with clear and complementary output) which is generating a 10us pulse every 80ms. This 10us pulse is driving the ultrasound sensor (HC-SR04), as required by its specification.
The echo pulse returning from the HC-SR04 sensor is an active high pulse whose width is proportional to the distance measured.
The echo pulse is used for 2 purposes:
1. Gating another clock generator (IC1B, 74LS123) - when there is no pulse, there is no clock. This clock is counting the duration of the echo pulse, and is calibrated in such a way that each clock pulse represents 1cm of the distance measured.
In order to be reasonably accurate, the circuit uses one fixed resistor to get the RC network in range, and a small trimmer in series, so we could calibrate the distance measurement.
2.Blanking the display while the echo pulse is active, so that only stable data is displayed. Since the blanking signal needs to be low, the echo pulse is inverted using a 74LS14 (IC10A).
ICs 6,7,8 are BCD counters counting from 0 to 999. They are cleared by the trig pulse to the sensor, and incremented by the pulse from IC1B. The 3 counters are cascaded using a 74LS08 "AND" gates (IC9), so that the next counter increments only when all previous counters are at the value of "9". We can check only QA & QD == 1 (and ignore checking for zeros at QB,QC) since 1001 is the lowest value among all 1xx1 combinations, and is reached first by the counters.
The BCD counters are driving three 7447 BCD-to-7Seg chips (IC3,4,5). Which in turn, drive 3 common-anode displays (TIL312).
Some notes:
- The construction seems a bit messy because I didn't have much time to work on this.
- The schematics were done as an afterthought, and the circuit was working before I began drawing, so while I think its 100% accurate, I might have missed a small detail in the schematics.
- All the TTLs used here are all from my personal stock, which is 30+ to 35 years old. The only new components are the sensor and 2 of the breadboards, which were bought independently for a different robotic project). The available components dictated the project.
- The use of RC components for delays was also because most of the timing here wasn't critical, and even the most demanding counter, generating the actual measurement, could easily sustain 0.2% drifts, which is attainable when using a trimmer as part of the RC network. It is also much easier using RC components for low frequencies like these (well below 1MHz)
- The counter's most-significant-digit, used for counting meters (IC8) is in fact the pin-compatible 74LS93 (binary counter), not 74LS90 (BCD counter), since this is what I had in stock. However, since its the highest counter (counting meters), and the sensor range is limited to ~3 meters, it would never advance beyond 3 or 4, therefore either a BCD or binary counter is suitable (I only had 2 BCD counters in my stock).
- Being an ASIC designer on my day job, I would have done this much cleaner using a CPLD which is allowed by the contest rules (which I would have known had I bothered reading the contest forum before today :-( )
You will find here attached a link to a video showing the board, and a PDF schematics.
YouTube video:
http://www.youtube.com/watch?v=umTaJH-2pLM (http://www.youtube.com/watch?v=umTaJH-2pLM)