Counter ICs

Do only 4 of those 10 outputs (Q0-Q9)contain the numerical information to display a numerical digit?

Reply to
Richard
Loading thread data ...

Of course. It's just that it only counts up to four bits worth. The key phrase is "Johnson Counter" -- it may be helpful to look at it on Wikipedia.

--

Tim Wescott
Wescott Design Services
http://www.wescottdesign.com

Do you need to implement control loops in software?
"Applied Control Theory for Embedded Systems" was written for you.
See details at http://www.wescottdesign.com/actfes/actfes.html
Reply to
Tim Wescott

There are a lot of different ways to count to 16 -- it's just that four flip-flops is the least number that you can do it in. In FPGA design, the fastest and smallest way (particularly if you're driving a state machine) is often to use a "one hot state" counter, where you'd have 16 flip flops arranged as a shift register.

So you are _used_ to a four bit counter counting up to 16. But there's no _reason_ this must be -- it's just common.

--

Tim Wescott
Wescott Design Services
http://www.wescottdesign.com

Do you need to implement control loops in software?
"Applied Control Theory for Embedded Systems" was written for you.
See details at http://www.wescottdesign.com/actfes/actfes.html
Reply to
Tim Wescott

Well, I thought I'd better read the MC14017B notes. :c)

It says: " The ten decoded outputs are normally low, and go high only at the appropriate decimal time period".

I've little idea how this explains how the counter is used to display a count with (say) 7 segment LED displays.

But, seems the key is in the quote.

What has been decoded?

Reply to
Richard

--
Those aren't bits, they're decoded mutually exclusive outputs with
each output representing a single numerical value from 0 to 9.
Reply to
John Fields

--
It doesn't explain it because that's not what it's used for!

Here's how it works:

If the counter is reset, it's contents will be "0", so Q0 is forced
high.

After the next clock, its contents will be "1" so Q0 will be forced
low and Q1 will be forced high.

After the next clock, its contents will be "2" so Q1 will be forced
low and Q2 will be forced high.

After the next clock, its contents will be "3" so Q2 will be forced
low and Q3 will be forced high.

After the next clock, its contents will be "4" so Q3 will be forced
low and Q4 will be forced high.

After the next clock, its contents will be "5" so Q4 will be forced
low and Q5 will be forced high.

After the next clock, its contents will be "6" so Q5 will be forced
low and Q6 will be forced high.

After the next clock, its contents will be "7" so Q6 will be forced
low and Q7 will be forced high.

After the next clock, its contents will be "8" so Q7 will be forced
low and Q8 will be forced high.

After the next clock, its contents will be "9" so Q8 will be forced
low and Q9 will be forced high.

After the next clock, its contents will be "0" so Q9 will be forced
low and Q0 will be forced high.

And so on.

Another way to think of it is like a single-pole ten position
break-before-make rotary switch with voltage on the common terminal.
Reply to
John Fields

The x4017 does not drive a seven segment led display.

It plus 10 led's are the semiconductor equivalent of a dekatron

formatting link

It has other uses as well but if you understand how to read the display of a dekatron then you won't have a problem with a 4017

Reply to
David Eather

On Thu, 30 Jun 2011 12:06:24 -0500, John Fields wrote:

--- BTW, I thought it might be fun to figure out a 1-of-10 to 7-segment decoder.

Here it is for a common cathode display:

