BASIC Stamp 컴퓨터 마우스와 PS2
Colin Fahey
1. 소개
이 문서에서 설명하는 방법을 PS/2 마우스 BASIC Stamp 컴퓨터를 에뮬레이션 수있습니다.
이것은 비공식적인 탐구합니다.

인테리어 오래된 - 스타일 (움직이는 공) 컴퓨터 마우스 : "Microsoft Intellimouse" (광학 센서와 긴 전선 교체합니다.)
마우스는 2 개의 축 : "X" 및 "Y"합니다. "수평으로" 마우스를 이동하면, 내부의 마우스 "X" 바퀴 회전합니다. 마우스를 이동할 때 "수직으로" (시 표면), "Y" 안쪽에 마우스 휠을 회전합니다. 에 대한 임의의 마우스 움직임, "X" 및 "Y" 바퀴의 "수평" 및 "수직" 이동의 구성 요소에 따라 마우스 동작합니다.

마우스 휠 내부의 광학 간헐
마우스 휠 안쪽에있는 구멍에 통보합니다. 바퀴가 회전, (IR) 빛을 방출하는 인프라 - 레드 (LED)가 중단 IR 발광 다이오드가 반복적으로, 휠 속도로 회전 속도에 비례합니다. 따라서, 마우스 알고 얼마나 많은 "단위로 (진드기라고도" 함)에 마우스를 특정 기간 축가 이동합니다.
운동 방향을 결정하는 두 빛 센서의 사용을 포함 위치한 아주 가깝게, 따라서 축의 수레 바퀴의 움직임에 평행하게합니다. (두 센서는 3 - 핀 구성 요소를 단일 아래 그림 참조.)

마우스 IR 빛 센서 (감지기는 2 개의 IR를 단일 패키지)
이 센터 핀의 패키지는 매우 긍정적인 수집가 전압;
왼쪽 및 오른쪽 핀은 왼쪽과 오른쪽 센서 출력 방출합니다.
이 패키지의 이름을 보자 두 개의 센서 "A" 및 "B"합니다. 처음에 바퀴가 회전 각도에서 생각하는 그러한 IR 표시등이 둘 다에서 차단 센서에 도달합니다.
의 수레 바퀴를 회전, IR 빛의 에미터는 결국에 구멍을 통과할 수있습니다 휠에 도달 중 하나를 두 개의 센서, 센서와 같은 "A"합니다. 의 수레 바퀴와 같은 방향으로 계속 회전하는 경우 결국 두 번째 센서, "B", 윌 IR 빛을받은 수있습니다. 의 수레 바퀴와 같은 방향으로 계속 회전하는 경우, 결국 IR 빛 센서에 도달 "A"에서 차단된다. 의 수레 바퀴와 같은 방향으로 계속 회전하는 경우, 결국 IR 빛 센서에 도달 "B"에서 차단된다.
따라서,의 순서는 :
(A,B): ..., (0,0), (1,0), (1,1), (0,1), ...
의 수레 바퀴는 반대 방향으로 회전하면, 위 그림 4 - 임기 순서가 역전, 현재 상태에서 시작합니다.
이러한 두 센서와 신호를 우리가 확인할 수있습니다 회전 속도와 방향으로합니다.

회로 기판의 Microsoft Intellimouse
마우스 회로를 해석하는 방법에 대한 자세한 내용을 이해 빛 센서와 컴퓨터와 통신의 개인 (PC) (PS/2 신호를 통해), 회로 기판을 공부 했어요.
마이크로 칩은 다음과 같은 이름을 인쇄가 없을것입니다 : SPCP05A합니다.
"SPCP05A"라는 단어에 대한 검색은 인터넷을 나타냅니다 칩 제조 회사의 이름은 "Sunplus Technology Co."합니다. 마이크로 칩에 대한 정보를 얻을 수있다 "SPCP05A" 그 회사로부터합니다.
마이크로 칩의 "SPCP05A" 기술 사양은 다음과 같습니다 :
핀 신호는 다음과 같은 이미지를 보여주는 마이크로 칩을 "SPCP05A (PS/2 3D mouse)"합니다.

마이크로 칩의 핀 신호를 "SPCP05A (PS/2 3D mouse)"
the "SPCP05A" 실제로는 작은 컴퓨터에! 그것은 명령 집합, 그리고 RAM, 그리고 ROM, 내부 타이머, 등등 사실, "SPCP05A" 마이크로 칩에 대한 설명이 거의 Sunplus Co.에 의해 제공되는 정보를 나타냅니다 "컴퓨터를 마우스에" 대한 구체적인 회로에 마이크로 칩을 사용을합니다. 이 마이크로 칩은 다양합니다.
전 공부를 추적 회로 기판의 회로를 형성 Microsoft Intellimouse 다음의 대략적인 설계도 :

대략적인 설계도를 Microsoft Intellimouse (나는 몇 커패시터를 누락지만,이 회로도는 거의 완벽합니다.)
Bui Van Chu, 오스트 레일 리아, 내 기사를 읽고 좀 더 완전한 설계도를 전송하는 다음과 같은 이미지에 나타납니다.

the PS/2 마우스 회로도, 오스트 레일 리아에서 Bui Van Chu를 내게 보내
회로은 매우 간단합니다.
마우스 버튼 (왼쪽, 중앙, 오른쪽)이 직접적으로 마이크로 칩을 입력합니다.
3 pairs의 빛을 센서, (("X", "Y", "Z"), (수평 운동, 수직 운동, 및 중간 마우스 휠))를 다른 입력 신호를 직접적으로 전송 칩합니다.
the DATA 및 PS/2 신호를 CLK (시계)도 I/O 신호에 대응하는 칩.
설계도를 이해하고 완성하는 걸 보자 마자 나는 드로잉이 (다음과 같은 성분에 의해 회로 기판).
처음에 하나 안에 대한 생각을 이해하기는 IR LEDs가 연결되어있는 마이크로 칩을 (핀 16 : "PB1"), 대신에 그들의 부정적인 단말기 (음극)는 단순히이 지상에 직접 연결되어있습니다. 이것은 중요합니다!
2. 내 첫 번째 시도로 마우스의 동작을 제어
다음과 같은 의견을 참조 모션 따라 하나의 축 (예 : "X", 또는 수평, 축).
제일 먼저이 이동하는 개체를 보았습니다 IR LED와 센서 사이의 쌍 - 바퀴를 회전의 효과를 시뮬레이트 마우스합니다. 이 일을합니다. 마우스 커서를 이동 할 수 원인에 의해 화면 주변에 장애물을 통해 간단하게 움직이는 IR 광선 반복적으로 동일한 방향으로합니다.
그런 다음, 나는 3 - 핀 센서 부분을 제거하고 마우스 회로 기판, 그리고 연결된 전선을 센서 회로 기판을 대신합니다. 나는 도청 장치를 수동으로 연결된 센서 활동에 긍정적인 전압을 시뮬레이트합니다. 나는 2 개의 신호를 전원에 연결에 따르면 다음과 같은 패턴 (같은 "0"를 "나타냅니다을" 낼 ""1"를" 나타냅니다) :
(0,0), (1,0), (1,1), (0,1), ...
이 일을합니다. 할 수 화면에 마우스 커서를 이동하여이 지루한의 전선을 연결 및 분리의 패턴 위 그림 참조합니다. 의 패턴을 현재의 상태를 반전의 순서가 반대 방향으로 커서를 이동합니다.
때문에 상황은 순조로, 전 릴레이를하기로 결정 전선을 연결합니다 (RS-232에 의해 통제). 이것은 본질적으로 어쩔 수 없었을 정확하게 수행 은혜좀 느슨한 전선 : 신호를 센서에 연결합니다 전원 터미널의 적절한 순서합니다. 유일한 차이는 사실은 인간의 (나)는 연결 및 분리의 지루한도 할 필요가 없어요.
하지만 ... 작동하지 않아요!
많은 조정 후의 저항과 콘덴서 등, 내가 이상한 디스커버리 : 만약 어떤 단말기를 만지고 난 회로, 효과가 완벽하게! 이 수수께끼의 해결책은 다음 섹션에 나타납니다.
3. 변조된 the 인프라 - 레드 (IR) 빛이어야합니다
이후 일부 실망스러운 실험에 나는 새로운 생각 : IR 빛 수도 고주파 펄스를, 그리고 칩이 주파수를받을 수도 기대합니다. 불변의 빛 (또는 내 모의 상수 센서 출력) 수도을 거부합니다. 나는 어느 정도는 사실을 당황하게 실내등을 바닥에 할로겐 램프는 사용할 수 있지만 백열 램프가 알고 있다고하더라도 변조를 감지합니다.
IR 보았습니다 an LED 높은 주파수와 펄스 센서에 따르면 예상 패턴을 차단합니다. 그것은 작동했다!
그랬어! the LEDs의 마우스 회로 기판되어야합니다 IR 번쩍 이는 고속, 그리고 마이크로 칩을 기대해야합니다 이외에이 번쩍 이는 불빛 중단하는 비율이 상대적으로 낮은 회전하는 바퀴 (홀).
펄스 the IR LEDs 의해, 그리고이 펄스의 차단을 해제를 기대 센서 출력 신호를 거부할 수있습니다 어떠한 환경 IR 칩의 신호를 방해하고 마우스 동작합니다. 예를 들면, 미주 빛부터 다른 사람 (상수) interefere 마우스로 IR 소스되지 않습니다.
나는 오디오 앰프에 연결된 센서 출력 및 센서 그렇다면 내 방식을 살펴 할로겐 플로어 램프 실내등 캐스트합니다. 별개의 소리 들었 (60 Hz)합니다. 희미하게 때, 램프, 성장 희미한 소리, 그리고 마지막으로 중단이 이탈 빛을 받으면합니다. 그래서,이 센서의 변조를 쉽게 수화기 백열 전구 60 Hz 나의 할로겐 플로어 램프!
보고, 지금, PS/2 마우스 회로 기판의 회로도에의 중요성을 IR LEDs 핀에 연결되어있는가 마이크로 칩을 (대신 직접적인 전류)은 분명합니다. 깜박임을 제어하는 마이크로 칩을 IR LEDs를 통해 I/O 핀, 그리고 마이크로 칩을 ID 수있습니다 배지를 LEDs 상관 관계와 그 의도를받은 센서 입력 있으며, 따라서 어떤 뜨 거부 신호 (IR로 인해 아닌 - 번쩍 이는 빛). (단, 간 상관 관계가 필요하지 않을 것. 간단하게 감지, 최소 수를 계산 번쩍 이는 동의해 주셔서 될 수도 임계값 센서 입력합니다.)
4. 센서와 필터 IR
특별 IR 찾을 수있습니다 센서, 트랜지스터 - 같은 양식을 패키지로 3 개의 리드 IR 불빛이 변조된를 특정 주파수를 "조정" (예를 들면, 38 kHz).

