<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6481008699478661148</id><updated>2011-11-27T15:37:15.575-08:00</updated><category term='Nomes dos Sinais IEEE-1284-B'/><category term='Cabo para Impressora Paralela: Pinagem e Conectores'/><category term='Sobre INPOU32.DLL for Windows 98/2000/NT/XP'/><category term='Examplo de Interface LCD de 16 Character x 2 Lines'/><category term='Pinagem do IEEE-1284-A (DB-25)'/><category term='Pinagem do IEEE-1284-B (36-Centronics)'/><category term='Conectores 36-pinos Centronics'/><category term='Programa Módulo de LCD via Porta Paralela'/><category term='Um Tutorial sobre a Interface Porta Paralela'/><category term='Programando a Porta Paralela'/><category term='Porta Paralela do PC (DB-25 Fêmea)'/><category term='Como a Biblioteca INPOUT32.DLL funciona?'/><category term='Introdução ao Padrão IEEE-1284-B'/><title type='text'>Padrão IEEE-1284 (Porta Paralela)</title><subtitle type='html'>www.carlos-rosa.com</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ieee1284-rosa.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6481008699478661148/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ieee1284-rosa.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Carlos Alberto Rosa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://bp1.blogger.com/_5JsSiudffX8/R7-7JLPUSOI/AAAAAAAACCk/GwrTVUVGAIo/S220/www.carlos-rosa.com.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6481008699478661148.post-726279737934154336</id><published>2007-11-24T23:26:00.000-08:00</published><updated>2007-11-24T23:31:02.911-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Um Tutorial sobre a Interface Porta Paralela'/><title type='text'>Um Tutorial sobre a Interface Porta Paralela</title><content type='html'>Fonte: &lt;a class="contentpagetitle" href="http://logix4u.net/Legacy_Ports/Parallel_Port/A_tutorial_on_Parallel_port_Interfacing.html"&gt;A tutorial on Parallel port Interfacing&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;u&gt;Introduction&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;           Parallel port is a simple and inexpensive tool for building computer controlled devices and projects. The simplicity and ease of programming makes parallel port popular in electronics hobbyist world. The parallel port is often used in Computer controlled robots, Atmel/PIC programmers, home automation, ...etc... Here a simple tutorial on parallel port interfacing and programming with some examples.&lt;/p&gt;&lt;p&gt;           Everybody knows what is parallel port, where it can be found, and for what it is being used. the primary use of parallel port is to connect printers to computer and is specifically designed for this purpose. Thus it is often called as printer Port or Centronics port (this name came from a popular printer manufacturing company 'Centronics' who devised some standards for parallel port). You can see the parallel port connector in the rear panel of your PC. It is a 25 pin female (DB25) connector (to which printer is connected). On almost all the PCs only one parallel port is present, but you can add more by buying and inserting ISA/PCI parallel port cards. &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Parallel port modes&lt;br /&gt;&lt;/u&gt;&lt;/strong&gt;           The &lt;a href="http://www.fapo.com/ieee1284.htm" target="_blank"&gt;&lt;span style="color:#406080;"&gt;IEEE 1284 Standard&lt;/span&gt;&lt;/a&gt; which has been published in 1994 defines five modes of data transfer for parallel port. They are,&lt;/p&gt;&lt;p&gt;&lt;strong&gt;      1) Compatibility Mode&lt;br /&gt;      2) Nibble Mode&lt;br /&gt;      3) Byte Mode&lt;br /&gt;      4) EPP&lt;br /&gt;      5) ECP&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;           The programs, circuits and other information found in this tutorial are compatible to almost all types of parallel ports and can be used without any problems (Not tested, just because of confidence ! ). More information on parallel port operating modes can be found &lt;a href="http://www.fapo.com/ieee1284.htm" target="_blank"&gt;&lt;span style="color:#406080;"&gt;here&lt;/span&gt;&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;Hardware&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;The pin outs of DB25 connector is shown in the picture below&lt;/p&gt;&lt;div style="TEXT-ALIGN: center"&gt;&lt;img height="197" alt="Parallel Port" src="http://logix4u.net/Legacy_Ports/Parallel_Port/images/stories/legacy_ports/parallel_port/tutorial/parallel.gif" width="364" border="1" /&gt;&lt;/div&gt;&lt;p&gt;The lines in DB25 connector are divided in to three groups, they are&lt;/p&gt;&lt;p&gt; &lt;strong&gt;     1) Data lines (data bus)&lt;br /&gt;      2) Control lines&lt;br /&gt;      3) Status lines&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;           As the name refers , data is transferred over data lines , Control lines are used to control the peripheral and of course , the peripheral returns status signals back computer through Status lines. These lines are connected to Data, Control And Status registers internally . The details of parallel port signal lines are given below&lt;/p&gt;&lt;p align="left"&gt;&lt;table height="30" cellspacing="1" width="50" align="center" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Pin No (DB25)&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Signal name&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Direction&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Register - bit&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Inverted&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;nStrobe&lt;/td&gt;&lt;td&gt;Out&lt;/td&gt;&lt;td&gt;Control-0&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;Data0&lt;/td&gt;&lt;td&gt;In/Out&lt;/td&gt;&lt;td&gt;Data-0&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;Data1 &lt;/td&gt;&lt;td&gt;In/Out &lt;/td&gt;&lt;td&gt;Data-1 &lt;/td&gt;&lt;td&gt;No &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;Data2 &lt;/td&gt;&lt;td&gt;In/Out &lt;/td&gt;&lt;td&gt;Data-2 &lt;/td&gt;&lt;td&gt;No &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;Data3 &lt;/td&gt;&lt;td&gt;In/Out &lt;/td&gt;&lt;td&gt;Data-3 &lt;/td&gt;&lt;td&gt;No &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;Data4 &lt;/td&gt;&lt;td&gt;In/Out &lt;/td&gt;&lt;td&gt;Data-4 &lt;/td&gt;&lt;td&gt;No &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;Data5 &lt;/td&gt;&lt;td&gt;In/Out &lt;/td&gt;&lt;td&gt;Data-5 &lt;/td&gt;&lt;td&gt;No &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;Data6 &lt;/td&gt;&lt;td&gt;In/Out &lt;/td&gt;&lt;td&gt;Data-6 &lt;/td&gt;&lt;td&gt;No &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;Data7 &lt;/td&gt;&lt;td&gt;In/Out &lt;/td&gt;&lt;td&gt;Data-7 &lt;/td&gt;&lt;td&gt;No &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt;nAck &lt;/td&gt;&lt;td&gt;In &lt;/td&gt;&lt;td&gt;Status-6 &lt;/td&gt;&lt;td&gt;No &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt;Busy &lt;/td&gt;&lt;td&gt;In &lt;/td&gt;&lt;td&gt;Status-7 &lt;/td&gt;&lt;td&gt;Yes &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;12&lt;/td&gt;&lt;td&gt;Paper-Out &lt;/td&gt;&lt;td&gt;In &lt;/td&gt;&lt;td&gt;Status-5 &lt;/td&gt;&lt;td&gt;No &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13&lt;/td&gt;&lt;td&gt;Select &lt;/td&gt;&lt;td&gt;In &lt;/td&gt;&lt;td&gt;Status-4 &lt;/td&gt;&lt;td&gt;No &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;14&lt;/td&gt;&lt;td&gt;Linefeed &lt;/td&gt;&lt;td&gt;Out &lt;/td&gt;&lt;td&gt;Control-1 &lt;/td&gt;&lt;td&gt;Yes &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;15&lt;/td&gt;&lt;td&gt;nError &lt;/td&gt;&lt;td&gt;In &lt;/td&gt;&lt;td&gt;Status-3 &lt;/td&gt;&lt;td&gt;No &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;16&lt;/td&gt;&lt;td&gt;nInitialize &lt;/td&gt;&lt;td&gt;Out &lt;/td&gt;&lt;td&gt;Control-2 &lt;/td&gt;&lt;td&gt;No &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;17&lt;/td&gt;&lt;td&gt;nSelect-Printer &lt;/td&gt;&lt;td&gt;Out &lt;/td&gt;&lt;td&gt;Control-3 &lt;/td&gt;&lt;td&gt;Yes &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;18-25&lt;/td&gt;&lt;td&gt;Ground &lt;/td&gt;&lt;td&gt;- &lt;/td&gt;&lt;td&gt;- &lt;/td&gt;&lt;td&gt;- &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;Parallel port registers&lt;br /&gt;&lt;/u&gt;&lt;/strong&gt;           As you know, the Data, Control and status lines are connected to there corresponding registers inside the computer. So by manipulating these registers in program , one can easily read or write to parallel port with programming languages like 'C' and BASIC.&lt;/p&gt;&lt;p&gt;The registers found in standard parallel port are ,&lt;/p&gt;&lt;p&gt;&lt;strong&gt;      1) data register&lt;br /&gt;      2) Status register&lt;br /&gt;      3) Control register&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;           As there names specifies, Data register is connected to Data lines, Control register is connected to control lines and Status register is connected to Status lines. (Here the word connection does not mean that there is some physical connection between data/control/status lines. The registers are virtually connected to the corresponding lines.). So what ever you write to these registers , will appear in corresponding lines as voltages, Of course, you can measure it with a multimeter. And What ever you give to Parallel port as voltages can be read from these registers(with some restrictions). For example , if we write '1' to Data register , the line Data0 will be driven to +5v. Just like this ,we can programmatically turn on and off any of the data lines and Control lines. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;Where these registers are ?&lt;br /&gt;&lt;/u&gt;&lt;/strong&gt;           In an IBM PC, these registers are IO mapped and will have unique address. We have to find these addresses to work with parallel port. For a typical PC , the base address of LPT1 is 0x378 and of LPT2 is 0x278. The data register resides at this base address , status register at baseaddress + 1 and the control register is at baseaddress + 2. So once we have the base address , we can calculate the address of each registers in this manner. The table below shows the register addresses of LPT1 and LPT2&lt;/p&gt;&lt;p&gt;&lt;table bordercolor="#b0b0b0" align="center" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Register&lt;/td&gt;&lt;td&gt;LPT1&lt;/td&gt;&lt;td&gt;LPT2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;data registar(baseaddress + 0)&lt;/td&gt;&lt;td&gt;0x378&lt;/td&gt;&lt;td&gt;0x278&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;status register (baseaddress + 1)&lt;/td&gt;&lt;td&gt;0x379&lt;/td&gt;&lt;td&gt;0x279&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;control register (baseaddress + 2)&lt;/td&gt;&lt;td&gt;0x37a&lt;/td&gt;&lt;td&gt;0x27a&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;Programming Concepts&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;           Almost all programming languages allow programmers to access parallel port using some library functions. For example , Borland C is providing "Inportb" and "Outportb" functions to read or write IO mapped peripherals. But the examples provided here in this tutorial is written VC++ and can be easily ported to other compilers like Borland C and Turbo C. Visual Basic does not have any functions or support to access parallel port directly, but it is possible to add such capabilities to your VB application by writing a dll in VC++ and calling its exported functions from VB. VC++ provides two functions to access IO mapped peripherals, '_inp' for reading and '_outp' for writing. These functions are declared in "conio.h".&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;Hardware for testing sample programs&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;           The schematic diagram of the test circuit is shown below. It is recommended to build this circuit before testing the sample programs&lt;/p&gt;&lt;p&gt;&lt;a href="http://logix4u.net/Legacy_Ports/Parallel_Port/images/stories/legacy_ports/parallel_port/tutorial/paralleltest.gif" target="_blank"&gt;&lt;/p&gt;&lt;/a&gt;&lt;div style="TEXT-ALIGN: center"&gt;&lt;img height="224" alt="Test hardware" src="http://logix4u.net/Legacy_Ports/Parallel_Port/images/stories/legacy_ports/parallel_port/tutorial/paralleltest.gif" width="400" border="1" /&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;Sample program in VC++&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;           Writing a parallel port interfacing program in VC++ is very easy. Here is the steps to write your first parallel port interfacing application in VC++. &lt;/p&gt;&lt;p&gt;           Start VC++ IDE , Select 'New' from File menu.Then select “Win32 Console Application” from “Projects” tab(picture-3). enter project name as “partest1” , then click OK button. &lt;/p&gt;&lt;div style="TEXT-ALIGN: center"&gt;&lt;img height="331" alt="Picture3" src="http://logix4u.net/Legacy_Ports/Parallel_Port/images/stories/legacy_ports/parallel_port/tutorial/partest1_pic1.gif" width="400" border="1" /&gt;&lt;/div&gt;&lt;p&gt;Picture-3 &lt;/p&gt;&lt;p&gt;Now you can see a dialog box with caption “Win32 Console Application - step 1 of 1” (picture-4).&lt;/p&gt;&lt;div style="TEXT-ALIGN: center"&gt;&lt;img height="263" alt="Picture 4" src="http://logix4u.net/Legacy_Ports/Parallel_Port/images/stories/legacy_ports/parallel_port/tutorial/partest1_pic2.gif" width="400" border="1" /&gt;&lt;/div&gt;&lt;p&gt;Picture-4 &lt;/p&gt;&lt;p&gt;Select “a simple Application” and click Finish. Now open example1.cpp from “fileview” and replace the existing code with the code given below.&lt;/p&gt;&lt;p align="left"&gt;&lt;br /&gt;&lt;table style="WIDTH: 408px; HEIGHT: 451px" align="left" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;br /&gt;#include "stdafx.h"&lt;br /&gt;#include "conio.h"&lt;br /&gt;#include "stdio.h"&lt;br /&gt;#include "string.h"&lt;br /&gt;#include "stdlib.h"&lt;/p&gt;&lt;p&gt;int main(int argc, char* argv[])&lt;br /&gt;{&lt;br /&gt; short data;&lt;/p&gt;&lt;p&gt; if(argc&lt;2)&lt;br /&gt; {&lt;br /&gt;  printf("Usage\n\n");&lt;br /&gt;  printf("partest1.exe ,,\n\n\n");&lt;br /&gt;  return 0;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; if(!strcmp(argv[1],"read"))&lt;br /&gt; {&lt;br /&gt;  data = _inp(atoi(argv[2]));&lt;br /&gt;  printf("Data read from parallel port is  ");&lt;br /&gt;  printf("%d\n\n\n\n",data);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; if(!strcmp(argv[1],"write"))&lt;br /&gt; {&lt;br /&gt;  _outp(atoi(argv[2]),atoi(argv[3]));&lt;br /&gt;  printf("Data written to parallel port is  ");&lt;br /&gt;  printf("%s\n\n\n\n\n",argv[3]);&lt;br /&gt; }&lt;br /&gt; return 0;&lt;br /&gt;} &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;Build the project and copy partest1.exe to "c:\". &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;How to Test The Program ?&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;           Connect The assembled hardware shown above to your PC's parallel port. Open DOS command window Move to "C:\" and type "partest1 write 888 255" and press enter. If everything is correct , LED1 to LED8 in the hardware will glow. You may be doubtful about the command line parameters passed to the program. Here 888(0x378) is the address of the parallel port data register and 255 is the data to be written to parallel port data register. if you enter "partest1 read 888" to command line , the program will read parallel port data register and display it. This will blindly read the contents of parallel port data register , but not the data present on data lines. To read the data from the data lines , we will have to enable the bidirectional data transfer first. To enable Bidirectional data transfer just set the "Bidirectional" bit (bit 5) in control register. This is done by writing 32 to control register. The command "partest1 write 890 32" will do this. After entering this command you can read the status of switches in the hardware using the command "partest1 read 888" &lt;/p&gt;&lt;p&gt;NOTE: This sample program will not work on Windows NT/2000 or XP if you run the program on these machines , it will show an error. use new &lt;a href="http://logix4u.net/Legacy_Ports/Parallel_Port/Inpout32.dll_for_Windows_98/2000/NT/XP.html"&gt;&lt;span style="color:#406080;"&gt;Inpout32.dll&lt;/span&gt;&lt;/a&gt; on NT/2000/XP machines&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6481008699478661148-726279737934154336?l=ieee1284-rosa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ieee1284-rosa.blogspot.com/feeds/726279737934154336/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6481008699478661148&amp;postID=726279737934154336' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6481008699478661148/posts/default/726279737934154336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6481008699478661148/posts/default/726279737934154336'/><link rel='alternate' type='text/html' href='http://ieee1284-rosa.blogspot.com/2007/11/um-tutorial-sobre-interface-porta.html' title='Um Tutorial sobre a Interface Porta Paralela'/><author><name>Carlos Alberto Rosa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://bp1.blogger.com/_5JsSiudffX8/R7-7JLPUSOI/AAAAAAAACCk/GwrTVUVGAIo/S220/www.carlos-rosa.com.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6481008699478661148.post-3850779074627721423</id><published>2007-11-24T23:21:00.000-08:00</published><updated>2007-11-24T23:24:48.280-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Como a Biblioteca INPOUT32.DLL funciona?'/><title type='text'>Como a Biblioteca INPOUT32.DLL funciona?</title><content type='html'>Fonte: &lt;a href="http://logix4u.net/Legacy_Ports/Parallel_Port/How_Inpout32.dll_works_.html"&gt;Logix4u&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Tried the Inpout32.dll..? then Learn how Inpout32.dll does the things. This brief tutorial explains about the working of Inpout32.dll in simple steps, with the help of a flow chart. This could help you much if you want to modify the Inpout32 dll source code&lt;br /&gt;&lt;p&gt;If you don't know what is Inpout32.dll, please &lt;a href="http://logix4u.net/Legacy_Ports/Parallel_Port/inpout32.htm"&gt;&lt;span style="color:#8b0000;"&gt;read it here&lt;/span&gt;&lt;/a&gt; and then continue.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;How it works &lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The outstanding feature of Inpout32.dll is , it can work with all the windows versions without any modification in user code or the DLL itself. This tutorial describes how it is achieved, what programming methods used, what are the APIs used, etc.... The Dll will check the operating system version when functions are called, and if the operating system is WIN9X, the DLL will use _inp() and _outp functions for reading/writing the parallel port. On the other hand, if the operating system is WIN NT, 2000 or XP, it will install a kernel mode driver and talk to parallel port through that driver. The user code will not be aware of the OS version on which it is running. This DLL can be used in WIN NT clone operating systems as if it is WIN9X. The flow chart of the program is given below. &lt;/p&gt;&lt;div style="TEXT-ALIGN: center"&gt;&lt;a href="http://logix4u.net/Legacy_Ports/Parallel_Port/images/stories/legacy_ports/parallel_port/inpout/inp_th_flow.gif" target="_blank"&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;The two important building blocks of this program are&lt;br /&gt;&lt;br /&gt;1) A kernel mode device driver embedded in the DLL in binary form&lt;br /&gt;&lt;br /&gt;2) The DLL itself&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Kernel mode driver Hwinterface.sys &lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The source code of Hwinterface.sys kernel mode driver is located in "kernel_mode_driver_source" directory. Where "hwinterfacedrv.c" is the main application source file. Three functions implemented in the driver are&lt;br /&gt;&lt;br /&gt;1) DriverEntry() , Called when driver is loaded. Creates device object and symbolic links.&lt;br /&gt;&lt;br /&gt;2) hwinterfaceUnload(), Called when driver is unloaded, performs clean up&lt;br /&gt;&lt;br /&gt;3) hwinterfaceDeviceControl(), handles calls made through DeviceIOControl API. Performs reading writing to the parallel port according to the control code passed.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;The DLL Inpout32&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The functions in the DLL are implemented in two source files, "inpout32drv.cpp" and "osversion.cpp". osversion.cpp checks the version of operating system. "inpout32drv.cpp" does installing the kernel mode driver, loading it , writing/ reading parallel port etc... The two functions exported from inpout32.dll are&lt;br /&gt;&lt;br /&gt;1) Inp32(), reads data from a specified parallel port register.&lt;br /&gt;&lt;br /&gt;2) Out32(), writes data to specified parallel port register.&lt;br /&gt;&lt;br /&gt;the other functions implemented in Inpout32.dll are&lt;br /&gt;&lt;br /&gt;1) DllMain(), called when dll is loaded or unloaded. When the dll is loaded , it checks the OS version and loads hwinterface.sys if needed.&lt;br /&gt;&lt;br /&gt;2) Closedriver(), close the opened driver handle. called before unloading the driver.&lt;br /&gt;&lt;br /&gt;3) Opendriver(), open a handle to hwinterface driver.&lt;br /&gt;&lt;br /&gt;4) inst() , Extract 'hwinterface.sys' from binary resource to 'systemroot\drivers' directory and creates a service. This function is called when 'Opendriver' function fails to open a valid handle to 'hwinterface' service.&lt;br /&gt;&lt;br /&gt;5) start() , starts the hwinterface service using Service Control Manager APIs.&lt;br /&gt;&lt;br /&gt;6) SystemVersion() Checks the OS version and returns appropriate code.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;What is hwinterface.ocx ActiveX control &lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;It is an activex control with same features of Inpout32.dll. It can be used either with VC++ or VB. But it gives great convenience when used with VB. Data can be written to parallel port using Outport method and can be read using Inport method.&lt;/p&gt;&lt;span style="font-family:Arial Black;font-size:85%;color:#406080;"&gt;&lt;a href="http://logix4u.net/Legacy_Ports/Parallel_Port/Inpout32.dll_for_Windows_98/2000/NT/XP.html"&gt;Download Inpout32.dll and source code here&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;Useful links&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.cmkrnl.com/faq.html"&gt;&lt;span style="color:#0000ff;"&gt;&lt;u&gt;Windows NT/Windows 2000/WDM Driver FAQ by Jamie E. Hanrahan &lt;/u&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0735618038/logix4u-20"&gt;&lt;u&gt;&lt;span style="color:#0000ff;"&gt;Programming Windows Driver Model by Walter Oney &lt;/span&gt;&lt;/u&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Details of all the APIs used is available at &lt;a href="http://logix4u.net/Legacy_Ports/Parallel_Port/msdn.microsoft.com"&gt;&lt;u&gt;&lt;span style="color:#0000ff;"&gt;MSDN Online&lt;/span&gt;&lt;/u&gt;&lt;/a&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6481008699478661148-3850779074627721423?l=ieee1284-rosa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ieee1284-rosa.blogspot.com/feeds/3850779074627721423/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6481008699478661148&amp;postID=3850779074627721423' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6481008699478661148/posts/default/3850779074627721423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6481008699478661148/posts/default/3850779074627721423'/><link rel='alternate' type='text/html' href='http://ieee1284-rosa.blogspot.com/2007/11/como-biblioteca-inpout32dll-funciona.html' title='Como a Biblioteca INPOUT32.DLL funciona?'/><author><name>Carlos Alberto Rosa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://bp1.blogger.com/_5JsSiudffX8/R7-7JLPUSOI/AAAAAAAACCk/GwrTVUVGAIo/S220/www.carlos-rosa.com.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6481008699478661148.post-7491173347400071421</id><published>2007-11-24T23:17:00.000-08:00</published><updated>2007-11-24T23:21:24.168-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sobre INPOU32.DLL for Windows 98/2000/NT/XP'/><title type='text'>Sobre INPOU32.DLL for Windows 98/2000/NT/XP</title><content type='html'>Fonte: &lt;a href="http://www.lvr.com/"&gt;http://www.lvr.com/&lt;/a&gt;, &lt;a href="http://logix4u.net/Legacy_Ports/Parallel_Port/Inpout32.dll_for_Windows_98/2000/NT/XP.html"&gt;Logix4u&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;u&gt;The Problem&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;Writing programs to talk with parallel port was pretty easy in old DOS days and in Win95/98 too. We could use Inporb and outportb or _inp() or _Outp functions in our program without any problem if we are running the program on DOS or WIN95/98. But entering to the new era of NT clone operating systems like WIN NT4, WIN2000, WINXP, all this simplicity goes away. Being interested in Parallel port interfacing and programming you might have experienced the problems in writing a program that can talk to parallel port successfully in NT based operating systems. When we are trying to run a program which is written using the conventional software functions like Inporb, outportb, _inp() or _Outp on a WINNT or WIN2000 system, it will show an error message that "The exception privileged instruction occurred in the application at location ....". The picture of such a messagebox is given at &lt;a href="http://logix4u.net/Legacy_Ports/Parallel_Port/Inpout32.dll_for_Windows_98/2000/NT/XP.html"&gt;Logix4u&lt;/a&gt;.&lt;/p&gt;&lt;p align="left"&gt;Staring to this messagebox, you might have been thinking.... "did i make a mistake in my program ?" it is working fine on WIN98 ... Who is guilty here. 'Nobody' that is the answer. Then why it is happening like this ..? The answer is in the next paragraph&lt;/p&gt;&lt;p align="left"&gt;Being a very secure operating system, Windows NT assigns some privileges and restrictions to different types of programs running on it.It classifies all the programs in to two categories , User mode and Kernel mode ie; running in ring3 and ring0 modes. user mode programs are running in ring3 mode and Kernel mode programs are running in ring0 mode. The programs you generally write falls in the user mode category. The user mode programs are restricted to use certain instructions like IN, OUT etc.. Whenever the operating system find that a user mode program is trying to execute such instructions , the operating system stops execution of those programs and will display an error message. Eventually our interfacing programs stops where they are executing IN or OUT instructions to read or write data to parallel port. But in the same time Kernel mode programs are in no way restricted in executing such instructions. Device drivers are capable of running in kernel mode. So the work around for the above stated problem is to write a kernel mode driver capable of reading and writing data to parallel port and let the user mode program to communicate with it. Writing a driver is not an easy job for even experienced programmers. But writing a simple driver for communicating with parallel port is a simple task when drivers like USB, sound card etc.. are concerned. Even though you get a working driver from somewhere else, installing and configuring it can be very cumbersome task. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;The Solution&lt;/u&gt;&lt;/strong&gt; &lt;/p&gt;&lt;p&gt;Introducing Inpout32.dll for WIN 98/NT/2000/XP. This dll have the following features&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Works seam less with all versions of windows (WIN 98, NT, 200 and XP) &lt;li&gt;Using a kernel mode driver embedded in the dll &lt;li&gt;No special software or driver installation required &lt;li&gt;Driver will be automatically installed and configured automatically when the dll is loaded &lt;li&gt;No special APIs required only two functions Inp32 and Out32 &lt;li&gt;Can be easily used with VC++ and VB &lt;li&gt;Functions are compatible with Jan Axelsons Inpout32.dll (available at &lt;a title="www.lvr.com" href="http://www.lvr.com/parport.htm" target="_blank"&gt;http://www.lvr.com/parport.htm&lt;/a&gt;). So this dll can be used with the &lt;a href="http://www.lvr.com/files/ppc.zip"&gt;sample programs&lt;/a&gt; available with the book &lt;a href="http://www.amazon.com/exec/obidos/ASIN/0965081915/logix4u-20" target="_blank"&gt;&lt;strong&gt;Parallel Port Complete&lt;/strong&gt;&lt;/a&gt;, without any modification. &lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;a href="http://www.hytherion.com/beattidp/comput/pport.htm" target="_blank"&gt;Click here&lt;/a&gt; for a sample program written for Borland C++ command line compiler, by Douglas Beattie Jr. &lt;/p&gt;&lt;p&gt;&lt;a href="http://logix4u.net/Legacy_Ports/Parallel_Port/Inpout32.dll_for_Windows_98/2000/NT/InpOut32%20RB.zip" target="_blank"&gt;Click here&lt;/a&gt; for a sample program written for Real Basic, by Aaron Ballman. &lt;/p&gt;&lt;p&gt;&lt;a href="http://logix4u.net/Legacy_Ports/Parallel_Port/Inpoutx64.dll_for_WIN_XP_64_bit.html" target="_blank"&gt;Click here&lt;/a&gt; for 64 bit version of inpout which can be used with 64 bit windows, by Phil. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6481008699478661148-7491173347400071421?l=ieee1284-rosa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ieee1284-rosa.blogspot.com/feeds/7491173347400071421/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6481008699478661148&amp;postID=7491173347400071421' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6481008699478661148/posts/default/7491173347400071421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6481008699478661148/posts/default/7491173347400071421'/><link rel='alternate' type='text/html' href='http://ieee1284-rosa.blogspot.com/2007/11/sobre-inpou32dll-for-windows-982000ntxp.html' title='Sobre INPOU32.DLL for Windows 98/2000/NT/XP'/><author><name>Carlos Alberto Rosa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://bp1.blogger.com/_5JsSiudffX8/R7-7JLPUSOI/AAAAAAAACCk/GwrTVUVGAIo/S220/www.carlos-rosa.com.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6481008699478661148.post-2069511564613798506</id><published>2007-11-24T22:48:00.000-08:00</published><updated>2007-11-24T22:53:32.100-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Examplo de Interface LCD de 16 Character x 2 Lines'/><title type='text'>Examplo de Interface LCD de 16 Character x 2 Lines</title><content type='html'>Fonte: &lt;a href="http://www.beyondlogic.org/parlcd/parlcd.htm"&gt;Beyondlogic.org&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-size:85%;"&gt;/*  LCD Module Software                                               */&lt;br /&gt;/*  17th May 1997                                 */&lt;br /&gt;/*  Copyright 1997 Craig Peacock                                      */&lt;br /&gt;/*  WWW     - http://www.senet.com.au/~cpeacock                       */&lt;br /&gt;/*  Email   - cpeacock@senet.com.au                                   */&lt;br /&gt;/*                                                                    */&lt;br /&gt;/*  Register Select must be connected to Select Printer (PIN 17)      */&lt;br /&gt;/*  Enable must be connected to Strobe (PIN1)                         */&lt;br /&gt;/*  DATA 0:7 Connected to DATA 0:7                                    */&lt;br /&gt;&lt;br /&gt;#include &lt;dos.h&gt;&lt;br /&gt;#include &lt;string.h&gt;&lt;br /&gt;&lt;br /&gt;#define PORTADDRESS 0x378  /* Enter Your Port Address Here */&lt;br /&gt;&lt;br /&gt;#define DATA PORTADDRESS+0&lt;br /&gt;#define STATUS PORTADDRESS+1&lt;br /&gt;#define CONTROL PORTADDRESS+2&lt;br /&gt;&lt;br /&gt;void main(void)&lt;br /&gt;{&lt;br /&gt; char string[] = {"Testing 1,2,3                           "&lt;br /&gt;    "It' Works !                             "};&lt;br /&gt; char init[10];&lt;br /&gt; int count;&lt;br /&gt; int len;&lt;br /&gt; init[0] = 0x0F; /* Init Display */&lt;br /&gt; init[1] = 0x01; /* Clear Display */&lt;br /&gt; init[2] = 0x38; /* Dual Line / 8 Bits */&lt;br /&gt;&lt;br /&gt; outportb(CONTROL, inportb(CONTROL) &amp;amp; 0xDF); /* Reset Control Port - Make sure Forward Direction */&lt;br /&gt;&lt;br /&gt; outportb(CONTROL, inportb(CONTROL)  0x08); /* Set Select Printer (Register Select) */&lt;br /&gt;&lt;br /&gt; for (count = 0; count &lt;= 2; count++)&lt;br /&gt;  {&lt;br /&gt;   outportb(DATA, init[count]);&lt;br /&gt;   outportb(CONTROL,inportb(CONTROL)  0x01); /* Set Strobe (Enable)*/&lt;br /&gt;   delay(20);                                 /* Larger Delay for INIT */&lt;br /&gt;   outportb(CONTROL,inportb(CONTROL) &amp;amp; 0xFE); /* Reset Strobe (Enable)*/&lt;br /&gt;   delay(20);                                 /* Larger Delay for INIT */&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt; outportb(CONTROL, inportb(CONTROL) &amp;amp; 0xF7);  /* Reset Select Printer (Register Select) */&lt;br /&gt;&lt;br /&gt; len = strlen(string);&lt;br /&gt;&lt;br /&gt; for (count = 0; count &lt; len; count++)&lt;br /&gt;  {&lt;br /&gt;   outportb(DATA, string[count]);&lt;br /&gt;   outportb(CONTROL,inportb(CONTROL)  0x01); /* Set Strobe */&lt;br /&gt;   delay(2);&lt;br /&gt;   outportb(CONTROL,inportb(CONTROL) &amp;amp; 0xFE); /* Reset Strobe */&lt;br /&gt;   delay(2);&lt;br /&gt;  }&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6481008699478661148-2069511564613798506?l=ieee1284-rosa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ieee1284-rosa.blogspot.com/feeds/2069511564613798506/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6481008699478661148&amp;postID=2069511564613798506' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6481008699478661148/posts/default/2069511564613798506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6481008699478661148/posts/default/2069511564613798506'/><link rel='alternate' type='text/html' href='http://ieee1284-rosa.blogspot.com/2007/11/examplo-de-interface-lcd-de-16.html' title='Examplo de Interface LCD de 16 Character x 2 Lines'/><author><name>Carlos Alberto Rosa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://bp1.blogger.com/_5JsSiudffX8/R7-7JLPUSOI/AAAAAAAACCk/GwrTVUVGAIo/S220/www.carlos-rosa.com.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6481008699478661148.post-1922113091472229275</id><published>2007-11-24T22:41:00.000-08:00</published><updated>2007-11-24T22:49:20.333-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programa Módulo de LCD via Porta Paralela'/><title type='text'>Programando Módulo de LCD via Porta Paralela</title><content type='html'>&lt;span style="font-family:georgia;color:#000000;"&gt;Fonte: &lt;a href="http://electrosofts.com/parallel/lcd.html"&gt;ElectroSofts&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#800000;"&gt;&lt;/span&gt;&lt;span style="font-family:Courier;color:#800000;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier;color:#800000;"&gt;#include "dos.h"&lt;br /&gt;#include "string.h"&lt;br /&gt;#include "conio.h"&lt;br /&gt;#include "time.h"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier;"&gt;&lt;span style="color:#800000;"&gt;&lt;br /&gt;#define PORTADDRESS 0x378 /* Enter Your Port Address Here */&lt;br /&gt;&lt;br /&gt;#define DATA PORTADDRESS+0&lt;br /&gt;#define STATUS PORTADDRESS+1&lt;br /&gt;#define CONTROL PORTADDRESS+2&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; lcd_init(&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt;);&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; lcd_write(&lt;span style="color:#0000ff;"&gt;char&lt;/span&gt; char2write);&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;void &lt;/span&gt;lcd_putch(&lt;span style="color:#0000ff;"&gt;char&lt;/span&gt; char2write);&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; lcd_puts(&lt;span style="color:#0000ff;"&gt;char&lt;/span&gt; * str2write);&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; lcd_goto(&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; row, &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; column);&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; lcd_clear(&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt;);&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; lcd_home(&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt;);&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; lcd_cursor(&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; cursor);&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; lcd_entry_mode(&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; mode);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; main(&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt;)&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style="font-family:Courier;"&gt;lcd_init();&lt;br /&gt;lcd_goto(1,1);&lt;br /&gt;lcd_puts("Welcome To");&lt;br /&gt;lcd_goto(1,0);&lt;br /&gt;lcd_puts("electroSofts.com");&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;while&lt;/span&gt;(!kbhit() ) &lt;span style="color:#008000;"&gt;//wait until a key is pressed...&lt;/span&gt;&lt;br /&gt;{}&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span style="font-family:Courier;"&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; lcd_init()&lt;br /&gt;{&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style="font-family:Courier;"&gt;outportb(CONTROL, inportb(CONTROL) &amp;amp; 0xDF);&lt;br /&gt;&lt;span style="color:#008000;"&gt;//config data pins as output&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;outportb(CONTROL, inportb(CONTROL) 0x08);&lt;br /&gt;&lt;span style="color:#008000;"&gt;//RS is made high: control (register select)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;lcd_write(0x0f);&lt;br /&gt;delay(20);&lt;br /&gt;lcd_write( 0x01);&lt;br /&gt;delay(20);&lt;br /&gt;lcd_write( 0x38);&lt;br /&gt;delay(20);&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span style="font-family:Courier;"&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;void &lt;/span&gt;lcd_write(&lt;span style="color:#0000ff;"&gt;char&lt;/span&gt; char2write)&lt;br /&gt;{&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style="font-family:Courier;"&gt;outportb(DATA, char2write);&lt;br /&gt;outportb(CONTROL,inportb(CONTROL) 0x01);&lt;span style="color:#008000;"&gt; /* Set Strobe */&lt;/span&gt;&lt;br /&gt;delay(2);&lt;br /&gt;outportb(CONTROL,inportb(CONTROL) &amp;amp; 0xFE); &lt;span style="color:#008000;"&gt;/* Reset Strobe */&lt;/span&gt;&lt;br /&gt;delay(2);&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span style="font-family:Courier;"&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; lcd_putch(&lt;span style="color:#0000ff;"&gt;char&lt;/span&gt; char2write)&lt;br /&gt;{&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style="font-family:Courier;"&gt;outportb(CONTROL, inportb(CONTROL) &amp;amp; 0xF7);&lt;br /&gt;&lt;span style="color:#008000;"&gt;//RS=low: data&lt;/span&gt;&lt;br /&gt;lcd_write(char2write);&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span style="font-family:Courier;"&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; lcd_puts(&lt;span style="color:#0000ff;"&gt;char&lt;/span&gt; *str2write)&lt;br /&gt;{&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style="font-family:Courier;"&gt;outportb(CONTROL, inportb(CONTROL) &amp;amp; 0xF7);&lt;br /&gt;&lt;span style="color:#008000;"&gt;//RS=low: data&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;while&lt;/span&gt;(*str2write)&lt;br /&gt;lcd_write(*(str2write++));&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span style="font-family:Courier;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier;"&gt;&lt;span style="color:#0000ff;"&gt;void &lt;/span&gt;lcd_goto(&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; row, &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; column)&lt;br /&gt;{&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style="font-family:Courier;"&gt;outportb(CONTROL, inportb(CONTROL) 0x08);&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;if&lt;/span&gt;(row==2) column+=0x40;&lt;br /&gt;&lt;span style="color:#008000;"&gt;/* Add these if you are using LCD module with 4 columns&lt;br /&gt;if(row==2) column+=0x14;&lt;br /&gt;if(row==3) column+=0x54;&lt;br /&gt;*/&lt;/span&gt;&lt;br /&gt;lcd_write(0x80 column);&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span style="font-family:Courier;"&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;void &lt;/span&gt;lcd_clear()&lt;br /&gt;{&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style="font-family:Courier;"&gt;outportb(CONTROL, inportb(CONTROL) 0x08);&lt;br /&gt;lcd_write(0x01);&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span style="font-family:Courier;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier;"&gt;&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; lcd_home()&lt;br /&gt;{&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style="font-family:Courier;"&gt;outportb(CONTROL, inportb(CONTROL) 0x08);&lt;br /&gt;lcd_write(0x02);&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span style="font-family:Courier;"&gt;}&lt;/span&gt; &lt;p&gt;&lt;span style="font-family:Courier;"&gt;&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; lcd_entry_mode(&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; mode)&lt;br /&gt;{&lt;/span&gt; &lt;blockquote&gt;&lt;p&gt;&lt;span style="font-family:Courier;"&gt;&lt;span style="color:#008000;"&gt;/*&lt;br /&gt;if you dont call this function, entry mode sets to 2 by default.&lt;br /&gt;mode: 0 - cursor left shift, no text shift&lt;br /&gt;1 - no cursor shift, text right shift&lt;br /&gt;2 - cursor right shift, no text shift&lt;br /&gt;3 - no cursor shift, text left shift&lt;br /&gt;*/&lt;/span&gt;&lt;br /&gt;outportb(CONTROL, inportb(CONTROL) 0x08);&lt;br /&gt;lcd_write(0x04 + (mode%4));&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span style="font-family:Courier;"&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; lcd_cursor(&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; cursor)&lt;br /&gt;{&lt;/span&gt; &lt;blockquote&gt;&lt;p&gt;&lt;span style="font-family:Courier;"&gt;&lt;span style="color:#008000;"&gt;/*&lt;br /&gt;set cursor: 0 - no cursor, no blink&lt;br /&gt;1 - only blink, no cursor&lt;br /&gt;2 - only cursor, no blink&lt;br /&gt;3 - both cursor and blink&lt;br /&gt;*/&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;outportb( CONTROL, inportb(CONTROL) 0x08 );&lt;br /&gt;lcd_write( 0x0c + (cursor%4));&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span style="font-family:Courier;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:georgia;"&gt;Exemplo de Programa para Escrever no Módulo LCD&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier;"&gt;&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; main(&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt;)&lt;br /&gt;{&lt;/span&gt; &lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style="font-family:Courier;"&gt;&lt;span style="color:#0000ff;"&gt;struct&lt;/span&gt; time t;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;struct&lt;/span&gt; date d;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;char&lt;/span&gt; strtime[17];&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier;"&gt;textbackground(0);&lt;br /&gt;clrscr();&lt;br /&gt;textcolor(0);&lt;br /&gt;textbackground(10);&lt;br /&gt;gotoxy(8,5);&lt;br /&gt;cputs(" ");&lt;br /&gt;gotoxy(8,4);&lt;br /&gt;cputs(" ");&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier;"&gt;lcd_init();&lt;br /&gt;lcd_cursor(0);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier;color:#0000ff;"&gt;while&lt;/span&gt;&lt;span style="font-family:Courier;"&gt;(!kbhit())&lt;br /&gt;{&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style="font-family:Courier;"&gt;gettime(&amp;amp;t);&lt;br /&gt;getdate(&amp;amp;d);&lt;br /&gt;lcd_goto(0,4);&lt;br /&gt;sprintf(strtime,"%02d:%02d:%02d", t.ti_hour%12, t.ti_min, t.ti_sec);&lt;br /&gt;lcd_puts(strtime);&lt;br /&gt;gotoxy(12,4);&lt;br /&gt;cputs(strtime);&lt;br /&gt;&lt;br /&gt;lcd_goto(1,3);&lt;br /&gt;sprintf(strtime,"%02d:%02d:%4d", d.da_day, d.da_mon, d.da_year);&lt;br /&gt;lcd_puts(strtime);&lt;br /&gt;gotoxy(11,5);&lt;br /&gt;cputs(strtime);&lt;br /&gt;delay(200);&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span style="font-family:Courier;"&gt;}&lt;br /&gt;textbackground(0);&lt;br /&gt;textcolor(7);&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span style="font-family:Courier;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier;"&gt;&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier;"&gt;&lt;/span&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6481008699478661148-1922113091472229275?l=ieee1284-rosa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ieee1284-rosa.blogspot.com/feeds/1922113091472229275/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6481008699478661148&amp;postID=1922113091472229275' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6481008699478661148/posts/default/1922113091472229275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6481008699478661148/posts/default/1922113091472229275'/><link rel='alternate' type='text/html' href='http://ieee1284-rosa.blogspot.com/2007/11/programando-mdulo-de-lcd-via-porta.html' title='Programando Módulo de LCD via Porta Paralela'/><author><name>Carlos Alberto Rosa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://bp1.blogger.com/_5JsSiudffX8/R7-7JLPUSOI/AAAAAAAACCk/GwrTVUVGAIo/S220/www.carlos-rosa.com.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6481008699478661148.post-5608414478930440569</id><published>2007-11-24T22:27:00.000-08:00</published><updated>2007-11-24T22:41:03.920-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programando a Porta Paralela'/><title type='text'>Programando a Porta Paralela</title><content type='html'>&lt;a href="http://wwwhomes.doc.ic.ac.uk/~ih/doc/par/"&gt;Interfacing to the IBM-PC Parallel Printer Port&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.beyondlogic.org/spp/parallel.htm"&gt;Interfacing the Standard Parallel Port&lt;/a&gt; (&lt;a href="http://www.beyondlogic.org/spp/parallel.pdf"&gt;parallel.pdf&lt;/a&gt;)&lt;br /&gt;&lt;a href="http://electrosofts.com/parallel/"&gt;Parallel Port Programming Tutorial&lt;/a&gt; (&lt;a href="http://electrosofts.com/parallel/"&gt;http://electrosofts.com/parallel/&lt;/a&gt;)&lt;br /&gt;&lt;a href="http://electrosofts.com/parallel/index.html"&gt;Parallel Port Programming (PART 1): with C&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6481008699478661148-5608414478930440569?l=ieee1284-rosa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ieee1284-rosa.blogspot.com/feeds/5608414478930440569/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6481008699478661148&amp;postID=5608414478930440569' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6481008699478661148/posts/default/5608414478930440569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6481008699478661148/posts/default/5608414478930440569'/><link rel='alternate' type='text/html' href='http://ieee1284-rosa.blogspot.com/2007/11/programando-porta-paralela.html' title='Programando a Porta Paralela'/><author><name>Carlos Alberto Rosa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://bp1.blogger.com/_5JsSiudffX8/R7-7JLPUSOI/AAAAAAAACCk/GwrTVUVGAIo/S220/www.carlos-rosa.com.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6481008699478661148.post-331346185290211865</id><published>2007-09-24T17:54:00.000-07:00</published><updated>2007-11-10T15:29:14.164-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Porta Paralela do PC (DB-25 Fêmea)'/><title type='text'>Porta Paralela do PC (DB-25 Fêmea)</title><content type='html'>Fonte: &lt;a href="http://pinouts.ru/ParallelPorts/ParallelPC_pinout.shtml"&gt;Pinouts&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a class="small" href="http://pinouts.ru/connector/25_pin_D-SUB_female_connector.shtml"&gt;Conector 25 pinos D-SUB fêmea no PC&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="center"&gt;&lt;img alt="25 pin D-SUB female connector layout" src="http://pinouts.ru/connectors/dsub25f.gif" border="0" /&gt;&lt;img alt="Photo view of 25 pin D-SUB female connector" src="http://pinouts.ru/photos/dsub25f.jpg" /&gt;&lt;/p&gt;&lt;p align="justify"&gt;Parallel port will allow the input of up to 9 bits or the output of 12 bits at any one given time. This port may be used for interfacing home made projects since external circuitry is minimal for many simple tasks. The port is composed of 4 control lines, 5 status lines and 8 data lines. It's found commonly on the back of your PC as a 25 Pin D-SUB female connector (note, that 25 pin D-SUB male connector represent RS-232 serial port, not compatible with LPT!).&lt;/p&gt;&lt;p align="justify"&gt;There are differnt modes of Parallel port work in modern computer. Take a look to newer &lt;a href="http://pinouts.ru/ParallelPorts/ParallelECP_pinout.shtml"&gt;ECP Parallel LPT port (IEEE-1284A) interface&lt;/a&gt; for more detailed explanations. Information included in current page is about older, but still widely accepted SPP LPT port interface. ECP specification includes SPP as one of possible modes.&lt;/p&gt;&lt;p align="justify"&gt;&lt;table cellspacing="0" cellpadding="2" width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Pin &lt;/th&gt;&lt;th&gt;Name &lt;/th&gt;&lt;th&gt;Dir &lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p align="center"&gt;1&lt;/p&gt;&lt;/td&gt;&lt;td&gt;/STROBE&lt;/td&gt;&lt;td&gt;&lt;p align="center"&gt;--&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;Strobe&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p align="center"&gt;2&lt;/p&gt;&lt;/td&gt;&lt;td&gt;D0&lt;/td&gt;&lt;td&gt;&lt;p align="center"&gt;--&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;Data Bit 0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p align="center"&gt;3&lt;/p&gt;&lt;/td&gt;&lt;td&gt;D1&lt;/td&gt;&lt;td&gt;&lt;p align="center"&gt;--&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;Data Bit 1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p align="center"&gt;4&lt;/p&gt;&lt;/td&gt;&lt;td&gt;D2&lt;/td&gt;&lt;td&gt;&lt;p align="center"&gt;--&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;Data Bit 2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p align="center"&gt;5&lt;/p&gt;&lt;/td&gt;&lt;td&gt;D3&lt;/td&gt;&lt;td&gt;&lt;p align="center"&gt;--&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;Data Bit 3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p align="center"&gt;6&lt;/p&gt;&lt;/td&gt;&lt;td&gt;D4&lt;/td&gt;&lt;td&gt;&lt;p align="center"&gt;--&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;Data Bit 4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p align="center"&gt;7&lt;/p&gt;&lt;/td&gt;&lt;td&gt;D5&lt;/td&gt;&lt;td&gt;&lt;p align="center"&gt;--&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;Data Bit 5&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p align="center"&gt;8&lt;/p&gt;&lt;/td&gt;&lt;td&gt;D6&lt;/td&gt;&lt;td&gt;&lt;p align="center"&gt;--&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;Data Bit 6&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p align="center"&gt;9&lt;/p&gt;&lt;/td&gt;&lt;td&gt;D7&lt;/td&gt;&lt;td&gt;&lt;p align="center"&gt;--&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;Data Bit 7&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p align="center"&gt;&lt;span style="color:#ff0000;"&gt;10&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color:#ff0000;"&gt;/ACK&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;p align="center"&gt;&lt;span style="color:#ff0000;"&gt;&lt;--&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color:#ff0000;"&gt;Acknowledge (bit D6)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p align="center"&gt;&lt;span style="color:#ff0000;"&gt;11&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color:#ff0000;"&gt;BUSY&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;p align="center"&gt;&lt;span style="color:#ff0000;"&gt;&lt;--&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color:#ff0000;"&gt;Busy (bit ~D7)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p align="center"&gt;&lt;span style="color:#ff0000;"&gt;12&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color:#ff0000;"&gt;PE&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;p align="center"&gt;&lt;span style="color:#ff0000;"&gt;&lt;--&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color:#ff0000;"&gt;Paper End (bit D5)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p align="center"&gt;&lt;span style="color:#ff0000;"&gt;13&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color:#ff0000;"&gt;SEL&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;p align="center"&gt;&lt;span style="color:#ff0000;"&gt;&lt;--&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color:#ff0000;"&gt;Select (bit D4)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p align="center"&gt;14&lt;/p&gt;&lt;/td&gt;&lt;td&gt;/AUTOFD&lt;/td&gt;&lt;td&gt;&lt;p align="center"&gt;--&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;Autofeed&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p align="center"&gt;&lt;span style="color:#ff0000;"&gt;15&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color:#ff0000;"&gt;/ERROR&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;p align="center"&gt;&lt;span style="color:#ff0000;"&gt;&lt;--&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color:#ff0000;"&gt;Error (bit D3)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p align="center"&gt;16&lt;/p&gt;&lt;/td&gt;&lt;td&gt;/INIT&lt;/td&gt;&lt;td&gt;&lt;p align="center"&gt;--&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;Initialize&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p align="center"&gt;17&lt;/p&gt;&lt;/td&gt;&lt;td&gt;/SELIN&lt;/td&gt;&lt;td&gt;&lt;p align="center"&gt;--&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;Select In&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p align="center"&gt;18&lt;/p&gt;&lt;/td&gt;&lt;td&gt;GND&lt;/td&gt;&lt;td&gt;&lt;p align="center"&gt;--&lt;/p&gt;&lt;/td&gt;&lt;td&gt;Signal Ground&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p align="center"&gt;19&lt;/p&gt;&lt;/td&gt;&lt;td&gt;GND&lt;/td&gt;&lt;td&gt;&lt;p align="center"&gt;--&lt;/p&gt;&lt;/td&gt;&lt;td&gt;Signal Ground&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p align="center"&gt;20&lt;/p&gt;&lt;/td&gt;&lt;td&gt;GND&lt;/td&gt;&lt;td&gt;&lt;p align="center"&gt;--&lt;/p&gt;&lt;/td&gt;&lt;td&gt;Signal Ground&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p align="center"&gt;21&lt;/p&gt;&lt;/td&gt;&lt;td&gt;GND&lt;/td&gt;&lt;td&gt;&lt;p align="center"&gt;--&lt;/p&gt;&lt;/td&gt;&lt;td&gt;Signal Ground&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p align="center"&gt;22&lt;/p&gt;&lt;/td&gt;&lt;td&gt;GND&lt;/td&gt;&lt;td&gt;&lt;p align="center"&gt;--&lt;/p&gt;&lt;/td&gt;&lt;td&gt;Signal Ground&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p align="center"&gt;23&lt;/p&gt;&lt;/td&gt;&lt;td&gt;GND&lt;/td&gt;&lt;td&gt;&lt;p align="center"&gt;--&lt;/p&gt;&lt;/td&gt;&lt;td&gt;Signal Ground&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p align="center"&gt;24&lt;/p&gt;&lt;/td&gt;&lt;td&gt;GND&lt;/td&gt;&lt;td&gt;&lt;p align="center"&gt;--&lt;/p&gt;&lt;/td&gt;&lt;td&gt;Signal Ground&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p align="center"&gt;25&lt;/p&gt;&lt;/td&gt;&lt;td&gt;GND&lt;/td&gt;&lt;td&gt;&lt;p align="center"&gt;--&lt;/p&gt;&lt;/td&gt;&lt;td&gt;Signal Ground&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p align="justify"&gt;The data output of the Parallel Port is normally TTL logic levels. Most Parallel Ports implemented in ASIC, can sink and source around 12mA. However voer variations possible: Sink/Source 6mA, Source 12mA/Sink 20mA, Sink 16mA/Source 4mA, Sink/Source 12mA and others.&lt;/p&gt;&lt;p align="justify"&gt;Centronics is an early used standard for transferring data from a host to the printer. The majority of printers use this handshake.&lt;/p&gt;&lt;div align="justify"&gt;&lt;pre&gt;               ______          ___________________&lt;br /&gt; nStrobe             \        /&lt;br /&gt;                      \______/&lt;br /&gt;                       ______________&lt;br /&gt; Busy                 /              \&lt;br /&gt;               ______/                \___________&lt;br /&gt;               ______________________         ____&lt;br /&gt; nAck                                \       /&lt;br /&gt;                                      \_____/&lt;br /&gt;               ___    _______    _________________&lt;br /&gt;                  \  /       \  /&lt;br /&gt; Data              \/         \/&lt;br /&gt;                   /\         /\&lt;br /&gt;               __ /  \_______/  \_________________&lt;br /&gt;                                                 &lt;/pre&gt;&lt;/div&gt;&lt;p align="justify"&gt;Data is first applied on the Parallel Port pins 2 to 7. The host then checks to see if the printer is busy. i.e. the busy line should be low. The program then asserts the strobe, waits a minimum of 1mS, and then de-asserts the strobe. Data is normally read by the printer/peripheral on the rising edge of the strobe. The printer will indicate that it is busy processing data via the Busy line. Once the printer has accepted data, it will acknowledge the byte by a negative pulse about 5mS on the nAck line. Host may ignore the nAck line to save time.&lt;/p&gt;&lt;p align="justify"&gt;Note: Direction is Computer relative Device.&lt;/p&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;p align="justify"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6481008699478661148-331346185290211865?l=ieee1284-rosa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ieee1284-rosa.blogspot.com/feeds/331346185290211865/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6481008699478661148&amp;postID=331346185290211865' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6481008699478661148/posts/default/331346185290211865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6481008699478661148/posts/default/331346185290211865'/><link rel='alternate' type='text/html' href='http://ieee1284-rosa.blogspot.com/2007/09/porta-paralela-do-pc-db-25-fmea.html' title='Porta Paralela do PC (DB-25 Fêmea)'/><author><name>Carlos Alberto Rosa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://bp1.blogger.com/_5JsSiudffX8/R7-7JLPUSOI/AAAAAAAACCk/GwrTVUVGAIo/S220/www.carlos-rosa.com.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6481008699478661148.post-8615501125093143889</id><published>2007-09-24T17:50:00.000-07:00</published><updated>2007-09-24T17:54:04.737-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pinagem do IEEE-1284-A (DB-25)'/><title type='text'>Pinagem do IEEE-1284-A (DB-25)</title><content type='html'>Fonte: &lt;a href="http://pinouts.ru/ParallelPorts/ParallelECP_pinout.shtml"&gt;Pinout&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6481008699478661148-8615501125093143889?l=ieee1284-rosa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ieee1284-rosa.blogspot.com/feeds/8615501125093143889/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6481008699478661148&amp;postID=8615501125093143889' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6481008699478661148/posts/default/8615501125093143889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6481008699478661148/posts/default/8615501125093143889'/><link rel='alternate' type='text/html' href='http://ieee1284-rosa.blogspot.com/2007/09/pinagem-do-ieee-1284-db-25.html' title='Pinagem do IEEE-1284-A (DB-25)'/><author><name>Carlos Alberto Rosa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://bp1.blogger.com/_5JsSiudffX8/R7-7JLPUSOI/AAAAAAAACCk/GwrTVUVGAIo/S220/www.carlos-rosa.com.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6481008699478661148.post-8295876993941370215</id><published>2007-09-24T17:35:00.000-07:00</published><updated>2007-09-24T17:40:35.223-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nomes dos Sinais IEEE-1284-B'/><title type='text'>Nomes dos Sinais IEEE-1284-B</title><content type='html'>Fonte: &lt;a href="http://pinouts.ru/ParallelPorts/ieee1284b_pinout.shtml"&gt;Pinout&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;table cellspacing="0" cellpadding="2" width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;25-DSub &lt;/th&gt;&lt;th&gt;36-Cen&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Strobe&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Data Bit 0&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Data Bit 1&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Data Bit 2&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Data Bit 3&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Data Bit 4&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Data Bit 5&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Data Bit 6&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Data Bit 7&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Acknowledge&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Busy&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Paper Out&lt;/td&gt;&lt;td&gt;12&lt;/td&gt;&lt;td&gt;12&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Select&lt;/td&gt;&lt;td&gt;13&lt;/td&gt;&lt;td&gt;13&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Autofeed&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Error&lt;/td&gt;&lt;td&gt;15&lt;/td&gt;&lt;td&gt;32&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Reset&lt;/td&gt;&lt;td&gt;16&lt;/td&gt;&lt;td&gt;31&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Select&lt;/td&gt;&lt;td&gt;17&lt;/td&gt;&lt;td&gt;36&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Signal Ground&lt;/td&gt;&lt;td&gt;18&lt;/td&gt;&lt;td&gt;33&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Signal Ground&lt;/td&gt;&lt;td&gt;19&lt;/td&gt;&lt;td&gt;19,20&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Signal Ground&lt;/td&gt;&lt;td&gt;20&lt;/td&gt;&lt;td&gt;21,22&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Signal Ground&lt;/td&gt;&lt;td&gt;21&lt;/td&gt;&lt;td&gt;23,24&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Signal Ground&lt;/td&gt;&lt;td&gt;22&lt;/td&gt;&lt;td&gt;25,26&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Signal Ground&lt;/td&gt;&lt;td&gt;23&lt;/td&gt;&lt;td&gt;27&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Signal Ground&lt;/td&gt;&lt;td&gt;24&lt;/td&gt;&lt;td&gt;28,29&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Signal Ground&lt;/td&gt;&lt;td&gt;25&lt;/td&gt;&lt;td&gt;30,16&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Shield&lt;/td&gt;&lt;td&gt;Shield&lt;/td&gt;&lt;td&gt;Shield+17&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6481008699478661148-8295876993941370215?l=ieee1284-rosa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ieee1284-rosa.blogspot.com/feeds/8295876993941370215/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6481008699478661148&amp;postID=8295876993941370215' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6481008699478661148/posts/default/8295876993941370215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6481008699478661148/posts/default/8295876993941370215'/><link rel='alternate' type='text/html' href='http://ieee1284-rosa.blogspot.com/2007/09/nome-dos-sinais-ieee-1284-b.html' title='Nomes dos Sinais IEEE-1284-B'/><author><name>Carlos Alberto Rosa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://bp1.blogger.com/_5JsSiudffX8/R7-7JLPUSOI/AAAAAAAACCk/GwrTVUVGAIo/S220/www.carlos-rosa.com.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6481008699478661148.post-4837997557893084123</id><published>2007-09-24T17:30:00.001-07:00</published><updated>2007-09-24T17:52:35.245-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pinagem do IEEE-1284-B (36-Centronics)'/><title type='text'>Pinagem do IEEE-1284-B (36-Centronics)</title><content type='html'>Fonte: &lt;a href="http://pinouts.ru/ParallelPorts/ieee1284b_pinout.shtml"&gt;Pinout&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a class="small" href="http://pinouts.ru/connector/36_pin_CENTRONICS_female_connector.shtml"&gt;Conector 36 pinos CENTRONICS fêmea na impressora&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div align="center"&gt;&lt;img alt="36 pin CENTRONICS female connector layout" src="http://pinouts.ru/connectors/cent36f.gif" border="0" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;table cellspacing="0" cellpadding="2" width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td align="middle"&gt;&lt;b&gt;Pin&lt;/b&gt;&lt;/td&gt;&lt;td align="left"&gt;&lt;b&gt;Signal&lt;/b&gt;&lt;/td&gt;&lt;td align="left"&gt;&lt;b&gt;Abbr.&lt;/b&gt;&lt;/td&gt;&lt;td align="left"&gt;&lt;b&gt;Source&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;1&lt;/td&gt;&lt;td&gt;Data Strobe (low)&lt;/td&gt;&lt;td&gt;STROBE&lt;/td&gt;&lt;td&gt;Computer&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;2&lt;/td&gt;&lt;td&gt;Data Bit 1 (LSB)&lt;/td&gt;&lt;td&gt;D1&lt;/td&gt;&lt;td&gt;Computer&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;3&lt;/td&gt;&lt;td&gt;Data Bit 2&lt;/td&gt;&lt;td&gt;D2&lt;/td&gt;&lt;td&gt;Computer&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;4&lt;/td&gt;&lt;td&gt;Data Bit 3&lt;/td&gt;&lt;td&gt;D3&lt;/td&gt;&lt;td&gt;Computer&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;5&lt;/td&gt;&lt;td&gt;Data Bit 4&lt;/td&gt;&lt;td&gt;D4&lt;/td&gt;&lt;td&gt;Computer&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;6&lt;/td&gt;&lt;td&gt;Data Bit 5&lt;/td&gt;&lt;td&gt;D5&lt;/td&gt;&lt;td&gt;Computer&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;7&lt;/td&gt;&lt;td&gt;Data Bit 6&lt;/td&gt;&lt;td&gt;D6&lt;/td&gt;&lt;td&gt;Computer&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;8&lt;/td&gt;&lt;td&gt;Data Bit 7&lt;/td&gt;&lt;td&gt;D7&lt;/td&gt;&lt;td&gt;Computer&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;9&lt;/td&gt;&lt;td&gt;Data Bit 8 (LSB)&lt;/td&gt;&lt;td&gt;D8&lt;/td&gt;&lt;td&gt;Computer&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;10&lt;/td&gt;&lt;td&gt;Acknowledge (low)&lt;/td&gt;&lt;td&gt;ACK&lt;/td&gt;&lt;td&gt;Printer&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;11&lt;/td&gt;&lt;td&gt;Busy (high)&lt;/td&gt;&lt;td&gt;BUSY&lt;/td&gt;&lt;td&gt;Printer&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;12&lt;/td&gt;&lt;td&gt;Paper End (high)&lt;/td&gt;&lt;td&gt;PE&lt;/td&gt;&lt;td&gt;Printer&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;13&lt;/td&gt;&lt;td&gt;Select (high)&lt;/td&gt;&lt;td&gt;SEL&lt;/td&gt;&lt;td&gt;Printer&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;14&lt;/td&gt;&lt;td&gt;Supply Ground&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;15&lt;/td&gt;&lt;td&gt;Oscillator Transmit&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;Printer&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;16&lt;/td&gt;&lt;td&gt;Logical Ground&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;17&lt;/td&gt;&lt;td&gt;Chassis Ground&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;18&lt;/td&gt;&lt;td&gt;+5 Vdc&lt;/td&gt;&lt;td&gt;+V&lt;/td&gt;&lt;td&gt;Printer&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;19&lt;/td&gt;&lt;td&gt;Return Data Strobe&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;20&lt;/td&gt;&lt;td&gt;Return Data Bit 1&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;21&lt;/td&gt;&lt;td&gt;Return Data Bit 2&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;22&lt;/td&gt;&lt;td&gt;Return Data Bit 3&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;23&lt;/td&gt;&lt;td&gt;Return Data Bit 4&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;24&lt;/td&gt;&lt;td&gt;Return Data Bit 5&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;25&lt;/td&gt;&lt;td&gt;Return Data Bit 6&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;26&lt;/td&gt;&lt;td&gt;Return Data Bit 7&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;27&lt;/td&gt;&lt;td&gt;Return Data Bit 8&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;28&lt;/td&gt;&lt;td&gt;Return ACK&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;29&lt;/td&gt;&lt;td&gt;Return BUSY&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;30&lt;/td&gt;&lt;td&gt;Return Input Prime&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;31&lt;/td&gt;&lt;td&gt;Input Prime (low)&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;Computer&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;32&lt;/td&gt;&lt;td&gt;Fault (low)&lt;/td&gt;&lt;td&gt;FAULT&lt;/td&gt;&lt;td&gt;Printer&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;33&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;34&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;35&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="middle"&gt;36&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6481008699478661148-4837997557893084123?l=ieee1284-rosa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ieee1284-rosa.blogspot.com/feeds/4837997557893084123/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6481008699478661148&amp;postID=4837997557893084123' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6481008699478661148/posts/default/4837997557893084123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6481008699478661148/posts/default/4837997557893084123'/><link rel='alternate' type='text/html' href='http://ieee1284-rosa.blogspot.com/2007/09/pinagem-do-ieee-1284-b.html' title='Pinagem do IEEE-1284-B (36-Centronics)'/><author><name>Carlos Alberto Rosa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://bp1.blogger.com/_5JsSiudffX8/R7-7JLPUSOI/AAAAAAAACCk/GwrTVUVGAIo/S220/www.carlos-rosa.com.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6481008699478661148.post-3822660382220038391</id><published>2007-09-24T17:06:00.000-07:00</published><updated>2007-09-24T18:25:36.318-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cabo para Impressora Paralela: Pinagem e Conectores'/><title type='text'>Cabo para Impressora Paralela: Pinagem e Conectores</title><content type='html'>&lt;div align="justify"&gt;Fonte: &lt;a href="http://pinouts.ru/ParallelPortsCables/Printer_pinout.shtml"&gt;Pinout&lt;/a&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;a href="http://upload.wikimedia.org/wikipedia/commons/3/33/IEEE1284PrinterCable_Nov-11-2004.jpg"&gt;&lt;img style="WIDTH: 400px; CURSOR: hand" alt="" src="http://upload.wikimedia.org/wikipedia/commons/3/33/IEEE1284PrinterCable_Nov-11-2004.jpg" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;a class="small" href="http://pinouts.ru/connector/25_pin_D-SUB_male_connector.shtml"&gt;Conector 25 pin D-SUB macho conector ao computador&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img alt="25 pin D-SUB male connector layout" src="http://pinouts.ru/connectors/dsub25m.gif" border="0" /&gt; &lt;a href="http://pinouts.ru/photos/dsub25m.jpg"&gt;&lt;img style="WIDTH: 320px; CURSOR: hand" alt="" src="http://pinouts.ru/photos/dsub25m.jpg" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;a class="small" href="http://pinouts.ru/connector/36_pin_CENTRONICS_male_connector.shtml"&gt;Conector 36 pinos CENTRONICS macho à impressora&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="small" align="center"&gt;&lt;img alt="36 pin CENTRONICS male connector diagram" src="http://pinouts.ru/connectors/cent36m.gif" border="0" /&gt;&lt;img alt="Photo view of 36 pin CENTRONICS male connector" src="http://pinouts.ru/photos/cent36m.jpg" /&gt;&lt;/div&gt;&lt;div class="small" align="justify"&gt; &lt;/div&gt;&lt;div class="small" align="justify"&gt;&lt;table cellspacing="0" cellpadding="2" width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;25-DSub &lt;/th&gt;&lt;th&gt;36-Cen&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Strobe&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Data Bit 0&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Data Bit 1&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Data Bit 2&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Data Bit 3&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Data Bit 4&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Data Bit 5&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Data Bit 6&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Data Bit 7&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Acknowledge&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Busy&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Paper Out&lt;/td&gt;&lt;td&gt;12&lt;/td&gt;&lt;td&gt;12&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Select&lt;/td&gt;&lt;td&gt;13&lt;/td&gt;&lt;td&gt;13&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Autofeed&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Error&lt;/td&gt;&lt;td&gt;15&lt;/td&gt;&lt;td&gt;32&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Reset&lt;/td&gt;&lt;td&gt;16&lt;/td&gt;&lt;td&gt;31&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Select&lt;/td&gt;&lt;td&gt;17&lt;/td&gt;&lt;td&gt;36&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Signal Ground&lt;/td&gt;&lt;td&gt;18&lt;/td&gt;&lt;td&gt;33&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Signal Ground&lt;/td&gt;&lt;td&gt;19&lt;/td&gt;&lt;td&gt;19,20&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Signal Ground&lt;/td&gt;&lt;td&gt;20&lt;/td&gt;&lt;td&gt;21,22&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Signal Ground&lt;/td&gt;&lt;td&gt;21&lt;/td&gt;&lt;td&gt;23,24&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Signal Ground&lt;/td&gt;&lt;td&gt;22&lt;/td&gt;&lt;td&gt;25,26&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Signal Ground&lt;/td&gt;&lt;td&gt;23&lt;/td&gt;&lt;td&gt;27&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Signal Ground&lt;/td&gt;&lt;td&gt;24&lt;/td&gt;&lt;td&gt;28,29&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Signal Ground&lt;/td&gt;&lt;td&gt;25&lt;/td&gt;&lt;td&gt;30,16&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Shield&lt;/td&gt;&lt;td&gt;Shield&lt;/td&gt;&lt;td&gt;Shield+17&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6481008699478661148-3822660382220038391?l=ieee1284-rosa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ieee1284-rosa.blogspot.com/feeds/3822660382220038391/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6481008699478661148&amp;postID=3822660382220038391' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6481008699478661148/posts/default/3822660382220038391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6481008699478661148/posts/default/3822660382220038391'/><link rel='alternate' type='text/html' href='http://ieee1284-rosa.blogspot.com/2007/09/pinagem-dos-conectores-25-dsub-e-36-cen.html' title='Cabo para Impressora Paralela: Pinagem e Conectores'/><author><name>Carlos Alberto Rosa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://bp1.blogger.com/_5JsSiudffX8/R7-7JLPUSOI/AAAAAAAACCk/GwrTVUVGAIo/S220/www.carlos-rosa.com.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6481008699478661148.post-3511179552172022952</id><published>2007-09-24T16:51:00.000-07:00</published><updated>2007-09-24T17:42:50.186-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Introdução ao Padrão IEEE-1284-B'/><title type='text'>Introdução ao Padrão IEEE-1284-B</title><content type='html'>&lt;p&gt;Fonte: &lt;a href="http://en.wikipedia.org/wiki/IEEE_1284"&gt;IEEE 1284 (Wikipedia)&lt;/a&gt;, &lt;a href="http://pinouts.ru/ParallelPorts/ieee1284b_pinout.shtml"&gt;Pinout&lt;/a&gt;&lt;/p&gt;&lt;p&gt;IEEE-1284 (officially known as 1284-1994, Standard Signaling Method for a Bidirectional Parallel Peripheral Interface for PCs) refers to a standard set by the Institute of Electrical and Electronic Engineers. It specifies, among other things, five modes of data transfer: standard (legacy style), reverse (nibble and byte modes), and half-duplex or bidirectional (EPP and ECP). It also details cable properties and connector types. The 1284 standard is an innovation that allows parallel printer ports to transfer data at many times the standard speed, and also allows for an array of bidirectional communications and longer cable runs. The Enhanced Parallel Port (EPP) and Extended Capabilities Port (ECP) both follow 1284 standards, although EPP was developed prior to 1284"s release. The primary advantage of this technology is the ability to use devices on a PC"s parallel port that were previously unable to be used because of communication limitations. However, printers have also benefited and Hewlett-Packard"s Bitronix protocol, introduced with their LasetJet 4, is proof. Bitronix takes advantage of 1284"s nibble mode, and allows data to be sent from the printer to the computer quickly in this manner. &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;What is the difference between an IEEE-1284 cable and a standard one?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;This is often a misunderstood concept. First, let"s make the distinction between bidirectional and 1284-compliant cables. Applying the 1284 standard to cables, the IEEE-compliance primarily means speed, and these cables are precisely manufactured for that purpose. The 1284 standard sets exacting specifications on cable impedance, shielding, length, and connector styles to insure that they will be up to the task. Bidirectional cables must simply be able to transfer data in both directions, and your everyday 25-wire printer cables (and all straight-thru 25 wire cables) are capable of this; they are not, however, capable of the speed required by 1284-compliant peripherals. Peripherals which are IEEE-1284 compliant (such as many newer printers) require the use of a high-speed cable, as do most of the devices that connect to an EPP or ECP.&lt;/p&gt;&lt;p&gt;Describe the connectors that are used on these cables.&lt;br /&gt;There are three official types of connectors: they are termed "A," "B," and "C." The "A" type is a standard DB25 and the "B" type is your typical Centronics 36 connector. The "C" type is exclusive to 1284, and is intended to be used on new equipment which conforms to the standard; it is called a half-pitch Centronics 36 connector (HPCN36).&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;What devices require IEEE-1284 cables?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;As a rule of thumb, any device that requires your computer"s parallel port to be set to EPP/ECP mode is worthy of a 1284-compliant cable. Specifically, most newer printers, backup devices, scanners, and the like require these cables. In addition, any parallel device with an HPCN36 connector requires a 1284 cable. If in question, refer to the user"s manual of that specific device.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Can I use a non-1284 compliant cable instead of one that is?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;It is possible, but not recommended. Results can range from limited success to complete lack of operation.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;What are the length restrictions on cables? Do I need to terminate the end of the chain?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;In order to maintain peak performance, the total distance from computer to the last device should be no more than about 35 feet. Longer runs may be utilized with a possible drop in overall performance. No external termination is required; peripherals already come with the necessary termination. At PC Cables and Parts, you"ll discover an easy to use, information packed web site. Click here to learn more about Printer Cables.&lt;/p&gt;&lt;p&gt;Note: Direction is Computer relative Device.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6481008699478661148-3511179552172022952?l=ieee1284-rosa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ieee1284-rosa.blogspot.com/feeds/3511179552172022952/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6481008699478661148&amp;postID=3511179552172022952' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6481008699478661148/posts/default/3511179552172022952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6481008699478661148/posts/default/3511179552172022952'/><link rel='alternate' type='text/html' href='http://ieee1284-rosa.blogspot.com/2007/09/links.html' title='Introdução ao Padrão IEEE-1284-B'/><author><name>Carlos Alberto Rosa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://bp1.blogger.com/_5JsSiudffX8/R7-7JLPUSOI/AAAAAAAACCk/GwrTVUVGAIo/S220/www.carlos-rosa.com.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6481008699478661148.post-7890412158616044793</id><published>2007-09-24T16:44:00.000-07:00</published><updated>2007-09-24T17:04:57.214-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Conectores 36-pinos Centronics'/><title type='text'>Conectores 36-pinos Centronics</title><content type='html'>Fonte: &lt;a href="http://en.wikipedia.org/wiki/Amphenol"&gt;Wikipedia&lt;/a&gt;, &lt;a href="http://www.amphenol.com/"&gt;Amphenol&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Micro_ribbon"&gt;Micro Ribbon&lt;/a&gt;&lt;br /&gt;&lt;a href="http://upload.wikimedia.org/wikipedia/commons/c/c5/Centronics.jpg"&gt;&lt;img style="WIDTH: 320px; CURSOR: hand" alt="" src="http://upload.wikimedia.org/wikipedia/commons/c/c5/Centronics.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://pinouts.ru/connector/36_pin_CENTRONICS_female_connector.shtml"&gt;36 pin CENTRONICS female&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://pinouts.ru/connector/36_pin_CENTRONICS_female_connector.shtml"&gt;&lt;img alt="36 pin CENTRONICS female connector" src="http://pinouts.ru/connectors/cent36f.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://pinouts.ru/connector/36_pin_CENTRONICS_male_connector.shtml"&gt;36 pin CENTRONICS male&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://pinouts.ru/connector/36_pin_CENTRONICS_male_connector.shtml"&gt;&lt;img alt="36 pin CENTRONICS male connector" src="http://pinouts.ru/connectors/cent36m.gif" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6481008699478661148-7890412158616044793?l=ieee1284-rosa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ieee1284-rosa.blogspot.com/feeds/7890412158616044793/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6481008699478661148&amp;postID=7890412158616044793' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6481008699478661148/posts/default/7890412158616044793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6481008699478661148/posts/default/7890412158616044793'/><link rel='alternate' type='text/html' href='http://ieee1284-rosa.blogspot.com/2007/09/conectores-36-pinos-centronics.html' title='Conectores 36-pinos Centronics'/><author><name>Carlos Alberto Rosa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://bp1.blogger.com/_5JsSiudffX8/R7-7JLPUSOI/AAAAAAAACCk/GwrTVUVGAIo/S220/www.carlos-rosa.com.jpg'/></author><thr:total>0</thr:total></entry></feed>