Version 4 SHEET 1 880 680 WIRE -1072 -1136 -1296 -1136 WIRE -832 -1136 -1072 -1136 WIRE -592 -1136 -832 -1136 WIRE 128 -1136 -592 -1136 WIRE 368 -1136 128 -1136 WIRE -1088 -1088 -1296 -1088 WIRE -848 -1088 -1088 -1088 WIRE -608 -1088 -848 -1088 WIRE -352 -1088 -608 -1088 WIRE -160 -1088 -352 -1088 WIRE 80 -1088 -160 -1088 WIRE 352 -1088 80 -1088 WIRE -1120 -1040 -1296 -1040 WIRE -864 -1040 -1120 -1040 WIRE -624 -1040 -864 -1040 WIRE -640 -992 -1296 -992 WIRE -400 -992 -640 -992 WIRE -176 -992 -400 -992 WIRE 64 -992 -176 -992 WIRE 320 -992 64 -992 WIRE -1136 -944 -1296 -944 WIRE -672 -944 -1136 -944 WIRE -416 -944 -672 -944 WIRE 48 -944 -416 -944 WIRE 304 -944 48 -944 WIRE -880 -896 -1296 -896 WIRE -688 -896 -880 -896 WIRE 32 -896 -688 -896 WIRE 288 -896 32 -896 WIRE -1152 -848 -1296 -848 WIRE -896 -848 -1152 -848 WIRE -704 -848 -896 -848 WIRE -432 -848 -704 -848 WIRE 272 -848 -432 -848 WIRE -1168 -800 -1296 -800 WIRE -912 -800 -1168 -800 WIRE -448 -800 -912 -800 WIRE -192 -800 -448 -800 WIRE 256 -800 -192 -800 WIRE -928 -752 -1296 -752 WIRE -720 -752 -928 -752 WIRE -1184 -704 -1296 -704 WIRE -944 -704 -1184 -704 WIRE -736 -704 -944 -704 WIRE -464 -704 -736 -704 WIRE -208 -704 -464 -704 WIRE 16 -704 -208 -704 WIRE -1184 -656 -1184 -704 WIRE -1168 -656 -1168 -800 WIRE -1152 -656 -1152 -848 WIRE -1136 -656 -1136 -944 WIRE -1120 -656 -1120 -1040 WIRE -944 -656 -944 -704 WIRE -928 -656 -928 -752 WIRE -912 -656 -912 -800 WIRE -896 -656 -896 -848 WIRE -880 -656 -880 -896 WIRE -736 -656 -736 -704 WIRE -720 -656 -720 -752 WIRE -704 -656 -704 -848 WIRE -688 -656 -688 -896 WIRE -672 -656 -672 -944 WIRE -464 -656 -464 -704 WIRE -448 -656 -448 -800 WIRE -432 -656 -432 -848 WIRE -416 -656 -416 -944 WIRE -400 -656 -400 -992 WIRE -208 -656 -208 -704 WIRE -192 -656 -192 -800 WIRE -176 -656 -176 -992 WIRE -160 -656 -160 -1088 WIRE 16 -656 16 -704 WIRE 32 -656 32 -896 WIRE 48 -656 48 -944 WIRE 64 -656 64 -992 WIRE 80 -656 80 -1088 WIRE 256 -656 256 -800 WIRE 272 -656 272 -848 WIRE 288 -656 288 -896 WIRE 304 -656 304 -944 WIRE 320 -656 320 -992 WIRE -656 -592 -688 -592 WIRE -1136 -576 -1136 -592 WIRE -1088 -576 -1088 -1088 WIRE -1072 -576 -1072 -1136 WIRE -896 -576 -896 -592 WIRE -864 -576 -864 -1040 WIRE -848 -576 -848 -1088 WIRE -832 -576 -832 -1136 WIRE -656 -576 -656 -592 WIRE -640 -576 -640 -992 WIRE -624 -576 -624 -1040 WIRE -608 -576 -608 -1088 WIRE -592 -576 -592 -1136 WIRE -416 -576 -416 -592 WIRE -352 -576 -352 -1088 WIRE 64 -576 64 -592 WIRE 128 -576 128 -1136 WIRE 304 -576 304 -592 WIRE 352 -576 352 -1088 WIRE 368 -576 368 -1136 WIRE -1248 -480 -1296 -480 WIRE -1120 -432 -1120 -512 WIRE -880 -432 -880 -512 WIRE -640 -432 -640 -512 WIRE -400 -432 -400 -512 WIRE -160 -432 -160 -592 WIRE 80 -432 80 -512 WIRE 320 -432 320 -512 WIRE -1312 -416 -1312 -464 WIRE -1232 -416 -1232 -464 WIRE -1248 -400 -1296 -400 WIRE -1312 -336 -1312 -384 WIRE -1232 -336 -1232 -384 WIRE -1248 -320 -1296 -320 WIRE -1120 -320 -1120 -352 WIRE -880 -320 -880 -352 WIRE -640 -320 -640 -352 WIRE -400 -320 -400 -352 WIRE -160 -320 -160 -352 WIRE 80 -320 80 -352 WIRE 320 -320 320 -352 WIRE -1120 -208 -1120 -256 WIRE -880 -208 -880 -256 WIRE -880 -208 -1120 -208 WIRE -640 -208 -640 -256 WIRE -640 -208 -880 -208 WIRE -400 -208 -400 -256 WIRE -400 -208 -640 -208 WIRE -160 -208 -160 -256 WIRE -160 -208 -400 -208 WIRE 80 -208 80 -256 WIRE 80 -208 -160 -208 WIRE 320 -208 320 -256 WIRE 320 -208 80 -208 WIRE -1120 -160 -1120 -208 FLAG -1296 -704 Q0 FLAG -1296 -752 Q1 FLAG -1296 -800 Q2 FLAG -1296 -848 Q3 FLAG -1296 -896 Q4 FLAG -1296 -944 Q5 FLAG -1296 -992 Q6 FLAG -1296 -1040 Q7 FLAG -1296 -1088 Q8 FLAG -1296 -1136 Q9 FLAG -1120 -160 0 SYMBOL Digital\\or -1088 -624 R90 WINDOW 0 -3 116 Left 0 WINDOW 3 -8 36 Invisible 0 SYMATTR InstName A1 SYMATTR Value trise 10n tfall 10n vhigh 5V SYMBOL Digital\\or -1168 -544 M90 WINDOW 0 0 111 Left 0 WINDOW 3 -8 36 Invisible 0 SYMATTR InstName A3 SYMATTR Value trise 10n tfall 10n vhigh 5V SYMBOL Digital\\or -848 -624 R90 WINDOW 0 -3 116 Left 0 WINDOW 3 -8 36 Invisible 0 SYMATTR InstName A4 SYMATTR Value trise 10n tfall 10n vhigh 5V SYMBOL Digital\\or -928 -544 M90 WINDOW 0 0 111 Left 0 WINDOW 3 -8 36 Invisible 0 SYMATTR InstName A6 SYMATTR Value trise 10n tfall 10n vhigh 5V SYMBOL Digital\\or -640 -624 R90 WINDOW 0 -3 116 Left 0 WINDOW 3 -8 36 Invisible 0 SYMATTR InstName A7 SYMATTR Value trise 10n tfall 10n vhigh 5V SYMBOL Digital\\or -688 -544 M90 WINDOW 0 0 111 Left 0 WINDOW 3 -8 36 Invisible 0 SYMATTR InstName A9 SYMATTR Value trise 10n tfall 10n vhigh 5V SYMBOL Digital\\or -368 -624 R90 WINDOW 0 -3 116 Left 0 WINDOW 3 -8 36 Invisible 0 SYMATTR InstName A10 SYMATTR Value trise 10n tfall 10n vhigh 5V SYMBOL Digital\\or -448 -544 M90 WINDOW 0 0 111 Left 0 WINDOW 3 -8 36 Invisible 0 SYMATTR InstName A12 SYMATTR Value trise 10n tfall 10n vhigh 5V SYMBOL Digital\\or -112 -624 R90 WINDOW 0 -3 116 Left 0 WINDOW 3 -8 36 Invisible 0 SYMATTR InstName A13 SYMATTR Value trise 10n tfall 10n vhigh 5V SYMBOL Digital\\or 112 -624 R90 WINDOW 0 -3 116 Left 0 WINDOW 3 -8 36 Invisible 0 SYMATTR InstName A16 SYMATTR Value trise 10n tfall 10n vhigh 5V SYMBOL Digital\\or 32 -544 M90 WINDOW 0 0 111 Left 0 WINDOW 3 -8 36 Invisible 0 SYMATTR InstName A18 SYMATTR Value trise 10n tfall 10n vhigh 5V SYMBOL Digital\\or 352 -624 R90 WINDOW 0 -3 116 Left 0 WINDOW 3 -8 36 Invisible 0 SYMATTR InstName A19 SYMATTR Value trise 10n tfall 10n vhigh 5V SYMBOL Digital\\or 272 -544 M90 WINDOW 0 0 111 Left 0 WINDOW 3 -8 36 Invisible 0 SYMATTR InstName A21 SYMATTR Value trise 10n tfall 10n vhigh 5V SYMBOL res -1136 -448 R0 SYMATTR InstName R1 SYMATTR Value 1k SYMBOL LED -1136 -320 R0 SYMATTR InstName D1 SYMBOL LED -896 -320 R0 SYMATTR InstName D2 SYMBOL LED -656 -320 R0 SYMATTR InstName D3 SYMBOL LED -416 -320 R0 SYMATTR InstName D4 SYMBOL LED -176 -320 R0 SYMATTR InstName D5 SYMBOL LED 64 -320 R0 SYMATTR InstName D6 SYMBOL LED 304 -320 R0 SYMATTR InstName D7 SYMBOL res -896 -448 R0 SYMATTR InstName R2 SYMATTR Value 1k SYMBOL res -656 -448 R0 SYMATTR InstName R3 SYMATTR Value 1k SYMBOL res -416 -448 R0 SYMATTR InstName R4 SYMATTR Value 1k SYMBOL res -176 -448 R0 SYMATTR InstName R5 SYMATTR Value 1k SYMBOL res 64 -448 R0 SYMATTR InstName R6 SYMATTR Value 1k SYMBOL res 304 -448 R0 SYMATTR InstName R7 SYMATTR Value 1k TEXT -1168 -288 Left 0 ;a TEXT -920 -288 Left 0 ;b TEXT -680 -288 Left 0 ;c TEXT -440 -288 Left 0 ;d TEXT -200 -288 Left 0 ;e TEXT 40 -288 Left 0 ;f TEXT 280 -288 Left 0 ;g TEXT -1112 -184 Left 0 !.tran .1 startup uic TEXT -1280 -504 Left 0 ;a TEXT -1224 -440 Left 0 ;b TEXT -1224 -360 Left 0 ;c TEXT -1280 -296 Left 0 ;d TEXT -1336 -360 Left 0 ;e TEXT -1328 -440 Left 0 ;f TEXT -1280 -416 Left 0 ;g

