![]() Unfortunately, humans find it difficult to think in terms of binary numbers. Two very commonly used groupings are 4-bit nybbles (or nibbles ) and 8-bit bytes. We can gather groups of bits together to represent pretty much anything we want, including numerical values in the form of integers or floating-point numbers, alphanumeric characters and punctuation symbols, and… the list goes on. In addition to considering these 0 and 1 values to be binary numbers, we can also use them to represent the Boolean concepts of false and true. ![]() Rather than talk in terms of specific voltage values, we abstract them and refer to them as 0 and 1. The reason for using binary is that it’s relatively easy for us to create electronic implementations of simple logic functions like AND, NAND, OR, NOR, XOR, and XNOR that can detect the difference between two different voltages on their inputs and generate those voltages on their outputs. As a result, over the years, I’ve spent countless happy hours handcrafting artisanal diagrams of this ilk.Īs we discussed in our 0s and 1s column, the underlying foundation for the overwhelming majority of today’s digital computers is the binary (base-2) number system, which supports only two values: 0 and 1. Like many engineers, I have a hint of a sniff of a whiff of the obsessive-compulsive about me. What’s that? Do I hear you muttering “I bet these images are created using Fritzing Software ” under your breath? If so, you’d lose your money because I create all my diagrams using Microsoft Visio. ![]() The reason for the jumper wires in the middle of the power and ground rails at the top and bottom of the breadboard is discussed in the aforementioned blog. As part of this, I’m creating what I consider to be some super-spiffy diagrams, an example of which is shown below.įeast your orbs on my awesome diagrams (Source: Max Maxfield) The early columns in my Arduino Bootcamp series describe myriad ways to employ 7-segment displays, including multiple manifestations of BCD. Matt is fiercely fighting my wandering off into the weeds as is my wont, so-since I can’t cover everything on PE ’s printed pages-I’m writing ancillary articles like this to capture and share a lot of super-interesting contextual material (take a look at my Solderless Breadboard Blog, for example). Unfortunately, the editor of that glorious tome, the nefarious illustrious Matt Pulzer, wants me to focus on nitty-gritty hands-on stuff. Although it may appear impossible at first, there really is a no-trick logical solution, which is presented at the end of this column for your delectation and delight.Īs I mentioned in an earlier article ( Arduino 0s and 1s, LOW and HIGH, False and True, and Other Stuff ), I’m currently in the process of penning a series of Arduino Bootcamp columns for Practical Electronics ( PE ), which is the UK’s premier electronics and computing hobbyist magazine. If you haven’t been exposed to this little scamp before, then it’s well worth your taking the time to ponder this poser. On the bright side, we can use as many AND and OR gates as our hearts desire. Also, before you ask, we aren’t allowed to use any NAND, NOR, XOR, or XNOR gates. Sad to relate, there’s a problem in that we are informed we have only two NOT gates at our disposal. ![]() If we were permitted to use any logic gates we desired, then we would need only three NOT gates to do the job. Our task is to specify the contents of the black box. The three outputs are the logical inversions of their corresponding inputs (when A is 0, NotA is 1 when A is 1, NotA is 0 when B is 0, NotB is 1… etc.). We start with a black box that has three inputs, A, B, and C, along with three outputs NotA, NotB, and NotC. Speaking of logic, before we dive headfirst into the BCD fray with gusto and abandon (and aplomb, of course), let’s take a moment to remind ourselves of one of my favorite logical conundrums. In fact, may I make so bold as to say that, even if you’re a digital logic guru boasting a size-16 brain with go-faster stripes on the sides, if you don’t learn something new in this column then my name isn’t Max the Magnificent! The more I delve into this sort of thing, the more I say to myself, “Wow! I would never have thought of that!” A great example is binary coded decimal (BCD) because there’s a lot more to this topic than one might, at first, suppose. I love learning how logic designers of the past solved tricky problems with innovative solutions.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |