. :,u. e_reO.ur crc<.r Ou c.<r. _c e_-u rO. u r. (Word Processing), euq o,e. (Play songs) cu cc -,_ . (vedio) e: eu.e.r eu.e.r c.<r r:. (Games) O_e.. o..O o.ucO uOu e-.e:. rO. u e:. ..u r_ :,r -O e,-,u. .- e.eur eu.uuO. . :,r.. u e c. o O. eree rcu eu .u O. eu.u e c. :,r.. c.<re.u r_ :,r eOuu e-.e:. O,: ouu o: o,u e.cO (Ports) ..ue.u crc< :,e c. c ..u u,ur .u . uO u c..< rc<e. e..O -_.ec.ec.uu Ou e. ereur O. e.. u. c e.. euOu eO. . e.. O,:eO:u ..u o c _ -O erc :, u .r _-. .O oec r e u.. eree u.u e3 e:. c.<r ..e.Or (e.. O,:eO:u e:. Visual Basic 6.0 c.<r ..e.O ..u rcu _,e) c _ - uc.r u.r :. Digital Electronic ..O c_- ec u.r oO.. eO..
z. c.<re. o,u uu q_ .. O.e.u ucc<. rc .,u. c.<r. e-..r e_reO.ur (Digital Electronic) crc<.r. o: uu ucc<. e:. u.crrO (Logical) 1 :. 0 ..u rc< _,e. o. q_ .. O.e.u u cc<. rc .,u. e:. e:. 5V .O e,c..r 0 e:. 0V e,c..r ..u rc. . e3 u e. c.<re.u _,e-u uu.r 5V u3 o. u.cr r O.e.u _,e-u u u.r 0V u3 o. c O.e.u e,_r. . u.. oee . c.<r. u _O u u o,u _u r e3 e.. u ccu.. ..u rcu _,e. e.. eu c,3 .,u .O ec_ .:c<.r e_r.. oc u u o,u _u r. e:. .uc, cOc,e3 .ucr o- O r.r eq e3 . e_r. . e.: eq Oueu .ucr o- O o.O o._ e-..Or c.<r. eOu .... (5V :. 0V ey.Or). e3 ue. oc c.<r ey. e.. rO.u re3 e.. 5V ey. e.. rO. u r_ .u.. o: .ur u-. .u . u u. O,.u rc,<r u3 e.. ey.e3 .O ou uc. 5V OO o: ..c.O u. o: o..r Ou c mA uce3 u. r :. ..c.Or .. . e3 u e. e.. ..c.O Oc.u. eu.rc ..u r_ eu.:,r -O c_. O e : u-. .u .u.. +. .u ey. :u. .,u. :u e.u .u rc,< ouO ,u oc cc.<re.u cOOu uu :. o,u_ rcOu uu :u. .,u.O r ..r e u. . o. u u.r 5V e:. 0V ey.Or Ou -,u o.e_. r e.. cr :e..:.r (LED) ..ue.u o. ey.O ec_O :u. .u :,r.. e.: LED -_ -. e:. 3V .O.r _-. . . u.. o e:. 5V .Oe.u 2V .O.r cu ec. ..r e... o: r_ . u..
e3 ouO ocO 400 O O,: c u ec. ..r e.. LED orr e.<u.O e re.u ey. c.r.r e.. .u :,r..
3
!. c.<re. o,u PORTs c_-O :u. .,u. Port orr .u c.<r. e.. uOu c.<r.r e:. eOuu crc<.r e3-u. r.O ..u rcu ouc, . :<ur. (In computer hardware, a 'port' serves as an interface between the computer and other computers or device) e.O,u ouc, . :<u r:c.r c.<re.: r. :,r .. oO. e..uO.. erce.u e_r. -_. PORT euc. u u e3ec e<. eOcc. PS/2 .uc, cOc,O (keyboard) :. .Oe. (mouse) e3-u. r.O ..u rc.. e.<.uO (Serial) LPT cuOc. e3-u. r.O ..u rc. . e.: u u e3ec e< e3.. 150 Kbps e3. e..uuc.uO (Parallel)
COM e.<.uO uu e3ece<. e:. uO.u -: _O ..u rc..
e.<.uO (Serial) USB e.<.uO uu e3ece<. e:. ..u rc.. e.<.uO (Serial) SATA e.<.uO uu e3ece<. e:. ..u rc.. e.<.uO (Serial)
:u r O. o,u eu c.<re.u c OuO e3-u.u Port r : c.r c.< . e.. Port c_-O e_r. -,_e3 o O.e. r ..r. e3.. :. oeuru rc,< e,_re3 ocO c:eeOu e3-u. rc .u :,rer LPT e:Ou Parallel port or e: COM port or.. o.u Parallel port or e.. rO.u rc . O:.u c:e.. oue. e.. O,:.ge3 oc Parallel port or ..u rO.u rcu o.r.c. c_-O e_r. -_. .
. Parallel Port c u Oc. e3-u. r . e:. e-.e:. O ..u rcu c u z ru e.u u e.: e,r,e. e: o: o,u c u z ..u erecu r.c..u c:u cce. e: O. e3 r O. o,u.
4
Pin No Assignment Pin No Assignment 1 Strobe 14 AutoFd 2 Data 1 (least significant bit) 15 Fault 3 Data 2 16 Init 4 Data 3 17 SelectIn 5 Data 4 18 Signal Ground 6 Data 5 19 Signal Ground 7 Data 6 20 Signal Ground 8 Data 7 21 Signal Ground 9 Data 8 (most significant bit) 22 Signal Ground 10 Ack 23 Signal Ground 11 Busy 24 Signal Ground 12 Error 25 Signal Ground 13 Select
Parallel Port . e.. rO. u r .O c O. c:u rc,< c _-O u e c. u. O,.u e3. e.: Data Register, Control Register e: Status Register O.e.u Registers 3 r o,u. e3O. e:. eOu eOu. Address u ur o,u. o c _- e uc c:u O. e3 r O. o,u. Register LPT1 LPT2 Data Register (base address + 0) 0x378 0x278 Status Register (base address + 1) 0x379 0x279 Control Register (base address + 2) 0x37A 0x27A
5
5.1 Data Register e.. -O s r u . u ec5e Oc.r . e.. Register or e:. +s .u Address or ..u rc.. e.: o,u -O O_ o..u ou O o: o.. u c<. eO. . e.: o.. u c<. rcu _-u eu eer c.e. e-..OrO ou O.. .:c<. -O s :. o.. O O Register oer: o.. ee..uu. e3 e:. c:u c.Oc ou..u. rcuu Register oer: o.. eer c.e. e-..Or e_e _ .. .uu 11111111
z u o. o.. c c..O :cOuu =11111111 =1x2 7 + 1x2 6 + 1x2 5 + 1x2 4 + 1x2 3 + 1x2 2 + 1x2 1 + 1x2 0
=0 + 64 + 0 + 0 + 8 + 0 + 2 =74 5.2 Status Register e.. -c s r u . u Register orr . e.. Register or u u c.<r.O o,u _u r . e:. e....u. oe:u e.. Register oer : ocO ..u r_ :,rer -c r c.<. Status Register or r .. e:. + .u Address or ..u rc. . e.: o,u -c O_ o..u ou O o: o.. u c<. eO. . e.: o.. u c<. rcu _-ueu eer c.e. e-..OrO ou O.. oee . e.: u.u . u uOu e. e r.c<.r o,u. ou3 e.: -O or + e O rO. c.<r cOu u ouc Ou -OO ..c, cOu . ou3 c (0v) o,u _u r_ O O.e.u (5v) o,u _u r_ O c O.e.u r.. rc.. .:c<. + Status Register oer: -c c:u e_e cOuu O o: o.. ee..uu. 6
e3 e:. c:u c.Oc ou..u. rcuu. c_.O o..u c_eO_u _.. .uu. r< ce o..u u,u -c e:. -u q e..uu. 01111000 O3 ce er_Oc. -O O ( Ou -O O) ..c, o,u -,u o: o.. ..c, rcu u. (e.: c o,u -,u o. e_e e,_r . . u.. u - ue:.u c rc .u . u .) u ecc ee e..u. o.r.c.O .. c.e. e-..Or ee o.. ee..u u. =11111000 =1x2 6 + 1x2 5 + 1x2 4 + 0x2 3 + 0x2 2 + 0x2 1 + 0x2 0
z u o. o.. eer c..O :cOuu. e3 e:. o. e-..O eeru e-uu. 120 2 0 60 2 0 30 2 0 15 2 1 7 2 1 3 2 1 1
e. c.<r .-qr...r ..u Parallel Port oer: uu _. :. r.. c_. c .Oc O.e.u oc ere rc .uu. _ .-qr...r u u u _ . :. r .. rc. . ouu c,O .-qr...r e.. .ueu eree . ee... -_.. e3 e:. c_. O http://www.dscs.sjp.ac.lk/download/portws/portrw.zip _cue. o,u File or _-. .uu o: o,u file z u PortIO e_e o,u File or run rcuu. .-O c:u o.r.ce. Window orr r. :,r .. u e.: u e_e _,-< c :. : o..u .O eO :O _ .uu. 1111000 u Ou -Oe3 o.. ..c, rcuu oO c _ u c _,e.
0111000 7
e3 e:. http://www.dscs.sjp.ac.lk/download/portws/userport.zip _cue. o,u File or _-. .uu. o: o,u file z u userport.sys system file or C:\windows\system32\drivers folder orO copy rcuu. ouuc,O userPort.exe file or run rcuu. .-O c:u o.r.ce. Window orr r. :,r..
cre< rO.u e:. e.. .-qr... ..u .-O oO.. Port orr u u _.O :. r..O oOeO.O e_e. o,u. uu r.. e:. Read from Port button or uu _. e:. Write to Port button or ..u rcuu. e3 e:. .-O .- ..u rcu Operating System or .. u oO.. c:er3 e_e. u-. . u.. oee u,u u3 c:u o.r.ce. Error message orr _,e. oee O Oe:.u o e:. e.e program orr ..ue.u .-O er_ u. Port Access r. e:. Operating System oru u:e rc .u .u.. (Operating system or e...u.e.u er_u. user O Port Access o.crer e:uu .u : eu eu._,e.) o e:. c:u r O. o,u r.. ou..u. rcuu. e.. File or c_-O O,: euc http://www.embeddedtronics.com/publ ic/Electronics/minidaq/userport/UserPo rt.zip _cue.u _-. .u :,r.. u o: o,u Start button or Click rcu u. u .-O oO.. c Port Access re3 c:er. _-. .u :,r Ou o,u. uu r.. e:. Read from Port button or u u _ . e:. Write to Port button or ..u rcuu. 8
. e_reO.ur crc<.r ..u Parallel Port oer: u u _. :. r.. e3 e:. ocO Parallel Port oer: uu e_reO .urO r.. e:.u uu c.<r.O .,. e:.u c:u o.r.c.O ccO err u,u. :,r..
Data Register oer: u u r ..O Status Register oer: u u _ .O e.: c.<re.u _,e-u 5V ey.O e:. c uec...r :. LED -_-.r e3-u. rc o,u. oee. Status Register oer: uu _. e:. :u o.r.c.O ccO.r ere. .uu. (.-O e.e_e ere. o,u crer ccO.r _-. o,u) o. c Oc,O ..ue.u cr e< r :c.r eq rc. . Ou cr e<. :u .- ..u rcu _ PortIO .-qr... ..u rc LED - - g e .__ orOc _ Ou u. e3 e:. PortIO .-qr..e.: c:u reOu e_e ere. Write to Port button or Click rcuu.
z Ou cr e<. :u .- ..u rcu _ PortIO .-qr... ..u rc Status Register oer: o.. r.Ouu. e3 e:. Port Address oer: o.. + e_e ere rcuu. (Status Register oer: Address or 379 Ou ue. ) u Read from port button or Click rcuu.
+ Ou cre<. u crer cOc,O ..u rc3u Status Port orO eOue eOue Inputs _-. o ouO Status Register oer: o.. eOue Ou o.r.c. r.Ouu. o ouO or or -OeO: o.. e:. c . ou O Status Register oer: o.. eOue Ou o.r.c. eu c,3 .uu. 9
. Visual Basic ..ue.u oO.. c Parallel Port oer: uu _. :. r.. e.eur .- cre< rO. u e:. ..u rcu _e portIO u3 .-qr.... . u oc Visual Basic 6.0 c.<r ..e.O ..ue.u .-O oO.. c oO,u .-qr...r e.. .uu. o.r.c. e_r. -_. . e3 e:. c:u c.OcO_ ou..u. rcuu. 1. Visual Basic Project orr open rc.uu (Standard Exe). 2. .-e. Project or e:. Module orr _-. .uu. e3 e:. c:u c_eO_ ou..u. rcuu. Project Add module 3. Port Access rc. e:. ..u rcu inpout32.dll file or .-e. project or save rcu _ eO.u.O copy rcuu. (Port Access rc. visual Basic ..u er_u. r_ eu.:,r o ue. o e:. e,re e. e DLL File orr ..u rcu _,e. e.O,u DLL File orr ere rcu o.r.c. c_-O O,: euc e.. cur.e3 oOe.ue. rO. o,u. o e:. oO.. O,: e uc u .,u. e:. c:u eO c O O ..u rcuu. eree u. u inpout32.dll or e.. O,:. ge3 rO. u e:. c..<Ou e3. http://www.dscs.sjp.ac.lk/download/createdll/index.php 4. u .-e. module oer: c:u Source code or _ .uu
Public Declare Function Inp Lib "inpout32.dll" Alias "Inp32" (ByVal PortAddress As Integer) As Integer
Public Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)
e...u eq rcu _-ueu DLL File ore: o,u Function err .-e. Project orO :uO. .. . e.e_e :quO. qu ce o. Function .-e. Project oer: ..u r_ :,r..
e3 ou O Port oer: uu _. e:. Out u3 Function orr ..u rcu _,e. o.O Parameter err o,u. c_. Parameter oeru Port Address or eO,u Parameter oeru o.. _-. . .u.. o..u _-. e3 c:u r. eeru orr ..u rcuu.
Dim Value, PortAddress As Integer PortAddress = "&H378" Value = 255 Out PortAddress, Value
e:.
10
Out &H378, 255 oee. uu r.. e:. Inp u3 Function orr ..u rcu _,e. o..u uu r.. e:. oO.. Port Address or Parameter orr O.e.u _-. . . u ouc Port oer: o.. Return eO. . Dim y As Integer y = Inp(&H379)
e:.
y = Inp(&H379)
e_e _-. . :,r ..
5. :u o,u cee ..u rc PortIO O,u .-qr...r .- eu ere rcu u.
! Ou cr e<. u :u e.g <. ..u rc c:u r.c..u r. e:. Program orr _.uu. e3 e:. ogu Visual Basic Project orr _-. .uu. ecc e_eO. o_ u module orr e.u o.O c:u code or oru rcuu. Public Declare Function Inp Lib "inpout32.dll" Alias "Inp32" (ByVal PortAddress As Integer) As Integer Public Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer) ,u or or cO.Ou ,r. e:. cO. _.uu.
.:c<.r e_e oc Knight Rider System orr e... Data Prot oer: o,u data line 8 ..u rc LED cO. c.r.r e. e:. oreurO eOue cO. ! r ere rcuu.
11
Out &H378, 128
Out &H378, 64
Out &H378, 32
Out &H378,
Out &H378,
Out &H378,
Out &H378,
Out &H378, :u cO.Ou u,Ou Ocr o. eO ._O _.uu. oO .-O Knight Rider o.r.c.O cO.Ou _-. .u :,r.. e.. Function err oucO eqe Delay function orr e.e.u cO.O e:. oO.. r._ eOue _-. .u :,r.. e3 e:. Timer Object orr ..u rcuu. u c:u cO. er ereuu
Out &H378,
Out &H378,
:u o.r.cO .- r,.u uOu cO. err ere rcu u. u c.<r.O Status Port or ..u _-. eu o..u ouO or or cO.Ou _eOu o.r.cO .-e. Application or ere rcu u. e.: c_. O .-O ec.. o,u ccO c Oc,e3 o,u r:. Micro Switch 4 ..ue.u or or Switch orr e:. o._ o.. ee... .uu. e3 e:. or or Switch or Click rc3u Status Port oer: o.. r.Ouu. o o,eecu .-O or or oOe O.e3 Status Port oer: o.. _-. .u :,r.. e3 e:. c:u o.r.ce. code orr ..u r_ :,r.. If portval = 120 Then Add Pattern here End If
If portval = value1 Then Add Pattern here End If
If portval = value2 Then Add Pattern here End If 12
e.: value1, value2 e_e u rO. o,u eu or or oOe O.Ou O_ Status Port oeru _,-< o..u.. s. Parallel Port ..ue. Stepper Motor orr r.. rc. c.<re.u er_u . _-. .u :,r er v ey.Or. e3 ue. eOuu O,: e:. ..u r e3 o e:. ccO.r ere rc .u . u .. Stepper motor orr r ..u .r r . e:. c:u rO. o,u o.r.ce. ccO.r ere r_ :,r.. e.: L1, L2, L3 :. L4 .. u Stepper motor oer: .c 4 rO. o,u. Q1, Q2, Q3 e: Q4 D313 e:. D400 O,u O.ueeOc e3. R 1,2,3,4 e:. 1KOms cuec.. ..u r_ :,r.. e,c.. 12V c.< e3.
u e.: input ! e:. c_eO_u c:u e_eO ey. e,c.e.u Motor or oO.. c :,ec. :,r..
Out &H378, 8 Out &H378, 4 Out &H378, 2 Out &H378, 1 or or ey.Or ouc us r._ cc.e.r u-uu. .-O Motor or oeur ..OO c_u. rc.O oO.. u3 e.. ey. _-. eu c_ eO_ c uc, .O _-. euu.
o.uc o...e Parallel port or ..u rc e. :,r e-.e:. crc< c _ - e uc u .,u. e:. oO.. u3 o e:. oO.. eu.cuc, http://www.dscs.sjp.ac.lk/portprogram/index.php .u eO _ c ue.u _-. .u :,r .. o.. u Stepper motor :,ec. o. e-.e:. rc,< .-O u .,u.O :,r Ou o,u.
13
. Visual Basic 6 ..u Parallel Port or :,e c.O DLL orr e. e3 e:. oc Visual C++ 6 ..u rc. . e3 e:. c:u c .Oc ou ..u. rcuu. . Microsoft Visual C++ 6.0 Open rcuu. z. Win32 Dynamic Link Library Project orr _-. .uu. e3 e:. c:u r .. c_ eO_ e... .uu. File New Project (Win32 Dynamic-Link Library project) Project or MyDLL e_e u3 rc OK Button or click rcu u
:u cce. reOu e_eO _,e-u window oer: A simple DLL project e_e eu. c. Finish button or Click rcuu. u .-O Project or u _ source File ouec: MyPortDLL.cpp e: stdAfx.cpp O.e.u File err r. :,r.. o.u MyPortDLL.cpp File or Open rcuu. o: DllMain u3u Function orr o,u. u c:u rO. o,u Function er MyPortDLL.cpp File oer: _.uu. __declspec(dllexport) void _stdcall writeDataPort( int pvalue) { _outp(0x378, pvalue); }
__declspec(dllexport) int _stdcall readDataPort(void ) { int portvalue=0; portvalue = _inp(0x378);
return portvalue; }
14
e.: __declspec, dllexport e: _stdcall .u eOu rO. o,u eu keywords e3. _outp(0x378, pvalue).. u 0x378 Address oer: pvalue oer: o.. _.u _,e. oee. _inp(0x378).. u 0x378 Address oer: o,u o.. r .Ou _,e. e3 o.r.c.O .-O .u. orr o.. _ .O e:. r..O oO.. Functions ere rc .u :,r.. u #include "stdafx.h" e_e _.. o,u u,uO .cu #include "conio.h" e_e _.uu. u MyPortDLL.def u3u File orr Create rcu u e3 e:. c:u c.Oc ou..u. rcuu. File New File (MyPortDLL.def)
e.. File oer : c:u e:u o,u _u rcuu. LIBRARY MYPORTDLL EXPORTS writeDataPort @ 1 readDataPort @ 2 .- uOu Function e.. DLL File orO oru rcu eu u3 o O.e. u. _ .. e. @ 3 o. O.e.u c _ eO_u or e..uu. u MyPortDLL.dll file or Build rc.uu. e3 e:. F7 Press rcuu. u .-e. Project or save rc.u Folder oer: Debug u3u uOu Folder orr o,u. o: MyPortDLL.dll File or e u -. . u.. u e.. dll File or .-O r,.u e_eO ..u r_ :,r.. e.. project or .-O http://www.dscs.sjp.ac.lk/download/portws/myportdll.zip .. u _-. .u :,r.. e.. ..u rc .-O oO.. c DLL orr e.. .u :,r Ou o,u. o.uc r.. 1. c.<re.u uOu O,:, .:.c.c. oe.. r oe rc,<.uu 2. http://www.epanorama.net/circuits/parallel_output.html 3. http://www.embeddedtronics.com/public/Electronics/minidaq/userport/UserPort.zip 4. http://www.dscs.sjp.ac.lk/download/ele/index.php