-- JF

Reply to
John Fields

This is what I'm seeing:

Lets say the clock frequency is 1 hertz. And the objective is to make a counter to count up to 9999 seconds.

*Using four, 4 bit decade counters*

We connect up four 4 bit decade counters. Lets represent the 16 outputs shared amongst the four counters as follows:

IC1 IC2 IC3 IC4 Q0Q1Q2Q3 Q0Q1Q2Q3 Q0Q1Q2Q3 Q0Q1Q2Q3

Each IC output is weighted or coded, inasmuch as each output represents a particular numeral value. Individually for each IC, Q0 (LSB) is 1's, Q1 is 2's, Q3 4's and Q3 8's (MSB). As the count progresses the outputs become "hot" and spread along the 16 pin outputs. In this scheme, any combination of outputs that are hot is (almost) possible. Almost because the counters are decade counters and not binary counters.

From a decoding point of view, each 7 segment display needs a BCD decoder, because the logic states on pins Q0 - Q3 is BCD. As the BCD value rises, this makes a display show 0, 1, 2, all the way to 9.

At the start all displays read 0000. The display associated with IC1 will cycle from 0 to 9, and on the tenth pulse, go back to 0, whilst the display controlled by IC2 will go to 1. At some point the counter will show 7953, meaning 7953 seconds have lapsed. Q1-Q3 on each IC does cycle in a loop regarding the binary number that is reflected in the output states (cold or hot). Each goes from 0000 to 1001 and back to 0000.