지켜봐 주시기 바랍니다 IR 빛 센서 (최대 감도를 38 kHz 빛 변조)
이 장치 회로가 포함된 밴드와 함께 IR 포토 - 트랜지스터합니다.
그래서, 그 IR LED 펄스에서 일반적으로 주파수를 38 kHz 수 있도록 센서의 전기 신호를받을 수있게 빛을 감지기 출력을 이동합니다.
정보를 전달, 빛 IR LED에서 상대적으로 낮은 비율을 중단 수있습니다 (예를 들어, 1 초당 100 회). 이 낮게 - 주파수 펄스는 꾸준히 높은 - 주파수 펄스와 관련하여; 즉, 낮은 - 주파수 펄스의 높은 - 주파수를 변조하는 것으로 간주 수있습니다 펄스합니다. - 주파수를 "이동 통신사의" 높은 "파도처럼" 펄스는 단번에에 정보 신호를 (상대적으로 낮은 - 주파수 변조)를 수행합니다.
그러나, 나는이 IR 확인 센서에 Microsoft Intellimouse 같은 변조 없다 필터링을합니다. 그러나, 회로를 필요로하는 IR 불빛은 어떤 방식으로 변조된이 외에도 낮은 - 바퀴가 구멍으로 빛의 주파수를 중단합니다.
다음과 같은 스케치의 차이를 보여줍니다 상수 IR LED 빛 신호를 센서와 번쩍 이는 불빛을 IR LED 서로 다른 단계의 마우스 휠 선회합니다.

