Introduction to Interfacing Projects Nareen Khan
Using Turing Command to send data to parallel port parallelput (x : int) The command sends 1 byte of data to the parallel port at a time. Using 1 byte (8 bits) we can represent 2 8 =256 different states. The 8 bits are sent along the Data pins on the parallel port (Pins 2-9, D0-D7)
Understanding the Parallel Port D7D6D4D5D3D2D1D0 Data Lines (D) used for output. Grounds Status Lines (S) used for input. Control Lines (C) may be used for input / output
Binary on the Parallel Port parallelput(0) parallelput(1) parallelput(37) parallelput(255) The integer parameter is translated into binary and each bit corresponds to one of the data pins on the parallel port. Unsure of your conversions? Try this utility.
What does the circuit look like? parallelput(0) Switch is open, no path, LED off parallelput(1) Switch is closed, path exists, LED on Voltage from parallel port 220Ω Pin 2 Pin 18
Breadboard Basics Connected vertically in blocks of 5 Connected horizontally
Light Emitting Diodes LED’s will only work if they are installed in the right direction. Here are three ways to tell which is the negative (-’ve) lead. 1) –’ve lead is shorter
Light Emitting Diodes LED’s will only work if they are installed in the right direction. Here are three ways to tell which is the negative (-’ve) lead. 2) Internal segment is larger
Light Emitting Diodes LED’s will only work if they are installed in the right direction. Here are three ways to tell which is the negative (-’ve) lead. 3) Flat side on lip Top View
Wiring an LED +’ve, Long Lead
Project Samples Traffic Intersection
Student GUIs
Student GUI’s
The Traffic Intersection Project Steps: 1) Wire six LED / resistor pairs on breadboard 2) Attach the wires to your model 3) Write your program 4) Enjoy hours of staring at the lights change
Step 1 – Wiring the lights +’ve, Long Lead -’ve, Short Lead
Step 2 – The D-Sub Connector 1)Attach your wires to the crimp pins. 2)Be sure to press the clamps down tight on the wire. 3)Push the crimped pin into the D-Sub Connector (it’s a tight fit). 4)Repeat for the other 7 wires.
Step 1 – Wiring the lights
Test your interface Once you’ve got the wires connected to the parallelport, you can test the interface. Try : parallelput(255) This should turn on all your lights.
Sample Program #1
Sample Program #Step 1 – Wire Wrapping
Make Use of the Tri-State Buffer – See the Handout
Making The Turing Program 1 Make a Program Header % % The "trafficIntersection" program % Course Code: ICS 3M1 % Instructor: Your Teacher % Date: April 25, 2007 % Initial Release % % This Program simulates a traffic intersection in graphics. It can also properly drive the actual % intersection by use of a parallel port and binary outputs.
Making The Turing Program 2 Create a User Defined Data Type type trafficState: % data type trafficState will store various components of traffic states. record timeWait : int % var for the time in that state binState : int % binary value of that state (more details see pin output state table NSPic : string % var for the state of the NS light EWPic : string % var for the state of the EW light end record
Making The Turing Program 3 Create a User Defined Data Type drawfillbox(0, 0, maxx, maxy, 54) % code for background colour % The 6 states are declared as an array of trafficState data type var trafficPattern : array of trafficState % Below contains the value of each of the states % timeWait: Green light - 5 sec. % Yellow light - 2 sec. % Both red light sec. % binaryStates in decimal: NS green - 1 % NS yellow - 2 % NS red - 4 % EW green - 8 % EW yellow - 16 % EW red - 32
Making The Turing Program 4 Note the binary States listed below drawfillbox(0, 0, maxx, maxy, 54) % code for background colour % The 6 states are declared as an array of trafficState data type var trafficPattern : array of trafficState % Below contains the value of each of the states % timeWait: Green light - 5 sec. % Yellow light - 2 sec. % Both red light sec. % binaryStates in decimal: NS green - 1 % NS yellow - 2 % NS red - 4 % EW green - 8 % EW yellow - 16 % EW red - 32
Making The Turing Program 5 Then Define Each Traffic Pattern in this manner… %NS Green EW Red trafficPattern(1).timeWait := 5000 trafficPattern(1).binState := trafficPattern(1).NSPic := "trafficgreen.bmp" trafficPattern(1).EWPic := "trafficred.bmp“ %NS Yellow EW Red trafficPattern(2).timeWait := 2000 trafficPattern(2).binState := trafficPattern(2).NSPic := "trafficyellow.bmp" trafficPattern(2).EWPic := "trafficred.bmp“ etc…
Making The Turing Program 6 Create a Procedure % procedure for loading the pictures in the different states procedure drawIntersection (NSFile : string, EWFile : string) Pic.ScreenLoad (NSFile, 250, 250, 0) Pic.ScreenLoad (EWFile, 100, 150, 2) Pic.ScreenLoad (NSFile, 250, 50, 0) Pic.ScreenLoad (EWFile, 400, 150, 2) end drawIntersection
Making The Turing Program 7 Finally, cycle through the lights… % Loop to make the cycle continuous for i : % Loop for each of the traffic states and giving drawIntersection the images to change for j : drawIntersection (trafficPattern(j).NSPic, trafficPattern(j).EWPic) parallelput (trafficPattern(j).binState) % send info to parallel port delay (trafficPattern(j).timeWait) % delay the amount of milliseconds indicated in traffic state end for
Making The Turing Program 8 Make Sure You Have These Graphics Files