English  Español  Português  Français  Italiano  Deutsch  Nederlands  Svenska  Dansk  Suomi  Norsk  Русский  Polski  Română  Български  Hrvatski  Česky  中国  中國  日本語  한국어  Ελληνική  हिन्दी  العربية 
PS2 hiiri ja BASIC Stamp tietokone
Colin Fahey

1. Johdanto

Tässä artikkelissa kuvataan, miten PS/2 hiirtä voidaan muissa jonka BASIC Stamp tietokone. 

Tämä etsintä on epävirallinen. 
ps2_mouse_interior.jpg
Sisätilat on vanhanaikaista (muutot pallo) tietokoneen hiiri: "Microsoft Intellimouse"  (I korvasi optisten antureiden kanssa pitkiä lankoja.)
Hiirillä on kahdenlaiset: "X" ja "Y".  Kun hiiri on siirtynyt "horisontaalisesti," "X" pyörän sisällä hiiren vaihtuu.  Kun hiiri on siirretty "vertikaalisesti" (kun pinta-ala), "Y" pyörän sisällä hiiren vaihtuu.  Mielivaltaisuuden hiiren liikettä, "X" ja "Y" pyörät liikkuvat mukaan "vaaka-ja pystysuoraan" osia hiirellä esitystä. 
ps2_mouse_interruptor_wheels.jpg
Optinen interruptor pyörien sisällä hiirtä
Huomaa reiät pyörien sisällä hiiri.  Kun pyörä pyörii, infrapunavaloa (IR) valo, joka IR Light Emitting Diode (LED) on keskeytynyt useaan otteeseen, vahvistetaan suhteessa siihen, mitä oli pyörän kierto.  Näin ollen hiiri tietää, kuinka monta "lisäystä" (kutsutaan myös "punkkien)" hiiri-akselilla on siirretty tietyn ajan kuluessa. 

Määrittäminen suuntaan liikkuvuus edellyttää käyttö 2 valovastaanotinta, joka sijaitsee hyvin lähellä toisiaan, samoin akseliin rinnan liikkuvuutta pyörää.  (Molemmat anturit ovat yhden 3-piikkinen komponentin kuva alla). 
mouse_sensor01.jpg
Mouse IR valosensori (on kaksi IR ilmaisimet mukaan yhteen pakettiin)
The center pin-paketti on myönteinen keräilijän jännite; 
Vasemmalle ja oikealle tapit ovat vasemman ja oikean anturin tuotannon päästöjen aiheuttajat. 

Olkaamme nimi kahden anturit tai pakkauksen "A" ja "B".  Oletetaan, että pyörä on aluksi kiertävä kulma sellainen, että IR valossa on estetty pääsemästä molemmat anturit. 

Koska pyörä pyörii, IR valossa, että päästöjen aiheuttaja lopulta voi läpäistä aukko pyörän ja saavuttaa yksi kaksi anturia, kuten sensori "A".  Jos pyörän jatkuu pyörivät vuonna samaan suuntaan, lopulta toinen anturi, "B", pystyy saanut IR valossa.  Jos pyörän jatkuu pyörivät vuonna samaan suuntaan, lopulta IR valoa estetään pääsemästä anturi "A".  Jos pyörän jatkuu pyörivät vuonna samaan suuntaan, lopulta IR valoa estetään pääsemästä anturi "B". 

Näin ollen järjestys on: 
(A,B):   ..., (0,0), (1,0), (1,1), (0,1), ...
Jos pyörä pyörii toiseen suuntaan, 4-sekvenssi edellä esitetty on kääntynyt alkaen nykyinen tila.
Näiden kahden anturin signaaleja voimme määrittää määrä vuoroviljely, ja suuntaan.
ps2_mouse_circuit_board.jpg
The piirilevy, Microsoft Intellimouse
Jotta voitaisiin ymmärtää paremmin, miten hiiren ohjauspiirit tulkitsee valon anturit ja yhteyksissään henkilökohtaisen tietokoneen (PC) (via PS/2 signaaleja), olen tutkinut piirilevy. 

Mikrosiru on seuraava nimi painettu sille: SPCP05A. 

Etsintää Internetistä sana "SPCP05A" osoittaa, että siru on valmistanut yritys nimeltä "Sunplus Technology Co.".  Tietoa "SPCP05A" mikrosiru voi saada kyseiseltä yhtiöltä. 

Tässä ovat tekniset ominaisuudet, "SPCP05A" mikrosiru: 
sunplus_ps2_3dmouse_datasheet.pdf
(Tekniset ominaisuudet, "SPCP05A" mikrosiru)
1125022 bytes
MD5: 359a9210275e021cc19a5e2391499dc5
Seuraava kuva näyttää signaaleja nastoja, "SPCP05A (PS/2 3D mouse)" mikrosiru.
spcp05a_chip_signals_bmp01.jpg
Signaaleja nastoja, "SPCP05A (PS/2 3D mouse)" mikrosiru
The "SPCP05A" on todella pieni tietokone!  Se on ohje asetettu, ja RAM, ja ROM, ja sisäiset laskurit, jne.  Itse asiassa, kuvaus, "SPCP05A" mikrosiru, antamien tietojen Sunplus Co.  tuskin viittaa erityiseen käyttöön mikrosiru, "tietokoneen hiiri" piirejä.  Tämä siru on monipuolinen mikrokontrolleri. 

Olen opiskellut rata jälkiä, piirilevy, Microsoft Intellimouse muodostavat seuraavat lähentää kaavamaisen:
ps2_mouse_my_schematic.jpg
Approximate kaavamaisen, Microsoft Intellimouse  (Minulta puuttuu pari kondensaattoria, mutta tämän kaavamaisen on lähes täydellinen.)
Bui Van Chu, Australia, lukea artikkeli ja lähetti minulle entistä täydellisemmin kaavamaisen, joka näyttää seuraavan kuvan.
ms_ps2_mouse_schematic.jpg
The PS/2 hiiren kaavamaisen, lähetti minulle Bui Van Chu osoitteesta Australia
Piiri on hyvin yksinkertainen. 

The hiiren painikkeet (vasen, keskimmäinen oikealla) mentävä suoraan tuotantopanoksista mikrosiru. 

Kolme paria valovastaanotinta, (("X", "Y", "Z"), (horisontaalinen liikkuvuus, vertikaalinen liikkuvuus, ja keskellä hiiren pyörää)) lähettää signaaleja suoraan muiden tuotantopanosten-siru. 

The PS/2 signaaleja DATA ja CLK (kellon) vastaavat myös I/O signaalien sirulle. 

Ymmärsin, että kaavamaisen heti kun olen valmiiksi se (seuraavat jälkiä, piirilevy). 

Yksi asia, en aluksi ymmärtänyt oli tapa, jolla IR LEDs oli liitetty mikrosirua (PIN-16: "PB1"), sen sijaan, että niiden kielteinen terminaaleja (katodi) yksinkertaisesti liittää suoraan kentällä.  Tämä on tärkeää!

2. Ensimmäinen yritys hallita hiiren liikkuvuus

Seuraavat huomautukset viittaavat esitystä pitkin yhden akselin (kuten "X", tai horisontaalisia, akseli). 

Ensimmäinen asia, josta olen yrittänyt oli menossa objektin välillä IR LED ja anturin pair - simuloida vaikutusta pyörivien pyörien kanssa hiiri.  Tämä toiminut.  Voisin aiheuttaa hiiren kursori liikkua näytön yksinkertaisesti siirtämällä esteen läpi IR valonsäteestä toistuvasti, samaan suuntaan. 

Seuraava, olen poistanut 3-pin-anturi osittain hiiren piirilevy, ja niihin liitetyt johdot, piirilevyjen sijasta anturi.  I manuaalisesti kytketty johdolla positiivisen jännitteen simuloida anturin toimintaa.  I liitetty kaksi signaaleja valta mukaan seuraavan kaavan (sellainen, että "0" edustaa "pois," ja "1" "edustaa):"
(0,0), (1,0), (1,1), (0,1), ...
Tämä toiminut.  Voisin siirtää hiiren kursori näytön tämän tylsiä kytkemiseksi ja katkaiset lankojen vuonna rakenteessa edellä on kuvattu.  Peruutusvalaisimet rakenteessa osoitteesta nykyisen aseman järjestysnumero voisi siirtää kohdistimen menossa vastakkaiseen suuntaan. 

Koska asiat olivat menossa niin hyvin, olen päättänyt liittää johdot, releet (valvoma RS-232).  Tämä vaikuttaisi olennaisesti sallikaa minun tehdä, mitä tein kanssa irtonaiset johdot: yhdistä anturin signaaleja valta terminaalin tarkoituksenmukaisessa järjestyksessä.  Ainoa ero on se, että ihmisen (minun) ei tarvitse tehdä tylsiä kytkemiseksi ja katkaisua. 

Mutta ...  se ei toimi! 

Kun erä mukauttaa, vastuksia ja kondensaattoreita, jne.  Tein outo löytö: Jos olin koskettamasta tiettyjä terminaalit rata, se toimi täydellisesti!  Ratkaisu tähän mysteeri näkyy seuraavassa osassa. 

3. Infrapunasäteilystä (IR) valossa on mukautettu

Kun jotkut turhauttavaa kokeita minulla oli uusi ajatus: IR valossa voisi olla pulsing on korkea taajuus, ja siru voisi odottaa saavansa tämän taajuus.  Constant valossa (tai minun simuloidun jatkuvasti sensor output) voisi hylättävä.  Olin hieman ymmälläni siitä, että ympäristön valoisuuden, halogeeni floor lamp oli hyväksyttävää, mutta tiesin, että jopa hehkulamput ovat havaittavissa mukauttaminen. 

Olen yrittänyt pulsing yksi IR LED korkealla taajuudella ja estää anturit mukaan odotettavissa oleva malli.  Se toimi! 

Se oli se!  The IR LEDs in the mouse piirilevy on oltava vilkkuvalo, suurella nopeudella, ja mikrosiru täytyy odottaa tämän vilkkuva lisäksi suhteellisen alhainen valon keskeytyksettä, pyörivien pyörien (reikää). 

By pulsing että IR LEDs, ja odottaa tämän pulsing, joka vapautetaan anturin signaali, siru voi hylätä kaikki ambient IR signaaleja puuttumatta hiiren toimintaa.  Esimerkiksi hajaheijastukset valossa muista (vakio) IR lähteistä ei häiritsevät hiirelle. 

I kytketty audio vahvistin-anturi tuotos, ja sitten minä anna anturin toteuttaa ilman valoa valettu minun halogeeni floor lamp.  Olen kuullut erilliset sävy (60 Hz).  Kun olen himmennetty valaisinta, sävy kasvoi heikottaa, ja lopulta pysähtyi, kun valo oli pois päältä.  Niinpä tämä anturi helposti hakkujen Up The 60 Hz modulaatio, hehkuvaan sipulin minun halogeeni floor lamp! 

Katse, nyt kaavamaisen, PS/2 hiiren piirilevy, merkitys, IR LEDs on kytketty sellaiseen pin-mikrosiru (sen sijaan, että direct current) on ilmeinen.  Mikrosirua hallitsee vilkkuva, IR LEDs kautta I/O PIN, ja mikrosiru voi korreloi aikovansa flash, ID LEDs kanssa sai anturi tuotantopanoksia ja näin ollen hylätä kaikki hajaheijastukset signaaleja (johtuen vilkkumaton IR valo).  (Tosin, korrelaatio ei ole tarpeen.  Yksinkertaisesti havaitsemiseksi vähimmäismäärä vilkkuva laskee voisi olla kynnys hyväksyä sensor input). 

4. IR antureille, joissa on kaistanpäästösuotimen suodattimet

Löydät erityispainos IR anturit, pakattu transistorin kaltainen lomake, jossa on kolme johtaa, jotka on "viritetty" erityisiä moduloidaan IR valon taajuuksilla (esim.  38 kHz). 
tuned_sensor01.jpg
Tuned IR valosensori (suurin herkkyys 38 kHz valossa modulaatio)
Kaistanpäästösuodatin ohjauspiirit on sisältyvää laitetta yhdessä IR valokuva-transistorit. 

Joten, IR LED voidaan yleensä pulssi on usein 38 kHz niin, että anturi saavat valoa ja antaa sähkö-signaalin mennä anturi-lähtöihin. 

Välittää tietoa, ottaen huomioon, että IR LED voi keskeyttää milloin on suhteellisen alhainen (esim.  1 100 kertaa sekunnissa).  Tämä matalataajuisen pulsing on yhdessä tasaisen korkea-taajuus pulsing; eli matalataajuisen pulsing voidaan pitää vaihdella korkea-taajuus pulsing.  The high-taajuus pulsing on kuin "harjoittaja aalto," johon tiedot signaalia (suhteellisen matala-frequency modulation) on tehty. 

Olen kuitenkin varmistanut, että IR anturit, Microsoft Intellimouse ei ole tällaista mukauttamista suodatus.  Kuitenkin piiri ei edellytä, että IR valossa voidaan mukauttaa joitakin tavalla, sen lisäksi, että matalataajuisen keskeytykset, valoa pyörän kanssa reikiä. 

Seuraavat hahmotelma havainnollistaa eron anturin signaaleja jatkuvasti IR LED valoa ja vilkkua IR LED valoa eri vaiheissa hiiren pyörää kääntämällä.
ps2_mouse_quadrature_sketch.jpg
Sensor output signaaleja jatkuvasti IR valossa tapauksessa ja vilkkuva IR valossa.

5. Simulointi hiirtä käyttäen BASIC Stamp tietokone

The "BASIC Stamp 2" tietokone on riittävästi ohjelmoitavuus toteuttaa PS/2 protokollaa.  Näin ollen "BASIC Stamp 2" tietokone voidaan liittää suoraan sen PS/2 satamassa henkilökohtainen tietokone (PC) ja voi matkia yksi PS/2 hiirtä tai näppäimistöä. 

5.1 The PS/2 protokolla

Vuonna vuosina 1998 kautta 2003, suurin osa henkilökohtaista tietokonetta oli PS/2 satamat, näppäimistö ja hiiri. 

The PS/2 satama on 4 signaaleja: (1) CLOCK; (2) DATA; (3) +5V; (4) GROUND. 

The PS/2 portti mahdollistaa laitteiden lähettää tiedot vastaanottavan, ja vastaanottavan voi lähettää tietoja laitteista.  Kaikkien osapuolten on PS/2 portti (yleensä vain laitteen ja vastaanottavan) on jakaa signaaleja ja on havaita, jos toinen osapuoli on tällä hetkellä käyttävät signaaleja. 

Miten signaalit jaetaan?  A-signaalia (kuten CLOCK tai DATA) on yleensä "kelluvat" suuret, mikä tarkoittaa, että signaali on kytketty positiivinen jännite kautta vastus, joilla on suuri vastus (esim.  4 kilo-Ohms).  Täten signaali on tulkittava siten, looginen "korkea" kaikki kuuntelevat.  Mikä tahansa osapuoli voi vetää linjan alhainen (via TTL logiikan), kun osapuoli aikoo lähettää tietoja.  Kun osapuoli päällysteiksi lähettämällä packet, se antaa mennä, signaalit loputtomiin, joten ne float korkea uudelleen. 

Voit lähettää tiedot laitteen (esim.  hiiren tai näppäimistön) henkilökohtaisen tietokoneen (PC), sinun tulee lähettää tiedot 11-bittinen paketteina, jotka koostuvat seuraavista bittiä: (1) start bit ("0"); (2) 8 data bittiä (LSB ensin); (3) parity bit "(pariton" pariteetti); (4) stop bit "(1)."  Huomaa, että "pariton pariteetti" on, kun kokonaismäärästä "1" bittiä, tietojen bittiä ja parity bit yhdistetty on pariton määrä. 

Seuraava kaavio kuvaa lähetyksen yhden ainoan data packet: 
ps2_clock_data_dev2pc01_adj.jpg
PS/2 pöytäkirja: laitteen isännäksi (PC) packet
The DATA linja olisi vahvistettava asianmukainen arvo ennen kuin CLOCK linjan alhainen.  The DATA arvo olisi edelleen asetettava kunnes CLOCK linja on palannut takaisin korkealle.  Kun CLOCK linja on vahvistettu, on korkea, DATA arvo voidaan muuttaa seuraavan bittinen arvo. 

Tyypillinen kellon nopeus on suhteellisen hidasta, noin 10 kHz, 17 kHz.  Tämä on 100 microseconds alas 70 microseconds kunkin kellon ajan. 

Tämän skenaarion mukaan vastaanottavan (PC) tietojen lähettämisen laite on samanlainen kuin laite lähettää tiedot vastaanottavan, mutta kaikissa tapauksissa laite valvoo CLOCK signaali aikana datasiirto itse.  Myös tietojen bittinen lähetetään vastaanottavan (kun laite asetetaan CLOCK matala) olisi lukitussa kun laite antaa CLOCK signaali esittää siirtymistä korkea. 

Internet-haku tuo esille monia kuvauksia PS/2 signaaleja ja tiedot-protokollaa. 

5.2 PS/2 hiiren tiedot rasiaa

Kun tietokone käynnistyy, käyttöjärjestelmä alkaa ja lopulta yhteyksissään hiirtä määrittää, minkä tyyppinen hiiri.  By default hiiren toukokuu käyttäytyä kuin julkinen PS/2 hiiri.  Kuitenkin, jos käyttöjärjestelmä päättää, että hiiri on oikeastaan "3D PS/2" hiiri (esim.  hiiren kanssa pyörä), se voi kertoa hiirtä, siirtyvätkö ne 3D PS/2 hiiri-protokollaa. 

Kun siirrät hiirtä tai paina tai vapauttamaan hiiren painikkeet, hiiren ohjauspiirit lähettää tiedot vastaanottavan (PC), mikä osoittaa, missä tilassa muutoksia on tapahtunut, koska edelliseen merkintänä. 

Rinnakkaisvalmisteita PS/2 hiiri lähettää seuraavat kolme rasiaa, isäntä: 
    ------------------------
    D7 D6 D5 D4 D3 D2 D1 D0  (The D0 bit (LSB) is sent first)
    ------------------------
(1) YV XV YS XS  1  0  R  L  (overflow, sign, buttons)
(2) X7 X6 X5 X4 X3 X2 X1 X0  (X movement; -128 to +127)
(3) Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0  (Y movement; -128 to +127)

L  = Left  Button State (1 = pressed down)
R  = Right Button State (1 = pressed down)
XS = Direction of X movement (1 = LEFT)
YS = Direction of Y movement (1 = UP)
XV = Overflow of X movement value (1 = X overflow occured)
YV = Overflow of Y movement value (1 = Y overflow occured)
X7,...,X0 : X movement; 8-bit 2's-complement signed byte (-128 to +127)
Y7,...,Y0 : Y movement; 8-bit 2's-complement signed byte (-128 to +127)

Here are examples of data sent to the host (PC):
------------------------------------------------
(The least-significant bit of each data byte is sent first.)
Move Left  1 unit    :  0x18, 0xFF, 0x00
Move Right 1 unit    :  0x08, 0x01, 0x00
Move Down  1 unit    :  0x28, 0x00, 0xFF
Move Up    1 unit    :  0x08, 0x00, 0x01
Press   Left  Button :  0x09, 0x00, 0x00
Release Left  Button :  0x08, 0x00, 0x00
Press   Right Button :  0x0C, 0x00, 0x00
Release Right Button :  0x08, 0x00, 0x00
Se on hyvin yleinen on "3D PS/2" hiiri (esim., hiiren pyörää, että toimii myös keski-painiketta).  Tällainen hiiri lähettää neljä tietojen rasiaa, vastaanottavan (PC). 
    ------------------------
    D7 D6 D5 D4 D3 D2 D1 D0  (The D0 bit (LSB) is sent first)
    ------------------------
(1) YV XV YS XS  1  M  R  L  (overflow, sign, buttons)
(2) X7 X6 X5 X4 X3 X2 X1 X0  (X movement; -128 to +127)
(3) Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0  (Y movement; -128 to +127)
(4) Z7 Z6 Z5 Z4 Z3 Z2 Z1 Z0  (Z movement; -128 to +127)

This is very similar to the generic PS/2 mouse,
with a few additions:

M = Middle Button State (1 = pressed down)
Z7,...,Z0 : Mouse wheel movement; 8-bit 2's-complement signed byte
    (The Z value is forced to a range of -8 to +7)

5.3 Ensimmäinen piiri jäljittelemiseen PS/2 hiiri

Seuraavat kaavamaisen oli ensimmäisenä työpäivänä tekniikkaa saan "BASIC Stamp 2" tietokone lähettää PS/2 hiiren tiedot vastaanottavan (PC).
2002june03_basicstamp_to_ps2mouse_circuit.jpg
Kaaviomaiset-piiri mahdollistaa BASIC Stamp tietokone lähettää PS/2 rasiaa, vastaanottavan (PC).
Huomaa, että tämä piiri sähköllä isolaatit minun BASIC Stamp tietokoneellesi vastaanottavan (PC) tietokone.  Huomaa myös, että tämä piiri on vain täytettävä sähkö-vaatimukset PS/2 datasiirto (laitteen isännäksi).  Näin ollen voin lähettää PS/2 näppäimistö viestejä tässä sama piiri, jos minulla plug in, PS/2 näppäimistön porttiin vastaanottavan (PC)! 

Koska vastaanottaa signaaleja on yleensä ei-invasiiviset (eli kuuntelu ei häiritse sähköisiksi signaaleiksi), ainoa asia tarpeen, jotta "BASIC Stamp" tietokoneen vastaanottamaan PS/2 CLOCK ja DATA signaaleja on suora yhteys näiden signaalien muihin BASIC Stamp I/O nastoja (määritetty olla tuotantopanokset).  Haluan kokeilla jonkinlaista puskurointi - mutta varmasti ei voi käyttää opto-isolator suoraan, koska se esittää kuormitus "irralliset" signaalit (siis "uppoamisen" heille!).  Voisin käyttää +5V valtaan puskurina, niin sitten käyttää puskuria tuotos ajaa opto-laitteiden, että viime kädessä lähettää signaaleja, BASIC Stamp I/O PINS (määritelty tuotantopanokset). 

Seuraava kuva osoittaa minun BASIC Stamp 2 tietokone liitetään virtapiirin vastaavia kaavamaisen edellä. 
2002june03_basicstamp_mousecircuit01_adj.jpg
BASIC Stamp 2 tietokoneeseen liitetyllä PS/2 hiiren sataman kautta opto-isolator circuit.
Seuraavat BASIC Stamp 2 ohjelma, joka on kirjoitettu, PBASIC ohjelmointikieli, oli minun ensimmäinen onnistunut yritys hallita PS/2 hiiren kautta BASIC Stamp 2 tietokone. 

Ohjelma yksinkertaisesti tekee hiiren kursori liikkua pitkin pieniä sinipunainen poikkiviiva. 
'====================================================================
'{$STAMP  BS2} 'STAMP directive (specifies a BS2)

    DIR0 = %1 'Set pin 0 to OUTPUT
    DIR1 = %1 'Set pin 1 to OUTPUT
    OUT0 = %0 'Set DATA line high (pin low)
    OUT1 = %0 'Set CLOCK line high (pin low)
    tempData    VAR  BYTE
    tempParity  VAR  BYTE

'--------------------------------------------------------------------

MainLoop:

    tempCounter  VAR  WORD

    FOR tempCounter = 0 TO 10
    tempData = $28
    GOSUB TransmitPacket
    tempData = $01
    GOSUB TransmitPacket
    tempData = $ff
    GOSUB TransmitPacket
    tempData = $00
    GOSUB TransmitPacket
    PAUSE 100
    NEXT

    FOR tempCounter = 0 TO 10
    tempData = $18
    GOSUB TransmitPacket
    tempData = $ff
    GOSUB TransmitPacket
    tempData = $01
    GOSUB TransmitPacket
    tempData = $00
    GOSUB TransmitPacket
    PAUSE 100
    NEXT

    GOTO MainLoop

STOP

'--------------------------------------------------------------------

TransmitPacket:

    GOSUB ComputeParity       'First, compute parity

    tempData   = ~tempData    'Invert data bits
    tempParity = ~tempParity  'Invert parity bit

    '==== Start Bit ====
    OUT0 = %1 'Set data line low (output high)
    PULSOUT 1, 25   ' Pulse line 1 for (25*2) = 50 usec

    '==== Data Bits ====
    OUT0 = tempData.BIT0
    PULSOUT 1, 25
    OUT0 = tempData.BIT1
    PULSOUT 1, 25
    OUT0 = tempData.BIT2
    PULSOUT 1, 25
    OUT0 = tempData.BIT3
    PULSOUT 1, 25
    OUT0 = tempData.BIT4
    PULSOUT 1, 25
    OUT0 = tempData.BIT5
    PULSOUT 1, 25
    OUT0 = tempData.BIT6
    PULSOUT 1, 25
    OUT0 = tempData.BIT7
    PULSOUT 1, 25

    '==== Parity Bit ====
    OUT0 = tempParity.BIT0
    PULSOUT 1, 25

    '==== Stop Bit (high) ====
    OUT0 = %0  ' pin low is DATA high
    PULSOUT 1, 25

    PAUSE 1 ' Necessary? Provides 1 msec gap between packets...

RETURN

'--------------------------------------------------------------------

ComputeParity:

    tempParity = $01
    tempParity = tempParity + tempData.BIT0
    tempParity = tempParity + tempData.BIT1
    tempParity = tempParity + tempData.BIT2
    tempParity = tempParity + tempData.BIT3
    tempParity = tempParity + tempData.BIT4
    tempParity = tempParity + tempData.BIT5
    tempParity = tempParity + tempData.BIT6
    tempParity = tempParity + tempData.BIT7
    tempParity = tempParity & $01

RETURN

'====================================================================
Tämä ohjelma toimii täydellisesti.  Annan se kestää tunnin, ja se moitteetta tehty hiiren kursori liikkua kahden tarkat sijainnit ruudulla.  Tämä on se, mitä olin etsinyt: tarkka valvonta hiirtä niin, että voin olla vuorovaikutuksessa ohjelmistoja. 

Haun jälkeen Internetin I havaittiin, että joku muu on käyttänyt BASIC Stamp tietokoneen käyttöliittymä PS/2 (simuloiden näppäimistö).  Tämä henkilö käytti PBASIC ohje SHIFTOUT käsitellä CLOCK ja DATA signaaleja, mikä on todella suuri.  Tämä tekisi minun "TransmitPacket" Aliohjelma paljon lyhyempi, ehkä 5 riviä koodia yhteensä! 

Olen myös nähnyt, että muut ihmiset käyttää TTL puskurien, tuotantopanoksiin liittyvät suoraan PS/2 signaalit (CLOCK ja DATA), ja lähdöt kytketty suoraan tappien että mikro-siru.  Kun sama piiri, tuotannon linjat, mikro meni suoraan peruskokoonpanon tappien transistorit, jotka olivat niiden kerääjien suoraan kiinni PS/2 signaaleja.  Kaikki tämä suora kytkentä eri piireistä näyttää huono ajatus minulle, jottei yksi piiri Jugoslavian liittotasavallan muille.  En tiedä, mitä olin tehdä, jos olen paistettu, PS/2 sataman minun PC.  Osta uusi emolevy, I guess!  Tekosyynä päivitykseen.  En ole sitä mieltä, että PS/2 portti emolevyn sulaisi on todennäköistä, mutta tein heti shutdown minun tietokone, kun olen vahingossa lyhyen circuited että +5V ja GROUND signaaleja menossa, PS/2 hiiri.  Ehkä se on ominaisuus!  Voisin lisätä uuden painiketta hiiren että vain oikosulut hiiren valtaa instant shutdown, PC.  ;-) 

Tässä on linkki tietojen käyttöä koskevat SHIFTOUT varten PS/2 pöytäkirja:
http://ourworld.compuserve.com/homepages/steve_lawther/keybinfo.htm
Etsi seuraavasta linkistä:
KEYBTST.ZIP   gives a very basic program for the parallax
-----------
BASIC stamp II, to send key-codes to the PC's keyboard port.
It also gives a write-up of the XT and AT keyboard interfaces
(although IMO some details could be wrong / different to the
keyboards I've looked at).
Paikallisesti-välimuistissa oleva kopio tiedostossa:
keybtst.zip

10655 bytes
MD5: c5667557f96db53fb878bd11bfbe4f74
Seuraavan linkin tarjoaa lisää tietoja PS/2 hiiren rajapintaa:
http://panda.cs.ndsu.nodak.edu/ ~ achapwes/PICmicro/PS2/ps2.htm
colinfahey.com
yhteystiedot
English  Español  Português  Français  Italiano  Deutsch  Nederlands  Svenska  Dansk  Suomi  Norsk  Русский  Polski  Română  Български  Hrvatski  Česky  中国  中國  日本語  한국어  Ελληνική  हिन्दी  العربية