Computer Sensing and Control How is binary related to what we are trying to accomplish in electronics? The PC GadgetMaster II uses binary to communicate with the world. We can represent a binary value in a couple of manners. It can be a one or zero, and it can also be represented by the presence or absence of voltage.
Register A physical location that can hold a certain amount of data Lots of them so each has an address How much data a register can hold is measured in bits or bytes (8 bits = 1 byte)
PC Gadget Master II Parallel port has three 8 bit registers which are used with the PC Gadget –Output 888 and 890 –Input 889 With switch in the B position: –12 Output lines, 4 Input lines With switch in the A position: –11 Output lines, 8 Input lines
Computer Sensing and Control
To get output, we issue a command in Visual Basic called OUT. If we wish to have the value (voltage) issued on a pin, we issue the corresponding binary value with the out command.
OUT 888, 128
Output Commands Out Register Address, Register Contents OUT 888, 128 turns on pin 1 OUT 888, 1 turns on pin 8 OUT 888, turns on pin 2 and 3 To turn off the voltage, we issue??
OUT 888, 0
PC Gadget: Input
Input Commands INP Register Address INP 889 checks the state of the inputs Input returns a binary number where a 1 corresponds to a high state on a pin. How do we know if a pin is high?
N = Inp(889) If (N and 64) = 64 then (Do something here!) End if What are we trying to do with the N and 64 = 64??
Masking Boolean operators are used to MASK values in decision making operations. We can “filter” an input for a specific value to ensure that we can detect its existence
AND Truth Table 1 AND 1 =
Bitwise AND AND =
Review Gadgetmaster II has Input register (memory area) and an Output register. Each register has an address: Input is 889. Output has two: 888 and 890. Output has twelve lines on which voltage can be sent. Each line corresponds to a binary number. If we wish to send voltage through a particular line, we use the OUT command, the port number, and the value of the line which on which we wish to have voltage. For example: OUT 888, 128 places voltage or a high state on pin 1. OUT 888, 8 places voltage on pin 5. OUT 888, 96 places voltage on two pins: 2 & 3.
If we wish to use the other four pins (9 – 12) we must use a separate address which is 890. These four pins have a special arrangement with pin 9 and eleven switching values so that the four pins have decimal 2, 4, 8, 1. Remember, each pin is addressed by us in decimal but actually corresponds to a binary value on the pin!! Input works a little differently than output but has similarities. The input register is similar to the output in that it has an address which is 889. It is similar to the output register in that each pin has a binary value which corresponds to a high state on the pin. We use the decimal equivalent to address the pin. Review
To get the value of a pin on the input register we have to look at all values on the register at the same time. We then examine the number returned to us from the register and it will inform us as to which pin has voltage. We use the INP command to get the value in the input register. For example: intRegVal = INP (889) tells us the value that is in the register. It is placed in a variable called intRegVal which we declare and then examine. There is a jumper which is set to B by default which controls the number of lines which are active at any time. There are eight lines but only four are active with the jumper is this position.