Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: PS2-Tasatur anschliessen Kategorie: CC-Pro Unit & Appl.Board (von bierbach - 3.05.2013 16:48)
Als Antwort auf Re: PS2-Tasatur anschliessen von PeterS - 3.05.2013 15:10
Ich nutze:
CC-Pro 128 Application Board, Pro-Bot128
> > Hallo, es geht schon wieder weiter mit der Fragerei:
> >
> > Ich möchte ein PS2-Tastatur an dieses CC-Pro 128 Application Board anschliessen.
>
> Es ist nicht ohne weiteres möglich eine PS2-Tastatur anzuschlie�en. Vielleicht
> gibt es PS2 zu seriell Adapterboards oder ähnliches.
>
> Gruss Peter
>
> > Gibt es dafür Adapter für ein Steckbrett ?
> > An welche Pins kann ich es noch anschliessen ? Würde dann die Membran-Tastatur und das Display deaktivieren.
> > Wo kann ich vom Board die 5-Volt abnehmen ?
> >
> > Danke.
> >
> > Gruss
> > peter


Hallo, ich habe hier eine Routine gefunden für die PS"-Tastatur in ASM, die dann mit BAS aufgerufen wird in der C-Control.

Was mache ich mit der ASM? :
-----------------------------------------------------------------
; Scancode AT-Tastatur
; Author Martin Kaup (kaup@nettypes.de)
; nettypes GmbH
; Datum 08.04.2002
; Code ist frei verfügbar, und dient als Beispiel
; Ein Scancode besteht aus 11 seriellen bits.
; 1. Startbit 2.-9. Datenbits, Paritybit und Stopbit
; Scancode (22) 00010110 zB. entspricht der Taste 1 (nicht in NUM-Block!)
; Es gibt Tasten (zB. Entf, Ende, Bild hoch etc., die senden zwei Codes. 1. den ESC-Code 224(dezimal) und dann den
; Tastencode 112(dezimal) bei der Taste Einfg.
; Die Tastatur übermittelt auch noch ob eine entsprechende Taste losgelassen wurde mit dem Code 240(dezimal).
; Bsp. Die Taste 1 (nicht in NUM-Block!)
; Ein einzelner Anschlag besteht also aus 33 Takten. Tastencode - Taste wurde losgelassen - Tastencode.
; Es sei denn, es wurde eine 'ESC'-Taste gedrückt - dann liegen uns 55 Takte vor.
; Also:       LS                   MS
; BitNr.:   1| 2| 3| 4| 5| 6| 7| 8| 9|10|11
; BitArt:   S|D0|D1|D2|D3|D4|D5|D6|D7| P| s    S=Startbit, Dn=Datenbits, P=Paritybit ODD, s=Stopbit
;           S| 0| 1| 1| 0| 1| 0| 0| 0| P| sS| 0| 0| 0| 0| 1| 1| 1| 1| P| sS| 0| 1| 1| 0| 1| 0| 0| 0| P| s
; Weitere Details bitte dem Code entnehmen, oder per E-Mail.
; Die Anschlüsse der Tastatur, Clock und Data liegen an 0,01 und 1,01 Data.
; Die Daten liegen mit fallender Flanke der Clock an. Beide Signale sind low-aktiv.
; Das Ergebnis des Scancode liegt in ERG (A4) vor.
; Ein Umsetzung der Scancodes in ASCII ist noch im Basic nötig.
; Scancode:ASCII:Zeichen
; 22:49:1 30:50:2 38:51:3 37:52:4 ...etc.
; Nächster Schritt wird sein, da es sich beim AT-Keyboard um ein bidirektionales Protokoll handelt, die LED's
; und weitere "Setup"-Funktionen (Delay,Repeat...) zu aktivieren.
; Der Code erhebt kein Anspruch auf Vollständigkeit oder Funktion. Mir ging es nur um die Möglichkeit eine preiswerte
; Lösung zur Ansteuerung von Relais mit einer Tastatur zu haben.
; Der Code als solcher lässt sich bestimmt noch Optimieren, aber ich hab's mit Assembler nicht so.
; Ich habe auf die 'ESC'-Sequenz der 'ESC'-Tasten verzichtet. Ich hoffe nur, dass es keine Normal-Codes mit gleichen
; Codes gibt, so dass es notwendig wird die ESC-Sequenzen mit Auzuwerten, denn der Code ist mit 80 Sys-Bytes
; noch entschieden zu gross.
; Viel Spass mit den Scancodes
; Martin Kaup im April 2002 :-}

porta   equ   $00
portb   equ   $01
ddrb    equ   $05
A1      equ   $A1
A2      equ   $A2
A3      equ   $A3
ERG     equ   $A4

    org $101
         sei                             ; Interrupts Maskieren, damit wir die grüne LED behalten!
;        bclr 0,ddrb                     ; bit0 auf portb als Eingang (CLock)
;        bclr 1,ddrb                     ; bit1 auf portb als Eingang (Data)

         ldx #9                          ; 1. bit ist Startbit, es folgen 8 Datenbit
         jsr read1
         sta A1                          ; letzten 8bit in A1

         ldx #3                          ; 1. bit ist 2. bit ist Stopbit, 2. es folgen 8 Datenbit
         jsr read1

         ldx #8
         jsr read1
         sta A2

         ldx #3
         jsr read1

         ldx #8
         jsr read1
         sta A3

         lda #!240
         cmp A1
         beq SCistA2
         cmp A2
         beq SCistA3
         lda #!224
         cmp A1
         beq SCistA2
         lda A1
         cmp A2
         beq SCistA2
         rts
SCistA2
         lda A2
         bra raus
SCistA3
         lda A3
         bra raus
raus
         sta ERG
         rts

read1    brclr 0,portb,read1
read2    brset 0,portb,read2
         brset 1,portb,w1              ; 8 mal Databit = Databyte
w1       rora
         decx
         bne read1
         rts
-------------------------------------------


Wie kann ich die ASM jetzt mit dem Basic zusammen nutzen bzw compileren und zusammnfügen.
Das verstehe ich noch nicht :
--------------------------------------------------
define A4 byte[4]
print "Anfang:"
#LOOP
sys &h101
beep 100,2,0
print "Scancode: " , A4
goto LOOP


syscode "keyb.s19"  
------------------------------------------------------

Danke.


Gruss
peter      


    Antwort schreiben


Antworten:

Re: PS2-Tasatur anschliessen (von PeterS - 3.05.2013 18:56)
    Re: PS2-Tasatur anschliessen (von bierbach - 3.05.2013 19:56)