센서 출력 신호의 상수 IR 빛 사건과 번쩍 이는 불빛 경우 IR합니다.
5. 마우스 입력을 사용하여 컴퓨터를 시뮬레이트 BASIC Stamp
the "BASIC Stamp 2" 컴퓨터는 프로그래밍을 충분히 PS/2 프로토콜을 구현합니다. 이에 따라 컴퓨터를 "BASIC Stamp 2" 직접적으로 연결될 수있습니다 (PC) 수 PS/2 포트를 에뮬레이트하는 개인용 컴퓨터를 마우스 또는 키보드 PS/2합니다.
5.1 the PS/2 프로토콜을
1998을 통해 년간의 2003, PS/2 포트에 대한 대부분의 개인용 컴퓨터에서 마우스 및 키보드가합니다.
the PS/2 포트가 4 신호 : (1) CLOCK; (2) DATA; (3) +5V; (4) GROUND합니다.
the PS/2 포트에 데이터를 전송 장치를 통해 호스트와 호스트 장치에 데이터를 보낼 수있습니다. 모든 당사자가 PS/2 포트 (일반적으로 단순한 장치와 호스트)을 공유해야합니다 신호와 현재를 사용해야합니다 파티는 또 다른 신호를 감지합니다.
신호가 공유하는 방법은? 신호를 (예 : CLOCK 또는 DATA)은 보통 "부동" 높음, 즉, 전압을 통해 긍정적인 신호가 연결되어있는 저항과 높은 내구성을 (예를 들어, 4 kilo-Ohms). 따라서 "높은" 신호가 논리적으로 해석 청취의 모든 정당합니다. 어떤 파티 라인을 당겨 낮음 (TTL 논리를 통해) 언제 파티를 의도 데이터를 전송합니다. 패킷을 보내는 파티를 완료하면, 그것의 신호를 무기한으로 가자, 그래서 그들은 부동 높이를 다시합니다.
으로 데이터를 전송하는 장치 (예를 들면, 마우스 또는 키보드)를 개인용 컴퓨터 (PC) 경우 데이터를 11 - 비트 패킷을 전송해야합니다 구성된 다음과 같은 비트 : (1)를 시작 비트 ("0"); (2) 8 데이터 비트 (LSB 첫 번째); (3) 패리티 비트 "(홀수" 패리티); (4) 정지 비트 "(1)." 참고 사항의 총 개수가 "홀수 패리티가되면 1" 비트의 데이터 비트 및 패리티 비트 조합은 홀수합니다.
다음 다이어그램의 단일 데이터 패킷의 전송을 보여줍니다 :

