Normal Tastatūras Saskarne ar PC Via PS2

Čau,

Es jau dara host-to-KB kods.Vai jūs man?Kā mēs varam tests ourself?
Kods:

# include <reg51.h># define BYTE (7)

# define paritāte (1)

char D_Bus [BYTE paritāte] = (0);sbit clockpin = P3 ^ 2;

sbit datapin = P3 ^ 7;anulēts sendbit (char b) (

char i;

datapin = b;

for (i = 0; i <5; i ); / / Clock Laiks Hi

clockpin = 0;

for (i = 0; i <9; i ); / / Clock Laiks Lo

datapin = b;

clockpin = 1;

)anulēts D_Buffer (spēkā neesošs)

(

char nbit = 0, i = 0;darīt

(

clockpin = 1;

for (i = 0; i <5; i ) / / TCK - Clock Laiks Hi

(

D_Bus [nbit] = datapin;

)

clockpin = 0;

for (i = 0; i <9; i ) / / TCK - Clock Laiks Lo

(

D_Bus [nbit] = datapin;

)

) while (nbit <= 8);sendbit (1); / / HI

sendbit (0); / / ACK

)anulēts Host_To_Drive (spēkā neesošs) pārtraukt 0

(

char i = 0;while (! INT0);

datapin = 0;clockpin = 1; / / Raising Edge

for (i = 0; i <5; i ); / / TCK - Clock Laiks Hiclockpin = 0; / / Falling Edge

for (i = 0; i <2; i ); / / TCK - Clock Laiks LoD_Buffer ();

)anulēts main (spēkā neesošs) (IT0 = 0;

IE0 = 0;

EX0 = 1;

TF0 = 0;

EA = 1;while (1)

()
 
Pārbaudiet un pārbaudīt šo kodu (es vienkārši rakstīt to notepad)
Kods:

# include <reg51.h>sbit clockpin = P3 ^ 2;

sbit datapin = P3 ^ 7;

baits PCdata = 0;anulēts sendbit (char b) (

char i;

datapin = b;

for (i = 0; i <5; i ); / / Clock Laiks Hi

clockpin = 0;

for (i = 0; i <9; i ); / / Clock Laiks Lo

datapin = b;

clockpin = 1;

)char recvbit (char b) (

char i;

for (i = 0; i <5; i ); / / Clock Laiks Hi

i = datapin;

clockpin = 0;

for (i = 0; i <9; i ); / / Clock Laiks Lo

clockpin = 1;

atpakaļ i <<7;

)anulēts Host_To_Drive (spēkā neesošs) pārtraukt 0

(

char i;

EX0 = 0; / / izslēgt pārtraukt

recvbit (); / / Sākumlapa bit

PCdata = 0;

for (i = 0; i <8; i ) (

PCdata = recvbit ();

PCdata>> = 1;

)

recvbit (); / / paritātes bits

sendbit (1);

sendbit (0);

sendbit (1);

)anulēts xmit (char) (

char i, maska;

char paritāte;

paritāte = 0;

sendbit (0); / / Sākumlapa bit

maska = 1;

for (i = 0; i <= 8, i ) (/ / maiņu labi -> b0 ..
B7

if (& maska) (sendbit (1); paritāte ;)

else sendbit (0);

maska <<= 1;

)

paritāte & = 1; / / vismazākais nozīmīgais bits tikai

sendbit (! parity); / / pārvērtīsies nepāra paritāte

sendbit (1); / / stop bit

)

anulēts main (spēkā neesošs) (IT0 = 1;

EX0 = 1;

EA = 1;while (1)

(

ja PCdata! = 0 (xmit (0xFA); PCdata = 0; EX0 = 1;)

)

)
 
Čau,
function.

Es neesmu tik saprast recvbit ()
funkciju.Faktiski recvbit () neveic jebkura vērtība rituāls?
Mēģinu izmantot programmatūru simulēt datapin in recvbit (), bet PCdata rezultāts nemainītos no Host_To_Drive ().
Quote:i PCdata

0 C0

1 20

2 D0

3 28

4 D4

5 2A

6 D5

7 2A
 
Ir kļūdas, no pēdējā kodu, check this one:
Kods:

char recvbit (spēkā neesošs) (

char i, databit;

/ / MCU radīt pulksteni, bet datoram pārraidīt datus bit

for (i = 0; i <5; i ); / / gaida datu stabils

databit = datapin; / / get PC datu mazliet i

clockpin = 0; / / negatīva iet mala

for (i = 0; i <5; i ); / / PC nosūtīs jaunu datu bits

clockpin = 1; / / clockpin standy valsts

atpakaļ databit <<7; / / pāriet uz biti 7 -> atgriešanās vērtību zvanītāju

)anulēts PCsendCommand (spēkā neesošs) pārtraukt 0

(

char i;

EX0 = 0; / / izslēgt pārtraukt

recvbit (); / / Sākumlapa bit

PCdata = 0; / / if PCdata! = 0 -> ir jauns baits no datora

for (i = 0; i <8; i ) (

PCdata>> = 1; / / maiņu tiesības 1 nostāju

PCdata = recvbit (); / / new datu bitu inserto vērā 7. stāvoklī

)

recvbit (); / / paritātes bits, šajā gadījumā man ignorēt

sendbit (1); / / atbildes apstiprināt bit

sendbit (0); / / atbildes apstiprināt bit

datapin = 1; / / datapin gatavības stāvoklī = 1

)
 
Čau,

Es jau mēģināt manu tastatūru.I use Switchs lai pārslēgtos tastatūra un Tastatūras clk n datu signāls.Inicializēt i switch to Keyboard, bet pēc OS i switch to Tastatūras testēšanai.
is INT0 pin while we sent data to host the clk-pin Lo will interrupt occur.

Es atklāju, viena lieta ir mūsu clk
ir INT0 pin, kamēr mēs nosūtījis datus uzņēmējas clk-pin Lo pārtrauks notiks.Tas ir es izmantoju Keil programmatūru, lai modelētu tā.Praktiski tas joprojām būs comeout rezultātu, kas ir Key1 = d, Key2 = t, Key3 =) un pēc Key būs mana pc pakārt.the result still giving me a same problem, PC hang.

