ΠΠ°ΡΠ½Π΅ΠΌ Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ:
ΠΠ»Ρ ΡΠ²ΠΎΠΈΡ
ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Ρ ΠΈΡΠΊΠ°Π» ΡΠ΅ΠΌΠΈΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠ΅ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΡ, ΡΡΠΊΠΈΠ΅ ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΠ΅. Π‘Π΄Π΅Π»Π°Π» ΡΡΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ°Ρ
Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°ΠΌΠΈ MAX7219
ΠΠ΅Π΄Π°Π²Π½ΠΎ ΠΏΠΎΠΊΡΠΏΠ°Ρ Π½Π° ΠΠ»ΠΈΡΠΊΡΠΏΡΠ΅ΡΡΠ΅ Π²ΡΡΠΊΡΡ ΠΌΠ΅Π»ΠΎΡΠ΅Π²ΠΊΡ Π½Π°ΡΠΊΠ½ΡΠ»ΡΡ Π½Π° ΡΡΠΈ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΡ, Π½Π° ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ΅ TM1637. ΠΠ½Π΅ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΠΎΡΡ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π½Π΅Π²ΡΡΠΎΠΊΠ°Ρ ΡΠ΅Π½Π° ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎ Π΄Π²ΡΠΌ ΠΏΡΠΎΠ²ΠΎΠ΄Π°ΠΌ. ΠΠ°ΠΊΠ°Π·Π°Π» ΠΏΠ°ΡΠΎΡΠΊΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΊΡΡΠ΅ΠΉ Π΄ΡΡΠ³ΠΈΡ Π΄Π΅ΡΠ°Π»Π΅ΠΊ.
ΠΠΎΠ΄ΡΠ»ΠΈ ΠΏΡΠΈΠ΅Ρ
Π°Π»ΠΈ Π·Π°ΠΏΠ°ΡΠ½Π½ΡΠ΅ Π² ΠΏΠ°ΠΊΠ΅ΡΠΈΠΊΠΈ
Π₯Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ:
ΠΠΌΠ΅ΡΡΠ΅ Π² ΠΏΠΎΡΡΠ»ΠΊΠ΅ ΠΏΡΠΈΡΠ»ΠΈ ΠΈ ESP8266 ES07, ΠΎ ΠΊΠΎΡΠΎΡΡΡ
ΡΠΏΠΎΠΌΠΈΠ½Π°Π» Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΠ°ΡΡΠΈ. ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π» ΠΏΡΠΎ Π½ΠΈΡ
Π² ΡΠ²ΠΎΠ΅ΠΌ Π±Π»ΠΎΠ³Π΅.
ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ²ΡΡΡΠ»ΡΡ Ρ ESP-ΡΠΊΠ°ΠΌΠΈ ΠΈ ΡΠ΅ΡΠΈΠ» ΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ Π½ΠΈΠΌΠΈ. ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ°Π»ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ· ΡΡΠ΅Π΄Ρ Arduino IDE.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Arduino IDE Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ESP8266 Ρ
ΠΎΡΠΎΡΠΎ ΠΎΠΏΠΈΡΠ°Π½Π° Π·Π΄Π΅ΡΡ
Π₯ΠΎΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ, ΡΡΠΎ ΠΊΡΠΏΠ»Π΅Π½Π½ΡΠ΅ ΠΌΠ½ΠΎΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ ESP-07 ΡΠ°ΡΠΏΠ°ΡΠ½Π½ΡΠ΅ Π½Π° ΠΏΠ»Π°ΡΡ-Π°Π΄Π°ΠΏΡΠ΅ΡΡ ΡΠΆΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π³ΠΎΡΠΎΠ²Ρ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ TX/RX ΠΈ GND ΠΊ TTL-USB ΠΊΠΎΠ½Π²Π΅ΡΡΠ΅ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊΠΎΠΌΡ. ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΏΠΈΡΠ°Π½ΠΈΠ΅ 3.3Π ΠΊ VCC. ΠΠ»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ GPIO0 ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌ ΠΊ Π·Π΅ΠΌΠ»Π΅. Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈ Π²ΡΠ΅. ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ GPIO0 ΠΈ RESET ΠΊ Π΄Π°Π½Π½ΠΎΠΌΡ ΠΊΠΎΠ½Π²Π΅ΡΡΠ΅ΡΡ Ρ ΠΌΠ΅Π½Ρ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ, Π½ΠΎ ΡΡΠΎ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ Π½Π΅ ΡΠΈΠ»ΡΠ½ΠΎ Π½ΡΠΆΠ½ΠΎ. ΠΡΠΈ ΠΏΠΎΠ΄ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΠΎΠΌ GPIO0 ΠΊ Π·Π΅ΠΌΠ»Π΅ ESP Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ Π²ΠΎ ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΡ, Π½ΠΎ ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π·Π°ΠΏΡΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±Π΅Π· ΠΎΡΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ GPIO. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΠΏΠΎΠ»Π½Π΅ ΠΊΠΎΠΌΡΠΎΡΡΠ½ΠΎ ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡ ΡΠ²ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠ΅ΡΠ΅Π΄Π΅ΡΠ³ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΊΡΠ°ΡΠΊΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ΄Π°Π² Π½Π° Π²ΡΠ²ΠΎΠ΄ RESET Π½Π° Π·Π΅ΠΌΠ»Ρ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΏΠ°ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ.
ΠΠ° ΡΠΎΡΠΊΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ES12 ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΠΏΠ°ΡΡΠΈΠΈ. ΠΠΎΠ½Π΄Π΅Π½ΡΠ°ΡΠΎΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ. ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π±Π΅Π· Π½ΠΈΡ .
ΠΡΠ°ΠΊ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½, ΡΡΠ΅Π΄Π° Π½Π°ΡΡΡΠΎΠ΅Π½Π°. ΠΠ»Ρ ES07 Π²ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ESP8266 ΡΡΠ°Π²ΡΡΡΡ Β«ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡΒ»:
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π΄ΠΈΡΠΏΠ»Π΅Π΅ΠΌ Π½Π° TM1637 Ρ Π²Π·ΡΠ» Π³ΠΎΡΠΎΠ²ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π΄Π»Ρ ΠΡΠ΄ΡΠΈΠ½ΠΎ DigitalTube. Β«ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡΒ», Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³: Β«ΠΠΎΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ\Arduino\libraries\Β». Π§ΡΠΎΠ±Ρ ΠΎΠΏΡΠ°Π²Π΄Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ WiFi-ΠΌΠΎΠ΄ΡΠ»Ρ, ΡΡΠΈ ΡΠ°ΡΡ Π±ΡΠ΄Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ΠΌΡ Ρ NTP ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅.
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ ESP, Π΄ΠΈΡΠΏΠ»Π΅ΠΉ ΠΊ CLK -> GPIO4, DIO ->GPIO5, ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΎΡ 3.3Π ΠΈ USB-TTL ΠΊΠΎΠ½Π²Π΅ΡΡΠ΅Ρ ΠΌΠ°ΠΊΠ΅ΡΠ½ΡΠΌΠΈ ΠΏΡΠΎΠ²ΠΎΠ΄Π°ΠΌΠΈ
ΠΡΡΠ·ΠΈΠΌ ΡΠΊΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡΡ Π·Π΄Π΅ΡΡ.
ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ²ΠΎΠ΅ΠΉ ΡΠΎΡΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ°: AP_SSID ΠΈ AP_PASS, ΡΠ²ΠΎΡ ΡΠ°ΠΉΠΌΠ·ΠΎΠ½Ρ TIMEZONE. Π£ ΠΌΠ΅Π½Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° Π΄Π»Ρ ΠΠ΅ΡΠΌΠΈ/ΠΠΊΠ°ΡΠ΅ΡΠΈΠ½Π±ΡΡΠ³Π°. ΠΠ»Ρ ΠΠΎΡΠΊΠ²Ρ Π±ΡΠ΄Π΅Ρ 3.
Π€ΡΠ½ΠΊΡΠΈΠ΅ΠΉ tm1637.set(2) ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΡ ΡΡΠΊΠΎΡΡΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ° ΠΎΡ 0 Π΄ΠΎ 7.
ΠΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌ:
ΠΠΎΡΠΎΠ²ΠΎ. Π§Π°ΡΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠ°ΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ, ΠΌΠΈΠ³Π°Ρ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅ΠΌ. ΠΡΠ΅ΠΌΡ ΡΠΎΡΠ½ΠΎΠ΅ ΠΈΠ· ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°, ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ Ρ NTP ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ. ΠΡΠΈ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ° ESP-ΡΠΊΠΈ.
Π ΠΊΠΎΡΠΏΡΡ Π²ΡΠ΅ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ Π½Π΅ ΡΡΠ°Π», ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠΎΡΠΈΠΏ Π΄Π»Ρ Π±ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΡΠΎΡΠΈΡΠ°ΡΡ ΠΎΠ± ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π² ΠΌΠΎΠ΅ΠΌ Π±Π»ΠΎΠ³Π΅
ΠΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ
mysku.ru
ΠΠ°ΠΌΠ΅Π΄Π½ΠΈ ΠΏΡΠΈΠ±Π»ΡΠ΄ΠΈΠ»ΡΡ ΠΊΠΈΡΠ°ΠΉΡΠΊΠΈΠΉ Π΄ΠΈΡΠΏΠ»Π΅ΠΉΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅ TM1637 (Π΄Π°Π»Π΅Π΅ Π² ΡΠ΅ΠΊΡΡΠ΅ — ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ, ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ) .
Β
Β
ΠΠ΅ΡΡ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΡΠΈΡΡΠ½Π°Ρ Π²ΠΎ Π²ΡΠ΅Ρ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡΡ . ΠΠΎ ΡΠ΅Π½Π΅, ΡΠΎΠΏΠΎΡΡΠ°Π²ΠΈΠΌ Ρ ΡΠ΅Π½ΠΎΠΉ «Π³ΠΎΠ»ΠΎΠ³ΠΎ» ΡΠ΅ΡΡΡΡΡ ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ°. Π£ΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎ Π΄Π²ΡΠΌ ΠΏΡΠΎΠ²ΠΎΠ΄Π°ΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ «ΡΠ΄ΡΠ°» Π΄Π΅ΡΠ΅Π²ΡΠ΅ ΠΌΠ°Π»ΠΎΠ²ΡΠ²ΠΎΠ΄Π½ΡΠ΅ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ (Π΄Π°Π»Π΅Π΅ Π² ΡΠ΅ΠΊΡΡΠ΅ — ΠΠ) Π²ΠΏΠ»ΠΎΡΡ Π΄ΠΎ ΡΠ΅ΡΡΠΈΠ½ΠΎΠ³ΠΈΡ Π±ΡΠΊΠ°ΡΠ΅ΠΊ Π²ΡΠΎΠ΄Π΅ Tiny10. ΠΡΠΈΡΡΠΌ, ΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π½Π΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΡΠ²Π»Π΅ΠΊΠ°ΡΡΡΡ Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΡ,.Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ ΠΏΠΎΡΡΠ»ΠΊΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π±Π°ΠΉΡΠΎΠ², ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΡΠ²ΠΎΠΈΠΌΠΈ Π΄Π΅Π»Π°ΠΌΠΈ. «ΠΡΡΡΡΠ΅Π»ΠΈΠ» ΠΈ Π·Π°Π±ΡΠ»».
ΠΠΎ ΠΈ ΡΡΠΎ Π΅ΡΡ Π½Π΅ Π²ΡΡ. Π ΡΡΡΡΠΎΠΉΡΡΠ²Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠΈΠΊΠ½ΠΎΠΏΠΎΡΠ½ΡΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ, ΠΏΠΎΠ»ΡΡΠΈΠ² ΠΏΠΎΡΡΠΈ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΉ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» (ΠΊΡΡΠ°ΡΠΈ, Π±ΠΎΡΡΠ±Ρ Ρ Π΄ΡΠ΅Π±Π΅Π·Π³ΠΎΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΡΠΎΠΆΠ΅ Π±Π΅ΡΡΡ Π½Π° ΡΠ΅Π±Ρ. )) )
Π Π²ΡΠ΅ ΡΡΠΈ ΡΠ°Π΄ΠΎΡΡΠΈ — ΠΏΠΎ Π΄Π²ΡΠΌ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΎΡΠΊΠ°ΠΌ… ΠΠΊΡΡΠ½ΠΎ.
Β
ΠΠΎ Π½Π΅ Π±Π΅Π· Π»ΠΎΠΆΠΊΠΈ ΠΊΠΈΡΠ°ΠΉΡΠΊΠΎΠ³ΠΎ Π΄ΡΠ³ΡΡ , Π΅ΡΡΠ½ΠΎ.
ΠΠ±ΠΎ Π΄Π°ΡΠ°ΡΠΈΡ, ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Π½ΡΠΉ Ρ ΠΊΠΈΡΠ°ΠΉΡΠΊΠΎΠ³ΠΎ Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ, ΡΡΠΎ… ΡΡΠΎ-ΡΠΎ. (ΠΠ΄Π΅ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π°Π±Π·Π°Ρ, ΡΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ· ΠΌΠ°ΡΠ΅ΡΠ½ΡΡ ΡΠ»ΠΎΠ²).
ΠΠΎΠ²ΠΎΡΡ ΠΊΠΎΡΠΎΡΠΊΠΎ, Π½Π΅ ΠΏΡΡΠ°ΠΉΡΠ΅ΡΡ Π² Π½ΡΠΌ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΠ½ΡΡΡ, Π½Π΅ ΠΈΠ·ΡΡΠΈΠ² ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΎΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΏΠΎ Π΄ΡΡΠ³ΠΈΠΌ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°ΠΌ.
Π Π²ΠΎΡ Ρ ΡΡΠΈΠΌ-ΡΠΎ — ΡΠ°ΠΌΠ°Ρ Π·Π°ΡΠ°Π΄Π°. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΠΎΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ ΠΊΡΠ°ΠΉΠ½Π΅ ΡΠΊΡΠ΄Π½Ρ. Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΠΎΠ΄ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π΄Ρ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ — ΠΡΠ΄ΡΠΈΠ½ΠΎ (Π½Π΅ ΠΊ Π½ΠΎΡΠΈ Π±ΡΠ΄Ρ ΠΏΠΎΠΌΡΠ½ΡΡΠ°), Π½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π’Π1637 ΠΎΠ½ΠΈ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ.
ΠΡΠΈΠΌΠ΅ΡΠΎΠ² Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π΄Π»Ρ AVR Π½Π°ΠΉΡΠΈ ΠΈ Π²ΠΎΠ²ΡΠ΅ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ, ΡΡΠΎ ΡΠΏΠΎΠ΄Π²ΠΈΠ³Π»ΠΎ ΠΌΠ΅Π½Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠ΅Π³ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π° Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡΠ»ΡΠΊΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠ΅ΠΉ, Π²ΠΎΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΠΎΡ ΠΏΡΠΎΠ±Π΅Π». ΠΠ° ΠΈΡΡΠ΅ΡΠΏΡΠ²Π°ΡΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡ, Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΡ ΠΈΡΡΠΈΠ½Ρ, ΠΈ ΠΊΡΠ°ΡΠΎΡΡ ΠΊΠΎΠ΄Π° Π½Π΅ ΠΏΡΠ΅ΡΠ΅Π½Π΄ΡΡ. ))
Β
ΠΡΠ°ΠΊ — «Π ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅ Π’Π1637 ΡΠ΅Π»ΠΎΠ²Π΅ΡΠ΅ΡΠΊΠΈΠΌ ΡΠ·ΡΠΊΠΎΠΌ».
Β
ΠΠ°ΡΠ½ΡΠΌ Ρ «ΡΠΈΠ·ΠΈΠΊΠΈ».
ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°, ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ²ΠΎΡΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΡΠΈΡΠΎΠΊΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ³ΠΎ «ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΠΎΠ³ΠΎ» I2C. ΠΡΠ»ΠΈΡΠΈΡ ΡΠΎΡΡΠΎΡΡ Π² Π΄ΡΡΠ³ΠΈΡ Π½Π°Π·Π²Π°Π½ΠΈΡΡ Π»ΠΈΠ½ΠΈΠΉ, ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π±ΠΈΡΠΎΠ², ΠΈ Π² ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ Π°Π΄ΡΠ΅ΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
Π‘ ΡΠ΅ΠΌ ΡΠ²ΡΠ·Π°Π½Ρ ΡΡΠΈ ΡΡΡΠ°Π½Π½ΠΎΡΡΠΈ, Ρ ΠΊΠΈΡΠ°ΠΉΡΠΊΠΎΠΉ Π»ΠΈ ΡΠ°ΠΌΠΎΠ±ΡΡΠ½ΠΎΡΡΡΡ, ΠΈΠ»ΠΈ Ρ ΠΏΠ°ΡΠ΅Π½ΡΠ½ΡΠΌΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ, Π½Π΅Π²Π΅Π΄ΠΎΠΌΠΎ. (ΠΠ°ΠΌΡΡΡΡ ΠΎ ΡΠΌΠ΅ΡΠ½ΠΎΠΉ ΡΠ΅Π½Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π»ΠΎΠ³ΠΈΡΠ½Π΅Π΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡΡ Π²ΡΠΎΡΠΎΠ΅))).
ΠΠΎΠ½Π΅ΡΠ½ΠΎ Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΠΌΠ΅Π½Π° Ρ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ USI, Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΠ. ΠΠΎ Π·Π΄Π΅ΡΡ ΠΌΡ ΠΈΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ. ΠΡΡΠ°ΡΡΠΈ ΠΏΠΎ ΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅, ΡΡΠΎ Π½Π΅ Ρ Π²ΡΠ΅Ρ «Π±ΡΠΊΠ°ΡΠ΅ΠΊ» Π΅ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ USI, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΡΠΎΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΏΡΡΡΠΌ Π²ΡΡ ΡΠ°Π²Π½ΠΎ ΠΊΠΎΠ³Π΄Π°-ΡΠΎ, Π΄Π° ΠΏΡΠΈΠ΄ΡΡΡΡ.
Β
ΠΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎ Π΄Π²ΡΠΌ ΡΠΈΠ½Π°ΠΌ — ΡΠ°ΠΊΡΠΎΠ²ΠΎΠΉ CLK, ΠΈ Π΄Π°Π½Π½ΡΡ DIO. ΠΡΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ, Π½Π° ΠΎΠ±Π΅ΠΈΡ ΡΠΈΠ½Π°Ρ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π²ΡΡΠΎΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ.
ΠΠ»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄Π΅Π²ΡΡΡ ΠΈΠΌΠΏΡΠ»ΡΡΠΎΠ² ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ CLK. ΠΠΈΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΌΠ»Π°Π΄ΡΠ΅Π³ΠΎ.
ΠΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½ΠΎΠΉ Π²ΡΠ΅Π³Π΄Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΠ. ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ TM1637 ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π½Π° Π·Π°ΠΏΡΠΎΡΡ.
ΠΠ°ΠΆΠ½ΠΎ 1 — ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠΈΠ½Ρ DIO Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π½ΠΈΠ·ΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ Π½Π° ΡΠΈΠ½Π΅ CLK.
ΠΠ΅ΡΠ΅Π΄ Π²ΠΎΡΡ ΠΎΠ΄ΡΡΠΈΠΌ (ΠΏΠ΅ΡΠ΅Π΄Π½ΠΈΠΌ) ΡΡΠΎΠ½ΡΠΎΠΌ Π½Π° CLK, Π½Π° ΡΠΈΠ½Π΅ DIO ΡΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π», ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π±ΠΈΡΠ°.
ΠΠ°ΠΆΠ½ΠΎ 2 — ΡΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π½Π°ΡΡΡΠ°Π΅ΡΡΡ Π»ΠΈΡΡ Π² Π½Π°ΡΠ°Π»Π΅ ΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΏΠΎΡΡΠ»ΠΊΠΈ, (Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡΡΠ»ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ΠΎ ΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π±Π°ΠΉΡΠΎΠ²). ΠΠ°ΡΠΊΠ΅ΡΠΎΠΌ Π½Π°ΡΠ°Π»Π° ΠΏΠΎΡΡΠ»ΠΊΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΎΡ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΊ Π½ΠΈΠ·ΠΊΠΎΠΌΡ Π½Π° DIO ΠΏΡΠΈ Π²ΡΡΠΎΠΊΠΎΠΌ CLK. ΠΠ°ΡΠΊΠ΅Ρ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΠΏΠΎΡΡΠ»ΠΊΠΈ — ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΎΡ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΊ Π²ΡΡΠΎΠΊΠΎΠΌΡ Π½Π° DIO ΠΏΡΠΈ Π²ΡΡΠΎΠΊΠΎΠΌ CLK.
ΠΡΠΈ Π΄Π²Π° ΡΡΠ»ΠΎΠ²ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΌΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ I2C.
Β
Π‘ΠΈΠ³Π½Π°Π» ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ACK ΡΠΎΠΆΠ΅ ΠΏΠΎΡΡΠΈ ΠΏΠΎΡ ΠΎΠΆ Π½Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ ΠΎΡ I2C, ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½ΠΈΠ·ΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π½Π° ΡΠΈΠ½Π΅ DIO, Π²ΡΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ ΠΏΠΎ Π·Π°Π΄Π½Π΅ΠΌΡ (ΡΠΏΠ°Π΄Π°ΡΡΠ΅ΠΌΡ) ΡΡΠΎΠ½ΡΡ Π²ΠΎΡΡΠΌΠΎΠ³ΠΎ ΠΈΠΌΠΏΡΠ»ΡΡΠ° CLK (Π½Π°ΠΏΠΎΠΌΠ½Ρ, ΡΡΠΎ ΠΏΠΎ ΠΏΠ΅ΡΠ΅Π΄Π½Π΅ΠΌΡ ΡΡΠΎΠ½ΡΡ ΡΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΈΠΌΠΏΡΠ»ΡΡΠ° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π·Π°ΠΏΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ, Π²ΠΎΡΡΠΌΠΎΠ³ΠΎ Π±ΠΈΡΠ° ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ°). ΠΡΠΎΡ Π½ΠΈΠ·ΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΊΡΠ° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ — Π΄ΠΎ Π·Π°Π΄Π½Π΅Π³ΠΎ ΡΡΠΎΠ½ΡΠ° Π΄Π΅Π²ΡΡΠΎΠ³ΠΎ ΠΈΠΌΠΏΡΠ»ΡΡΠ° CLK. ΠΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ ΠΌΠ°ΡΠΊΠ΅Ρ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ, ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΈΠΌΠΏΡΠ»ΡΡ CLK Π±ΡΠ΄Π΅Ρ ΡΡΠΈΡΠ°ΡΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΌ ΡΠΈΠ½Ρ ΡΠΎΠΈΠΌΠΏΡΠ»ΡΡΠΎΠΌ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ°.
Β
ΠΠΎ «ΡΡΠ½ΡΡΡ», Π²ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ, Π½Π° Π²ΡΠ΅ΠΌΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠΈΠ³Π½Π°Π»Π° ACK Π½ΡΠΆΠ½ΠΎ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡ ΡΠΈΠ½Ρ DIO Π² Π²ΡΡΠΎΠΊΠΎΠΈΠΌΠΏΠ΅Π΄Π°Π½ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π²ΡΠ²ΠΎΠ΄ ΠΠ ΠΊΠ°ΠΊ Π²Ρ ΠΎΠ΄. ΠΠΎ Π΅ΡΡΡ ΠΌΠ½Π΅Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π² ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΠΏΠΎ Π΄Π΅ΡΠΆΠ°ΡΡ Π½Π° Π»ΠΈΠ½ΠΈΠΈ Π½ΠΎΠ»Ρ — «Π΄Π²Π° Π½ΡΠ»Ρ Π½Π΅ ΠΏΠΎΠ΄Π΅ΡΡΡΡΡ».
ΠΠΎΠ»Π°Π³Π°Ρ (ΠΌΠΎΠ³Ρ ΠΈ ΠΎΡΠΈΠ±Π°ΡΡΡΡ), ΡΡΠΎ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Π½Π° Π»ΠΈΠ½ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠ΅Π³ΠΎ ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΡΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π½ΠΈΠ·ΠΊΠΎΠΉ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ, ΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΡΠΈΠ»ΡΠ½ΡΡ ΠΏΠΎΠΌΠ΅Ρ , Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π² Π°Π½Π°Π»ΠΈΠ·Π΅ ΡΠΈΠ³Π½Π°Π»Π° ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΡΠΈΡΠΌΠ° (ACK). ΠΠΎΡΡΠΎΠΌΡ Π² ΠΌΠΎΡΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΊΠΎΠ΄Π° (Π½ΠΈΠΆΠ΅) ΡΡΠΎΠ³ΠΎ Π½Π΅Ρ.
Β
Π‘ ΡΠΈΠ·ΠΈΠΊΠΎΠΉ Π²ΡΠΎΠ΄Π΅ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈΡΡ, ΡΠ΅ΠΏΠ΅ΡΡ — Π‘ΠΠ€Π’.
Π§ΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎΠ±Ρ Π½Π° ΡΠ°Π±Π»ΠΎ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ Π·Π°Π²Π΅ΡΠ½ΡΠ΅ ΡΠΈΡΡΡ ΠΈΠ»ΠΈ Π±ΡΠΊΠ²Ρ?
1. ΠΠ°ΡΠ°ΡΠΈΡ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΠΎ-Π½Π°ΠΏΠ΅ΡΠ²ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ «ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ». ΠΡΠΈΡΡΠΌ Π½ΠΈΠ³Π΄Π΅ Π² Π΄Π°ΡΠ°ΡΠΈΡΠ΅ Π½Π΅ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΎ, ΡΡΠΎ ΡΠΈΠ΅ Π·Π½Π°ΡΠΈΡ. Π Π³ΠΎΠ»ΠΎΠ²Ρ ΡΡΠ°Π·Ρ Π»Π΅Π·ΡΡ ΡΡΡΠ°ΡΠ½ΡΠ΅ Π²ΠΎΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ ΠΎ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°Ρ Π΄Π»Ρ Π΄ΠΈΡΠΏΠ»Π΅Π΅Π² Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅ HD44780 ΠΈ Π΅ΠΌΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ …
ΠΠΎ Π·Π΄Π΅ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΎΠ΄Π½Ρ ΠΎΠ΄Π½ΠΎΠ±Π°ΠΉΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΡΡ Π²ΠΊΠ»ΡΡΠΈΡΡ Π΄ΠΈΡΠΏΠ»Π΅ΠΉ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½ΡΠΆΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΡΠΊΠΎΡΡΡ (Π΄Π°-Π΄Π°, ΠΈ ΡΡΠΊΠΎΡΡΡΡ ΠΌΡ ΡΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΏΡΠ°Π²Π»ΡΡΡ))). Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠΉ ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π²ΡΠΊΠ»ΡΡΠ°ΡΡ Π΄ΠΈΡΠΏΠ»Π΅ΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Ρ ΡΠ΅Π»ΡΡ ΡΠ½Π΅ΡΠ³ΠΎΡΠ±Π΅ΡΠ΅ΠΆΠ΅Π½ΠΈΡ.
Π‘ΡΡΡΠΊΡΡΡΠ° ΡΡΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ° ΡΠ°ΠΊΠΎΠ²Π°:
Β
Bit 7 _ ΠΡΠ΅Π³Π΄Π° 1.
Bit 6 _ ΠΡΠ΅Π³Π΄Π° 0
Bit 5 _ 0 ΠΈΠ»ΠΈ Π±Π΅Π·ΡΠ°Π·Π»ΠΈΡΠ½ΠΎ
Bit 4 _ 0 ΠΈΠ»ΠΈ Π±Π΅Π·ΡΠ°Π·Π»ΠΈΡΠ½ΠΎ
Bit 3 _ 1 — Π²ΠΊΠ»ΡΡΠΈΡΡ Π΄ΠΈΡΠΏΠ»Π΅ΠΉ, 0 — Π²ΡΠΊΠ»ΡΡΠΈΡΡ Π΄ΠΈΡΠΏΠ»Π΅ΠΉ
Bit 2, Bit 1,Bit 0 _ Π’ΡΠΈ Π±ΠΈΡΠ° 0…2 Π·Π°Π΄Π°ΡΡ 8 Π³ΡΠ°Π΄Π°ΡΠΈΠΉ ΡΡΠΊΠΎΡΡΠΈ Π΄ΠΈΡΠΏΠ»Π΅Ρ.
Β
NB: ΠΠ°ΡΠ°Π΅ΠΌΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π±ΠΈΡΠΎΠ² 4 ΠΈ 5, Π΄Π°ΡΠ°ΡΠΈΡ Π³Π»Π°ΡΠΈΡ: «Zero should be inserted for irrelevant items». Π§ΡΠΎ ΠΏΠΎ-Π²ΠΈΠ΄ΠΈΠΌΠΎΠΌΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΊΠ°ΠΊ «ΠΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π±ΠΈΡ. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π² Π½Π΅Π³ΠΎ Π½ΠΎΠ»Ρ». ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΈ Π·Π°ΠΏΠΈΡΠΈ ΡΡΠ΄Π° Π΅Π΄ΠΈΠ½ΠΈΡ, ΡΠΎΠ²Π½ΡΠΌ ΡΡΡΡΠΎΠΌ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ.
Β
z.B: ΠΠΎΠΌΠ°Π½Π΄Π° 0b10001000 (0Ρ 88) — Π²ΠΊΠ»ΡΡΠΈΡΡ Π΄ΠΈΡΠΏΠ»Π΅ΠΉ Π½Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠΊΠΎΡΡΠΈ. (ΡΠΌ.Π€ΠΈΠ³.2)
Β
Β
2.ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΅ΡΡ ΠΎΠ΄Π½Ρ ΠΎΠ΄Π½ΠΎΠ±Π°ΠΉΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ:
Π°. ΠΠΊΠ»ΡΡΠΈΠΌ Π»ΠΈ ΠΌΡ Π΄ΠΈΡΠΏΠ»Π΅ΠΉ Π² Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ, ΠΈΠ»ΠΈ Π² ΡΠ΅ΡΡΠΎΠ²ΡΠΉ. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ΅ΡΡΠΎΠ²ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ, Π΄Π°ΡΠ°ΡΠΈΡ ΡΠΌΠ°Π»ΡΠΈΠ²Π°Π΅Ρ.
Π±. ΠΡΠ΄Π΅ΠΌ Π»ΠΈ ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΠΊΠΎΠ² (Ρ Π°Π²ΡΠΎΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΎΠΌ Π°Π΄ΡΠ΅ΡΠ°), ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π·Π½Π°ΠΊΠΎΠΌΠ΅ΡΡΠ΅ ΠΏΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ (ΠΏΠΎ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ).
Π². ΠΡΠ΄Π΅ΠΌ Π»ΠΈ ΠΌΡ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π² ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΈΠ»ΠΈ Π±ΡΠ΄Π΅ΠΌ ΡΠΈΡΠ°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ.
Β
Π‘ΡΡΡΠΊΡΡΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ
Bit 7 _ ΠΡΠ΅Π³Π΄Π° 0
Bit 6 _ ΠΡΠ΅Π³Π΄Π° 1.
Bit 5 _ 0 ΠΈΠ»ΠΈ Π±Π΅Π·ΡΠ°Π·Π»ΠΈΡΠ½ΠΎ
Bit 4 _ 0 ΠΈΠ»ΠΈ Π±Π΅Π·ΡΠ°Π·Π»ΠΈΡΠ½ΠΎ
Bit 3 _ 1 — ΡΠ΅ΡΡΠΎΠ²ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ, 0 — Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ
Bit 2 _ 1 — Ρ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Π°Π΄ΡΠ΅ΡΠΎΠΌ Π·Π½Π°ΠΊΠΎΠΌΠ΅ΡΡΠ°, 0 — Ρ Π°Π²ΡΠΎΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΎΠΌ Π°Π΄ΡΠ΅ΡΠ°
Bit 1 _ 1 — ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ, 0 — Π·Π°ΠΏΠΈΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ
Bit 0 _ ΠΡΠ΅Π³Π΄Π° 0
Β
z.B: ΠΠΎΠΌΠ°Π½Π΄Π° 0b01000000 — (0Ρ 40) Π±ΡΠ΄Π΅ΠΌ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ, Π² Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅.
Β
3. Π Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π² ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π°Π΄ΡΠ΅Ρ Π·Π½Π°ΠΊΠΎΠΌΠ΅ΡΡΠ°, ΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π² Π½ΡΠΌ ΡΠ²ΠΈΠ΄Π΅ΡΡ.
ΠΠ΄Π΅ΡΡ Π²ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ ΠΏΡΠ½ΠΊΡ «2.Π±». ΠΡΠ»ΠΈ Π²ΡΠ±ΡΠ°Π½ ΡΠ΅ΠΆΠΈΠΌ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ°, ΡΠΎ ΠΏΠΎΡΡΠ»ΠΊΠΈ Π±ΡΠ΄ΡΡ Π΄Π²ΡΡ Π±Π°ΠΉΡΠΎΠ²ΡΠΌΠΈ: [Π°Π΄ΡΠ΅Ρ]+[ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠ΅_Π΄Π°Π½Π½ΡΠ΅] Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π½Π°ΠΊΠΎΠΌΠ΅ΡΡΠ°.
ΠΠ°Π½Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΡΡΠΌΠΌΡ «Π²Π΅ΡΠΎΠ²ΡΡ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠΎΠ²» Π·Π°ΠΆΠΈΠ³Π°Π΅ΠΌΡΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ², ΡΡΠΎ ΠΏΡΠΎΠΈΠ»Π»ΡΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ Π½Π° ΡΠΈΠ³.6.
ΠΠ΄ΡΠ΅ΡΠ° Π·Π½Π°ΠΊΠΎΠΌΠ΅ΡΡ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ 0xC0 (ΠΊΡΠ°ΠΉΠ½Π΅ Π»Π΅Π²ΠΎΠ΅, ΠΎΠ½ΠΎ ΠΆΠ΅ — ΠΏΠ΅ΡΠ²ΠΎΠ΅), ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΡΡ Π½Π° 0xC3 Π΄Π»Ρ ΡΠ΅ΡΡΡΡΡ Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ°, ΠΈΠ»ΠΈ Π½Π° 0xC5 Π΄Π»Ρ ΡΠ΅ΡΡΠΈΠ·Π½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ.
Β
z.B: ΠΠΎΡΡΠ»ΠΊΠ° (0Ρ C2,0x73) — ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡ Π² ΡΡΠ΅ΡΡΠ΅ΠΌ ΡΠ°Π·ΡΡΠ΄Π΅ Π±ΡΠΊΠ²Ρ «Π ». (ΡΠΌ.Π€ΠΈΠ³.3)
Β
Β
ΠΡΠ»ΠΈ Π²ΡΠ±ΡΠ°Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ , ΡΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π·Π½Π°ΠΊΠΎΠΌΠ΅ΡΡΠ° — 0xC0 ) Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π³ΡΡΠΏΠΏΡ Π±Π°ΠΉΡΠΎΠ² Π΄Π°Π½Π½ΡΡ . ΠΡΠΈ ΡΡΠΎΠΌ Π°Π΄ΡΠ΅Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π±Π°ΠΉΡΠΎΠ² Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΈ Π²ΡΠ΅ ΠΎΠ½ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠΏΠ°Π΄ΡΡ Π½Π° ΡΠ²ΠΎΠΈ ΠΌΠ΅ΡΡΠ°. ΠΡΡ ΡΡΠΎ, ΠΈ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ, ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±Π°ΠΉΡΠΎΠ² Π΄Π°Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π·Π° ΠΎΠ΄Π½Ρ ΠΏΠΎΡΡΠ»ΠΊΡ.
z.B: ΠΠΎΡΡΠ»ΠΊΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ ΠΏΠΎΠ΄ΡΡΠ΄ ΠΏΡΡΠΈ Π±Π°ΠΉΡΠΎΠ² (0xC0,0x06,0x5B,0x4F,0x66) — ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π·Π½Π°ΠΊΠΎΠΌΠ΅ΡΡΠ°, ΡΠΈΡΠ»ΠΎ «1234».
Β
Π Π°Π±ΠΎΡΠ° Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠΎΠΉ
Β
Β
ΠΡ ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ°ΠΊ:
1. ΠΡΠ»ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Π° ΡΠ°Π½Π΅Π΅, ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠΌ Π΅Ρ.
2. ΠΠΎΠ΄Π°ΡΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ: 0b01000010 (0Ρ 42)
ΠΡΠΎ Π·Π°ΠΏΡΠΎΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ.
3 ΠΠΎΠ»ΡΡΠΈΠ² Π·Π°ΠΏΡΠΎΡ, ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠ΅ΠΆΠΈΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ, ΠΈ Π² ΠΎΡΠ²Π΅Ρ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΠ΅ΡΠ΅Π΄Π½ΠΈΠΉ ΡΡΠΎΠ½Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΡΡ ΠΎΡ ΠΠ ΠΈΠΌΠΏΡΠ»ΡΡΠΎΠ² CLK, Π²ΡΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π° ΡΠΈΠ½Ρ DIO ΡΡΠΎΠ²Π΅Π½Ρ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π±ΠΈΡΠ°.
ΠΠΎΡΡΠΎΠΌΡ Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ ΡΠΈΠ½Ρ DIO Π² ΡΠ΅ΠΆΠΈΠΌ ΡΡΠ΅Π½ΠΈΡ (ΠΏΠ΅ΡΠ΅ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΏΠΎΡΡ ΠΠ ΠΊΠ°ΠΊ Π²Ρ ΠΎΠ΄), ΡΡΠΎΠ±Ρ ΡΠ½ΠΈΠΌΠ°ΡΡ Ρ Π½Π΅Ρ Π΄Π°Π½Π½ΡΠ΅.
ΠΠ°Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΡΡ Π²ΠΎΡΡΠΌΠΈ ΡΠ°ΠΊΡΠΎΠ² CLK. ΠΠ΅Π²ΡΡΡΠΉ ΡΠ°ΠΊΡ ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΡΡΠΎΠΏ-Π±ΠΈΡ.
ΠΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΡΠ΅Π½ΠΈΡ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ Π΄Π²ΡΡ Π±Π°ΠΉΡΠ½ΠΎΠΉ ΠΏΠΎΡΡΠ»ΠΊΠΎΠΉ [ΠΊΠΎΠΌΠ°Π½Π΄Π°]+[ΡΡΠ΅Π½ΠΈΠ΅_Π΄Π°Π½Π½ΡΡ ].
ΠΠ°ΠΏΡΠΎΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΏΡΠΈ Π½Π΅Π½Π°ΠΆΠ°ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠ°Ρ , Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0xFF.
Β
Π ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠΌ Π±Π°ΠΉΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ, ΠΈΠ½ΡΠ΅ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΏΠ΅ΡΠ²ΡΠ΅ (ΠΌΠ»Π°Π΄ΡΠΈΠ΅) ΠΏΡΡΡ Π±ΠΈΡΠΎΠ².
ΠΠΈΡΡ 0…2 Π΄Π°ΡΡ ΠΊΠΎΠ΄ Π½Π°ΠΆΠ°ΡΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΎΠ΄Π½ΠΎΠΉ Π³ΡΡΠΏΠΏΡ (ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΊΠ°ΠΊ Π΄Π²Π΅ Π³ΡΡΠΏΠΏΡ ΠΏΠΎ Π²ΠΎΡΠ΅ΠΌΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ. ΡΠΌ.ΡΠΈΠ³.4)
ΠΠΈΠ·ΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π±ΠΈΡΠ° 3 ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ Π² ΠΏΠ΅ΡΠ²ΠΎΠΉ Π³ΡΡΠΏΠΏΠ΅ (Π1).
ΠΠΈΠ·ΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π±ΠΈΡΠ° 4 ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ Π²ΠΎ Π²ΡΠΎΡΠΎΠΉ Π³ΡΡΠΏΠΏΠ΅ (Π2).
ΠΡΡΠΎΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π² ΠΎΠ±Π΅ΠΈΡ ΡΡΠΈΡ Π±ΠΈΡΠ°Ρ (Bit3,Bit4) ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π½Π°ΠΆΠ°ΡΡΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ.
Β
Π§ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΏΡΠΎΠΈΠ»Π»ΡΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΎΠΉ (ΡΠΌ.Π€ΠΈΠ³.5). ΠΠ°ΡΡΠΈΠ½ΠΊΠΈ — ΡΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΡΡΠΎ Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ Π² Π΄Π°ΡΠ°ΡΠΈΡΠ΅. )))
Β
Β
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠΎΠΉ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ ΡΡΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ.
1. ΠΠ»Π°Π²ΠΈΠ°ΡΡΡΠ° «Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ» Π½Π°ΠΆΠ°ΡΠΈΡ Π΄Π²ΡΡ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
2. ΠΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ, ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π½Π΅ ΠΏΡΠΎΡΠ²Π»ΡΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΡ ΡΠΈΠ½Π°Ρ . ΠΠΎΡΡΠΎΠΌΡ, Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΎΡ Π½Π΅Ρ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΠ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ. ΠΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΏΡΠΈΠ΄ΡΡΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ ΠΎΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎΡΡΡΡ.
3. Π‘ΡΠ΄Ρ ΠΏΠΎ ΠΎΡΡΠΈΠ»Π»ΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌ, Π²ΡΡ ΠΎΠ΄ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ Π² ΠΠ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ «ΠΎΡΠΊΡΡΡΡΠΉ ΠΈΡΡΠΎΠΊ», Ρ ΠΎΡΡ Π² Π΄Π°ΡΠ°ΡΠΈΡΠ΅ ΡΡΠΎ Π½ΠΈΠ³Π΄Π΅ Π½Π΅ ΡΠΏΠΎΠΌΡΠ½ΡΡΠΎ.
ΠΠΎΡΡΠΎΠΌΡ ΡΠΊΠΎΡΠΎΡΡΡ Π½Π°ΡΠ°ΡΡΠ°Π½ΠΈΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠΈΠ½Π΅ DIO ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ RC ΡΠ΅ΠΏΠΈ, ΡΠΎΡΡΠΎΡΡΠ΅ΠΉ ΠΈΠ· ΡΠ΅Π·ΠΈΡΡΠΎΡΠ° ΠΏΠΎΠ΄ΡΡΠΆΠΊΠΈ (10 ΠΠΠΌ) ΠΈ ΠΊΠΎΠ½Π΄Π΅Π½ΡΠ°ΡΠΎΡΠ° Π½Π΅Π²Π΅Π΄ΠΎΠΌΠΎΠΉ ΡΠΌΠΊΠΎΡΡΠΈ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΡΠΈΠ½Π΅. ΠΡΠΎ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ²ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ ΡΠΊΠΎΡΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΊΠΈ Π΄Π°Π½Π½ΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΡΠ΅Π½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ. ΠΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ°Ρ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠΈΠΎΠ΄Π° ΠΈΠΌΠΏΡΠ»ΡΡΠΎΠ² CLK Π΄ΠΎ 100…150 ΠΌΠΊΡ ΠΈ ΠΌΠ΅Π½Π΅Π΅, ΠΌΠΎΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΎΡΠΊΠ°Π·ΡΠ²Π°Π»ΠΎΡΡ ΡΠΈΡΠ°ΡΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ.
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΊΠΎΠ΄Π°, ΡΡΠΎΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠΊΠΎΠ»ΠΎ 300 ΠΌΠΊΡ (Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ, ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΡ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ «pause:»).
Β
ΠΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΆΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° «Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΡ» ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΡΡΠΎΠΊΠΈΠΌ. Π£ ΠΌΠ΅Π½Ρ ΠΎΠ½ΠΎ Π±ΠΎΠ΄ΡΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π½Π° ΡΠ°Π±Π»ΠΎ ΠΏΡΠΈ ΠΏΠ΅ΡΠΈΠΎΠ΄Π΅ ΡΠΈΠ½Ρ ΡΠΎΠΈΠΌΠΏΡΠ»ΡΡΠΎΠ² Π½Π° ΡΠΈΠ½Π΅ CLK ΠΌΠ΅Π½Π΅Π΅ ΡΠ΅ΡΡΡΡΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΠΊΡΠ½Π΄. Π Π°Π±ΠΎΡΡ ΠΏΡΠΈ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠΉ ΡΠ°ΡΡΠΎΡΠ΅, Ρ Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ».
Β
Π Π΅ΡΡ.
ΠΡΠ»ΠΈ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΊΠ° ΠΠ ΠΏΡΡΠΌΠΎ Π² ΡΡΡΡΠΎΠΉΡΡΠ²Π΅, ΡΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ISP Π²ΡΠ²ΠΎΠ΄Ρ ΠΠ Π΄Π»Ρ Π»ΠΈΠ½ΠΈΠΉ DIO ΠΈ SCK. ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ Π½Π° ΡΡΠΈΡ Π»ΠΈΠ½ΠΈΡΡ Π·Π° ΠΎΠ±ΠΌΠ΅Π½ Ρ Π½ΠΈΠΌ, ΠΈ Π² Π½Π΅ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΡΡΠ°Π²ΠΈΡΡ Π½Π° DIO ΡΠ²ΠΎΠΉ ACK.
ΠΠΏΡΠΎΡΠ΅ΠΌ, ΡΠ°Π·ΡΡΠΌ ΠΌΠ΅ΠΆΠ΄Ρ ΠΠ ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ. ))
Β
ΠΠ½ΠΈΠ·Ρ Π²ΡΠ»ΠΎΠΆΠ΅Π½ ΡΠ°ΠΉΠ» «Π’Π1637.asm» — Π»ΠΈΡΡΠΈΠ½Π³ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΊΠΈ Π½Π° ΠΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ Π΄Π»Ρ ATtiny24 Ρ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠΉ ΡΠ°ΡΡΠΎΡΠΎΠΉ 8 ΠΠΡ (ΠΏΠΈΡΠ°Π½ΠΎ Π² AVRStudio_4.14).
Π Π½Π΅ΠΉ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ Π²ΡΠ΅ ΡΠ΅ΡΡΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ TM1637 — ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ Ρ Π°Π²ΡΠΎΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΎΠΌ Π°Π΄ΡΠ΅ΡΠ°, ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ ΠΏΠΎ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ, ΠΈ ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΊΠ° Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π½Π° ΡΠ°Π±Π»ΠΎ ΡΠΈΡΡΡ «123» Π² ΡΡΠ°ΡΡΠΈΡ ΡΠ°Π·ΡΡΠ΄Π°Ρ , ΠΈ «ΠΊΡΠ°ΠΊΠΎΠ·ΡΠ±ΡΡ» ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠΌΡ ΠΊΠΎΠ΄Ρ ΡΡΠ΅Π½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ, Π² ΠΌΠ»Π°Π΄ΡΠ΅ΠΌ ΡΠ°Π·ΡΡΠ΄Π΅. Π Π°ΡΡΠΈΡΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ «Π²Π΅ΡΠΎΠ²ΡΡ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠΎΠ²», ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΡ Π½Π° ΡΠΈΠ³.6.
Β
Β
Β
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅: TM1637.asm
(Π Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±ΠΎΠ²Π°ΡΠΈΠΌΠΎΠΌ Π²ΠΈΠ΄Π΅ — ΡΡΡ: https://www.chipmake…les/file/16019/ )
;*****************************************
;
; TM1637 + Tiny24 8MHz
; CLK = PA3
; DIO = PA1
; ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΡΠ°ΡΡΠΈΡ ΡΠ°Π·ΡΡΠ΄Π°Ρ Π½Π°Π΄ΠΏΠΈΡΠΈ «123»
; ΠΈ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ° ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ Π² 4-ΠΌ ΡΠ°Π·ΡΡΠ΄Π΅
;
;*******************************************
.include «tn24def.inc»
;****** Π ΠΠΠΠ‘Π’Π Π«
.def tmp0 =r16
.def tmp1 =r17
.def tmp2 =r18
.def tmp3 =r19
;****** ΠΠΠ’Π«
.equ CLK =0x03 ;
.equ DIO =0x01 ;
Β
rjmp RESET ; Reset Handler
rjmp EXINT ; IRQ0 Handler
rjmp PCIN0 ; PCINT0 Handler
rjmp PCIN1 ; PCINT1 Handler
rjmp WDT ; Watchdog Interrupt Handler
rjmp TIM1_CAPT ; Timer1 Capture Handler
rjmp TIM1_COMPA ; Timer1 Compare A Handler
rjmp TIM1_COMPB ; Timer1 Compare B Handler
rjmp TIM1_OVF ; Timer1 Overflow Handler
rjmp TIM0_COMPA ; Timer0 Compare A Handler
rjmp TIM0_COMPB ; Timer0 Compare B Handler
rjmp TIM0_OVF ; Timer0 Overflow Handler
rjmp ANA_COMP ; Analog Comparator Handler
rjmp ADCHN ; ADC Conversion Handler
rjmp EE_RDY ; EEPROM Ready Handler
rjmp USI_STR ; USI STart Handler
rjmp USI_OVF ; USI Overflow Handler
Β
RESET: ldi tmp1, low(RAMEND)
out SPL,tmp1
Β
ldi tmp0,0xFF ;
out ddra,tmp1 ;Π²Π΅ΡΡ porta ΠΊΠ°ΠΊ Π²ΡΡ ΠΎΠ΄
out porta,tmp1 ;Π²ΡΠ΅ΠΌ 1
Β
;***************************************************
;***************************************************
LOOP:
;ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
rcall start ;ΠΌΠ°ΡΠΊΠ΅Ρ Π½Π°ΡΠ°Π»Π° ΠΏΠΎΡΡΠ»ΠΊΠΈ
ldi tmp0,0x88 ;Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄ΠΈΡΠΏΠ»Π΅Ρ. Π―ΡΠΊΠΎΡΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½Π°Ρ.
rcall outcom ;Π²ΡΠ²ΠΎΠΆΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
rcall end ;ΠΌΠ°ΡΠΊΠ΅Ρ ΠΊΠΎΠ½ΡΠ° ΠΏΠΎΡΡΠ»ΠΊΠΈ
Β
rcall pause ;ΠΏΠ°ΡΠ·Π° 100 ΠΌΠΊΡ
;Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ Ρ Π°Π²ΡΠΎΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΎΠΌ Π°Π΄ΡΠ΅ΡΠ°
rcall start ;ΠΌΠ°ΡΠΊΠ΅Ρ Π½Π°ΡΠ°Π»Π° ΠΏΠΎΡΡΠ»ΠΊΠΈ
ldi tmp0,0x40 ;ΡΠ΅ΠΆΠΈΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ Ρ Π°Π²ΡΠΎΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΎΠΌ Π°Π΄ΡΠ΅ΡΠ°
rcall outcom ;Π²ΡΠ²ΠΎΠΆΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
rcall end ;ΠΌΠ°ΡΠΊΠ΅Ρ ΠΊΠΎΠ½ΡΠ° ΠΏΠΎΡΡΠ»ΠΊΠΈ
Β
rcall pause ;ΠΏΠ°ΡΠ·Π° 100 ΠΌΠΊΡ
;Π²ΡΠ²ΠΎΠ΄ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ «123» Π½Π° ΡΠ°Π±Π»ΠΎ
rcall start ;ΠΌΠ°ΡΠΊΠ΅Ρ Π½Π°ΡΠ°Π»Π° ΠΏΠΎΡΡΠ»ΠΊΠΈ
ldi tmp0,0xC0 ;Π£Π‘Π’ΠΠΠΠΠΠ ΠΠΠ§ΠΠΠ¬ΠΠΠΠ ΠΠΠ ΠΠ‘Π (0Ρ C0 — ΠΊΡΠ°ΠΉΠ½Π΅Π΅ Π»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΠΊΠΎΠΌΠ΅ΡΡΠΎ)
rcall outcom ;Π²ΡΠ²ΠΎΠΆΡ Π°Π΄ΡΠ΅Ρ
ldi tmp0,0x06 ;1 Π² ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°Π·ΡΡΠ΄
rcall outcom ;Π²ΡΠ²ΠΎΠΆΡ Π΄Π°Π½Π½ΡΠ΅
ldi tmp0,0x5b ;2 Π²ΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠ°Π·ΡΡΠ΄
rcall outcom ;Π²ΡΠ²ΠΎΠΆΡ Π΄Π°Π½Π½ΡΠ΅
ldi tmp0,0x4f ;3 Π² ΡΡΠ΅ΡΠΈΠΉ ΡΠ°Π·ΡΡΠ΄
rcall outcom ;Π²ΡΠ²ΠΎΠΆΡ Π΄Π°Π½Π½ΡΠ΅
rcall end ;ΠΌΠ°ΡΠΊΠ΅Ρ ΠΊΠΎΠ½ΡΠ° ΠΏΠΎΡΡΠ»ΠΊΠΈ
rcall pause ;ΠΏΠ°ΡΠ·Π° 100 ΠΌΠΊΡ
Β
;ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ
rcall start ;ΠΌΠ°ΡΠΊΠ΅Ρ Π½Π°ΡΠ°Π»Π° ΠΏΠΎΡΡΠ»ΠΊΠΈ
ldi tmp0,0x42 ;ΡΠ΅ΠΆΠΈΠΌ ΡΡΠ΅Π½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ
rcall outcom ;Π²ΡΠ²ΠΎΠΆΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
rcall incom ;ΠΏΠΎΠ»ΡΡΠ°Ρ Π΄Π°Π½Π½ΡΠ΅
rcall end ;ΠΌΠ°ΡΠΊΠ΅Ρ ΠΊΠΎΠ½ΡΠ° ΠΏΠΎΡΡΠ»ΠΊΠΈ
Β
mov tmp2,tmp0 ;ΡΠΎΡ ΡΠ°Π½ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ Π² tmp4
Β
;Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ Ρ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Π°Π΄ΡΠ΅ΡΠΎΠΌ
rcall start ;ΠΌΠ°ΡΠΊΠ΅Ρ Π½Π°ΡΠ°Π»Π° ΠΏΠΎΡΡΠ»ΠΊΠΈ
ldi tmp0,0x44 ;ΡΠ΅ΠΆΠΈΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ Ρ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Π°Π΄ΡΠ΅ΡΠΎΠΌ
rcall outcom ;Π²ΡΠ²ΠΎΠΆΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
rcall end ;ΠΌΠ°ΡΠΊΠ΅Ρ ΠΊΠΎΠ½ΡΠ° ΠΏΠΎΡΡΠ»ΠΊΠΈ
;Π²ΡΠ²ΠΎΠ΄ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ° ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ Π² ΡΠ΅ΡΠ²Π΅ΡΡΡΠΉ ΡΠ°Π·ΡΡΠ΄ ΡΠ°Π±Π»ΠΎ
rcall pause ;ΠΏΠ°ΡΠ·Π° 100 ΠΌΠΊΡ
rcall start ;ΠΌΠ°ΡΠΊΠ΅Ρ Π½Π°ΡΠ°Π»Π° ΠΏΠΎΡΡΠ»ΠΊΠΈ
ldi tmp0,0xC3 ;Π£Π‘Π’ΠΠΠΠΠΠ ΠΠΠ ΠΠ‘Π (0Ρ C3 — ΡΠ΅ΡΠ²Π΅ΡΡΠΎΠ΅ Π·Π½Π°ΠΊΠΎΠΌΠ΅ΡΡΠΎ)
rcall outcom ;Π²ΡΠ²ΠΎΠΆΡ Π°Π΄ΡΠ΅Ρ
mov tmp0,tmp2 ;Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Ρ Π² tmp0 ΡΠΎΡ ΡΠ°Π½ΡΠ½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ
rcall outcom ;Π²ΡΠ²ΠΎΠΆΡ Π΄Π°Π½Π½ΡΠ΅
rcall end ;ΠΌΠ°ΡΠΊΠ΅Ρ ΠΊΠΎΠ½ΡΠ° ΠΏΠΎΡΡΠ»ΠΊΠΈ
Β
rjmp LOOP
;***********************************
start: ;ΠΌΠ°ΡΠΊΠ΅Ρ Π½Π°ΡΠ°Π»Π° ΠΏΠΎΡΡΠ»ΠΊΠΈ
rcall pause ;ΠΏΠ°ΡΠ·Π° 100 ΠΌΠΊΡ
sbi porta,clk ;
sbi porta,dio ;
rcall pause ;ΠΏΠ°ΡΠ·Π° 100 ΠΌΠΊΡ
cbi porta,dio ;
rcall pause ;ΠΏΠ°ΡΠ·Π° 100 ΠΌΠΊΡ
ret
;***********************************
end: ;ΠΌΠ°ΡΠΊΠ΅Ρ ΠΊΠΎΠ½ΡΠ° ΠΏΠΎΡΡΠ»ΠΊΠΈ
sbi porta,clk ;
rcall pause ;ΠΏΠ°ΡΠ·Π° 100 ΠΌΠΊΡ
sbi porta,dio ;
rcall pause ;ΠΏΠ°ΡΠ·Π° 100 ΠΌΠΊΡ
ret
;***********************************
outcom: ;ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ Π²ΡΠ²ΠΎΠ΄. Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΡΠΉ Π±Π°ΠΉΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² tmp0
push tmp1
; Π²ΡΠ²ΠΎΠ΄ Π²ΠΎΡΡΠΌΠΈ Π±ΠΈΡΠΎΠ² ΡΠ΅Π³ΠΈΡΡΡΠ° tmp0
ldi tmp1,0x08 ;
outc10: cbi porta,clk ;ΠΎΠΏΡΡΠΊΠ°Ρ CLK
rcall pause ;ΠΏΠ°ΡΠ·Π° 100 ΠΌΠΊΡ
Β
lsr tmp0 ; \
brcc outc20 ; |
sbi porta,dio ; > ΠΌΠ»Π°Π΄ΡΠΈΠΉ Π±ΠΈΡ tmp0 Π²ΡΡΡΠ°Π²Π»ΡΡ Π½Π° DIO
rjmp outc30 ; |
outc20: cbi porta,dio ; /
Β
outc30: rcall pause ;ΠΏΠ°ΡΠ·Π° 100 ΠΌΠΊΡ
sbi porta,clk ;ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Ρ CLK
rcall pause ;ΠΏΠ°ΡΠ·Π° 100 ΠΌΠΊΡ
dec tmp1 ;
brne outc10 ;ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ²ΠΎΠΆΡ Π²Π΅ΡΡ Π±Π°ΠΉΡ
; ΡΡΠΎΠΏ-Π±ΠΈΡ
cbi ddra,dio ;ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Ρ DIO ΠΊΠ°ΠΊ Π²Ρ ΠΎΠ΄, ΡΡΠΎΠ±Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΡ Ρ ACK
cbi porta,clk ;ΠΎΠΏΡΡΠΊΠ°Ρ CLK
rcall pause ;ΠΏΠ°ΡΠ·Π° 100 ΠΌΠΊΡ
sbi porta,clk ;ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Ρ clk
rcall pause ;ΠΏΠ°ΡΠ·Π° 100 ΠΌΠΊΡ
cbi porta,clk ;ΠΎΠΏΡΡΠΊΠ°Ρ CLK
cbi porta,dio ;
sbi ddra,dio ;ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ ΡΡΠΎΠΏ-Π±ΠΈΡΠ°, ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Ρ DIO ΠΊΠ°ΠΊ Π²ΡΡ ΠΎΠ΄
; (Π²ΡΡ ΠΎΠΆΡ Ρ Π½ΡΠ»ΡΠΌΠΈ Π½Π° ΠΎΠ±Π΅ΠΈΡ ΡΠΈΠ½Π°Ρ )
rcall pause ;ΠΏΠ°ΡΠ·Π° 100 ΠΌΠΊΡ
pop tmp1 ;
ret ;
Β
;********************************
incom: ;Π§ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΎΠΊ. Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ΄ΡΡ Π² tmp0
push tmp1
clr tmp0 ;
;ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ Π²Π²ΠΎΠ΄ Π²ΠΎΡΡΠΌΠΈ Π±ΠΈΡΠΎΠ² Π² tmp0
ldi tmp1,0x08 ;
inc10: cbi porta,clk ;ΠΎΠΏΡΡΠΊΠ°Ρ CLK
cbi ddra,dio ;ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π»ΠΈΠ½ΠΈΠΈ DIO ΠΊΠ°ΠΊ Π²Ρ ΠΎΠ΄Π°
sbi porta,dio ;Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΠΎΠ΄ΡΡΠΆΠΊΡ DIO
rcall pause ;ΠΏΠ°ΡΠ·Π° 100 ΠΌΠΊΡ
sbi porta,clk ;ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Ρ CLK
rcall pause ;ΠΏΠ°ΡΠ·Π° 100 ΠΌΠΊΡ
lsr tmp0 ;
sbr tmp0,0x80 ;\
sbis pina,dio ; >ΠΏΠ΅ΡΠ΅Π½ΠΎΡ ΠΏΠΈΠ½Π° DIO Π² tmp0
cbr tmp0,0x80 ;/
dec tmp1 ;
brne inc10 ;ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²Π²ΠΎΠΆΡ Π²Π΅ΡΡ Π±Π°ΠΉΡ
Β
rcall pause ;ΠΏΠ°ΡΠ·Π° 100 ΠΌΠΊΡ
cbi porta,clk ;
;ΡΡΠΎΠΏ-Π±ΠΈΡ
rcall pause ;ΠΏΠ°ΡΠ·Π° 100 ΠΌΠΊΡ
sbi porta,clk ;Π΄Π΅Π²ΡΡΡΠΉ ΠΈΠΌΠΏΡΠ»ΡΡ CLK
rcall pause ;ΠΏΠ°ΡΠ·Π° 100 ΠΌΠΊΡ
cbi porta,clk ;ΠΎΠΏΡΡΠΊΠ°Ρ CLK
Β
cbi porta,dio ;Π²ΡΠΊΠ»ΡΡΠ°Ρ ΠΏΠΎΠ΄ΡΡΠΆΠΊΡ DIO
sbi ddra,dio ;ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π»ΠΈΠ½ΠΈΠΈ DIO ΠΊΠ°ΠΊ Π²ΡΡ ΠΎΠ΄Π°
; Π²ΡΡ ΠΎΠ΄ Ρ Π½ΡΠ»ΡΠΌΠΈ Π½Π° ΠΎΠ±Π΅ΠΈΡ ΡΠΈΠ½Π°Ρ
rcall pause ;ΠΏΠ°ΡΠ·Π° 100 ΠΌΠΊΡ
pop tmp1
ret
;********************************
pause: ;ΠΏΠ°ΡΠ·Π° 100 ΠΌΠΊΡ
push tmp3 ;
ldi tmp3,0xff
de10: dec tmp3
brne de10
pop tmp3
ret
;*****************************************************************
;*****************************************************************
EXINT: ; IRQ0 Handler
PCIN0: ; PCINT0 Handler
PCIN1: ; PCINT1 Handler
WDT: ; Watchdog Interrupt Handler
TIM1_CAPT: ; Timer1 Capture Handler
TIM1_COMPA: ; Timer1 Compare A Handler
TIM1_COMPB: ; Timer1 Compare B Handler
TIM1_OVF: ; Timer1 Overflow Handler
TIM0_COMPA: ; Timer0 Compare A Handler
TIM0_COMPB: ; Timer0 Compare B Handler
TIM0_OVF: ; Timer0 Overflow Handler
ANA_COMP: ; Analog Comparator Handler
ADCHN: ; ADC Conversion Handler
EE_RDY: ; EEPROM Ready Handler
USI_STR: ; USI STart Handler
USI_OVF: ; USI Overflow Handler
rjmp reset ;
www.chipmaker.ru
ΠΡΠ΅ΠΌ ΠΏΡΠΈΠ²Π΅Ρ.
Π‘Π΅Π³ΠΎΠ΄Π½Ρ Π΄Π»ΡΒ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΊΒ Arduino Nano, ΡΠ΅ΡΡΡΠ΅Ρ
Π·Π½Π°ΡΠ½ΡΠΉ, 7 Ρ
4 ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠΉ, I2C Π΄ΠΈΡΠΏΠ»Π΅ΠΉ TM1637.
ΠΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ Π½Π°Π·Π°Π΄ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΡΠ°ΠΊΠΎΠΉ Π΄ΠΈΡΠΏΠ»Π΅ΠΉ Π±ΡΠ»ΠΎ Π½Π΅Β ΡΠ°ΠΊ ΠΏΡΠΎΡΡΠΎ ΠΈΒ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π²ΡΠ²ΠΎΠ΄Ρ ΠΏΠ»Π°ΡΡ ΠΡΠ΄ΡΠΈΠ½ΠΎ. ΠΠΎΒ ΡΠ΅ΠΉΡΠ°Ρ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΌΠΈΠΊΡΠΎΡΡ
Π΅ΠΌΠ΅ TM1637, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΠ΅ΠΉ Π΄Π°Π½Π½ΡΠ΅ ΡΒ ΡΠΈΠ½Ρ I2C, Π²Β ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠ΅ ΡΠΈΠ³Π½Π°Π»Ρ, ΡΡΠΈ Π΄ΠΈΡΠΏΠ»Π΅ΠΈ ΡΡΠ°Π»ΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ ΠΊΒ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°ΠΌ. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π΄Π»ΡΒ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ Π΄ΠΈΡΠΏΠ»Π΅Ρ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ΅Π³ΠΎ 4 ΠΏΡΠΎΠ²ΠΎΠ΄Π°, ΠΌΠ°ΠΌΠ°-ΠΌΠ°ΠΌΠ° ΠΈΠ»ΠΈΒ Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ°ΠΊΠ΅ΡΠ½ΡΡ ΠΏΠ»Π°ΡΡ, ΡΠΎ 4 ΠΏΡΠΎΠ²ΠΎΠ΄Π° ΠΏΠ°ΠΏΠ°-ΠΏΠ°ΠΏΠ°. ΠΠ·Β Π½ΠΈΡ
2 ΠΏΠΎΠ²ΠΎΠ΄Π° ΡΡΠΎ ΠΏΠΈΡΠ°Π½ΠΈΠ΅ +5 Π, GND ΠΈΒ ΠΎΡΡΠ°Π²ΡΠΈΠ΅ΡΡ 2 ΠΏΡΠΎΠ²ΠΎΠ΄Π° ΡΡΠΎ ΡΠΈΠ½Π° I2C.
ΠΠΊΡΠ°ΡΡΠ΅ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΏΡΠΎΒ Ρ
Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π΄ΠΈΡΠΏΠ»Π΅Ρ:
ΠΠΈΠΊΡΠΎΡΡ
Π΅ΠΌΠ° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π΄ΠΈΡΠΏΠ»Π΅Ρ TM1637
ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠΎΠ²Π½ΠΈ ΡΠΎΠ»Π΅ΡΠ°Π½ΡΠ½ΡΠ΅ ΠΊΠ°ΠΊ ΠΊΒ ΡΡΠΎΠ²Π½ΡΠΌ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ 5 ΠΒ ΠΈΒ 3.3 Π.
Π§Π΅ΡΡΡΠ΅ ΡΠ΅ΠΌΠΈ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠ΅ ΡΠΈΡΡΡ ΠΏΠ»ΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΎΡΠΊΠΈ.
Π‘Π°ΠΌ Π΄ΠΈΡΠΏΠ»Π΅ΠΉ ΡΒ ΠΎΠ±ΡΠΈΠΌ Π°Π½ΠΎΠ΄ΠΎΠΌ.
Π―ΡΠΊΠΎΡΡΡ Π΄ΠΈΡΠΏΠ»Π΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΒ ΠΈΠΌΠ΅Π΅Ρ 3 ΡΡΠΎΠ²Π½Ρ.
Π¦Π²Π΅ΡΠ° ΡΠ²Π΅ΡΠ΅Π½ΠΈΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ² Π±ΡΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΊΡΠ°ΡΠ½ΡΠΉ, ΡΠΈΠ½ΠΈΠΉ, ΠΆΠ΅Π»ΡΡΠΉ, Π±Π΅Π»ΡΠΉ ΠΈΒ Π·Π΅Π»Π΅Π½ΡΠΉ. ΠΠΎΒ ΡΠ°ΠΌΡΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ ΡΠ²Π΅Ρ ΠΊΡΠ°ΡΠ½ΡΠΉ. Π―Β Π±Ρ Π΄Π»ΡΒ ΡΠ΅Π±Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ΅Π»Β Π±Ρ Π±Π΅Π»ΡΠΉ, Π½ΠΎΒ ΠΊΠ°ΠΊ ΠΌΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π±Π΅Π»ΡΠΉ ΠΏΡΠΈΒ ΡΡΠΊΠΎΠΌ Π΄Π½Π΅Π²Π½ΠΎΠΌ ΠΎΡΠ²Π΅ΡΠ΅Π½ΠΈΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΠ»ΠΎΡ
ΠΎ ΡΠΈΡΠ°Π΅ΠΌ. ΠΠ°Π²Π΅ΡΠ½ΠΎ ΡΒ ΡΡΠΈΠΌ ΠΈΒ ΡΠ²ΡΠ·Π°Π½Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ ΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ.
ΠΒ ΡΠ°ΠΊ, ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊΒ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΠΎΠ³ΠΎ ΡΠΊΡΠ°Π½Π° ΠΊΒ Arduino nano. ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π²ΡΠ΅Π³ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΊΡΠ½Π΄.
Π‘Ρ Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ:
ΠΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ°:
ΠΠ»ΡΒ ΡΠΎΠ³ΠΎ ΡΡΠΎΒ Π±Ρ Π½Π°Β ΡΠΊΡΠ°Π½Π΅ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ° ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ ΠΊΠ°ΠΊΠ°Ρ Π»ΠΈΠ±ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ ΠΈΒ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ TM1637, ΠΏΠΎΡΠΎΠΌ Π·Π°ΠΏΡΡΡΠΈΡΡ Arduino IDE ΠΈΒ Π²ΡΠ±ΡΠ°ΡΡ Β«Π€Π°ΠΉΠ»ΡΒ β ΠΏΡΠΈΠΌΠ΅ΡΡΒ β TM1637Β» ΠΈΒ ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΎΡΠΊΡ Β«ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π²Β ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΒ», ΠΊΠ½ΠΎΠΏΠΊΡ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠΈΠ» Π½Π°Β ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ
ΠΡΠ»ΠΈ Π²ΡΠ΅ ΠΏΡΠΎΡΠ»ΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎ , ΡΠΎ ΠΠ°Ρ Π΄ΠΈΡΠΏΠ»Π΅ΠΉ Π½Π°ΡΠ½Π΅Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ.
ΠΒ Π²ΡΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π½ΡΡ
ΡΡΡΠ΅ΠΊΡΠΎΠ², ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π±Π΅Π³ΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ°, ΡΠΊΡΠΎΠ»Π»ΠΈΠ½Π³, Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠΊΠΎΡΡΡΡ ΠΈΒ ΠΏΡ.
Π§ΡΠΎΒ Π±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΒ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π²Β Π΄ΠΈΡΠΏΠ»Π΅ΠΉ ΡΠ²ΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ», Π΄Π»ΡΒ Π΅Π³ΠΎ ΡΠ°ΡΡΠ΅ΡΠ° Π½ΡΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π½Π°Β ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Π½ΠΈΠΆΠ΅. ΠΡΠ»ΠΈ Π²Β Π΄Π²ΡΡ ΡΠ»ΠΎΠ²Π°Ρ , ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° Π½ΡΠΆΠ½ΠΎ ΡΡΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π½Π°Β ΡΠΊΡΠ°Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΈΡΡΡ 4. ΠΠ»ΡΒ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΡΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ 2 + 4 + 32 + 64 = 102. ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ Π²Β ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΈΒ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ 0x66.
ΠΡ Π²ΠΎΡ ΠΊΠ°ΠΊΒ Π±Ρ ΠΈΒ Π²ΡΠ΅, ΡΡΠΎ Ρ Ρ ΠΎΡΠ΅Π» ΠΠ°ΠΌ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΠΎΒ ΡΡΠΎΡ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ I2C ΡΠΊΡΠ°Π½ΡΠΈΠΊ. ΠΠ°Π΄Π΅ΡΡΡ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅Β ΡΠΏΡΡΡΠΈΠ». ΠΡΠ»ΠΈ Π±ΡΠ΄ΡΡ Π²ΠΎΠΏΡΠΎΡΡ. ΠΠ΅Β ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ Π·Π°Π΄Π°Π²Π°ΠΉΡΠ΅. Π― ΠΎΡΠ²Π΅ΡΠ°Ρ Π²ΡΠ΅Π³Π΄Π°, Π½ΠΎΒ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅Β Π²ΡΠ΅Π³Π΄Π° Π±ΡΡΡΡΠΎ ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΈΠΌ Ρ ΠΎΡΠ΅Π»ΠΎΡΡΒ Π±Ρ.
ΠΒ Π½Π°Β ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠΊ Π²ΠΈΠ΄Π΅ΠΎ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ° TM1637
duino.ru
Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΡΠΎΠ² ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠ° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡΡ ΡΠΎΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, Π° Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅ Π½Π° Π½Π΅ΠΌ Π±ΡΠ΄Π΅Ρ ΠΌΠΎΡΠ³Π°ΡΡ ΡΠ°Π· Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ. Π’ΠΎΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π±ΡΠ΄Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π²ΠΎ Π²Π΅ΡΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ.
Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ:
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ Ρ ΡΠ°ΡΠ°ΠΌΠΈ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΡ Seeed Studio. ΠΠ½ΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½Ρ Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ DS1307 ΠΎΡ Maxim Integrated. ΠΠ· ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΎΠ±Π²ΡΠ·ΠΊΠΈ ΠΎΠ½Π° ΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΠΈ ΡΠ΅Π·ΠΈΡΡΠΎΡΠ°, ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΠΊΠ²Π°ΡΡ ΠΈ Π±Π°ΡΠ°ΡΠ΅ΠΉΠΊΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ ΠΈΠΌΠ΅ΡΡΡΡ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅. ΠΠΎΠ΄ΡΠ»Ρ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ:
ΠΠΎΠ΄ΡΡΠ΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (ΡΠ΅ΠΊΡΠ½Π΄Ρ, ΠΌΠΈΠ½ΡΡΡ, ΡΠ°ΡΡ), Π΄Π°ΡΡ (Π³ΠΎΠ΄, ΠΌΠ΅ΡΡΡ, ΡΠΈΡΠ»ΠΎ), Π΄Π½Ρ Π½Π΅Π΄Π΅Π»ΠΈ
ΠΠ²ΡΡ ΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ IΒ²C
Π‘ΡΡΡ ΡΠ°ΡΠΎΠ² ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Π±Π°ΡΠ°ΡΠ΅ΠΉΠΊΠΈ, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΠ΄ΡΠΈ Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΎΠ±Π΅ΡΡΠΎΡΠ΅Π½ΠΎ. ΠΡ Ρ ΡΠ°ΠΊΠΈΠΌΠΈ ΡΠ°ΡΠ°ΠΌΠΈ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΠΌΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π² Π½ΠΎΡΡΠ±ΡΠΊΠ°Ρ ΠΈΠ»ΠΈ ΡΠΈΡΡΠΎΠ²ΡΡ ΡΠΎΡΠΎΠ°ΠΏΠΏΠ°ΡΠ°ΡΠ°Ρ . ΠΡΠ»ΠΈ Π΄ΠΎΡΡΠ°ΡΡ ΠΈΠ· ΡΡΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ² Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ, Π° ΡΠ΅ΡΠ΅Π· Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π²Π΅ΡΠ½ΡΡΡ ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ, ΡΠΎ Π²ΡΠ΅ΠΌΡ Π½Π΅ ΡΠ±ΡΠΎΡΠΈΡΡΡ. Π ΡΡΠΎΠΌ Π·Π°ΡΠ»ΡΠ³Π° ΡΠ°ΡΠΎΠ² ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Real Time Clock (RTC).
ΠΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ°.
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ΅ΡΡΡΡΡ ΡΠ°Π·ΡΡΠ΄Π½ΡΠΉ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ ΠΎΡ Seeed Studio. ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π² ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ΅ β ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ° TM1637, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠ°Ρ ΡΠΎΠ±ΠΎΠΉ Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π΄Π»Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ 7-ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΡΡ ΡΠ°Π·ΡΡΠ΄ΠΎΠ². Π Π΄Π°Π½Π½ΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ 4 ΡΠ°Π·ΡΡΠ΄Π°. ΠΠΎΠ΄ΡΠ»Ρ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ:
8 Π³ΡΠ°Π΄Π°ΡΠΈΠΉ ΡΡΠΊΠΎΡΡΠΈ
ΠΠ²ΡΡ ΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠ°Π±ΠΎΡΡ (CLK, DIO)
ΠΠ°Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΄Π»Ρ ΠΏΠΎΠΊΠ°Π·Π° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ: ΡΠ°ΡΠΎΠ² ΠΈ ΠΌΠΈΠ½ΡΡ. Π£Π΄ΠΎΠ±ΡΡΠ²ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΎΠ½ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎ Π΄Π²ΡΠΌ ΠΏΡΠΎΠ²ΠΎΠ΄Π°ΠΌ ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠ΅ ΡΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π²Π½ΡΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ.
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΡ β ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΡ Π² Π½Π°ΡΠ΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ Π·Π°Π³ΠΎΡΠ°ΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ. ΠΠΎ ΠΌΠ΅ΡΡΠ°Π½ΠΈΡ ΠΌΡ Π½Π΅ Π²ΠΈΠ΄ΠΈΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ΅Π»ΠΎΠ²Π΅ΡΠ΅ΡΠΊΠΎΠΉ Π³Π»Π°Π· ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΈΠ½Π΅ΡΡΠ½ΠΎΡΡΡΡ. ΠΠ°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠΌ:
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΡ: 4 ΡΠΈΡΡΡ Γ 7 ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ² = 28 ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ.
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΡ: 7 ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ² + 4 ΠΎΠ±ΡΠΈΡ Π°Π½ΠΎΠ΄Π° ΠΈΠ»ΠΈ ΠΊΠ°ΡΠΎΠ΄Π° = 11 ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ.
ΠΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ° TM1637: 2 ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ.
ΠΡΠ³ΠΎΠ΄Π° ΠΎΡΠ΅Π²ΠΈΠ΄Π½Π°.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΊΠ°ΡΠ°Π½Π° Ρ ΡΠ°ΠΉΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ.
ΠΠΎΠ΄ΡΠ»Ρ ΡΠ°ΡΠΎΠ² ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊ Π²ΡΠ²ΠΎΠ΄Π°ΠΌ SCL/SDA, ΠΎΡΠ½ΠΎΡΡΡΠΈΠΌΡΡ ΠΊ ΡΠΈΠ½Π΅ IΒ²C. Π’Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π»ΠΈΠ½ΠΈΠΈ ΠΏΠΈΡΠ°Π½ΠΈΡ (Vcc) ΠΈ Π·Π΅ΠΌΠ»ΠΈ (GND).
ΠΠΈΠ½ΠΈΠΈ SDA/SCL ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΏΠΈΠ½Ρ Π½Π° Arduino, ΠΎΠ΄Π½Π°ΠΊΠΎ Π²Π½ΡΡΡΠΈ ΠΎΠ½ΠΈ ΡΠ°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΊ ΠΏΠΈΠ½Π°ΠΌ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ Arduino Uno, Π»ΠΈΠ½ΠΈΠΈ SDA ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΏΠΈΠ½ A4, Π° SCL β A5.
Π ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ΅ Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠ»Π΅ΠΉΡ Ρ ΠΌΠ°ΠΌΠ°-ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ ΠΊ Troyka Shield. ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΏΠΈΠ½Ρ SDA ΠΈ SCL Π½Π° Π½Π΅ΠΉ Π½Π΅ Π²ΡΠ²Π΅Π΄Π΅Π½Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΡΠΌΠΎ ΡΠ΅ΡΠ΅Π· ΠΏΠΈΠ½Ρ A5 ΠΈ A4.
Π ΠΏΠ»Π°Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ° β Π²ΡΠ΅ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΏΡΠΎΡΠ΅. ΠΡΠ²ΠΎΠ΄Ρ CLK ΠΈ DIO ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊ Π»ΡΠ±ΡΠΌ ΡΠΈΡΡΠΎΠ²ΡΠΌ Π²ΡΠ²ΠΎΠ΄Π°ΠΌ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ 12-ΠΉ ΠΈ 11-ΠΉ Π²ΡΠ²ΠΎΠ΄Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
Π€ΡΠ½ΠΊΡΠΈΡ setup
Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΡΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ ΡΠ°ΡΠΎΠ² ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, Π° ΡΠΎΡΠ½Π΅Π΅, ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΠ· RTC ΠΈ Π²ΡΠ²ΠΎΠ΄ Π΅Π³ΠΎ Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ, Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡΡ Π² ΡΡΠ½ΠΊΡΠΈΠΈ loop
.
ΠΠΎΠ΄ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
#include <Wire.h> #include <EEPROM.h> #include "TM1637.h" #include "DS1307.h" Β Β //ΠΠ°ΡΡΠΈΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ char compileTime[] = __TIME__; Β Β //ΠΠΎΠΌΠ΅ΡΠ° ΠΏΠΈΠ½ΠΎΠ² Arduino, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ #define DISPLAY_CLK_PIN 12 #define DISPLAY_DIO_PIN 13 Β //ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠΎΠΉ ΡΠ°ΡΠΎΠ² ΠΈ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ //ΠΠ»Π°ΡΡΡ TM1637 ΠΈ DS1307 ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² Π½ΠΈΡ TM1637 display(DISPLAY_CLK_PIN, DISPLAY_DIO_PIN); DS1307 clock; Β Β void setup() { Β //ΠΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ display.set(); display.init(); Β //ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΡΠ°ΡΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ clock.begin(); Β //ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠΈΡΠ»ΠΎ ΠΈΠ· ΡΡΡΠΎΠΊΠΈ, Π·Π½Π°Ρ Π½ΠΎΠΌΠ΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° byte hour = getInt(compileTime, 0); byte minute = getInt(compileTime, 3); byte second = getInt(compileTime, 6); Β //ΠΠΎΡΠΎΠ²ΠΈΠΌ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ Π² RTC ΡΠ°ΡΡ, ΠΌΠΈΠ½ΡΡΡ, ΡΠ΅ΠΊΡΠ½Π΄Ρ clock.fillByHMS(hour, minute, second); Β //ΠΠ°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ ΡΠ°ΡΠΎΠ². //Π‘ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΎΠ½ΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡ ΡΡΠΈΡΠ°ΡΡ Π½ΡΠΆΠ½ΠΎΠ΅ Π΄Π»Ρ Π½Π°Ρ Π²ΡΠ΅ΠΌΡ clock.setTime(); Β } Β Β void loop() { //ΠΠ½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· 4 ΡΠ°Π·ΡΡΠ΄ΠΎΠ² int8_t timeDisp[4]; Β //ΠΠ°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌ Π²ΡΠ΅ΠΌΡ Ρ ΡΠ°ΡΠΎΠ² clock.getTime(); Β //ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ Π΄Π΅ΡΡΡΠΊΠΈ ΡΠ°ΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ Π΄Π΅Π»Π΅Π½ΠΈΡ timeDisp[0] = clock.hour / 10; Β //ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ Π΅Π΄ΠΈΠ½ΠΈΡΡ ΡΠ°ΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΡΡΠ°ΡΠΊΠ° ΠΎΡ Π΄Π΅Π»Π΅Π½ΠΈΡ timeDisp[1] = clock.hour % 10; Β //ΠΡΠΎΠ΄Π΅Π»ΡΠ²Π°Π΅ΠΌ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Ρ ΠΌΠΈΠ½ΡΡΠ°ΠΌΠΈ timeDisp[2] = clock.minute / 10; timeDisp[3] = clock.minute % 10; Β //... Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π΅Π³ΠΎ Π½Π° ΡΠΊΡΠ°Π½ display.display(timeDisp); Β //Ρ Π½Π°Ρ Π½Π΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ°Π·ΡΡΠ΄ΠΎΠ² Π΄Π»Ρ ΡΠ΅ΠΊΡΠ½Π΄, ΠΏΠΎΡΡΠΎΠΌΡ //Π±ΡΠ΄Π΅ΠΌ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΈ Π²ΡΠΊΠ»ΡΡΠ°ΡΡ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΠ΅ΠΊΡΠ½Π΄Ρ display.point(clock.second % 2 ? POINT_ON : POINT_OFF); Β } Β //Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΎ Π½ΠΈΠΆΠ΅ char getInt(const char* string, int startIndex) { return int(string[startIndex] - '0') * 10 + int(string[startIndex+1]) - '0'; }
Π’Π΅ΠΏΠ΅ΡΡ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π² ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌ ΠΈ Π·Π°Π»ΠΈΠ²Π°Π΅ΠΌ. Π‘ΠΌΠΎΡΡΠΈΠΌ Π½Π° Π΄ΠΈΡΠΏΠ»Π΅ΠΉ β Π±ΠΈΠ½Π³ΠΎ! ΠΡΠ΅ΠΌΡ Π½Π° Π΄ΠΈΡΠΏΠ»Π΅Π΅ β Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ½ΡΡΡ, ΠΎΡΠΊΡΠ΄Π° ΠΆΠ΅ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ compileTime
ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠ΅ΠΌΡ.
ΠΠ½ΠΎ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΡΡΠΎΠΉ ΡΡΡΠΎΡΠΊΠ΅:
unsigned char compileTime[] = __TIME__;
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΠΌΠ΅ΡΡΠΎ __TIME__
ΠΏΠΎΠ΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΡΠΎΠΊΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² Π²ΠΈΠ΄Π΅ __TIME__ = "hh:mm:ss"
, Π³Π΄Π΅ hh — ΡΠ°ΡΡ, mm — ΠΌΠΈΠ½ΡΡΡ, ss — ΡΠ΅ΠΊΡΠ½Π΄Ρ.
ΠΠ΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ΠΊΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ:
char getInt(const char* string, int startIndex) { return int(string[startIndex] - '0') * 10 + int(string[startIndex+1]) - '0'; }
Π ΠΌΠ°ΡΡΠΈΠ²Π΅ string
, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π² ΡΡΠ½ΠΊΡΠΈΡ getInt
, ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠΈΠΌΠ²ΠΎΠ» Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ startIndex
ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π·Π° Π½ΠΈΠΌ, ΡΡΠΎΠ±Ρ Π² ΠΈΡΠΎΠ³Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄Π²ΡΡ
Π·Π½Π°ΡΠ½ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΡΠΎ Π½Π΅ ΡΠΈΡΠ»ΠΎ, Π° ΠΏΠ°ΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΈΡΠ»ΠΎ ΠΏΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΡΠ΅ΡΡΡ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΡΠΈΠΌΠ²ΠΎΠ» Π½ΡΠ»Ρ ('0
‘): Π²Π΅Π΄Ρ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ASCII Π²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΡΠΈΡΡ ΠΈΠ΄ΡΡ ΠΎΠ΄Π½Π° Π·Π° Π΄ΡΡΠ³ΠΎΠΉ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π½ΡΠ»Ρ. ΠΠΎΡΡΠΎΠΌΡ ΠΊΠΎΠ΄ int(string[startIndex]) - '0')
, Π΄ΠΎΡΠ»ΠΎΠ²Π½ΠΎ, Π΄Π΅Π»Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅: Β«ΠΠ΅ΡΠ΅ΠΌ ΡΠΈΠΌΠ²ΠΎΠ» Π½ΠΎΠΌΠ΅Ρ startIndex
, Π²ΡΡΠΈΡΠ°Π΅ΠΌ ΠΈΠ· Π½Π΅Π³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ» Π½ΡΠ»Ρ ΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ Π² ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠΉ ΡΠΈΠΏΒ».
ΠΠ°, ΡΡΠΎΡ ΠΊΠΎΠ΄ ΡΠ°Π±ΠΎΡΠΈΠΉ, ΠΈ ΡΠ°ΡΡ Π±ΡΠ΄ΡΡ ΠΈΠ΄ΡΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΏΠΈΡΠ°Π½ΠΈΠ΅, Π° ΡΠ΅ΡΠ΅Π· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠ½ΡΡ Π²ΠΊΠ»ΡΡΠΈΡΡ, ΡΠΎ ΠΏΠΎΡΠ»Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΡ Π²ΡΠ΅ΠΌΡ Π²Π½ΠΎΠ²Ρ ΡΡΠ°Π½Π΅Ρ ΡΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ»ΠΎ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΈΡΠ°Π½ΠΈΡ, Π²Π½ΠΎΠ²Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΊΠΎΠ΄, Π½Π°Ρ
ΠΎΠ΄ΡΡΠΈΠΉΡΡ Π² ΡΡΠ½ΠΊΡΠΈΠΈ setup
. Π ΠΎΠ½ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ Π² ΡΠ°ΡΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΡΠ°ΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
Π§ΡΠΎΠ±Ρ ΡΡΠΎΠ³ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΅ΡΠ΅ ΡΡΡΡ-ΡΡΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· Π² ΡΡΠ½ΠΊΡΠΈΠΈ setup
Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡΡ ΠΏΠΎΠ΄ΡΡΠ΅Ρ Β«Ρ
ΡΡΠ°Β» Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ β Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°ΡΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΠΊΡΠ½Π΄, ΠΏΡΠΎΡΠ΅Π΄ΡΠ΅Π΅ Ρ 00:00:00 Π΄ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. Π ΡΡΠΎΡ Ρ
ΡΡ Π±ΡΠ΄Π΅Ρ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡΡΡ Ρ Ρ
ΡΡΠ΅ΠΌ Π² EEPROM. ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΠΌ EEPROM β ΠΏΠ°ΠΌΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ ΠΎΠ±Π½ΡΠ»ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΏΠΈΡΠ°Π½ΠΈΡ.
ΠΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ½Π½ΠΎΠ³ΠΎ ΡΠ°Π½Π΅Π΅ Ρ ΡΡΠ° ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ, ΡΠΎ ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π²ΡΠ΅ΠΌΡ Π² ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ°ΡΠΎΠ² Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ: ΡΡΠΎ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ. Π Π²ΠΎΡ Π΅ΡΠ»ΠΈ ΡΡΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π΅ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ, ΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π² RTC.
ΠΠ»Ρ Π·Π°ΠΏΠΈΡΠΈ/ΡΡΠ΅Π½ΠΈΡ ΡΠΈΡΠ»Π° ΡΠΈΠΏΠ° unsigned int
Π²/ΠΈΠ· EEPROM Π½Π°ΠΏΠΈΡΠ°Π½Ρ Π΄Π²Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ EEPROMWriteInt
ΠΈ EEPROMReadInt
. ΠΠ½ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ EEPROM.read
ΠΈ EEPROM.write
ΠΌΠΎΠ³ΡΡΡ ΡΠΈΡΠ°ΡΡ ΠΈ ΠΏΠΈΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π°Π½Π½ΡΠ΅ ΡΠΈΠΏΠ° char
.
#include <Wire.h> #include <EEPROM.h> #include "TM1637.h" #include "DS1307.h" Β //ΠΠ°ΡΡΠΈΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ char compileTime[] = __TIME__; Β //ΠΠΎΠΌΠ΅ΡΠ° ΠΏΠΈΠ½ΠΎΠ² Arduino, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ #define DISPLAY_CLK_PIN 12 #define DISPLAY_DIO_PIN 13 Β //ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠΎΠΉ ΡΠ°ΡΠΎΠ² ΠΈ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ TM1637 display(DISPLAY_CLK_PIN, DISPLAY_DIO_PIN); DS1307 clock; Β Β void setup() { Β //ΠΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ display.set(); display.init(); Β //ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΡΠ°ΡΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ clock.begin(); Β //ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠΈΡΠ»ΠΎ ΠΈΠ· ΡΡΡΠΎΠΊΠΈ, Π·Π½Π°Ρ Π½ΠΎΠΌΠ΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° byte hour = getInt(compileTime, 0); byte minute = getInt(compileTime, 3); byte second = getInt(compileTime, 6); Β //ΠΠΌΠΏΡΠΎΠ²ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Ρ ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ //Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΡΠ΅Π±Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΠΊΡΠ½Π΄ Ρ Π½Π°ΡΠ°Π»Π° Π΄Π½Ρ unsigned int hash = hour * 60 * 60 + minute * 60 + second; Β //ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ Π½Π΅ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ ΡΡΠ° Ρ Ρ ΡΡΠ΅ΠΌ Π² EEPROM if (EEPROMReadInt(0) != hash) { Β //Π‘ΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ Π½ΠΎΠ²ΡΠΉ Ρ ΡΡ EEPROMWriteInt(0, hash); Β //ΠΠΎΡΠΎΠ²ΠΈΠΌ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ Π² RTC ΡΠ°ΡΡ, ΠΌΠΈΠ½ΡΡΡ, ΡΠ΅ΠΊΡΠ½Π΄Ρ clock.fillByHMS(hour, minute, second); Β //ΠΠ°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ ΡΠ°ΡΠΎΠ². //Π‘ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΎΠ½ΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡ ΡΡΠΈΡΠ°ΡΡ Π½ΡΠΆΠ½ΠΎΠ΅ Π΄Π»Ρ Π½Π°Ρ Π²ΡΠ΅ΠΌΡ clock.setTime(); } Β } Β Β void loop() { //ΠΠ½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· 4 ΡΠ°Π·ΡΡΠ΄ΠΎΠ² int8_t timeDisp[4]; Β //ΠΠ°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌ Π²ΡΠ΅ΠΌΡ Ρ ΡΠ°ΡΠΎΠ² clock.getTime(); Β //ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ Π΄Π΅ΡΡΡΠΊΠΈ ΡΠ°ΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ Π΄Π΅Π»Π΅Π½ΠΈΡ timeDisp[0] = clock.hour / 10; Β //ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ Π΅Π΄ΠΈΠ½ΠΈΡΡ ΡΠ°ΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΡΡΠ°ΡΠΊΠ° ΠΎΡ Π΄Π΅Π»Π΅Π½ΠΈΡ timeDisp[1] = clock.hour % 10; Β //ΠΡΠΎΠ΄Π΅Π»ΡΠ²Π°Π΅ΠΌ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Ρ ΠΌΠΈΠ½ΡΡΠ°ΠΌΠΈ timeDisp[2] = clock.minute / 10; timeDisp[3] = clock.minute % 10; Β //... Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π΅Π³ΠΎ Π½Π° ΡΠΊΡΠ°Π½ display.display(timeDisp); Β //Ρ Π½Π°Ρ Π½Π΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ°Π·ΡΡΠ΄ΠΎΠ² Π΄Π»Ρ ΡΠ΅ΠΊΡΠ½Π΄, ΠΏΠΎΡΡΠΎΠΌΡ //Π±ΡΠ΄Π΅ΠΌ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΈ Π²ΡΠΊΠ»ΡΡΠ°ΡΡ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΠ΅ΠΊΡΠ½Π΄Ρ display.point(clock.second % 2 ? POINT_ON : POINT_OFF); Β } Β char getInt(const char* string, int startIndex) { return int(string[startIndex] - '0') * 10 + int(string[startIndex+1]) - '0'; } Β //ΠΠ°ΠΏΠΈΡΡ Π΄Π²ΡΡ Π±Π°ΠΉΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π² ΠΏΠ°ΠΌΡΡΡ void EEPROMWriteInt(int address, int value) { EEPROM.write(address, lowByte(value)); EEPROM.write(address + 1, highByte(value)); } Β //Π§ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ»Π° ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ unsigned int EEPROMReadInt(int address) { byte lowByte = EEPROM.read(address); byte highByte = EEPROM.read(address + 1); Β return (highByte << 8) | lowByte; }
Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π±ΡΠ» ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠΎΠΉ ΡΠ°ΡΠΎΠ² ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ RTC DS1307 ΠΈ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠΎΠΉ-Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠΌ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ° TM1637, ΡΠ°ΠΊΠΆΠ΅ ΠΌΡ Π½Π°ΡΡΠΈΠ»ΠΈΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄Π°ΡΡ ΠΈ Π²ΡΠ΅ΠΌΡ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. Π’Π΅ΠΏΠ΅ΡΡ, Π΅ΡΠ»ΠΈ Π²ΡΡΡΠ°Π²ΠΈΡΡ Π½ΡΠΆΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π° ΡΠ°ΡΠ°Ρ , Π° ΠΏΠΎΡΠΎΠΌ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Ρ ΠΎΡΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΠΎΠ², ΡΠΎ ΠΏΠΎΡΠ»Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΡ Π²Π½ΠΎΠ²Ρ Π±ΡΠ΄Π΅Ρ ΡΠΎΡΠ½ΡΠΌ. ΠΡΠΎΠ²Π΅ΡΠ΅Π½ΠΎ!
wiki.amperka.ru
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ TM1367 ΠΊ PIC (ΠΏΠ΅ΡΠ²ΡΠΉ ΠΎΠΏΡΡ)
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ TM1367 ΠΊ PIC (ΠΏΠ΅ΡΠ²ΡΠΉ ΠΎΠΏΡΡ).ΠΠ΅Π΄Π°Π²Π½ΠΎ ΡΠ΅ΡΠΈΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠ°ΠΉΠΌΠ΅ΡΠ΅ ΡΠ΅ΡΡΡΠ΅Ρ
Π·Π½Π°ΡΠ½ΡΠΉ ΡΠ΅ΠΌΠΈΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠΉ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ Π’Π1637 Π²ΠΌΠ΅ΡΡΠΎ Π·Π½Π°ΠΊΠΎΡΠΈΠ½ΡΠ΅Π·ΠΈΡΡΡΡΠ΅Π³ΠΎ ΠΠΠ Π½Π° Π±Π°Π·Π΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° HD44780.
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π΄Π΅ΡΠ΅Π²Π»Π΅, ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡΡΡΡ ΡΠ΅ΡΡΡΠ΅ ΠΏΠΎΡΡΠ°, ΠΌΠ΅Π½ΡΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ .
ΠΡΠΏΠΎΠΌΠ½ΠΈΠ², ΡΡΠΎ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ ΠΠΠ Π½Π° HD44780 Π½Π°ΡΠΈΠ½Π°Π»ΠΎΡΡ Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅ ΠΏΡΠΎΡΡΡΡ
ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅, Π½Π°Π±ΡΠ°Π» Π·Π°ΠΏΡΠΎΡ Π² ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΈΠΊΠ΅.
ΠΠΎ ΠΎΡΠ²Π΅ΡΠ° Π½Π° Π²ΠΎΠΏΡΠΎΡ «ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ TM1637 ΠΊ PIC» Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ». ΠΠ΅ΠΉΡΠ°ΡΠΈΡ ΠΌΠΈΠΊΡΠΎΡΡ
Π΅ΠΌΡ ΠΈ ΡΡΠ°ΡΡΠΈ Ρ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΡΠΌΠΈ Π΅Π΅ ΡΠ°Π±ΠΎΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΠΏΡΠΎΡΡΠ½ΠΈΠ»ΠΈ, Π½ΠΎ ΡΠ»Π΅Π΄ΡΡ ΠΈΠΌ, ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ- ΡΠΎ ΠΏΡΡΠ°Π»ΠΈΡΡ Π·Π½Π°ΠΊΠΎΠΌΠ΅ΡΡΠ°, ΠΎΡΡΡΡΡΡΠ²ΠΎΠ²Π°Π»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈΠ»ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎ Π²ΡΠΊΠ»ΡΡΠ°Π»ΡΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ. ΠΠΈΠ΄ΠΈΠΌΠΎ Π½Π΅ Π²ΡΠ΅, ΠΊΠ°ΠΆΡΡΠ΅Π΅ΡΡ Π°Π²ΡΠΎΡΠ°ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΡΠΌ, Π΄ΠΎΡ
ΠΎΠ΄ΠΈΡ Π΄ΠΎ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΠ²ΡΠ΅Π³ΠΎΡΡ ΠΊ ΡΡΠΎΠΉ ΠΌΠΈΠΊΡΠΎΡΡ
Π΅ΠΌΠ΅. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ MPLAB Ρ ΡΠΎΠΆΠ΅ Π½Π΅ Π½Π°ΡΠ΅Π» (ΠΈΠ»ΠΈ Π½Π΅ ΡΡΠΌΠ΅Π» Π΅ΠΉ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ).
ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΎΡΠ»ΠΎΠΆΠΈΡΡ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π’Π1637 ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΏΠΎ-ΡΠ²ΠΎΠ΅ΠΌΡ, ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΡΡΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°ΠΌΠΈ I2C , Π½Π΅ ΠΏΡΡΠ°ΡΡΡ ΠΎΠ±ΡΡΡΠ½ΡΡΡ ΡΠ²ΠΎΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ . Π’Π°ΠΊ Π½Π°ΠΏΠΈΡΠ°Π» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΊΡ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» Π΅Π΅ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠ°ΠΉΠΌΠ΅ΡΠ΅. ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ½Π° ΠΊΠΎΠΌΡ-ΡΠΎ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ Π΄Π»Ρ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²Π° Ρ Π’Π1637 ΠΈΠ»ΠΈ Π΄Π»Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ I2C. ΠΡΠ΄Ρ ΠΊΡΠ°ΡΠΎΠΊ, ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΡΠΈΡΠ°ΡΡΠΈΠΉ Π·Π½Π°ΠΊΠΎΠΌ Ρ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°ΠΌΠΈ ΠΏΠΎ Π’Π1637 ΠΈ ΡΠΆΠ΅ ΠΏΡΡΠ°Π»ΡΡ ΠΈΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ))).
Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π½Π° ΡΠΈΠ½Ρ DIO Π’Π1637 Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ Π³ΡΡΠΏΠΏΠ°ΠΌΠΈ ΠΏΠΎ 5 Π±Π°ΠΉΡ . ΠΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ ΡΡΠΎΠΉ ΠΆΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ- ΠΏΠ΅ΡΠ²ΡΠΉ Π±Π°ΠΉΡ, ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ .140, Π²ΡΠΎΡΠΎΠΉ, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ .64, ΡΡΠ΅ΡΠΈΠΉ, Π½ΠΎΠΌΠ΅Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ Π·Π½Π°ΠΊΠΎΠΌΠ΅ΡΡΠ°; Π΄Π²Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ
Π±Π°ΠΉΡΠ° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½ΠΎΠ»ΡΠΌΠΈ (ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ Π½Π΅ Π·Π°ΠΆΠΈΠ³Π°ΡΡΡΡ). Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ Π³ΡΡΠΏΠΏΠ° ΠΈΠ· ΠΏΡΡΠΈ Π±Π°ΠΉΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½ΠΎΠΌΠ΅Ρ Π·Π½Π°ΠΊΠΎΠΌΠ΅ΡΡΠ° ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠΈΡΡΡ ΠΈ ΠΊΠΎΠ΄Ρ ΡΠ΅ΡΡΡΠ΅Ρ
Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΡΡ
ΡΠΈΡΡ. ΠΡΠ²ΠΎΠ΄ Π΄Π°Π½Π½ΡΡ
ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎ Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠΉ ΡΠΈΠ½Ρ CLK- ΡΡΠΎΠ²Π΅Π½Ρ Π½Π° DIO ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π½Π° CLK Π½ΠΎΠ»Ρ. ΠΠ΅ΠΆΠ΄Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠΌΠΈ Π±Π°ΠΉΡΠ°ΠΌΠΈ Π²ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ Π² ΠΎΠ΄ΠΈΠ½ ΠΏΠ΅ΡΠΈΠΎΠ΄ CLK Π½Π° Π²ΡΠ΅ΠΌΡ ΠΎΡΠ²Π΅ΡΠ° ACK. Π‘ΡΠ°ΡΡ ΠΈ ΡΡΠΎΠΏ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ DIO Π½Π° Π²ΡΡΠΎΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ CLK. Π’Π°ΠΊΡΠΎΠ²ΡΠ΅ ΠΈΠΌΠΏΡΠ»ΡΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠΊΠ²Π°ΠΆΠΈΠ½Π½ΠΎΡΡΡ 2 ΠΈ ΠΏΠ΅ΡΠΈΠΎΠ΄ 300ΠΌΠΊΡ. Π ΠΏΠ΅ΡΠ΅ΡΡΠ²Π°Ρ
ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈΠΌΠΏΡΠ»ΡΡΡ Π½Π΅ ΡΠΎΡΠΌΠΈΡΡΡΡΡΡ, Π½Π° ΡΠΈΠ½Π°Ρ
ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΡ ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°ΡΡΠΈΠ΅ ΡΠ΅Π·ΠΈΡΡΠΎΡΡ ΠΏΠΎ 10 ΠΠΎΠΌ. ΠΠΎΡΡΡ RA4 (CLK) ΠΈ RA5 (DIO) ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΊ Π½ΠΈΠΌ ΡΠ΅ΡΠ΅Π· ΡΠ°Π·Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠ΅ Π΄ΠΈΠΎΠ΄Ρ βΠ½Π° Π²ΡΡΠΊΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉβ, Π²Π΄ΡΡΠ³ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ Π½ΠΎΠ²ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΌΡ ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ Π²ΡΡΡΠ°Π²ΠΈΡ Π½Π° ΡΠΈΠ½Π°Ρ
Π½ΠΎΠ»Ρ ΠΈ Π΄Π²ΡΡ
ΡΠ°ΠΊΡΠ½ΡΠΉ Π²ΡΡ
ΠΎΠ΄ ΠΏΠΎΡΡΠ° ΡΠ³ΠΎΡΠΈΡ. Π₯ΠΎΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΡΠ°ΡΡΠΎΡΡ CLK Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΏΡΠΈ Π²ΡΠ²ΠΎΠ΄Π΅ Π·Π½Π°ΠΊΠΎΠ². ΠΠΎΡΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΠΈΡΡΠ½ΠΊΡ 1.
ΠΠ»Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ » Π§Π°ΡΡ «.
ΠΠ΅Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠΌΠ΅Π΅Ρ ΡΡΠΈ ΡΠ΅ΠΆΠΈΠΌΠ°:
— ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ°ΡΠΎΠ² Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 2,
— ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΌΠΈΠ½ΡΡ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 3,
— ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 4.
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π’Π1637 ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ PWR. Π Π½Π΅ΠΉ ΡΠΎΠ·Π΄Π°Π½ ΡΡΠ΅ΠΊ ΠΈΠ· ΠΏΡΡΠΈ Π±Π°ΠΉΡ BTR1 — BTR5, Π² ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅. ΠΠ°ΠΉΡΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎ Ρ CLK ΡΠ΄Π²ΠΈΠ³Π°ΡΡΡΡ Π²ΠΏΡΠ°Π²ΠΎ ΠΈ ΠΏΡΠ°Π²ΡΠΉ ΠΊΡΠ°ΠΉΠ½ΠΈΠΉ Π±ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΡΠΎΠ²Π΅Π½Ρ Π½Π° ΡΠΈΠ½Π΅ DIO. ΠΠΎΡΠ»Π΅ Π²ΠΎΡΡΠΌΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ
Π±ΠΈΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π²ΡΡΠΎΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈ Π½Π΅ Π΄Π΅Π»Π°Π΅ΡΡΡ ΡΠ΄Π²ΠΈΠ³ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΊΡΠ° CLK, ΠΎΡΠ²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ Π½Π° ACK.
Π ΡΠ°Π±Π»ΠΈΡΠ΅ Π½ΠΈΠΆΠ΅ ΠΏΠΎΡΡΠ½ΡΠ΅ΡΡΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
PWR | ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π’Π1637. RA4- CLK, RA5- DIO. |
CLOCK | Π§Π°ΡΡ, ΡΡΠΈΡΠ°ΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ TMR1 |
JK ΠΈ PI9_ | ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ½ΠΊΡΠΎΠ² ΠΌΠ΅Π½Ρ, ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° |
BDPP | ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΡΠ»Π° ΠΈΠ· Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΡ Π² Π΄Π²ΠΎΠΈΡΠ½ΠΎ-Π΄Π΅ΡΡΡΠΈΡΠ½ΡΡ, ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΊ Π²ΡΠ²ΠΎΠ΄Ρ Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ |
RDEP2C ΠΈ IND2C | ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ±Π°ΠΉΡΠΎΠ² Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π² ΠΊΠΎΠ΄Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π·Π°ΠΏΠΈΡΡ ΠΊΠΎΠ΄ΠΎΠ² Π² BTR1 β BTR5. ΠΠΎΠ΄Ρ ΡΠ΅ΠΌΠΈΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΡΡ ΡΠΈΡΡ Π·Π°ΠΏΠΈΡΠ°Π½Ρ Π² ΠΠΠ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΠ°ΠΌ ΠΎΡ 0 Π΄ΠΎ 9 ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. |
KTRI_ ΠΈ C_IND | Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. |
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΡΠ΅Π·Π°Π½Π° ΠΈΠ· ΡΠ°ΠΉΠΌΠ΅ΡΠ° (ΡΠ°ΠΌ ΠΌΠ½ΠΎΠ³ΠΎΡΠ΅ΠΆΠΈΠΌΠ½ΡΠΉ ΡΠ°ΠΉΠΌΠ΅Ρ Π½ΠΈΡΠ΅ΠΌ Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΠΈ Π½Π΅ Π΄ΠΎΡΡΠΎΠΈΠ½ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ Π Π°Π΄ΠΈΠΎΠΊΠΎΡΠΎΠ²), Π² Π½Π΅ΠΉ ΠΌΠ½ΠΎΠ³ΠΎ ββΠ½Π΅ΠΊΡΠ°ΡΠΈΠ²ΡΡ β Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΈ Π»ΠΈΡΠ½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . ΠΡΠΎΡΡ Π½Π΅ ΠΎΠ±ΡΠ°ΡΠ°ΡΡ Π½Π° Π½ΠΈΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ; ΡΠ΅Π»Ρ ΡΡΠ°ΡΡΠΈ- ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π΄Π»Ρ Π’Π1637, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Π²ΠΈΠ΄Π΅ Π½Π΅Π·Π°ΠΌΡΡΠ»ΠΎΠ²Π°ΡΡΡ ΡΠ°ΡΠΎΠ².
ΠΡΠ²ΠΎΠΈΠ² Π²ΡΠ²ΠΎΠ΄ Π½Π° Π΄ΠΈΡΠΏΠ»Π΅ΠΉ ΡΠΈΡΡ, Π½Π΅ ΡΡΡΠ΄Π½ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΠΈ Π±ΡΠΊΠ²Ρ Π² ΡΠ΅ΠΌΠΈΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΠΎΠΌ Π°Π»ΡΠ°Π²ΠΈΡΠ΅, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡ. 5.
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ LCD1602 , Π² PROTEUS Π½Π΅Ρ ΡΠΌΡΠ»ΡΡΠΎΡΠ° Π’Π1637.
Debugger I2C Π΄Π°Π΅Ρ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΎ ΡΠ°Π±ΠΎΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΠ»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ.
ΠΠ° ΡΠΈΡ.6 ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π°ΡΠ°Π»ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ,- ΡΠ½Π°ΡΠ°Π»Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° «Π‘ΡΠ°ΡΡ», ΠΏΠΎΡΠΎΠΌ Π±Π°ΠΉΡ 00110001.ΠΡ ΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΡΠΎ Π±ΠΈΡΡ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΌΠ»Π°Π΄ΡΠ΅Π³ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ Π±Π°ΠΉΡ «ΠΏΠ΅ΡΠ΅Π²Π΅ΡΠ½ΡΡ» ΠΈ ΠΈΠΌΠ΅Π΅Ρ Π²ΠΈΠ΄ 10001100, ΡΡΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ .140, ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠΎΡΠΎΠΌ ΠΏΠ΅ΡΠ΅ΡΡΠ² (Π΅Π΄ΠΈΠ½ΠΈΡΠ° Π½Π° DIO) Π½Π° Π²ΡΠ΅ΠΌΡ ΠΎΡΠ²Π΅ΡΠ° Π’Π.ΠΡΠΎΡ ΠΆΠ΅ Π±Π°ΠΉΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΡΡΠΈΠ»Π»ΠΎΠ³ΡΠ°ΡΠ° (ΡΠΈΡΡΠ½ΠΎΠΊ 7), ΡΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ΄Π½Π΅Π΅ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ. Π₯ΠΎΡΡ, Π΅ΡΠ»ΠΈ Π½Π΅ΠΏΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π½ΡΠΆΠ½Π° ΠΎΡΡΠΈΠ»Π»ΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠΉ ΠΏΠΎΡΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Π΄Π»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠ½Ρ ΡΠΎΡΠΈΠ³Π½Π°Π»Π° Π² Π½ΡΠΆΠ½ΠΎΠΌ Π±Π°ΠΉΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ DIO.
Π ΡΡΠ°ΡΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½Ρ ΠΏΡΠΎΠ΅ΠΊΡΡ Π² MPLAB ΠΈ PROTEUSβΠ΅.
ΠΠΎΡ ΡΠ°ΠΊ Ρ ΠΎΡΠΊΡΡΠ» Π΄Π»Ρ ΡΠ΅Π±Ρ Π½Π΅Π΄ΠΎΡΠΎΠ³ΠΎΠΉ ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ ΠΈ ΠΏΠΎΡΠΏΡΠ°ΠΆΠ½ΡΠ»ΡΡ Π² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΌ ΡΡΠ΅ΡΠ΅.
Π€Π°ΠΉΠ»Ρ:
ΠΡΠΎΠ΅ΠΊΡ Π² Proteus
ΠΡΠΎΠ΅ΠΊΡ Π² MPLAB
ΠΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ Π² Π€ΠΎΡΡΠΌ.
ΠΠ°ΠΊ Π²Π°ΠΌ ΡΡΠ° ΡΡΠ°ΡΡΡ? | ΠΠ°ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ Π»ΠΈ ΡΡΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Ρ Π²Π°Ρ? |
www.radiokot.ru