Β
ΠΠ»Π°Π²ΠΈΠ°ΡΡΡΠ° Π½Π° ΠΡΠΈΠΎΠ½-128 - atmega-168
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ Π½Π° atmega-168 ΠΈ ΠΠ’8816 - ΠΌΠ°ΡΡΠΈΡΠ° Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ Π½Π° ΠΡΠΈΠΎΠ½-128
ΠΠ°ΡΠ° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ 12.06.2022
Π Π²ΠΎΡ ΡΠ΅Π³ΠΎΠ΄Π½Ρ 12/06/2022 Π½Π°ΠΊΠΎΠ½Π΅Ρ ΡΠΎ Π΄ΠΎΠ±ΡΠ°Π»ΡΡ Π΄ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΏΠ»Π°ΡΠΊΠΈ. ΠΠ»Π°ΡΠΊΡ ΠΏΠΎΠΊΡΠΏΠ°Π» Π΅ΡΠ΅ ΠΏΠΎΠ»Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄ Ρ Π ΡΡΡΠ°ΠΌΠ° ΠΈΠ· Π’ΠΎΠ»ΡΡΡΠΈ. ΠΡΠΌΠ΅Π³Ρ ΠΏΡΠΎΡΠΈΠ²Π°Π» Π ΡΡΡΠ°ΠΌ.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π° Π½Π° zx-pk Π²ΠΎΡ ΡΡΡΠ»ΠΊΠ°:
ΠΡΠΎΡΠΈΠ²ΠΊΠ° ΠΡΠΌΠ΅Π³ΠΈ 168
https://zx-pk.ru/threads/33211-universalnyj-kontroller-ps-2-klaviatury-dlya-kompyuterov-s-matrichnymi-klaviaturami.html
ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠΈΡΡΡ Ρ ΡΠ°ΠΉΡΠ°:
Π£Π½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ PS/2 ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² Ρ ΠΌΠ°ΡΡΠΈΡΠ½ΡΠΌΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ°ΠΌΠΈ. ΠΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ ΠΏΡΠΎΡΡΠ°Ρ ΡΡ Π΅ΠΌΠ° ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π±Π΅Π·Π²Π΅ΠΉΡΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° PS/2 ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° "Π΄ΡΠ΅Π²Π½ΠΈΡ " Π±ΡΡΠΎΠ²ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² ΡΠΈΠΏΠ° Π‘ΠΏΠ΅ΠΊΡΡΡΠΌ, ΠΡΠΈΠΎΠ½, ΠΠΎΡΠ²Π΅Ρ ΠΈ Π΄ΡΡΠ³ΠΈΡ , Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΊΠΎΡΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»Π°ΡΡ ΠΌΠ°ΡΡΠΈΡΠ½Π°Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ° ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ Π΄ΠΎ 8*16. ΠΠΎΠ΄ Π½Π°ΠΏΠΈΡΠ°Π½ Π² ΡΡΠ΅Π΄Π΅ ΠΡΠ΄ΡΠΈΠ½ΠΎ Π΄Π»Ρ ΡΠ΄ΡΠ° MiniCore, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΡΠΌΠ΅Π³Π°8, 48, 168, 328 Π±Π΅Π· ΠΊΠ²Π°ΡΡΠ° , Π½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΌ ΠΡΠ΄ΡΠΈΠ½ΠΎ ΠΠ°Π½ΠΎ ΠΈΠ»ΠΈ Π£Π½ΠΎ. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΠΡΠΌΠ΅Π³Ρ168. ΠΡΠΎΡΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΠΈΡΡΠ΅ΠΌΡ - ΠΌΠ°ΡΡΠΈΡΠ° Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ MT8816. ΠΠ° ΠΠ»ΠΈ ΠΈΡ ΠΏΡΠΎΠ΄Π°ΡΡ ΡΠΎΡΠ½ΡΠΌΠΈ ΠΏΠΎ Π±ΡΠΎΡΠΎΠ²ΡΠΌ ΡΠ΅Π½Π°ΠΌ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠΎΡΡΠ° ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π² ΠΈΠ½Π΄ΠΈΠΉΡΠΊΠΎΠΌ ΡΡΠΈΠ»Π΅. ΠΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ°ΡΡΠΈΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΊΠ°Π½ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ ΠΊΠΎΠ΄ΠΎΠΌ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΊΠ»ΡΡΠ° ΠΌΠ°ΡΡΠΈΡΡ.
ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π±Π΅Π·Π²Π΅ΠΉΡΠΎΠ²ΡΠΉ. Π’ΡΠΏΠΎ Π·Π°ΠΌΡΠΊΠ°Π΅Ρ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ. ΠΠ΅ΡΡ ΡΠ΅ΠΊΡΠ΅Ρ Π² ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ΅ MT8816. ΠΡΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠ°Ρ ΠΌΠ°ΡΡΠΈΡΠ° ΠΈΠ· 128 ΠΊΠ»ΡΡΠ΅ΠΉ. ΠΡΠ±ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠΊΠ½ΡΡΡ ΠΈ ΡΠ°Π·ΠΎΠΌΠΊΠ½ΡΡΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² ΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°. Π’ΠΎΠ»ΡΠΊΠΎ ΠΏΠΈΡΠ°Π½ΠΈΠ΅ 5Π. Π ΠΎΠ½ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ. ΠΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π»ΡΠ±ΡΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠΌ Ρ ΠΌΠ°ΡΡΠΈΡΠ½ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠΎΠΉ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ, ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Ρ ΡΠ΅ΠΆΠΈΠΌΡ "Π³ΠΎΡΡΡΠ΅ΠΉ" ΠΊΠ»Π°Π²ΠΈΡΠ΅ΠΉ.
ΠΠΎ ΠΌΠ½Π΅ ΠΏΠ»Π°ΡΠΊΠ° ΠΏΡΠΈΡΠ»Π° ΡΠΆΠ΅ Ρ Π²ΠΏΠ°ΡΠ½ΠΎΠΉ Π°ΡΠΌΠ΅Π³ΠΎΠΉ ΠΈ ΠΏΡΠΎΡΠΈΡΠΎΠΉ. ΠΠ½Π΅ ΠΎΡΡΠ°Π»ΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΡΠΎΠ±ΠΈΡΠ°ΡΡ.
Π’Π°ΠΊΠ°Ρ ΠΏΠ»Π°ΡΠΊΠ° Ρ ΠΌΠ΅Π½Ρ
Β
Π‘ΠΊΠ°ΡΠ°ΡΡ
ΡΡ
Π΅ΠΌΡ Π² *.pdf
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΠ»Π°Ρ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² PS/2 , C1,C2,C3 - Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΠΊΠΎΠ½Π΄Π΅Π½ΡΠ°ΡΠΎΡΡ. ΠΠ΅ΡΠ°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π΅ΠΌΠΊΠΎΡΡΡΡ ΠΎΡ 0.01ΠΌΠΊΠ€ ΠΈ Π±ΠΎΠ»Π΅Π΅.
ΠΠ²Π°ΡΡ -16 ΠΌΠ³Ρ
R2- 1 ΠΠΎΠΌ
R1 - 10 ΠΊΠΎΠΌ
C3, C4 -0.1 ΠΌΠΊΡ
ΠΠ»Π΅ΠΊΡΡΠΎΠ»ΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΡ 100ΠΌΠΊΠ€ 10Π. ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½Π°Ρ Π΅ΠΌΠΊΠΎΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΠΏΠΈΡΠ°Π½ΠΈΡ. ΠΠΎΠ½ΡΠ°ΠΊΡΡ J2 ΠΈ J3 ΡΠ»ΡΠΆΠ°Ρ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΡΡ ΠΊ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ. Π Π°Π·ΡΠ΅ΠΌ H2 Π½Π° ΠΏΠ»Π°ΡΠ΅ DIP-40 - ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΡ. ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Π½ΠΎΠ²ΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΊ. ΠΠ²Π°ΡΡ ΠΈ Π΅Π³ΠΎ ΠΎΠ±Π²ΡΠ·ΠΊΡ Π½Π° ΠΎΠ±Π΅ΠΈΡ ΠΏΠ»Π°ΡΠ°Ρ Π·Π°ΠΏΠ°ΠΈΠ²Π°ΡΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ - ΠΠ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠ³ΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° 8ΠΠΡ.
Π ΡΠ°ΠΊ Π½Π°ΡΠΈΠ½Π°Ρ ΡΠ±ΠΎΡΠΊΡ...
Π ΡΠ°ΠΊ ΠΏΠΎΠΊΠ° ΠΊΠ²Π°ΡΡ ΠΈ Π΅Π³ΠΎ ΠΎΠ±Π²ΡΠ·ΠΊΡ Π½Π΅ ΡΡΠ°Π²Π»Ρ. (ΠΡΠ»ΠΈ Π½Π΅ Ρ ΠΎΡΠΈΠΌ Π΄Π΅Π»Π°ΡΡ ΠΎΡΠ»Π°Π΄ΠΊΡ). ΠΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ.
Β
Β
ΠΡΠΎΡΠΈΠ²ΠΊΠ° Π΄Π»Ρ ΠΡΠΈΠΎΠ½Π°-128
#include <PS2KeyRaw.h>
#define AX0 4
#define AX1 5
#define AX2 6
#define AX3 7
#define AY0 8
#define AY1 9
#define AY2 10
#define RSTMT 14
#define CSMT 15
#define DATMT 16
#define STBMT 17
#define DATAPIN 2
#define IRQPIN 3
volatile boolean d = HIGH;
uint8_t table[128] = {127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,0,127,127,32,48,127,127,127,1,17,16,33,49,127,
127,3,2,18,34,51,50,127,127,112,4,19,36,35,52,127,127,115,116,100,20,84,68,127,127,127,114,99,83,67,66,127,
127,127,98,82,81,64,65,127,127,127,127,97,127,80,127,127,127,127,127,127,127,127,127,127,127,113,96,127,127,127,127,127,
127,127,127,127,127,127,64,127,127,127,127,52,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127};
PS2KeyRaw keyboard;
void setup() {
//ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΡΡΠΎΠ²
pinMode(AX0, OUTPUT); //AX0
pinMode(AX1, OUTPUT); //AX1
pinMode(AX2, OUTPUT); //AX2
pinMode(AX3, OUTPUT); //AX3
pinMode(AY0, OUTPUT); //AY0
pinMode(AY1, OUTPUT); //AY1
pinMode(AY2, OUTPUT); //AY2
pinMode(RSTMT, OUTPUT); //RES
pinMode(CSMT, OUTPUT); //CS
pinMode(DATMT, OUTPUT); //DAT
pinMode(STBMT, OUTPUT); //STB
//ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ
keyboard.begin( DATAPIN, IRQPIN );
//ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ MT8816
SetAddr(0);
digitalWrite(RSTMT, LOW);
digitalWrite(CSMT, LOW);
digitalWrite(DATMT, LOW);
digitalWrite(STBMT, LOW); //ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
digitalWrite(CSMT, HIGH); //Π²ΡΠ±ΠΎΡ ΡΠΈΠΏΠ°
digitalWrite(RSTMT, HIGH);
digitalWrite(RSTMT, LOW); //ΡΠ±ΡΠΎΡ
digitalWrite(CSMT, LOW);
SetAddr(table[0x12]);
SetKey(LOW);
}
void SetAddr(uint8_t addr) {
digitalWrite(AX0,bitRead(addr,0));
digitalWrite(AX1,bitRead(addr,1));
digitalWrite(AX2,bitRead(addr,2));
digitalWrite(AX3,bitRead(addr,3));
digitalWrite(AY0,bitRead(addr,4));
digitalWrite(AY1,bitRead(addr,5));
digitalWrite(AY2,bitRead(addr,6));
}
void SetKey(boolean data){
digitalWrite(CSMT, HIGH); //Π²ΡΠ±ΠΎΡ ΡΠΈΠΏΠ°
digitalWrite(STBMT, HIGH); //ΡΡΡΠΎΠ± on
digitalWrite(DATMT, data); //Π΄Π°Π½Π½ΡΠ΅
digitalWrite(STBMT, LOW); //ΡΡΡΠΎΠ± off
digitalWrite(CSMT, LOW);
}
void loop()
{
if( keyboard.available() ){
int c = keyboard.read(); //ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°
switch (c) {
case 0xE0: //Π΅ΡΠ»ΠΈ ΡΡΠΈΡΠ°Π»ΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡ 0xE0
break;
case 0xF0: //Π΅ΡΠ»ΠΈ ΡΡΠΈΡΠ°Π»ΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡ 0xF0 (ΠΎΡΠΏΡΡΠΊΠ°Π½ΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ)
d = LOW;
break;
case 0x66: //Π΅ΡΠ»ΠΈ ΡΡΠΈΡΠ°Π»ΡΡ ΠΊΠΎΠ΄ 0x66 [BS]
SetAddr(table[0x12]);
SetKey(d);
SetAddr(table[0x45]);
SetKey(d);
d = HIGH;
break;
case 0x6B: //Π΅ΡΠ»ΠΈ ΡΡΠΈΡΠ°Π»ΡΡ ΠΊΠΎΠ΄ 0x6B [Left]
SetAddr(table[0x12]);
SetKey(d);
SetAddr(table[0x2E]);
SetKey(d);
d = HIGH;
break;
case 0x72: //Π΅ΡΠ»ΠΈ ΡΡΠΈΡΠ°Π»ΡΡ ΠΊΠΎΠ΄ 0x72 [Down]
SetAddr(table[0x12]);
SetKey(d);
SetAddr(table[0x36]);
SetKey(d);
d = HIGH;
break;
case 0x75: //Π΅ΡΠ»ΠΈ ΡΡΠΈΡΠ°Π»ΡΡ ΠΊΠΎΠ΄ 0x75 [Up]
SetAddr(table[0x12]);
SetKey(d);
SetAddr(table[0x3D]);
SetKey(d);
d = HIGH;
break;
case 0x74: //Π΅ΡΠ»ΠΈ ΡΡΠΈΡΠ°Π»ΡΡ ΠΊΠΎΠ΄ 0x74 [Right]
SetAddr(table[0x12]);
SetKey(d);
SetAddr(table[0x3E]);
SetKey(d);
d = HIGH;
break;
case 0x76: //Π΅ΡΠ»ΠΈ ΡΡΠΈΡΠ°Π»ΡΡ ΠΊΠΎΠ΄ 0x76 [Edit]
SetAddr(table[0x12]);
SetKey(d);
SetAddr(table[0x16]);
SetKey(d);
d = HIGH;
break;
case 0x58: //Π΅ΡΠ»ΠΈ ΡΡΠΈΡΠ°Π»ΡΡ ΠΊΠΎΠ΄ 0x58 [Caps lock]
SetAddr(table[0x12]);
SetKey(d);
SetAddr(table[0x1E]);
SetKey(d);
d = HIGH;
break;
case 0x0D: //Π΅ΡΠ»ΠΈ ΡΡΠΈΡΠ°Π»ΡΡ ΠΊΠΎΠ΄ 0x0D [Ext mode]
SetAddr(table[0x12]);
SetKey(d);
SetAddr(table[0x59]);
SetKey(d);
d = HIGH;
break;
case 0x41: //Π΅ΡΠ»ΠΈ ΡΡΠΈΡΠ°Π»ΡΡ ΠΊΠΎΠ΄ 0x41 [,]
SetAddr(table[0x59]);
SetKey(d);
SetAddr(table[0x31]);
SetKey(d);
d = HIGH;
break;
case 0x49: //Π΅ΡΠ»ΠΈ ΡΡΠΈΡΠ°Π»ΡΡ ΠΊΠΎΠ΄ 0x49 [.]
SetAddr(table[0x59]);
SetKey(d);
SetAddr(table[0x3A]);
SetKey(d);
d = HIGH;
break;
case 0x4C: //Π΅ΡΠ»ΠΈ ΡΡΠΈΡΠ°Π»ΡΡ ΠΊΠΎΠ΄ 0x4C [;]
SetAddr(table[0x59]);
SetKey(d);
SetAddr(table[0x44]);
SetKey(d);
d = HIGH;
break;
case 0x52: //Π΅ΡΠ»ΠΈ ΡΡΠΈΡΠ°Π»ΡΡ ΠΊΠΎΠ΄ 0x52 ["]
SetAddr(table[0x59]);
SetKey(d);
SetAddr(table[0x4D]);
SetKey(d);
d = HIGH;
break;
default:
SetAddr(table[c]);
SetKey(d);
d = HIGH;
}
}
}
ΠΠΈΠΊΡΠΎΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ° Π½Π° ΠΌΠΈΠΊΡΠΎΠΊΠ½ΠΎΠΏΠΊΠ°Ρ Π Π86
ΠΠ»Π°Π²ΠΈΠ°ΡΡΡΡ Π½Π° Atmega48 PC/2 ΠΎΡ IBM Π² ΠΠΠΠ΅
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΠ‘7007
ΠΠ»Π°Π²ΠΈΠ°ΡΡΡΠ° Π Π86 Π½Π° ΠΌΠ΅Ρ Π°Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠ°Ρ
ΠΠ»Π°Π²ΠΈΠ°ΡΡΡΠ° ΠΎΡ ΠΠΎΡΠ²Π΅ΡΠ°
ΠΠ»Π°Π²ΠΈΠ°ΡΡΡΠ° Π½Π° ΠΡΠΌΠ΅Π³Π°168
ΠΠ»Π°Π²ΠΈΠ°ΡΡΡΠ° Π Π86+PC Π½Π° ΠΌΠ΅Ρ Π°Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠ°Ρ
Β
Β
ΠΠΎΠ»Π΅Π·Π½ΡΠ΅ ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΡΡΠ°ΡΡΠΈ
ΠΠ° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡΒ ΠΠ° Π³Π»Π°Π²Π½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Β ΠΠ° ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ
Β