Bet es cenšos izmantot citus PIN clk
rezultāts joprojām dod man tāda pati problēma, PC hang.Vai jūs zināt, kāpēc?

Keyboard ScanCodes: AT Keyboard Scan kodiem (Set3)

Vēl viens jautājums.Vai mums ir nepieciešams pievienot dažas no PS2 uz PC pretošanās?kā attēlu rādīšanu.

Es jau pievienots kodu.Lūdzu, izskatu.

Paldies.
Atvainojiet, bet jums ir nepieciešams autorizēties, lai skatītu šo pielikumu

 
Hi all,

Es biju rakšana neto Sīkāku informāciju par keyboard emulation, es atklāju, ka šī saite ir daudz noderīgas tādējādi pievienojoties tai.Pirms sākt sacensība esmu gājusi cauri dažas saites norādīts zemāk.Man ir novēroti tastatūra datu pārraides protokolu, atsaucoties dažas vietas un paralēli hooking manu CRO zondes uz KBD_DATA un KBD_CLK līnija mana tastatūra nododot dažus datus.Man ir problēmas emulating klaviatūras kontroli.Iam izmantot Atmel's 89C52 MCU.Es pārbaudīju laika ziņas, bet tas nedarbojas.

Es ceru, ka visi jūsu palīdzību šajā sakarā.iam gatavi dalīties savā pieredzē apsvērumus, kodeksus un uzrakstiet dažas programmas savā 8051 MCU.Un tas ir tas, ko es esmu darījusi līdz šim.

Ko MCU būs jādara, ir jānosūta atbilstoši "" taustiņu uz datora datu intervālu 2,5 sekundes.Pirms veikt MCU izpildīt i atver notepad un savienots mana tastatūra un uzrakstīja raksturs "," in tastatūru.Novērots laika ziņas un datu pārraides modelis, un līdzīgi kā es gribētu programmēt manu MCU nosūtīt kodu.ti, 2 baiti koda F0 un 1C.Es noņemt PC KBD informācija un clk līniju un pieslēgt pats no datora uz manu MCU.ja zondes ir līks uz datiem un CLK līniju.es varētu nokļūt pašā laika impulsiem kā nosūtīto tastatūru, bet raksturs nav redzami uz notepad.Es vēlreiz atpakaļsavienojuma PC kbd, un tā sāka drukas burtiem, bet, kad pats signāls ir gven ar MCU tas nedarbojas.Vai apmēram vienu izskaidrot?.Dažās vietas viņi ir minēts, ka kbd dati un clk līnijām opencollector.89C52 ostas P0.0-DATA līnijas P0.1-CLK līnijā ir arī atvērtā kolektora, un es esmu tās izmantoja, bet veltīgi.Ihave saistīts 4,7 K rezistoru starp datu un Vcc, CLK un Vcc.Please do help me.šādas vietas man bija atsauces nezinot PS / 2 paziņojumu.