*Using four, 19 bit Johnson decade counters*

I'm not actually sure if I'm trying to mix oranges and apples, whether in fact this Johhson counter is suitable for use in counting clock pulses as I've described above.

If we need four Johnson counters with 10 decoded outputs we have:

IC1 IC2 Q0Q1Q2Q3Q4Q5Q6Q7Q8Q9 Q0Q1Q2Q3Q4Q5Q6Q7Q8Q9

IC3 IC4 Q0Q1Q2Q3Q4Q5Q6Q7Q8Q9 Q0Q1Q2Q3Q4Q5Q6Q7Q8Q9

Each IC will only have one output that is hot at any given moment.

Going by what is said, at the start, Q1 on IC is hot. I suppose Q1 on all IC's is hot.

On the first pulse Q1 will be hot, Q0 cold. Again, not sure about what is happening to the other outputs on the other IC's. I think after the tenth pulse Q9 on IC1 is hot. Not sure what outputs are hot on the

9753rd pulse, except that only one output is hot for each IC.

But, whatever the state of the outputs, I'm trying to discover how the state of these outputs on the four ICs lead to four, 7 segment LEDs, showing elapsed time.

I understand how counting, using 4 bit decade counters works. How each IC produces a BCD output, and that these 4 outputs on each IC is decoded in order to get each LED display to show a numeral.