PS/2 프로토콜 : 장치가 패킷을 호스트 (PC)
the DATA 라인 적절한 값을 설정해야합니다 무기를하기 전에 CLOCK 라인 낮은합니다. the DATA 값을 설정할 때까지 유지되어야합니다 CLOCK 라인은 높은 돌아갑니다. CLOCK 라인은 높은 것으로 확인되면, DATA 값을 다음 비트 값을 변경할 수있습니다.
전형적인 클럭 속도는 상대적으로 느리게, 약 10 kHz을 17 kHz합니다. 이 제품은 100 마이크로 아래의 각 클럭 기간의 70 마이크로합니다.
이 시나리오를 (PC) 호스트의 데이터를 전송하는 장치와 유사한 장치에 데이터를 보내는 호스트, 그러나 모든 경우에 데이터를 전송하는 동안 장치를 제어하는 신호를 CLOCK 그 자체. 또한, 데이터 비트 보낸 사람의 호스트 (시 장치를 설정 CLOCK 낮음)는 래치 CLOCK 신호를 만들 때 장치를 사용하면 높은 마이 그 레이션을합니다.
인터넷 검색은 많은 설명을 밝히지 PS/2 신호 및 프로토콜에 대한 자세한 내용을합니다.
5.2 마우스 데이터 패킷을 PS/2
컴퓨터를 부팅을하면, 운영 체제와 통신이 시작되고 결국 마우스를 마우스의 유형을 결정합니다. 기본적으로 마우스는 일반적인 PS/2 마우스처럼 행동합니다. 그러나, 운영 체제를 판단하는 경우에는 마우스를 "3D PS/2" 실제로는 마우스 (예를 들어, 마우스로 휠), 마우스를 변경을 말할 수있습니다 3D PS/2 마우스 프로토콜합니다.
마우스를 이동할 때, 또는 릴리스 마우스 버튼을 누르거나, 마우스 회로를 (PC)를 호스트 데이터를 보내는을 나타냅니다 이후 어떤 상태가 변경이 발생했을 이전 상태로 표시합니다.
다음과 같은 일반적인 3 개의 패킷을 전송합니다 PS/2 마우스 호스트 :
------------------------
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
그것은 매우 일반적인 "3D PS/2"는 마우스 (예를 들어, 마우스 휠로의 역할을 그것도 중간 버튼)합니다. 4 개의 데이터 패킷을 보내는 같은 마우스를 호스트 (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 내 첫 회로를 시뮬레이션하는 PS/2 마우스
다음과 같은 회로도는 나의 첫 번째 작업 기술을 "BASIC Stamp 2" 내의 호스트 컴퓨터로 데이터를 전송 PS/2 마우스 (PC)합니다.

회로도를 허용하는 BASIC Stamp 회로 PS/2 패킷을 전송의 호스트 컴퓨터를 (PC)합니다.
참고 :이 회로 내 BASIC Stamp 전기 컴퓨터에서 분리 (PC)의 호스트 컴퓨터를합니다. 또한이 회로는 전기의 요건을 만족하는 단지 PS/2 데이터 전송 (장치를 호스트). 따라서, 나는이 동일한 회로를 사용하여 메시지를 보낼 수있습니다 PS/2 키보드를 꽂으면 포트에 키보드를 PS/2 호스트 (PC)!
이후 수신 신호는 일반적으로 아닌 - 침투 (예를 들어, 전기 신호를 방해할 청취하지 않습니다), 유일하게 필요한 PS/2를 허용하는 CLOCK 및 "BASIC Stamp" 컴퓨터를 DATA가 나타납니다 신호는 신호를 다른 이들에 대한 직접 연결을 BASIC Stamp 핀 I/O (설정을 입력). 난 어떤 종류의 버퍼링을 시도 -하지만 확실히 광학 - 절연체를 직접 사용하는 수 없다, 이후에 부하 말테 "부동" 신호 (그래서 그들을 "침몰!)." 전원 +5V 할 수있는 버퍼를 사용하여 다음의 버퍼를 사용하여 궁극적으로 출력을 드라이브에 광학 - 절연을 BASIC Stamp I/O 신호를 보내는 핀 (구성으로 입력).
다음과 같은 이미지를 보여줍니다 내 BASIC Stamp 2과 일치하는 컴퓨터에 연결되어있는 회로 설계도를 상기합니다.

BASIC Stamp 2 마우스 포트를 통해 컴퓨터에 연결되어있는 PS/2 광학 - 절연체 회로합니다.
다음과 같은 BASIC Stamp 2 프로그램, 성경에 쓰여진 PBASIC 프로그래밍 언어는 나의 첫 번째 성공적인 시도 PS/2 마우스를 제어하는 컴퓨터를 통해 BASIC Stamp 2합니다.
이 프로그램을 간단하게 설명을 보시려면 마우스 커서를 움직여 작은 대각선합니다.
'====================================================================
'{$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
'====================================================================
이 프로그램을 완벽하게 작동합니다. 나는 몇 시간 동안 그냥을 실행하고 정확한 출력물을 만들 위치에 마우스 커서를 두 개의 화면 사이를 이동합니다. 이것은 무엇을 찾고 있었 는데요 : 정확하게 제어할 수 있도록 마우스의 상호 작용하는 소프트웨어를 제공합니다.
인터넷을하는 것을 발견하고 다른 사람을 검색한 후 BASIC Stamp 컴퓨터에 인터페이스를 사용하여 PS/2 (시뮬레이션, 키보드). PBASIC 명령을 사용하여이 사람을 SHIFTOUT 및 DATA 신호를 처리하는 CLOCK은 정말 좋아합니다. 이것은 내 "TransmitPacket" 서브루틴을 만들어 훨씬 짧은, 아마 5 줄의 코드 합계!
TTL는지 아십니까? 버퍼를 사용하는 다른 사람과 직접 연결되어 PS/2 입력 신호 (CLOCK 및 DATA), 그리고 마이크로 컨트롤러 칩 핀에 출력을 직접 연결합니다. 와 같은 회로, 출력 라인에서 마이크로 컨트롤러는 직접적으로 그들의 수집했던 트랜지스터의 기본 핀에 PS/2 신호를 직접 연결합니다. 서로 다른 회로의 모든 것 같아이 직접 결합 좋은 생각이 들어, 1 회로 튀김하지 않는다면 다른합니다. 뭔지 모르겠다 타버 할 수 PS/2 포트에 내 PC면합니다. 사서 새 마더보드, 내 생각에는! 구실로 업그레이 드합니다. 메인 보드 PS/2 포트를 생각할 시간이 필요 붕괴 모르겠는,하지만 난 내 컴퓨터를 종료 한 때 순간적 실수로 짧은 - 순환 PS/2 갈 때 신호를 GROUND the +5V 및 마우스합니다. 수도의 기능! 마우스를 새로 추가 버튼을 할 수 짧은 - 회로에서 마우스를 단지에 전력을 즉시 종료 PC합니다. ;-)
여기에 링크를 SHIFTOUT에 관한 정보에의 사용을 PS/2 프로토콜 :
아래의 링크를 찾으십시오 :
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).
- 캐시 사본을 로컬 파일 :
keybtst.zip
10655 바이트
MD5: c5667557f96db53fb878bd11bfbe4f74
대한 자세한 내용은 다음과 같은 링크를 제공합니다 PS/2 마우스 인터페이스 :