http://beyondlogic.org/keyboard/keybrd.htm

http://www.computer-engineering.org/ps2protocol/

http://www.computer-engineering.org/...cancodes2.html

Kā "palīdzība" arī cenšas saskarnes "viņa 4X4keyboard" uz datora, es domāju, iam arī kuģo vienā laivā.Arī I appreciate darbu IanP un Budhy.

Es uzskatu, ka, izmantojot montāžas valoda ir daudz labāk, kā es lasīju no atzīmē, ka PS / 2 protokols prasa stingrus laika prasībām.

Es esmu uzrakstījis dažas koda montāžas datu pārsūtīšanai, un man ir nepieciešams zināms visu savu laiku, lai man palīdzētu sekmīgi sacensties tastatūras darbību.

 
palīdzība,on page 10 of my attached document, I got this document from this site, but I edited it as a small booklet :

Jūs kods un shematisks I'll apspriest vēlāk naktī, bet šobrīd es domāju, ka jums ir lasīt par Marka kodiem, Break kodi un Typematic atkārtot
mana pievienotā dokumenta 10 lapa, es saņēmu šo dokumentu no šajā lapā, bet es edited kā maza grāmatiņa:pS / 2 Mouse / Keyboard protokols
No datora-EngineeringAvots: http://www.computer-engineering.org/ps2protocol/Autors: Adam Chapweske
 
Čau,

Paldies par jūsu grāmatiņa.

Es domāju, ka es esmu garām typematic likme un kavēšanās, izmantojot "Set Typematic Rate / Delay" (0xF3) komandā funkciju.Bet tas comman ir sūtīt ar PC, am i right?

Quote:

.. typematic kavēšanās, kas drīz pēc pirmā un otrā "",...
 
m.42 wrote:
Quote:

Es esmu uzrakstījis dažas koda montāžas datu pārsūtīšanai, un man ir nepieciešams zināms visu savu laiku, lai man palīdzētu sekmīgi sacensties tastatūras darbību.
 
Faktiski iam cenšas darīt to, tastatūras darīs PC, bet vienīgā atšķirība ir tā, ka tā vietā, tastatūras nosūtot komandu mana mikrovadības nosūtīs signālu.Pirms lasījuma roku i līks manas zondes uz datiem un clk no PS / 2 līnijas un novēroti pattren abās līnijās pierakstot uzmanīgi laika details.The pats man bija veikts ar manu 89c52 mikrokontrolleru.dati = p0.0 un clk = p0.1.Es saņēmu info, ka kopš MCU ostas 0 ir atvērtā kolektora un lielākā daļa no teritorijas, ko es referredtold ka tikai atvērtā kolektora iznākums ir saistīts ar datora kbd datus un kbd clk līnijām.tādēļ man nebija izmantot jebkādas ziņas, īpaša saskarne starp IC's tapas un PS / 2 līnijām.izņemot vienkāršu 4.7k pull up rezistors abām līnijām.ko nozīmē "palīdzēt" arī darīt vienīgā atšķirība.Lai atrisinātu manā pēdējā šķīdumā emulating tastatūras, i izstiepa manu tiešais mērķis, kā līdzināties tikai taustiņu "".i atver notepad un saliekts manas zondes uz clk un datu signālus.i novērota 2 baiti pārraides (ar copnnecting kbd).fig 1 dos ekrānuzņēmums mana signāla novērota
CRO.The atlikušo vīģes ir tikai palielinātā vai slēgt ņemot signālu viens baits uz ekrāna.Par to es ir uzņēmušies šādus nosacījumus.
1.Dati un clk līnijas ir augstas.tas ir, pc nav Nosūtot jebkādu komandas manu kbd.
2.MCU nav pārbaudīt statusu, datu un clk līnijas pirms sūtīšanas bytes.
Tagad man ir diconnected tastatūra datu un clk līnija no pc un pievienots mikrokontrolleru's p0.0 (dati) un p0.1 (clk) līnija uz PS / 2 connector.pēc jaudas sagatavota ik pēc 4 sekundēm MCU nosūta divi baiti.Iam sūtīšanu manu komplektu kods, skaitļi info utt

Es domāju, iam darīt daļu, kāda palīdzība dara.vienīgā atšķirība ir viņš skenēšanas "viņa klaviatūra", kamēr iam vienkārši nosūtīt divi baiti.Lūdzu, palīdziet man.
Atvainojiet, bet jums ir nepieciešams autorizēties, lai skatītu šo pielikumu

 

Welcome to EDABoard.com

Sponsor

Back
Top