I don't understand at all, how the outputs in the Johnson counter chips, with their form of outputs, can eventually lead to each LED display to show a numeral.

I could be trying to mix apples and oranges. I don't know.

Reply to
Richard

It isn't, you're using the wrong device.

The 4017 would work if for each digit you had 10 LEDs, labelled 0-9. ONly one LED would go on, to indicate the count between 0 and 9. Once upon a time, the readouts were like that, Nixie tubes that 10 distinct numbers in an envelope, and a BCD decoder would turn the BCD into one of ten distinct outputs to turn on the needed digit.

The 4017 is a bcd decade counter and a bcd to "1of10" decoder in the same pacakge. Since it doesn't output BCD, it won't work for thise project.

7 segment readouts don't work that way. There are 7 segments, but for each number you have to turn on a number of those segments. Hence there are BCD to 7segment decoders, which take the BCD code and turns it into the outputs that will turn on the needed segments to display the matching number on the 7segment readout.

These are not the same thing. If you want to drive a 7segment readout, you need a bcd output counter, then a bcd to 7segment decoder. The 4017 is useful as a simple decade counter, and for things where you need an distinct indicator for each of the distinct digits 0-9. There are lots of uses for that.

There are lots of bcd counters that will do what you need, and I assume one can still get BCD to 7segement decoders.

Once upon a time, these things were common enough that one could find devices that had the counter, decoder and even a latch between the two in a single package, one company even put it in the same package as the readout. But they were expensive.

Michael

Reply to
Michael Black

So, the 4017 is a bcd decade counter. But it has a decoder that decodes the bcd, such that only one of the 10 outputs is hot at any given moment or time.

As the count progresses, each clock step leads to the next output going hot. So, in 10 pulses, every output has been hot at some time, and the cycle repeats. In theory then, to make one Johnson decade counter IC control a single 7 segment LED, you would need a further decoder that assigns the appropriate series of LEDS that are to be turned on, for each of the 10 inputs possible. But, that is just not done. The 4017 was not envisioned to run 7 segment LED displays. Will run a nixie tube though with suitable driver.

That's what I understand at this point.

Reply to
Richard

--
Yes.

That indicates that they're all at zero count.
Reply to
John Fields

There is no "bcd" (binary coded decimal) involved in the 4017. It's a decade counter with a carry out. As clock pulses come in, the discrete outputs Q0 to Q9 are asserted, individually, in order. Wipe BCD from your mind.

--
Rich Webb     Norfolk, VA
Reply to
Rich Webb

--
You got it! :-)
Reply to
John Fields

What has slowed me down a bit is a sort of assumption I've had about counters. I've been thinking that a counter is a counter is a counter. When in fact you cannot just select any counter for your needs. When I say mixing oranges and apples, this is what I am referring to. You do that when you try to treat all counters the same. When seeking to use 7 segment LED displays not all counters have outputs that are suitable. The 4017 is not suitable, because although it is a decade counter it's outputs are "1in10" type and there is no "1in10" to 7 segment LED decoder available. If there was it could be a substitute for a counter whose outputs are BCD. People mentioned that, but when starting out things sometimes just pass you by.

I don't think there is any BCD in the 4017 because it's a ring counter. So, whatever decoder that is in that IC, (the outputs are "decoded outputs")it's not decoding BCD to 1in10. I don't think so. I don't know what is decoded.

I've learned something. Thanks for all contributors. Rich

Reply to
Richard

Am 1.7.2011 schrub Richard:

It could be viewed as a 4 bit counter followed by a BCD-to-decimal decoder.

AAMOF: you can not! You have 4 outputs outputting BCD and your 7-segment display has 7 inputs! You need a BCD to 7-segment decoder/driver for this. As I have shown in an earlier reply, you can do the same with a

1-of-10 counter and a box of OR gates. So: conceptually, there is no difference between a BCD counter followed by a BCD to 7-segment decoder/driver and a 1-of-10 counter and a box full of OR gates! So: both will work, one (BCD counter and decoder/driver) has standard chips while the other (1-of-10 counter and OR gates) has not.
1) a 7-segment display has 7 inputs (one for each segment) while the 1-of-10 counter has 10 outputs: which ooutputs will you use and which outputs will you discard and why? 2) If you had a nixie tube, a 1-of-10 counter would be exactly what you'd be wanting: each digit is a separate unit (a filament) with a separate input: 10 inputs and only one may be active at any time.

Josef

--
These are my personal views and not those of Fujitsu Technology Solutions!
Josef Möllers (Pinguinpfleger bei FTS)
	If failure had no penalty success would not be a prize (T.  Pratchett)
Company Details: http://de.ts.fujitsu.com/imprint.html
Reply to
Josef Moellers

A traditional approach for a counter/decoder setup with standardized parts was to use one 74192+7447 pair for each decimal digit. A 7446 (30V) or 7447 (15V) could sink 40mA, though the packages were still limited to 320mW total, regardless. They are open-collector style, so select a 7-seg display with a common anode, not a common cathode.

The modern approach would be to use most any micro controller, multiplex the digit displays, and use a very small amount of code and simply be done with it.

I don't know whether this is for learning or you actually want a decade counter and display. If for a one-off, you might imagine it would cost money for the tools and time. But you could do all of it, including getting a complete development system and two cpus and an IDE, compiler, and debugger and board and everything but the digits themselves shipped to your home, all expenses paid, for $4.30 total. The darned kit even includes pin headers and header connectors needed to place a daughter board on top with the 7-segment displays mounted there. Each cpu has 10 I/O pins and 1 input-only pin. Of course, there's still the coding time. But it's not much to do that kind of work. If you wanted it, I'd create the code for you and send it to match up with the kit you'd buy. You would need a tiny bit of vector board and some wire and solder and soldering iron.

formatting link

Doesn't get cheaper or easier.

Jon

Reply to
Jon Kirwan

Some more questions about making counters using counter ICs

If you want to make a counter, you can choose to employ 7-segment LED displays to show digits. It seems that if you go that way you are practically tied to counters offering BCD outputs. Because you have BCD to 7-segment display decoders ready-available. Not that you could not use counters with 1in10 outputs, but you would then need to devise your own decoder.

Now, we also have fully-decoded counters or one-hot code output counters of which the 4017 IC is an example. Same as 1in10 counters.

Question is: Do folks build counters with one-hot code counters? I'm receiving an impression that although counters, you would not build a counter-with-display with them. But, I think I could be getting the wrong impression here. And, if you do use them for building a counter-with-display, what displays do you use? Apart from Dekatrons. :c)

Also, ignoring microprocessors for the moment, what is the modern set-up for counter-with-display? In other words is using 7-segment LED displays "old hat"? Or still in vogue.

Reply to
Richard

Am 1.7.2011 schrub Richard:

While on my way to the morning coffee break, I thought about the following: one could even construct a decimal counter which counted in

7-segment code! Not that I know how, because it's been ~20 years that I last used these kind of things. On practice, this would be a state machine that repeatedly went through 10 states and, when wrapping around, would also output a "carry" signal.

Any takers? ;-)

Josef

--
These are my personal views and not those of Fujitsu Technology Solutions!
Josef Möllers (Pinguinpfleger bei FTS)
	If failure had no penalty success would not be a prize (T.  Pratchett)
Company Details: http://de.ts.fujitsu.com/imprint.html
Reply to
Josef Moellers

Aaah, maybe I'm on the right track and fully decoded counters like 4017 would not be used in counters-with-display:

"Decade counter

A decade counter is one that counts in decimal digits, rather than binary. A decimal counter may have each digit binary encoded (that is, it may count in binary-coded decimal, as the 7490 integrated circuit did) or other binary encodings (such as the bi-quinary encoding of the

7490 integrated circuit). Alternatively, it may have a "fully decoded" or one-hot output code in which each output goes high in turn; the 4017 was such a circuit. The latter type of circuit finds applications in multiplexers and demultiplexers, or wherever a scanning type of behaviour is useful. Similar counters with different numbers of outputs are also common.

The decade counter is also known as a mod-10 counter."

formatting link

So, at the moment I'm only seeing BCD output counters that are in the ballpark for counter-with-display. But, there must be other non BCD counters suitable?

Reply to
Richard

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.