Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π΄Π»Ρ ΡΠ»Π΅ΠΊΡΡΠΎΡΠ½Π°
Π‘ΡΠ΅Π΄Π½ΡΡ ΡΠΎΡΠΊΠ° Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΡΠ΅Π·ΠΈΡΡΠΎΡΠ° — W; ΠΊΡΠ°ΠΉΠ½ΠΈΠ΅ ΡΠΎΡΠΊΠΈ — A, B. ΠΠΎΡΠ΅Π½ΡΠΈΠ°Π» ΡΡΠ΅Π΄Π½Π΅ΠΉ ΡΠΎΡΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ: VW = (VA-VB)Β· pos/256, Π³Π΄Π΅ pos — ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠΎΠΌΠ΅ΡΡΠ°, ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π½Π° ΠΏΠΎΡΠ΅Π½ΡΠΈΠΎΠΌΠ΅ΡΡ ΠΏΠΎ ΡΠΈΠ½Π΅ I2C. Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡ Π΅ΠΌΠ΅ Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΡΠ²ΠΎΠ΄ B ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΊ ΠΎΠ±ΡΠ΅ΠΌΡ ΠΏΡΠΎΠ²ΠΎΠ΄Ρ, Π²ΡΠ²ΠΎΠ΄ A — ΠΊ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ ΠΏΠΈΡΠ°Π½ΠΈΡ +5 ΠΠΎΠ»ΡΡ. ΠΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠΎΠΌΠ΅ΡΡΠ° ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΡ ΠΆΠ΅ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΡΠΎ Π²Ρ ΠΎΠ΄Π½ΠΎΠ΅… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π΄Π»Ρ ΡΠ»Π΅ΠΊΡΡΠΎΡΠ½Π° (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΡΡΡΠΎΠ²Π°Ρ ΡΠ°Π±ΠΎΡΠ°
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π΄Π»Ρ ΡΠ»Π΅ΠΊΡΡΠΎΡΠ½Π°
1. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ ΡΡ Π΅ΠΌΡ ΠΏΡΠΈΠ±ΠΎΡΠ°
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΡ Π΅ΠΌΠ°
ΠΠ° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π·Π°Π΄Π°ΡΠΈ Ρ ΡΡΡΡΠΎΠΌ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΡΡ Π΅ΠΌΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
ΠΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡ Π΅ΠΌΡ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠΎΠΊΠ° — ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΡΠΎΠΊΠ° ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ (ΠΠ’Π£Π). ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠΎΠΊΠ° Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠ΅ΡΠΈΠ·ΠΈΠΎΠ½Π½ΡΠΌ. ΠΠ°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠΈΠΌΡΠ»ΡΡΠΈΠΈ ΠΏΡΠΈ Π»ΡΠ±ΠΎΠΌ Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ ΡΠΎΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π΄ΠΎ 20 ΠΠΎΠ»ΡΡ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π² ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ Π²ΡΠΎΡΠΈΡΠ½ΡΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΠΏΠΈΡΠ°Π½ΠΈΡ Π½Π° Π²Π΅Π»ΠΈΡΠΈΠ½Ρ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ. ΠΠ»Ρ ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡ Π΅ΠΌΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΡΠΎΠΊΠ° Π±ΡΠ΄Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΠΠΠ Π½Π° 24 ΠΠΎΠ»ΡΡΠ°. ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΈΠΌΠΏΡΠ»ΡΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΡΠΎΡΠ½ΠΎ-ΠΈΠΌΠΏΡΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»ΡΡΠΎΡΠ° (PWM). ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π² ΡΠ½Π΅ΡΠ³ΠΎΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΡΠΈ ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²ΠΊΠ΅ ΠΈ ΡΡΠΈΡΡΠ²Π°ΡΡΡΡ ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΏΠΈΡΠ°Π½ΠΈΡ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π² ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ Π±Π»ΠΎΠΊ ΡΠ½Π΅ΡΠ³ΠΎΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ — Π ΠΠΠ£. ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡΡ Π½Π° Π°Π»ΡΠ°Π²ΠΈΡΠ½ΠΎ-ΡΠΈΡΡΠΎΠ²ΠΎΠΉ LCD-ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈ Π΄Π°Π½Π½ΡΠΉ Π±Π»ΠΎΠΊ. Π ΡΡ Π΅ΠΌΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠΈΠΌΡΠ»ΡΡΠΈΠ΅ΠΉ: «+» ΠΈ «-» — Π΄Π»Ρ ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²ΠΊΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², «param.» — Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΡΠ΅Π³ΡΠ»ΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°, «gen. — Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ / ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΠΎ Π΅ΡΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ Π±Π»ΠΎΠΊ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ. ΠΠΎΠ³ΠΈΠΊΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ±ΠΎΡΠ° Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΈΡΡΠΎΠ²ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. Π£ΠΊΠ°ΠΆΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅: 1) ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠΌ ΡΠΎΠΊΠ°: ΠΏΠΎΠ΄Π°Π²Π°ΡΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠΌΠΏΡΠ»ΡΡΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΠΌΡΠ΅ Π² ΡΠΎΠΊ, ΡΠΏΡΠ°Π²Π»ΡΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½ΠΎΠΉ ΡΠΎΠΊΠ°; 2) ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ: ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΠ΅Π½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΊΠ° ΡΡΠΈΠΌΡΠ»ΡΡΠΈΠΈ, Π²ΠΊΠ»ΡΡΠ°ΡΡ / ΠΎΡΠΊΠ»ΡΡΠ°ΡΡ ΡΡΠΈΠΌΡΠ»ΡΡΠΈΡ; 3) ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ LCD — Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ Π½Π° Π½Π΅Π³ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π²Π΅Π»ΠΈΡΠΈΠ½Π΅ ΡΠΎΠΊΠ° ΡΡΠΈΠΌΡΠ»ΡΡΠΈΠΈ, ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΡΠΈΠΌΡΠ»ΡΡΠΈΠΈ. ΠΠ»Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, LCD, Π ΠΠΠ£ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΠΏΠΈΡΠ°Π½ΠΈΡ Ρ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½ΠΈΠΆΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΡΠΎΠΊΠ° — 5 ΠΠΎΠ»ΡΡ. ΠΡΡΠΎΡΠ½ΠΈΠΊΠΈ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΡΠ°ΡΡΠ΅ΠΉ ΡΡ Π΅ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ. ΠΠΈΡΠ°Π½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ ΠΎΡ ΡΠ΅ΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠΊΠ° 220 ΠΠΎΠ»ΡΡ.
ΠΠ° ΠΎΡΠ½ΠΎΠ²Π΅ Π²ΡΠ΅Π³ΠΎ ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ΅ Π±ΡΠ»Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π° Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 1.
Π ΠΈΡΡΠ½ΠΎΠΊ 1 — Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ ΡΡ Π΅ΠΌΠ΅: 1) «ΠΠΠΠ 24V», «ΠΠΠΠ 5V» — Π²ΡΠΎΡΠΈΡΠ½ΡΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ ΡΠ»Π΅ΠΊΡΡΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ Π½Π°ΠΏΡΠΆΠ΅Π½ΠΈΡ; 2) ΠΠ’Π£Π — ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΡΠΎΠΊΠ° ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠ° Π΄Π°Π½Π½ΡΠΉ Π±Π»ΠΎΠΊ ΠΎΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ΄Π°ΡΡΡΡ ΡΠ°ΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠΈΠ³Π½Π°Π» ΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅Π΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅; 3) Π ΠΠΠ£ — ΡΠ½Π΅ΡΠ³ΠΎΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠ°Ρ ΠΏΠ°ΠΌΡΡΡ.
2. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΡ Π΅ΠΌΡ ΠΏΡΠΈΠ±ΠΎΡΠ°
2.1 Π£ΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
Π ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΌΠ°Π»ΠΎΠ³Π°Π±Π°ΡΠΈΡΠ½ΡΡ ΡΠΈΡΡΠΎΠ²ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ (ΠΠ). ΠΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΡ ΠΎΠ΄ΡΡ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ: 1) ΠΠ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΉ ΠΎΠ±ΡΡΠΌ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΏΠ°ΠΌΡΡΠΈ Π΄Π°Π½Π½ΡΡ , Π½Π°Π±ΠΎΡ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ; 2) ΡΠ΅ΡΡΡΡΡ ΠΠ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Ρ, ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΠ·Π»Ρ ΡΡ Π΅ΠΌΡ; 3) Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΡΠΌΠΈ ΡΠ°ΠΊΡΠΎΡΠ°ΠΌΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΡΠ»Π°Π΄ΠΊΠΈ, ΡΠ΅Π½Π° ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΠ.
ΠΠ»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ Ρ ΠΎΡΠΎΡΠΈΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ATTiny2313 ΡΠΈΡΠΌΡ Atmel.
Π£ΠΊΠ°ΠΆΠ΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΠ [1]:
— flash-ΠΏΠ°ΠΌΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΎΠ±ΡΡΠΌΠΎΠΌ 2 ΠΊΠ;
— EEPROM-ΠΏΠ°ΠΌΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΎΠ±ΡΡΠΌΠΎΠΌ 128 Π±Π°ΠΉΡ;
— ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π°Ρ ΠΏΠ°ΠΌΡΡΡ Π΄Π°Π½Π½ΡΡ SRAM ΠΎΠ±ΡΡΠΌΠΎΠΌ 128 Π±Π°ΠΉΡ;
— ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠ°ΠΊΡΠΎΠ²Π°Ρ ΡΠ°ΡΡΠΎΡΠ° — 20 ΠΠΡ ΠΏΡΠΈ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΊΠ²Π°ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ΅Π·ΠΎΠ½Π°ΡΠΎΡΠ°; 4 ΠΈΠ»ΠΈ 8 ΠΠΡ ΠΏΡΠΈ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°;
— ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ 18 Π»ΠΈΠ½ΠΈΠΉ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° (Π΅ΡΠ»ΠΈ PA0/XTAL1, PA1/XTAL2, PA2/Reset ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΊΠ°ΠΊ Π»ΠΈΠ½ΠΈΠΈ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°), ΠΈΠ½Π°ΡΠ΅ 15 Π»ΠΈΠ½ΠΈΠΉ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°;
— Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² Π²Π½Π΅ΡΠ½ΠΈΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ: ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π»ΡΠ±ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ PORTB, ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΏΠΎ PD2, PD3;
— ΠΎΠ΄ΠΈΠ½ Π²ΠΎΡΡΠΌΠΈΠ±ΠΈΡΠ½ΡΠΉ ΡΠ°ΠΉΠΌΠ΅Ρ T0 Ρ Π΄Π²ΡΠΌΡ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ;
— ΠΎΠ΄ΠΈΠ½ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠΈΠ±ΠΈΡΠ½ΡΠΉ ΡΠ°ΠΉΠΌΠ΅Ρ — T1 Ρ Π΄Π²ΡΠΌΡ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ PWM, ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ Π·Π°Ρ Π²Π°ΡΠ°;
— ΠΏΠΎΠ»Π½ΠΎΠ΄ΡΠΏΠ»Π΅ΠΊΡΠ½ΡΠΉ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ / Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ USART;
— ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ USI;
— Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΏΠ°ΡΠ°ΡΠΎΡ;
— Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²Π½ΡΡΡΠΈΡΡ Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ SPI-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ.
ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Π² PDIP-ΠΊΠΎΡΠΏΡΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 2.1.
Π ΠΈΡΡΠ½ΠΎΠΊ 2.1 — ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° ATTiny2313
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ, ΠΠ ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΉ ΠΎΠ±ΡΡΠΌ ΠΏΠ°ΠΌΡΡΠΈ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»-Π²ΠΎ Π»ΠΈΠ½ΠΈΠΉ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°. ΠΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ ΡΡ Π΅ΠΌΡ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ. Π Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π±Π»ΠΎΠΊΠ° «Π ΠΠΠ£» ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΡΠ½Π΅ΡΠ³ΠΎΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠ°Ρ ΠΏΠ°ΠΌΡΡΡ Π΄Π°Π½Π½ΡΡ EEPROM.
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΊΠΈΡ ΠΈΠΌΠΏΡΠ»ΡΡΠΎΠ² Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΡΡ ΠΏΠΎ ΡΠ°ΡΡΠΎΡΠ΅ ΠΈ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠ½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΠΎΡΠ½ΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π²ΡΡΠΎΠΊΠΎΡΠ°ΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΊΠ²Π°ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ΅Π·ΠΎΠ½Π°ΡΠΎΡΠ°. ΠΠΎΡΡΠΎΠΌΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΊΠ²Π°ΡΡΠ΅Π²ΡΠΉ ΡΠ΅Π·ΠΎΠ½Π°ΡΠΎΡ Π½Π° ΡΠ°ΡΡΠΎΡΡ Π±Π»ΠΈΠ·ΠΊΡΡ ΠΊ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΎΡΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° — 16 ΠΠΡ.
Fuse-Π±ΠΈΡΡ ΠΠ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: CKSEL3…0=1111 — ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΠ§ ΠΊΠ²Π°ΡΡΠ΅Π²ΠΎΠ³ΠΎ / ΠΊΠ΅ΡΠ°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅Π·ΠΎΠ½Π°ΡΠΎΡΠ°; CKDIV8=1 — Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΡΠ°ΡΡΠΎΡΡ Π½Π° 8 ΠΎΡΠΊΠ»ΡΡΠ΅Π½; BODLEVEL2…0 = 101 — ΡΠ±ΡΠΎΡ ΠΠ ΠΏΡΠΈ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΠΈ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ ΠΏΠΈΡΠ°Π½ΠΈΡ Π΄ΠΎ 2,7 ΠΠΎΠ»ΡΡ, Π΄Π»Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π·Π°ΡΠΈΡΡ flash ΠΈ EEPROM ΠΎΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ³ΠΎ ΡΡΠΈΡΠ°Π½ΠΈΡ.
2.2 ΠΡΡΠΎΡΠ½ΠΈΠΊ ΡΠΎΠΊΠ° ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΠΈΡΠ°Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΡΠΎΠΊΠ° ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ — Π±Π»ΠΎΠΊΠ°, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½ ΡΠ°ΠΌ ΠΊΠ°Π½Π°Π» ΡΡΠΈΠΌΡΠ»ΡΡΠΈΠΈ. Π Π½Π°ΡΠ°Π»Π΅ Π΅ΡΡ ΡΠ°Π· ΡΠΊΠ°ΠΆΠ΅ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠΈΠΌΡΠ»ΡΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ²Π»ΡΡΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΡΠΎΠΊΠ°. Π’ΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ 0,2 Π΄ΠΎ 3 ΠΌΠ Ρ ΡΠ°Π³ΠΎΠΌ 0,2 ΠΌΠ, ΠΈΠΌΠΏΡΠ»ΡΡΡ ΡΠΎΠΊΠ° — ΠΎΠ΄Π½ΠΎΠΏΠΎΠ»ΡΡΠ½ΡΠ΅, Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠΈΠΌΡΠ»ΡΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ Π΄ΠΎ 20 ΠΠΎΠ»ΡΡ ΠΏΡΠΈ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ Π²Π΅Π»ΠΈΡΠΈΠ½Π΅ ΡΠΎΠΊΠ°.
Π Π΅Π³ΡΠ»ΠΈΡΡΠ΅ΠΌΡΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΡΠΎΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π½Π° ΡΡΠ°Π½Π·ΠΈΡΡΠΎΡΠ°Ρ . ΠΠΎ ΡΡΠ°Π½Π·ΠΈΡΡΠΎΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ, ΠΈ Π΅Π³ΠΎ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΡΠΈΠ»ΡΠ½ΠΎ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ Π²Π½Π΅ΡΠ½ΠΈΡ ΡΠ°ΠΊΡΠΎΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΡ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ. ΠΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΡΠΎΠΊΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΡΠΈΠ»ΠΈΡΠ΅Π»ΡΡ . Π‘ΡΡΡΠΊΡΡΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠΎΠΊΠ° Π½Π° ΠΠ£ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΠ΅ΠΉ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΠΠΠ‘ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π° Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 2.2.
Π ΠΈΡΡΠ½ΠΎΠΊ 2.2 — Π‘ΡΡΡΠΊΡΡΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠΎΠΊΠ° Π½Π° ΠΠ£ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΠ΅ΠΉ ΠΠΠ‘
Π£ΠΊΠ°ΠΆΠ΅ΠΌ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΡ Π΅ΠΌΠ΅ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 2.2: OP1 — ΡΠΎΠΊΠΎΠ·Π°Π΄Π°ΡΡΠΈΠΉ ΠΠ£; OP2 — Π½Π΅ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡ Π΅ΠΌΠ° Π΄ΠΈΡΡΠ΅ΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΈΠ»ΠΈΡΠ΅Π»Ρ, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π² ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΡΠ²ΡΠ·Ρ; Ri — ΡΠΎΠΊΠΎΠ·Π°Π΄Π°ΡΡΠΈΠΉ ΡΠ΅Π·ΠΈΡΡΠΎΡ; RΠ½ — ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π°Π³ΡΡΠ·ΠΊΠΈ.
ΠΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ Π΅ΠΌΡ. Π ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ ΠΠ£ Π²ΠΊΠ»ΡΡΡΠ½ Ρ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΡΡ, ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Ρ Π½Π° Π²Ρ ΠΎΠ΄Π°Ρ ΠΠ£ ΡΡΡΠ΅ΠΌΡΡΡΡ Π±ΡΡΡ ΡΠ°Π²Π½ΡΠΌΠΈ, Ρ. Π΅. ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π» Π½Π° ΠΈΠ½Π²Π΅ΡΡΠ½ΠΎΠΌ Π²Ρ ΠΎΠ΄Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ°Π²Π΅Π½ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Ρ Π½Π° Π½Π΅ΠΈΠ½Π²Π΅ΡΡΠ½ΠΎΠΌ, Ρ. Π΅. ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Ρ Π½Π° Π²ΡΡ ΠΎΠ΄Π΅ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ ΠΠ. ΠΠΈΡΡΠ΅ΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΡΠΈΠ»ΠΈΡΠ΅Π»Ρ OP2 ΡΡΠΈΠ»ΠΈΠ²Π°Π΅Ρ ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠΎΠΊΠΎΠ·Π°Π΄Π°ΡΡΠ΅ΠΌ ΡΠ΅Π·ΠΈΡΡΠΎΡΠ΅ Ri Π΄ΠΎ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ UΠ²Ρ :
(2.1)
Π³Π΄Π΅ G — ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΡΡΠΈΠ»Π΅Π½ΠΈΡ Π΄ΠΈΡΡΠ΅ΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΈΠ»ΠΈΡΠ΅Π»Ρ.
ΠΠ°Π΄Π΅Π½ΠΈΠ΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Ri ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎ ΡΠΎΡΠΌΡΠ»Π΅:
(2.2)
Π³Π΄Π΅ IRi — ΡΠΎΠΊ ΡΠ΅ΡΠ΅Π· ΡΠΎΠΊΠΎΠ·Π°Π΄Π°ΡΡΠΈΠΉ ΡΠ΅Π·ΠΈΡΡΠΎΡ Ri, ΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²Ρ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΈΡΡΠ΅ΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΈΠ»ΠΈΡΠ΅Π»Ρ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ ΡΡΠΎ ΡΠΎΠΊ IRi ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠΎΠΊΡ ΡΠ΅ΡΠ΅Π· Π½Π°Π³ΡΡΠ·ΠΊΡ IΠ½.
ΠΠΎΠ΄ΡΡΠ°Π²ΠΈΠ² (2.2) Π² (2.1) ΠΏΠΎΠ»ΡΡΠΈΠΌ:
(2.3)
ΠΡΡΡΠ΄Π° ΡΠΎΠΊ ΡΠ΅ΡΠ΅Π· ΡΠ΅Π·ΠΈΡΡΠΎΡ:
(2.4)
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΠΌ ΠΈΠ· ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ (2.4), Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΡΠΎΠΊΠ°, Π²Π΅Π»ΠΈΡΠΈΠ½Π° ΡΠΎΠΊΠ° ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΡΠΌΠΎ ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»ΡΠ½Π° Π²Ρ ΠΎΠ΄Π½ΠΎΠΌΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»ΡΠ½Π° ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΠΊΠΎΠ·Π°Π΄Π°ΡΡΠ΅Π³ΠΎ ΡΠ΅Π·ΠΈΡΡΠΎΡΠ°. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π²Ρ ΠΎΠ΄ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ Π΅ΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ ΠΠ, ΡΠΎ Π²Ρ ΠΎΠ΄Π½ΠΎΠ΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ 2 ΡΡΠΎΠ²Π½Ρ: ΡΡΠΎΠ²Π΅Π½Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π½ΡΠ»Ρ — ΠΎΠΊΠΎΠ»ΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π° Π·Π΅ΠΌΠ»ΠΈ ΠΈ ΡΡΠΎΠ²Π΅Π½Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ Π΅Π΄ΠΈΠ½ΠΈΡΡ — Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠΊΠΎΠ»ΠΎ 5 ΠΠΎΠ»ΡΡ. ΠΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π±ΡΠ΄Π΅ΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΠ΅ ΡΠ°ΡΡΡΡΡ.
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π²Ρ ΠΎΠ΄Π½ΠΎΠ΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΡ Π΅ΠΌΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ 2 ΡΡΠΎΠ²Π½Ρ, ΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½Π°Ρ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 2.2 ΡΡ Π΅ΠΌΠ° ΠΈΠΌΠ΅Π΅Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ: Π΄Π°Π½Π½ΡΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΡΠΎΠΊΠ° Π½Π΅ΡΠ΅Π³ΡΠ»ΠΈΡΡΠ΅ΠΌΡΠΉ.
Π£ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΡΠ΅ΠΌ ΡΡ Π΅ΠΌΡ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 2.2 Ρ ΡΠ΅Π»ΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π³ΡΠ»ΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΡΠΎΠΊΠ°. Π£ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°Π½Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΡ Π΅ΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 2.3.
Π ΠΈΡΡΠ½ΠΎΠΊ 2.3 — Π‘ΡΡΡΠΊΡΡΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° ΡΠ΅Π³ΡΠ»ΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΡΠΎΠΊΠ°
Π ΡΠ»ΡΡΠ°Π΅ ΡΡ Π΅ΠΌΡ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 2.3 ΡΡΠΈΠ»ΠΈΡΠ΅Π»Ρ OP2 ΡΡΠΈΠ»ΠΈΠ²Π°Π΅Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠΏΠΎΡΠ½ΠΎΠ³ΠΎ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ Uref.
Π€ΠΎΡΠΌΡΠ»Π° (2.3) Π΄Π»Ρ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π²ΠΈΠ΄:
(2.5)
ΠΈ ΡΠΎΡΠΌΡΠ»Π° Π΄Π»Ρ ΡΠΎΠΊΠ° ΡΠ΅ΡΠ΅Π· Π½Π°Π³ΡΡΠ·ΠΊΡ:
(2.6)
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΠΌ ΠΈΠ· (2.6), ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅Π΅ ΠΎΠΏΠΎΡΠ½ΠΎΠ΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠΈΠ»ΠΈΡΠ΅Π»Ρ OP2, ΡΠ΅ΠΌ ΠΌΠ΅Π½ΡΡΠ΅ ΡΠΎΠΊ ΡΠ΅ΡΠ΅Π· Π½Π°Π³ΡΡΠ·ΠΊΡ. ΠΡΠΈ Uref = 0 ΡΠΎΡΠΌΡΠ»Π° (2.6) ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ Π²ΠΈΠ΄Ρ (2.4), Ρ. Π΅. Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΡΠ΄Π΅Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΉ ΡΠΎΠΊ ΡΠ΅ΡΠ΅Π· Π½Π°Π³ΡΡΠ·ΠΊΡ. ΠΡΠΈ Uref = UΠ²Ρ = 5 ΠΠΎΠ»ΡΡ ΡΠΎΠΊ ΡΠ΅ΡΠ΅Π· Π½Π°Π³ΡΡΠ·ΠΊΡ Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π΅Π½ Π½ΡΠ»Ρ.
ΠΠ΅ΡΠ΅ΠΉΠ΄ΡΠΌ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΡ Π΅ΠΌΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΡΠΎΠΊΠ°. ΠΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π° Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 2.4.
Π ΠΈΡΡΠ½ΠΎΠΊ 2.4 — ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΡΠΎΠΊΠ°
ΠΠΈΡΡΠ΅ΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΡΠΈΠ»ΠΈΡΠ΅Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΡΠΈΠ»ΠΈΡΠ΅Π»ΡΡ OP2, OP2 ΠΈ ΡΠ΅Π·ΠΈΡΡΠΎΡΠ°Ρ Π²ΠΊΠ»ΡΡΡΠ½Π½ΡΡ Π² ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΡΠ²ΡΠ·Ρ. ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΡΠ°ΡΡΡΡΠΎΠ² Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΡΠ΅Π·ΠΈΡΡΠΎΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π²Π½ΡΠ΅ Π½ΠΎΠΌΠΈΠ½Π°Π»Ρ — Π½Π° ΡΡ Π΅ΠΌΠ΅ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 2.4 ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ ΡΠ΅Π·ΠΈΡΡΠΎΡΡ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΡΡΠΈΠ»Π΅Π½ΠΈΡ Π΄ΠΈΡΡΠ΅ΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΈΠ»ΠΈΡΠ΅Π»Ρ, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ , ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎ ΡΠΎΡΠΌΡΠ»Π΅:
(2.7)
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΎΠΊΠΎΠ·Π°Π΄Π°ΡΡΠ΅ΠΌ ΡΠ΅Π·ΠΈΡΡΠΎΡΠ΅, ΡΠΎ Π΅ΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Π½Π° Π½Π°Π³ΡΡΠ·ΠΊΠ΅. Π’ΠΎ Π΅ΡΡΡ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ²ΡΡΠΈΡΡ Π΅Π³ΠΎ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΡΡΠΈΠ»Π΅Π½ΠΈΡ Π·Π° ΡΡΡΡ ΠΏΠΎΠ΄Π±ΠΎΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ Π½ΠΎΠΌΠΈΠ½Π°Π»ΠΎΠ² ΡΠ΅Π·ΠΈΡΡΠΎΡΠΎΠ². ΠΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΡΡΠΈΠ»Π΅Π½ΠΈΡ G=10. ΠΠ»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠ° ΡΡΠΈΠ»Π΅Π½ΠΈΡ ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΡΡΠ΄Π° Π½ΠΎΠΌΠΈΠ½Π°Π»ΠΎΠ² ΡΠ΅Π·ΠΈΡΡΠΎΡΠΎΠ² Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ: R1 = 20 ΠΊΠΠΌ, R2 = 180 ΠΊΠΠΌ.
Π Π°ΡΡΡΠΈΡΠ°Π΅ΠΌ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΊΠΎΠ·Π°Π΄Π°ΡΡΠ΅Π³ΠΎ ΡΠ΅Π·ΠΈΡΡΠΎΡΠ° Π΄Π»Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ ΡΠΎΠΊΠ° 3 ΠΌΠ.
ΠΠ· ΡΠΎΡΠΌΡΠ»Ρ (2.4) Π²ΡΡΠ°Π·ΠΈΠΌ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π·ΠΈΡΡΠΎΡΠ° Ri Π΄Π»Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠΊΠ°:
(2.8)
ΠΠΎΠ΄ΡΡΠ°Π²ΠΈΠ² Π² (2.8) UΠ²Ρ = 5 Π, IRi = 3 ΠΌΠ, G = 10 Π½Π°ΠΉΠ΄ΡΠΌ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΊΠΎΠ·Π°Π΄Π°ΡΡΠ΅Π³ΠΎ ΡΠ΅Π·ΠΈΡΡΠΎΡΠ°: Ri? 167 ΠΠΌ. ΠΠ· ΠΏΡΠ΅ΡΠΈΠ·ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΡΠ΄Π° Π½ΠΎΠΌΠΈΠ½Π°Π»ΠΎΠ² ΡΠ΅Π·ΠΈΡΡΠΎΡΠΎΠ² E96 Π²ΡΠ±Π΅ΡΠ΅ΠΌ Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠΉ ΠΊ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ: Ri = 165 ΠΠΌ.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠ±ΡΠ°ΡΡ ΡΠ°ΠΊΠΈΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ ΠΏΠΎ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ ΠΏΠΈΡΠ°Π½ΠΈΡ, ΡΠ°ΡΡΠΎΡΠ΅, ΠΈ Ρ. Π΄. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠΈΠ»ΠΈΡΠ΅Π»Π΅ΠΉ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ ΠΏΡΠ΅ΡΠΈΠ·ΠΈΠΎΠ½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΡΠΈΠ»ΠΈΡΠ΅Π»Π΅ΠΉ OPA277, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ [3]: Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ: 10 ΠΌΠΊΠ; Π΄ΡΠ΅ΠΉΡ Π½ΡΠ»Ρ: 0,1 ΠΌΠΊΠ/Β°C; Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΠΎΠΊ: 1 Π½Π; ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ°Ρ ΡΠ°ΡΡΠΎΡΠ°: 1 ΠΠΡ; ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΈ ΠΎΠ΄Π½ΠΎΠΏΠΎΠ»ΡΡΠ½ΠΎΠΌ ΠΏΠΈΡΠ°Π½ΠΈΠΈ: 36 ΠΠΎΠ»ΡΡ.
ΠΠ°Π»Π΅Π΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡ Π΅ΠΌΡ ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²ΠΊΠΈ ΠΎΠΏΠΎΡΠ½ΠΎΠ³ΠΎ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ Π΄ΠΈΡΡΠ΅ΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΈΠ»ΠΈΡΠ΅Π»Ρ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠΎΠΌΠ΅ΡΡ. ΠΠΎ ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡ Π΅ΠΌΠ° Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°, ΡΠΎ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΠΎΡΠ΅Π½ΡΠΈΠΎΠΌΠ΅ΡΡ Π±ΡΠ»ΠΎ Π±Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π½Π΅ΡΠ°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ, Ρ ΠΎΡΠΎΡΠΈΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΈΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠΎΠΌΠ΅ΡΡΠ° Ρ ΡΠΈΡΡΠΎΠ²ΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ ΡΠΈΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠΎΠΌΠ΅ΡΡΠ° ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ AD5241BR100 ΡΠΈΡΠΌΡ Analog Devices. ΠΠ°Π½Π½Π°Ρ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ° ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΈΠ½Π΅ I2C, ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ²ΠΎΠ΄Π°ΠΌΠΈ 100 ΠΊΠΠΌ, 256 ΠΏΠΎΠ·ΠΈΡΠΈΠΉ Π΄Π»Ρ ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²ΠΊΠΈ. Π‘ΡΡΡΠΊΡΡΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ ΡΠΈΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠΎΠΌΠ΅ΡΡΠ° ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 2.5.
Π ΠΈΡΡΠ½ΠΎΠΊ 2.5 — Π‘ΡΡΡΠΊΡΡΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ ΡΠΈΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠΎΠΌΠ΅ΡΡΠ° AD5290BR100
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΠΌ ΠΈΠ· ΡΡ Π΅ΠΌΡ, ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ° ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠΎΠΌΠ΅ΡΡΠ° ΠΈΠΌΠ΅Π΅Ρ Π² ΡΠ²ΠΎΡΠΌ ΡΠΎΡΡΠ°Π²Π΅ 2 Π²ΡΡ ΠΎΠ΄Π½ΡΡ ΡΠΈΡΡΠΎΠ²ΡΡ Π»ΠΈΠ½ΠΈΠΈ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ: O1, O2, Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΈ Π»ΠΈΠ½ΠΈΠΈ Π½Π΅ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Ρ. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ° ΠΈΠΌΠ΅Π΅Ρ 2 Π°Π΄ΡΠ΅ΡΠ½ΡΡ Π²Ρ ΠΎΠ΄Π°: AD0, AD1, Ρ. Π΅. Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π΄ΠΎ ΡΠ΅ΡΡΡΡΡ ΡΠ°ΠΊΠΈΡ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌ. ΠΠΌΠ΅Π΅ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ Π²Ρ ΠΎΠ΄ SHDN, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΠΊΠ»ΡΡΠ°Π΅Ρ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ ΠΏΡΠΈ ΠΏΠΎΠ΄Π°ΡΠ΅ Π½Π° Π½Π΅Π³ΠΎ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ — ΡΠΎΠΊ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΡΠ½ΠΈΠΆΠ°Π΅ΡΡΡ Π΄ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΌΠΈΠΊΡΠΎΠ°ΠΌΠΏΠ΅Ρ, W Π·Π°ΠΌΡΠΊΠ°Π΅ΡΡΡ Ρ B.
Π‘ΡΠ΅Π΄Π½ΡΡ ΡΠΎΡΠΊΠ° Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΡΠ΅Π·ΠΈΡΡΠΎΡΠ° — W; ΠΊΡΠ°ΠΉΠ½ΠΈΠ΅ ΡΠΎΡΠΊΠΈ — A, B. ΠΠΎΡΠ΅Π½ΡΠΈΠ°Π» ΡΡΠ΅Π΄Π½Π΅ΠΉ ΡΠΎΡΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ: VW = (VA-VB)Β· pos/256, Π³Π΄Π΅ pos — ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠΎΠΌΠ΅ΡΡΠ°, ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π½Π° ΠΏΠΎΡΠ΅Π½ΡΠΈΠΎΠΌΠ΅ΡΡ ΠΏΠΎ ΡΠΈΠ½Π΅ I2C. Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡ Π΅ΠΌΠ΅ Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΡΠ²ΠΎΠ΄ B ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΊ ΠΎΠ±ΡΠ΅ΠΌΡ ΠΏΡΠΎΠ²ΠΎΠ΄Ρ, Π²ΡΠ²ΠΎΠ΄ A — ΠΊ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ ΠΏΠΈΡΠ°Π½ΠΈΡ +5 ΠΠΎΠ»ΡΡ. ΠΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠΎΠΌΠ΅ΡΡΠ° ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΡ ΠΆΠ΅ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΡΠΎ Π²Ρ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ Π²Ρ ΠΎΠ΄Π° ΠΎΠΏΠΎΡΠ½ΠΎΠ³ΠΎ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ Π΄ΠΈΡΡΠ΅ΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΈΠ»ΠΈΡΠ΅Π»Ρ, ΡΠΎ Π΅ΡΡΡ Π΅ΡΠ»ΠΈ Π²ΡΡ ΠΎΠ΄ W ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ Π½Π°ΠΏΡΡΠΌΡΡ ΠΊ Π²Ρ ΠΎΠ΄Ρ ΠΎΠΏΠΎΡΠ½ΠΎΠ³ΠΎ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ, ΡΠΎ Π±ΡΠ΄Π΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ΅ Π²Π»ΠΈΡΠ½ΠΈΠ΅ ΠΏΠΎΡΠ΅Π½ΡΠΈΠΎΠΌΠ΅ΡΡΠ° ΠΈ Π²Ρ ΠΎΠ΄Π° ΡΡΠΈΠ»ΠΈΡΠ΅Π»Ρ. Π’ΠΎ Π΅ΡΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° ΡΠ°Π·Π²ΡΠ·ΠΊΠ° Π²ΡΡ ΠΎΠ΄Π° ΠΏΠΎΡΠ΅Π½ΡΠΈΠΎΠΌΠ΅ΡΡΠ° Ρ Π²Ρ ΠΎΠ΄ΠΎΠΌ ΠΎΠΏΠΎΡΠ½ΠΎΠ³ΠΎ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ ΡΡΠΈΠ»ΠΈΡΠ΅Π»Ρ. Π Π°Π·Π²ΡΠ·ΠΊΡ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ΅Π· ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΡΠΈΠ»ΠΈΡΠ΅Π»Ρ, Π²ΠΊΠ»ΡΡΡΠ½Π½ΡΠΉ ΠΏΠΎ ΡΡ Π΅ΠΌΠ΅ Π½Π΅ΠΈΠ½Π²Π΅ΡΡΠΈΡΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΠ΅Π»Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΡ ΠΎΠ΄ΠΎΠΌ W ΠΈ Π²Ρ ΠΎΠ΄ΠΎΠΌ ΠΎΠΏΠΎΡΠ½ΠΎΠ³ΠΎ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ.
2.3 Π‘Ρ Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ
ΠΠ°ΠΊ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ, Π² ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ: ΠΊΠ½ΠΎΠΏΠΊΠ° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ / ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ «gen», ΠΊΠ½ΠΎΠΏΠΊΠ° Π²ΡΠ±ΠΎΡΠ° ΡΠ΅Π³ΡΠ»ΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° «param.», ΠΊΠ½ΠΎΠΏΠΊΠΈ ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²ΠΊΠΈ ΡΠΎΠΊΠ° ΡΡΠΈΠΌΡΠ»ΡΡΠΈΠΈ «+» ΠΈ «-».
ΠΡΠ±ΡΠ°Π½Π½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΠ ΠΈΠΌΠ΅Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°ΡΡΠΈΡ ΡΠ΅Π·ΠΈΡΡΠΎΡΠΎΠ² Π½Π° Π»ΡΠ±ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°. ΠΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΡΠ΅Π·ΠΈΡΡΠΎΡΠ° ΠΊΠ½ΠΎΠΏΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: ΠΏΠ΅ΡΠ²ΡΠΉ Π²ΡΠ²ΠΎΠ΄ ΠΊΠ½ΠΎΠΏΠΊΠΈ — ΠΊ Π»ΠΈΠ½ΠΈΠΈ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°, Π° Π²ΡΠΎΡΠΎΠΉ — ΠΊ ΠΎΠ±ΡΠ΅ΠΌΡ ΠΏΡΠΎΠ²ΠΎΠ΄Ρ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π»ΠΈΠ½ΠΈΠΈ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°, Π΅ΡΠ»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΎΡΠΏΡΡΠ΅Π½Π° Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΠΈΡΠ°Π½Π° «1», Π΅ΡΠ»ΠΈ Π½Π°ΠΆΠ°ΡΠ° — «0». ΠΠ½ΠΎΠΏΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ Π»ΠΈΠ½ΠΈΡΠΌ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°: ΠΊΠ½ΠΎΠΏΠΊΠ° «gen.» — PB0; ΠΊΠ½ΠΎΠΏΠΊΠ° «param.» — PB1; ΠΊΠ½ΠΎΠΏΠΊΠ° «+» — PB2; ΠΊΠ½ΠΎΠΏΠΊΠ° «-» — PB3.
2.4 Π£ΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΠΈ
Π Π·Π°Π΄Π°Π½ΠΈΠΈ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ LCD-ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΡΠ²ΠΎΠ΄Π° Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π°Π»ΡΠ°Π²ΠΈΡΠ½ΠΎ-ΡΠΈΡΡΠΎΠ²ΠΎΠΉ LCD-ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ Ρ ΡΠΈΡΠ»ΠΎΠΌ Π·Π½Π°ΠΊΠΎΠΌΠ΅ΡΡ 16×2.
ΠΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ Π°Π»ΡΠ°Π²ΠΈΡΠ½ΠΎ-ΡΠΈΡΡΠΎΠ²ΠΎΠΉ LCD-ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ LM016L ΡΠΈΡΠΌΡ Hitachi. ΠΡΠ±ΡΠ°Π½Π½ΡΠΉ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΠΌΠΈ:
— ΡΠΈΡΠ»ΠΎ Π·Π½Π°ΠΊΠΎΠΌΠ΅ΡΡ: 16×2;
— Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΎΡ: Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ, Π΅Π²ΡΠΎΠΏΠ΅ΠΉΡΠΊΠΈΠΉ;
— Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ LCD HD44780 [5];
— Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΈΡΠ°Π½ΠΈΡ: 5 ΠΠΎΠ»ΡΡ;
— ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²ΠΊΠΈ ΠΊΠΎΠ½ΡΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΠΎ Π΅ΡΡΡ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²ΠΊΠΈ ΠΊΠΎΠ½ΡΡΠ°ΡΡΠ½ΠΎΡΡΠΈ V0 ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 2.5.
Π ΠΈΡΡΠ½ΠΎΠΊ 2.5 — ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²ΠΊΠΈ ΠΊΠΎΠ½ΡΡΠ°ΡΡΠ½ΠΎΡΡΠΈ LCD — ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ°
Π ΡΡ Π΅ΠΌΠ΅ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 2.5 ΡΠ΅Π·ΠΈΡΡΠΎΡΡ R, VR Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ Π½ΠΎΠΌΠΈΠ½Π°Π»Ρ 10…22 ΠΊΠΠΌ. ΠΠΎΠ΄ΡΡΡΠΎΠ΅ΡΠ½ΡΠΉ ΡΠ΅Π·ΠΈΡΡΠΎΡ VR, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠ΅Π³ΡΠ»ΠΈΡΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΊΡΠ°ΡΠ½ΠΎ, ΠΏΠΎΡΠ»Π΅ ΡΠ±ΠΎΡΠΊΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
Π ΡΠ°Π±Π»ΠΈΡΠ΅ 2.1 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄ΠΎΠ² ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ° ΠΈ ΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π² ΡΡ Π΅ΠΌΠ΅.
Π’Π°Π±Π»ΠΈΡΠ° 2.1 — ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄ΠΎΠ² ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ°
β | ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ | ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄Π° Π² ΡΡ Π΅ΠΌΠ΅ | |
Vss | ΠΠ±ΡΠΈΠΉ ΠΏΡΠΎΠ²ΠΎΠ΄ | ||
Vdd | ΠΡΠ²ΠΎΠ΄ ΠΏΠΈΡΠ°Π½ΠΈΡ | ||
V0 | ΠΡΠ²ΠΎΠ΄ ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²ΠΊΠΈ ΠΊΠΎΠ½ΡΡΠ°ΡΡΠ½ΠΎΡΡΠΈ. ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 2.5 | ||
RS | ΠΡ ΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ LCD — Π²ΡΠ±ΠΎΡ ΡΠ΅Π³ΠΈΡΡΡΠ°, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½ ΠΊ Π»ΠΈΠ½ΠΈΠΈ PD1 ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° | ||
R/W | ΠΡ ΠΎΠ΄ Π²ΡΠ±ΠΎΡΠ° Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΈΠ½Ρ LCD (Π·Π°ΠΏΠΈΡΡ / ΡΡΠ΅Π½ΠΈΠ΅), Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΡΠ²ΠΎΠ΄ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΊ ΠΎΠ±ΡΠ΅ΠΌΡ ΠΏΡΠΎΠ²ΠΎΠ΄Ρ | ||
E | ΠΡ ΠΎΠ΄ ΡΡΡΠΎΠ±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ LCD. ΠΠΎΠ΄ΠΊΠ»ΡΡΡΠ½ ΠΊ Π»ΠΈΠ½ΠΈΠΈ PD2 | ||
7…14 | DB0…DB7 | Π¨ΠΈΠ½Π° Π΄Π°Π½Π½ΡΡ LCD-ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ°. ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΏΠΎ ΡΠ΅ΡΡΡΡΡ Π±ΠΈΡΠ½ΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΊ Π»ΠΈΠ½ΠΈΡΠΌ PD3… PD6 ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° | |
Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ [5], ΠΎΡΠΏΡΠ°Π²ΠΊΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ / Π΄Π°Π½Π½ΡΡ Π½Π° LCD ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ:
1) ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π½Π° Π»ΠΈΠ½ΠΈΠΈ RS (PD1): «0» — ΠΊΠΎΠΌΠ°Π½Π΄Π°, «1» — Π΄Π°Π½Π½ΡΠ΅;
2) Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π² Π»ΠΈΠ½ΠΈΠΈ PD6… PD3 Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°ΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ±Π°ΠΉΡΠ°;
3) Π½Π° Π»ΠΈΠ½ΠΈΠΈ E (PD2) ΡΠΎΡΠΌΠΈΡΡΠ΅ΠΌ ΡΠΈΠ½Ρ ΡΠΎΠΈΠΌΠΏΡΠ»ΡΡ «0"> «1"> «0»;
4) Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π² Π»ΠΈΠ½ΠΈΠΈ PD6… PD3 Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ»Π°Π΄ΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ±Π°ΠΉΡΠ°;
5) Π½Π° Π»ΠΈΠ½ΠΈΠΈ E (PD2) ΡΠΎΡΠΌΠΈΡΡΠ΅ΠΌ ΡΠΈΠ½Ρ ΡΠΎΠΈΠΌΠΏΡΠ»ΡΡ «0"> «1"> «0»;
6) ΡΠΎΡΠΌΠΈΡΡΠ΅ΠΌ Π·Π°Π΄Π΅ΡΠΆΠΊΡ ΠΏΠΎΡΡΠ΄ΠΊΠ° 64 ΠΌΠΊΡ Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π»ΡΠ±ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΊΡΠΎΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΡΠΈΡΡΠΊΠΈ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ° = 0×01, ΠΈ 1,5 ΠΌΡ Π² ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΡΠΈΡΡΠΊΠΈ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ°.
2.5 Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΡ Π΅ΠΌΡ ΠΏΠΈΡΠ°Π½ΠΈΡ
ΠΠΈΡΠ°Π½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡ ΡΠ΅ΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠΊΠ° 220 ΠΠΎΠ»ΡΡ, Π° Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π±Π»ΠΎΠΊΠΎΠ² ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΡΠ΅Π±ΡΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ³ΠΎ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ ΠΏΠΈΡΠ°Π½ΠΈΡ: 24 ΠΠΎΠ»ΡΡΠ° Π΄Π»Ρ ΡΡ Π΅ΠΌΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΡΠΎΠΊΠ° ΠΈ 5 ΠΠΎΠ»ΡΡ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠ°ΡΡΠ΅ΠΉ ΡΡ Π΅ΠΌΡ. ΠΠ»Ρ ΡΠ΅Ρ ΡΠ°ΡΡΠ΅ΠΉ ΡΡ Π΅ΠΌΡ, Π³Π΄Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ 5 ΠΠΎΠ»ΡΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ. Π‘Ρ Π΅ΠΌΠ° Π±Π»ΠΎΠΊΠ° ΠΏΠΈΡΠ°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ°ΡΡΠ΅ΠΉ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠ΅ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π° Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 2.6.
Π ΠΈΡΡΠ½ΠΎΠΊ 2.6 — Π‘Ρ Π΅ΠΌΠ° ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π ΠΎΠ»Ρ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΎΡΠΎΠ² Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ Π½Π° 24 ΠΠΎΠ»ΡΡ ΠΈ 5 ΠΠΎΠ»ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΎΡΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ 78L24 ΠΈ 78L05, Π²ΠΊΠ»ΡΡΡΠ½Π½ΡΠ΅ ΠΏΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΡΡ Π΅ΠΌΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ: ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΡ ΠΎΠ΄ΠΎΠΌ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΎΡΠ° ΠΈ ΠΎΠ±ΡΠΈΠΌ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΎΠΌ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΡΠΈΠ»ΡΡΡΡΡΡΠΈΠ΅ ΠΊΠΎΠ½Π΄Π΅Π½ΡΠ°ΡΠΎΡΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ 5 ΠΠΎΠ»ΡΡ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ LC-ΡΠΈΠ»ΡΡΡΠΎΠΌ. ΠΠ»Ρ ΠΌΠ΅Π½ΡΡΠΈΡ ΠΏΠΎΡΠ΅ΡΡ ΡΠ½Π΅ΡΠ³ΠΈΠΈ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΎΡΡ Π½Π° 24 ΠΈ 5 ΠΠΎΠ»ΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΡΡΠ³ Π΄ΡΡΠ³Ρ. ΠΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΡ ΡΠ΅ΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠΊΠ° 220 ΠΠΎΠ»ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π½Π° ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΡ ΠΎΠ±ΠΌΠΎΡΠΊΡ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΎΡΠ° TV1, Π΄Π°Π»Π΅Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠΏΡΡΠΌΠ»ΡΠ΅ΡΡΡ Π΄ΠΈΠΎΠ΄Π½ΡΠΌ ΠΌΠΎΡΡΠΎΠΌ VD1-VD4. Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ ΠΊ Π²Ρ ΠΎΠ΄Π½ΠΎΠΌΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ 78L24, Π²ΡΠΏΡΡΠΌΠ»Π΅Π½Π½ΠΎΠ΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ 35 ΠΠΎΠ»ΡΡ, ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΡΡΠ΅Π½ΠΎ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΎΡΠ°. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΠΎΠΊΠΎΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅, ΡΠΎ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΎΡ TV1 ΠΈ Π΄ΠΈΠΎΠ΄Ρ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠ°Π»ΠΎΠΌΠΎΡΠ½ΡΠ΅.
3. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ
3.1 Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ² Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅Π³ΠΎ ΠΠ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ, ΡΠ΅ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΡ Π΅ΠΌΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π Π½Π°ΡΠ°Π»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ — ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π½Π° 2 ΡΠ°ΡΡΠΈ: 1) ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΡΡΠΎΠ² ΠΠ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΉ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΈ, ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΏΡΠΎΡΠΈΡΠ°Π½Π½ΡΠΌΠΈ ΠΈΠ· EEPROM; 2) ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ LCD-ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ° Π² ΡΠ΅ΡΡΡΡΡ Π±ΠΈΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. ΠΠΎΡΡΡ ΠΠ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π½Π°ΡΡΡΠΎΠ΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΠΈΠ½ΠΈΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ LCD: RS — PD1, E — PD2 Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π½Π°ΡΡΡΠΎΠ΅Π½Ρ Π½Π° Π²ΡΠ²ΠΎΠ΄; Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠ²ΠΎΠ΄ Π½Π° LCD Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ Π·Π°Π΄Π΅ΡΠΆΠΊΠ°ΠΌΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ / Π΄Π°Π½Π½ΡΡ , ΠΏΠΎΡΡΠΎΠΌΡ Π»ΠΈΠ½ΠΈΠΈ ΠΠ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½Π½ΡΠ΅ ΠΊ Π»ΠΈΠ½ΠΈΡΠΌ Π΄Π°Π½Π½ΡΡ LCD PD6… PD3, Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π½Π°ΡΡΡΠΎΠ΅Π½Ρ Π½Π° Π²ΡΠ²ΠΎΠ΄. ΠΠ°ΠΊ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ, Π»ΠΈΠ½ΠΈΠΈ, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ: PB3… PB0, Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π½Π°ΡΡΡΠΎΠ΅Π½Ρ Π½Π° Π²Π²ΠΎΠ΄ Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΡΠ΅Π·ΠΈΡΡΠΎΡΠ°. ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠΈΠ³Π½Π°Π»Π° Π΄Π»Ρ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΡΠΎΠΊΠ° Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡΡ Ρ Π»ΠΈΠ½ΠΈΠΈ ΠΊΠ°Π½Π°Π»Π° PWM PB4/OC1B — ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π΄Π°Π½Π½Π°Ρ Π»ΠΈΠ½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π½Π°ΡΡΡΠΎΠ΅Π½Π° Π½Π° Π²ΡΠ²ΠΎΠ΄. Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΡΡΠΎΠ²ΡΠΌ ΠΏΠΎΡΠ΅Π½ΡΠΈΠΎΠΌΠ΅ΡΡΠΎΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎ ΡΠΈΠ½Π΅ I2C. ΠΠΈΠ½ΠΈΡ ΡΠΈΠ½Ρ ΡΠΎΠΈΠΌΠΏΡΠ»ΡΡΠ° I2C (SCL) ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π»ΠΈΠ½ΠΈΠΈ PB7 — Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π½Π°ΡΡΡΠΎΠ΅Π½Π° Π½Π° Π²ΡΠ²ΠΎΠ΄; Π»ΠΈΠ½ΠΈΡ Π΄Π°Π½Π½ΡΡ I2C (SDA) Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π½Π°ΡΡΡΠΎΠ΅Π½Π° Π½Π° Π²Π²ΠΎΠ΄ Π±Π΅Π· Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ pull-up, ΠΊ Π΄Π°Π½Π½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΏΠΎΠ΄ΡΡΠ³ΠΌΠ²Π°ΡΡΠΈΡ ΡΠ΅Π·ΠΈΡΡΠΎΡ Π½ΠΎΠΌΠΈΠ½Π°Π»ΠΎΠΌ 10 ΠΊΠΠΌ. Π Π΄Π°Π½Π½ΠΎΠΌ ΠΠ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ I2C, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄Π»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΡ. ΠΠ»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°ΡΡΠΎΡΡ ΡΠΈΠ³Π½Π°Π»Π° ΠΈ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈΠΌΠΏΡΠ»ΡΡΠ° Π±ΡΠ΄Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠ°ΠΉΠΌΠ΅Ρ T1, Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΈΠΌΠΏΡΠ»ΡΡΠΎΠ² Π±ΡΠ΄Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΊΠ°Π½Π°Π» PWM Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΠ° OC1B. Π§ΡΠΎΠ±Ρ ΡΠΎΡΠ½ΠΎ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΡΡΠΎΡΡ, ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠ±ΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ΅ΠΆΠΈΠΌΠΎΠ² ΡΠ°Π±ΠΎΡΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ°, Π³Π΄Π΅ ΠΎΠ½ ΡΡΠΈΡΠ°Π΅Ρ Π΄ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠ° OCR1A: ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ° ΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΈ ΡΠ°ΡΡΠΎΡΡ. Π ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ OC1B Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ ΠΊΠ°Π½Π°Π» PWM. ΠΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΌ ΡΠ΅ΠΆΠΈΠΌΠΎΠΌ ΡΠ°Π±ΠΎΡΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΆΠΈΠΌ Fast PWM Ρ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠΎΠΌ Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΡΡΡΠΈΠΊΠ° ΡΠ°Π²Π½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠ° OCR1A: Π±ΠΈΡΡ WGM13…0 = 1111.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΠ° T1 Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ OCR1A, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°ΡΡΠΎΡΡ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅ΠΌ ΠΏΠΎ ΡΠΎΡΠΌΡΠ»Π΅:
(3.1)
Π³Π΄Π΅ CK = 16 MHz — ΡΠ°ΠΊΡΠΎΠ²Π°Ρ ΡΠ°ΡΡΠΎΡΠ° ΠΠ, F — ΡΠ°ΡΡΠΎΡΠ° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΈΠΌΠΏΡΠ»ΡΡΠΎΠ², F — ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΡΠ΅ΡΠΊΠ°Π»Π΅ΡΠ° ΡΠ°ΠΉΠΌΠ΅ΡΠ°. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ N ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ OCR1A Π±ΡΠ»ΠΎ ΠΌΠ΅Π½ΡΡΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ = 65 535. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΡΡΠΎΡ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ 5…160 ΠΠ΅ΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ N Π±ΡΠ΄Π΅Ρ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ 64: Π±ΠΈΡΡ CS12… CS10 ΡΠ΅Π³ΠΈΡΡΡΠ° TCCR1B = 011. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΎΡΠΌΡΠ»Π° (3.1) ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ Π²ΠΈΠ΄Ρ:
(3.2)
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ ΠΠ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π° Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π΄Π΅Π»Π΅Π½ΠΈΡ Ρ ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡΠ½ΡΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ, ΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈ ΡΠΎΡΠΌΡΠ»Ρ (3.2) ΡΠΏΡΠΎΡΡΠΈΡΡ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΠ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΠ ΠΏΡΠΈ ΡΠ°ΡΡΡΡΠ°Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΡΡΠΎΡΡ, Π΄Π΅Π»ΡΠ½Π½ΠΎΠ΅ Π½Π° 5, ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Π΄ΠΈΡΠΏΠ»Π΅ΠΉ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΡΡΠΎΡΡ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ (3.2) ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ Π²ΠΈΠ΄Ρ:
(3.3)
Π³Π΄Π΅ F' = F/5. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΠ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ Π΄Π΅Π»Π΅Π½ΠΈΡ Π΄Π²ΡΡ Π±Π°ΠΉΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π½Π° ΠΎΠ΄Π½ΠΎΠ±Π°ΠΉΡΠ½ΠΎΠ΅.
ΠΠ°ΠΊ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ, Π΄Π»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠΌΠΏΡΠ»ΡΡΠΎΠ² Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΠΈΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΊΠ°Π½Π°Π» PWM OC1B. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ° OCR1B Π΄Π»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Ρ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎ ΡΠΎΡΠΌΡΠ»Π΅:
(3.4)
Π·Π½Π°ΡΠ΅Π½ΠΈΡ CK ΠΈ N ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΡΠ°Π½Π΅Π΅; Ρ ΠΏΠΎ Π·Π°Π΄Π°Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΎΡ 0,2 Π΄ΠΎ 0,5 ΠΌΡ Ρ ΡΠ°Π³ΠΎΠΌ 0,1 ΠΌΡ, ΠΏΡΠΈ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π² (3.4) Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΎ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°Ρ . ΠΡΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡΡ CK ΠΈ N Π²ΠΎ Π²ΡΡΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠ΅Π»ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ OCR1B — ΠΎΡ 50 Π΄ΠΎ 125 Ρ ΡΠ°Π³ΠΎΠΌ 25, ΡΠΎ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠ΅Π½Ρ ΡΠΎΡΠ½ΡΠ΅ ΠΏΠΎ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈΠΌΠΏΡΠ»ΡΡΡ.
ΠΠ°Π½Π°Π» PWM ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠ°ΡΡ / ΠΎΡΠΊΠ»ΡΡΠ°ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ Π±ΠΈΡΠΎΠ² Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΠ΅ΠΆΠΈΠΌ Π½Π΅ΠΈΠ½Π²Π΅ΡΡΠΈΡΡΡΡΠ΅Π³ΠΎ PWM, ΡΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ / ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Π΅Π³ΠΎ Π²ΡΡ ΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ / ΡΠ±ΡΠΎΡΠΎΠΌ Π±ΠΈΡΠ° COM1B1 Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ TCCR1A.
ΠΠ»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ Π΄Π»Ρ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΠ°ΠΉΠΌΠ΅Ρ T0 Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅: CTC — ΠΎΠ±Π½ΡΠ»Π΅Π½ΠΈΠ΅ ΠΏΡΠΈ TCNT0 = OCR0A = 250, F = CK/64. ΠΡΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ°Π±ΠΎΡΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ° ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ Ρ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠΌ 1 ΠΌΡ.
ΠΠΎΠΌΠΈΠΌΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΡΡΠΎΡΡ ΠΈ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ΡΠΎΠΊ Π½Π°Π³ΡΡΠ·ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΎΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ Π½Π° Π²ΡΡ ΠΎΠ΄Π΅ W ΡΠΈΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠΎΠΌΠ΅ΡΡΠ°. ΠΠ°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π²ΡΡ ΠΎΠ΄Π΅ W ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎ ΡΠΎΡΠΌΡΠ»Π΅:
(3.5)
Π³Π΄Π΅ pos — ΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΠΈΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΡΠΌΠ΅ΡΡΠ°.
ΠΡΠ΄Π΅ΠΌ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ ΠΏΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ pos=0 ΡΠΎΠΊ Π±ΡΠ΄Π΅Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ=3 ΠΌΠ, ΠΏΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ pos=255 ΡΠΎΠΊ Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π΅Π½ Π½ΡΠ»Ρ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΠΊΠ° Π½Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π³ = 0,2 ΠΌΠ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠΎΠΌΠ΅ΡΡΠ° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π½Π° 17. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΊΠ°, ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΡΡΠΎΡΡ ΠΈ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠΈΡΠ°Π΅ΡΡΡ ΠΈΠ· EEPROM. Π Π΄Π°Π»Π΅Π΅, ΠΏΠΎΡΠ»Π΅ ΡΡΠ΅Π½ΠΈΡ ΠΈΠ· EEPROM ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ΄ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π½Π° ΠΏΠΎΡΠ΅Π½ΡΠΈΠΎΠΌΠ΅ΡΡ.
ΠΠΎΡΠ»Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠΈΠΊΠ»Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ: 1) ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ ΠΏΡΠΈΡ ΠΎΠ΄Π° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ OC1A ΡΠ°ΠΉΠΌΠ΅ΡΠ° T0, ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΈΡΡΠ΅ΠΌ ΡΡΡΡΡΠΈΠΊ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ; 2) Π΅ΡΠ»ΠΈ ΡΡΡΡΡΠΈΠΊ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ = 100 — ΠΏΡΠΎΡΠ»ΠΎ 100 ΠΌΡ, Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ «keybscan», ΠΈΠ½Π°ΡΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΊ ΠΏΡΠ½ΠΊΡΡ 1; 3) ΠΏΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΈΡΡΠ΅ΠΌ ΡΡΡΡΡΠΈΠΊ 100 ΠΌΡ-ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠ². ΠΡΠ»ΠΈ ΡΡΡΡΡΠΈΠΊ = 100 — Π±ΠΎΠ»Π΅Π΅ 10 Ρ Π½Π΅ Π±ΡΠ»ΠΎ Π½Π°ΠΆΠ°ΡΠΈΠΉ ΠΏΠΎΡΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π² EEPROM, Π΄Π°Π½Π½ΡΠΉ ΡΡΡΡΡΠΈΠΊ ΠΎΠ±Π½ΡΠ»ΡΠ΅ΡΡΡ Π²Π½ΡΡΡΠΈ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°.
ΠΠ° ΠΎΡΠ½ΠΎΠ²Π΅ Π²ΡΠ΅Π³ΠΎ ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ΅ Π±ΡΠ» ΡΠΎΡΡΠ°Π²Π»Π΅Π½ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 2.
Π ΠΈΡΡΠ½ΠΎΠΊ 3.1 — ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΊ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 3.1: Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ Π½Π°ΠΆΠ°ΡΠΈΠΉ Π½Π° ΠΊΠ»Π°Π²ΠΈΡΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΡΡ Π²Π½ΡΡΡΠΈ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ «keybscan». ΠΠΎ Π΄Π»Ρ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π±ΡΠ»ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ Π² Π°Π»Π³ΠΎΡΠΈΡΠΌΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
3.2 ΠΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠΌ ΠΈ ΠΊΡΠ°ΡΠΊΠΎ ΠΎΠΏΠΈΡΠ΅ΠΌ Π²ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
1) ΠΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ LCD-ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ°:
LCD_init — ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ LCD-ΠΈΠ½Π΄ΠΈΠΊΠ°-ΡΠΎΡΠ° Π² ΡΠ΅ΡΡΡΡΡ Π±ΠΈΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ [5];
LCD_sym_gen — ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π² ΠΎΠ±Π»Π°ΡΡΠΈ Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° LCD. ΠΠ°ΡΠ°Π»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ Π² ΠΎΠ±Π»Π°ΡΡΠΈ Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° Π·Π°Π΄Π°ΡΡΡΡ Π² R16, Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ ΡΠ°Π±Π»ΠΈΡΡ ΠΊΠΎΠ΄ΠΎΠ² Π΄Π»Ρ Π·Π½Π°ΠΊΠ° — Π² ΡΠ΅Π³ΠΈΡΡΡΠΎΠ²ΠΎΠΉ ΠΏΠ°ΡΠ΅ ZH: ZL;
LCD_send_string — ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ ΡΡΡΠΎΠΊΠΈ, Π·Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ Π² flash-ΠΏΠ°ΠΌΡΡΡ ΠΠ. ΠΠ°ΡΠ°Π»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ ΡΡΡΠΎΠΊΠΈ Π² flash ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠΌ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Z. Π‘ΡΡΠΎΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΡΡ ΠΊΠΎΠ΄ΠΎΠΌ 0×00. ΠΠ°ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π½Π° LCD ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ R16;
LCD_send_command — ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π½Π° LCD ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΌ Π² ΡΠ΅Π³ΠΈΡΡΡ R16;
LCD_send_data — ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π½Π° LCD Π±Π°ΠΉΡΠ° Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΌ Π² ΡΠ΅Π³ΠΈΡΡΡ R17;
LCD_strobe — ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ Π΄Π»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠ½Ρ ΡΠΎΠΈΠΌΠΏΡΠ»ΡΡΠ° Π΄Π»Ρ LCD;
LCD_strobe_delay — ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠ½Ρ ΡΠΎΠΈΠΌΠΏΡΠ»ΡΡΠ° LCD Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ, Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΎΡΠΏΡΠ²Π»Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ / Π΄Π°Π½Π½ΡΠΌΠΈ.
2) ΠΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ Π΄Π»Ρ ΡΠΈΠ½Ρ I2C
I2C_start — ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ°ΡΡ-ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° ΡΠΈΠ½Π΅ I2C;
I2C_send — ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π±Π°ΠΉΡΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎΡΡ Π² tmpL (R16) ΠΏΠΎ ΡΠΈΠ½Π΅ I2C;
I2C_stop — ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠΏ-ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° ΡΠΈΠ½Π΅ I2C;
I2C_delay — ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ Π΄Π»Ρ I2C, Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π²Π½ΡΡΡΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π²ΡΡΠ΅ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ.
3) ΠΡΡΠ³ΠΈΠ΅ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ:
short_delay1 — ΠΎΠ±ΡΠ°Ρ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ, Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π²Π½ΡΡΡΠΈ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ Π΄Π»Ρ LCD ΠΈ I2C.
EERead — ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΡΠ΅Π½ΠΈΡ Π² ΡΠ΅Π³ΠΈΡΡΡ tmpL (R16) ΠΈΠ· Π°Π΄ΡΠ΅ΡΠ° EEPROM, Π·Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π² tmpH (R17);
EEWrite — ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°ΠΏΠΈΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΡΠ΅Π³ΠΈΡΡΡΠ° tmpL (R16) ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ EEPROM, Π·Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠΌΡ Π² tmpH (R17);
div16to8 — ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π΅Π»Π΅Π½ΠΈΡ 16-ΡΠΈ Π±ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π² ΡΠ΅Π³ΠΈΡΡΡΠΎΠ²ΠΎΠΉ ΠΏΠ°ΡΠ΅ tmpH: tmpL Π½Π° Π²ΠΎΡΡΠΌΠΈΠ±ΠΈΡΠ½ΠΎΠ΅ Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ divisor (R20): ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ — Π² tmpH: tmpL, ΠΎΡΡΠ°ΡΠΎΠΊ — Π² rest (R21);
div10 — ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠ° tmpL Π½Π° 10: ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΎΡ Π΄Π΅Π»Π΅Π½ΠΈΡ Π² tmpL, ΠΎΡΡΠ°ΡΠΎΠΊ — Π² rest.
4) ΠΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ
set_current — ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠΎΠΊΠ° ΡΠ΅ΡΠ΅Π· Π½Π°Π³ΡΡΠ·ΠΊΡ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Current, Π² ΠΊΠΎΡΠΎΡΡΡ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΊΠ°. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π²Π½ΡΡΡΠΈ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ — mul_to17 ΠΈ set_resistance;
mul_to17 — ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΡΠΎΠΊΠ° Π½Π° 17, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ Π½Π° ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΠ΅Π½ΡΠΈΠΎΠΌΠ΅ΡΡ. ΠΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ Π² tmpH;
set_resistance — ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π° Π² ΡΡΠ΅Π΄Π½Π΅ΠΉ ΡΠΎΡΠΊΠ΅ ΡΠΈΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠΎΠΌΠ΅ΡΡΠ°. ΠΠΎΠ΄, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΡ Π²Π»ΠΈΡΠΈΠ½Ρ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π·Π°ΠΏΠΈΡΠ°Π½ Π² tmpH. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π²Π½ΡΡΡΠΈ Π²ΡΠ΅ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ Π΄Π»Ρ I2C;
ind_current — ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠΊΠ°: ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΊΠ° ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ Π² tmpH;
set_freq — ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ°ΡΡΠΎΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΈΠΌΠΏΡΠ»ΡΡΠΎΠ². Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Freq;
ind_freq — ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ°ΡΡΠΎΡΡ. Π Π°ΡΡΡΠΈΡΡΠ²Π°Π΅Ρ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΡΡΠΎΡΡ, Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π½Π° LCD. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Freq;
set_width — ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈΠΌΠΏΡΠ»ΡΡΠ° ΠΈ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΠΈ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ width;
Device_init — ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΠ±ΡΠ΅ΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈΠ±ΠΎΡΠ°. ΠΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΠΈΠ· EEPROM Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΡΠ΅ΠΉΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ Π² SRAM, Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ ΡΠΎ ΡΡΠΈΡΠ°Π½Π½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΠ°ΠΉΠΌΠ΅Ρ T1 ΠΏΡΠΈΠ±ΠΎΡΠ° — ΡΠ°ΡΡΠΎΡΠ° ΠΈ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΠ΅Π½ΡΠΈΠΎΠΌΠ΅ΡΡ — ΡΠΎΠΊ;
keybscan — ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ. Π‘ΠΊΠ°Π½ΠΈΡΡΠ΅Ρ Π»ΠΈΠ½ΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΡ PB0… PB3, Π² ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ ΠΊΠ°ΠΊΠ°Ρ-Π»ΠΈΠ±ΠΎ ΠΊΠ»Π°Π²ΠΈΡΠ° Π½Π°ΠΆΠ°ΡΠ°, ΠΈ Π½Π΅ Π±ΡΠ»ΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΏΡΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΡΡΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠΈ;
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Π±ΡΠ»ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ ΠΏΡΠΎΡΡΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π΄Π»Ρ ΡΠ»Π΅ΠΊΡΡΠΎΡΠ½Π°. Π Π°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠ»Π΅ΠΊΡΡΠΎΡΠΎΠ½ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ Π½Π° Π³ΠΎΠ»ΠΎΠ²Π½ΠΎΠΉ ΠΌΠΎΠ·Π³ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΈΠΌΠΏΡΠ»ΡΡΠ°ΠΌΠΈ ΡΠΎΠΊΠ° ΡΠ΅Π³ΡΠ»ΠΈΡΡΠ΅ΠΌΠΎΠΉ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ Ρ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π΄ΠΎ 20 ΠΠΎΠ»ΡΡ. Π ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ ΡΠ΅Π³ΡΠ»ΠΈΡΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ: 1) ΡΠΎΠΊ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡΠ²ΠΈΡ — ΠΎΡ 0 Π΄ΠΎ 3 ΠΌΠ Ρ ΡΠ°Π³ΠΎΠΌ 0,2 ΠΌΠ; 2) ΡΠ°ΡΡΠΎΡΠ° ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠΌΠΏΡΠ»ΡΡΠΎΠ² ΡΠΎΠΊΠ° — ΠΎΡ 5 Π΄ΠΎ 160 ΠΠ΅ΡΡ Ρ ΡΠ°Π³ΠΎΠΌ 5 ΠΠ΅ΡΡ; 3) Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈΠΌΠΏΡΠ»ΡΡΠΎΠ² ΡΠΎΠΊΠ° — ΠΎΡ 0,2 Π΄ΠΎ 0,5 ΠΌΡ Ρ ΡΠ°Π³ΠΎΠΌ 0,1 ΠΌΡ. ΠΡΠ΅ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π² ΡΠ½Π΅ΡΠ³ΠΎΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠ»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ / ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΈΠΌΠΏΡΠ»ΡΡΠΎΠ² ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°.
ΠΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΡΡΡΠ»ΠΎΠΊ
1. ATMega8 Datasheet — 8bit AVR RISC microcontroller
2. Π. Π₯ΠΎΡΠΎΠ²ΠΈΡ, Π£. Π₯ΠΈΠ»Π» ΠΡΠΊΡΡΡΡΠ²ΠΎ ΡΡ Π΅ΠΌΠΎΡΠ΅Ρ Π½ΠΈΠΊΠΈ, ΡΠΎΠΌ 1 — ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ 3-Π΅, ΡΡΠ΅ΡΠ΅ΠΎΡΠΈΠΏΠ½ΠΎΠ΅ — Π² Π΄Π²ΡΡ ΡΠΎΠΌΠ°Ρ Ρ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ — ΠΠΎΡΠΊΠ²Π° «ΠΠΈΡ», 1986
3. OPA277 Datasheet — High precision operational amplifier
4. AD5241_5242 — I2C compatible 256-positions digital potentiometers
5. HD44780 — 16COM / 40SEG Driver and controller for DOT matrix LCD
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
Π’Π΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
include «tn2313def.inc»
def ZERO = R15
def tmpL = R16
def tmpH = R17
def cnt1 = R18
def cnt2 = R19
def divisor = R20
def rest = R21
def T0_int_countL = R22
def T0_int_countH = R23
def predvalue = R24
def Maxvalue = R25
; port lines
equ key_stim = PORTB0
equ key_param = PORTB1
equ key_plus = PORTB2
equ key_minus = PORTB3
equ stim_line = PORTB4
equ SDA = PORTB5
equ SCL = PORTB7
equ LCD_RS_line = PORTD1
equ LCD_E_line = PORTD2
equ Device_adr = 0×58
equ keypressed = 0
ESEG
org 0×20
EEFreq: .BYTE 1
EEWidth: .BYTE 1
EECurrent: .BYTE 1
DSEG
Freq: .BYTE 1
Width: .BYTE 1
Current: .BYTE 1
Menu_pos: .BYTE 1
DigBuf: .BYTE 3
flags: .BYTE 1
; Π‘ΠΠΠΠΠΠ’ ΠΠΠΠ
CSEG
rjmp init; Π²Π΅ΠΊΡΠΎΡ ΡΠ±ΡΠΎΡΠ°, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΊ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
rjmp T0_COMPA_handle;
Π²Π΅ΠΊΡΠΎΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ OC0A ΡΠ°ΠΉΠΌΠ΅ΡΠ° T0, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ
reti
reti
reti
reti
reti
init: ldi tmpL, low (RAMEND)
out SPL, tmpL; ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ΅ΠΊΠ°
; ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΡΡΠΎΠ²
ldi tmpL, 1<<<<<
out PORTB, tmpL
ldi tmpL, 1<<
out DDRB, tmpL
ser tmpL
out DDRD, tmpL
; ΠΎΠ±Π½ΡΠ»Π΅Π½ΠΈΠ΅ ΡΡΡΡΡΠΈΠΊΠΎΠ²
clr T0_int_countL
clr T0_int_countH
clr ZERO
sts flags, ZERO; ΠΎΠ±Π½ΡΠ»Π΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ° ΡΠ»Π°Π³ΠΎΠ²
sts Menu_pos, ZERO; ΠΈ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΌΠ΅Π½Ρ
rcall LCD_init; Π²ΡΠ·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ LCD — ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² ΡΠ΅ΡΡΡΡΡ Π±ΠΈΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅
clr tmpL
ldi ZH, high (sym_right<<1)
ldi ZL, low (sym_right<<1)
rcall LCD_sym_gen; Π²ΡΠ·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΡΡΡΠ΅Π»ΠΊΠΈ Π²ΠΏΡΠ°Π²ΠΎ Π² ΠΎΠ±Π»Π°ΡΡΠΈ Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° LCD ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ Π² ΠΎΠ±Π»Π°ΡΡΠΈ Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° = 0×40
rcall Device_init; Π²ΡΠ·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ΅Π½Ρ ΠΏΡΠΈΠ±ΠΎΡΠ°
ldi tmpL, 1<<
out TCCR1A, tmpL
ldi tmpL, 1<<<<
out TCCR1B, tmpL; Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΅ΠΆΠΈΠΌΠ° ΡΠ°Π±ΠΎΡΡ T1: F=CK/64, ΡΡΡΡ Π²Π²Π΅ΡΡ ΠΎΡ 0 Π΄ΠΎ OCR1A, fast PWM ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΊΠ°Π½Π°Π»Π°
ldi tmpL, 250
out OCR0A, tmpL
ldi tmpL, 1<<<
out TCCR0B, tmpL; Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΅ΠΆΠΈΠΌΠ° T0: F=CK/64, ΡΡΡΡ ΠΎΡ 0 Π΄ΠΎ OCR0A = 250 — ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΡΡ 1 ΠΌΡ
ldi tmpL, 1<
out TIMSK, tmpL; ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ OC0A
ldi tmpL, 1<
out TIFR, tmpL; Π½Π° Π²ΡΡΠΊΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ ΡΠ±ΡΠΎΡ ΡΠ»Π°Π³Π° Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ
sei; Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ
; ΠΠ‘ΠΠΠΠΠΠ Π¦ΠΠΠ ΠΠ ΠΠΠ ΠΠΠΠ«
loop:
ldi tmpL, 1<
out MCUCR, tmpL
sleep; ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΠΠ Π² Idle-ΡΠ΅ΠΆΠΈΠΌ Π² Π½Π°ΡΠ°Π»Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π°, Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΈΠ· Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΏΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ OC0A
cpi T0_int_countL, 0×64; ΠΏΠΎΡΠ»Π΅ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½Ρ ΡΡΡΡΡΠΈΠΊΠ° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ (1 ΠΌΡ-ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠ²)
brlo loop; Π΅ΡΠ»ΠΈ ΡΡΡΡΡΠΈΠΊ < 100 (100 ΠΌΡ Π½Π΅ ΠΏΡΠΎΡΠ»ΠΎ), ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° Π½Π°ΡΠ°Π»ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π°
rcall keybscan; ΠΈΠ½Π°ΡΠ΅ Π²ΡΠ·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ
clr T0_int_countL; ΠΎΠ±Π½ΡΠ»Π΅Π½ΠΈΠ΅ ΡΡΡΡΡΠΈΠΊΠ° 1 ΠΌΡ-ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠ²
inc T0_int_countH; ΠΈΠ½Π²ΡΠ΅ΠΌΠ΅Π½Ρ ΡΡΡΡΡΠΈΠΊΠ° 100 ΠΌΡ-ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠ² (ΠΎΠ±Π½ΡΠ»ΡΠ΅ΡΡΡ Π΅ΡΠ»ΠΈ ΠΏΡΠΈ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ Π½Π΅ Π±ΡΠ»Π° Π½Π°ΠΆΠ°ΡΠ° ΠΊΠ°ΠΊΠ°Ρ-Π»ΠΈΠ±ΠΎ ΠΊΠ»Π°Π²ΠΈΡΠ°)
cpi T0_int_countH, 0×64
brlo loop; Π΅ΡΠ»ΠΈ ΡΡΡΡΡΠΈΠΊ < 100 (10 Ρ Π½Π΅ ΠΏΡΠΎΡΠ»ΠΎ), ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° Π½Π°ΡΠ°Π»ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π°
clr T0_int_countH; ΠΈΠ½Π°ΡΠ΅ ΠΎΠ±Π½ΡΠ»Π΅Π½ΠΈΠ΅ ΡΡΡΡΡΠΈΠΊΠ° 100 ΠΌΡ-ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠ²
ld tmpL, X
cp tmpL, predvalue; ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ
breq loop; Π΅ΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°Π²Π½Ρ, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° Π½Π°ΡΠ°Π»ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π°
mov predvalue, tmpL; ΠΈΠ½Π°ΡΠ΅ Π·Π°ΠΏΠΈΡΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΠ΅Π³ΠΈΡΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ
mov tmpH, XL
subi tmpH, 0×60−0×20; ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΊ Π°Π΄ΡΠ΅ΡΡ EEPROM, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
rcall EEWrite; Π²ΡΠ·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π² EEPROM
rjmp loop; ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° Π½Π°ΡΠ°Π»ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π°
; ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ
keybscan:
in tmpL, PINB
andi tmpL, 0x0 °F; ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π»ΠΈΠ½ΠΈΠΉ ΠΊΠ½ΠΎΠΏΠΎΠΊ
clr cnt1; ΠΎΡΠΈΡΡΠΊΠ° ΡΡΡΡΡΠΈΠΊΠ° Π½Π°ΠΆΠ°ΡΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠΈ
lds tmpH, flags; Π·Π°Π³ΡΡΠ·ΠΊΠ° Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΡΠ΅Π³ΠΈΡΡΡΠ° ΡΠ»Π°Π³ΠΎΠ²
next_key:
lsr tmpL; ΡΠ΄Π²ΠΈΠ³ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ° ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΠΎΡΡΠ° Π²ΠΏΡΠ°Π²ΠΎ Π· Π·Π°ΠΏΠΈΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΌΠ»Π°Π΄ΡΠ΅Π³ΠΎ Π±ΠΈΡΠ° Π² C
brcc pressed; Π΅ΡΠ»ΠΈ C=0 (ΠΊΠ»Π°Π²ΠΈΡΠ° Π½Π°ΠΆΠ°ΡΠ°), ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° ΠΌΠ΅ΡΠΊΡ Π½Π°ΠΆΠ°ΡΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠΈ
inc cnt1; ΠΈΠ½Π°ΡΠ΅ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½Ρ ΡΡΡΡΡΠΈΠΊΠ° Π½Π°ΠΆΠ°ΡΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠΈ
cpi cnt1,0×04
brne next_key; Π΅ΡΠ»ΠΈ ΡΡΡΡΡΠΈΠΊ<4, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° ΠΌΠ΅ΡΠΊΡ ΡΡΠ΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π»ΠΈΠ½ΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ
andi tmpH,~(1<
sts flags, tmpH; ΠΈΠ½Π°ΡΠ΅ (Π½ΠΈ ΠΎΠ΄Π½Π° ΠΊΠ»Π°Π²ΠΈΡΠ° Π½Π΅ Π½Π°ΠΆΠ°ΡΠ°) ΡΠ±ΡΠΎΡ ΡΠ»Π°Π³Π° Π½Π°ΠΆΠ°ΡΠΈΡ Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ ΡΠ»Π°Π³ΠΎΠ²
ret; ΠΈ Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
; ΠΌΠ΅ΡΠΊΠ° Π½Π°ΠΆΠ°ΡΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠΈ
pressed:
sbrc tmpH, keypressed
ret; Π΅ΡΠ»ΠΈ ΡΠ»Π°Π³ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΏΡΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½, Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ori tmpH, 1<
sts flags, tmpH; ΠΈΠ½Π°ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ»Π°Π³Π° Π½Π°ΠΆΠ°ΡΠΈΡ
ldi ZH, high (key_handlers<<1)
ldi ZL, low (key_handlers<<1)
lsl cnt1
add ZL, cnt1
adc ZH, ZERO; Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π°Π΄ΡΠ΅ΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π½Π°ΠΆΠ°ΡΠΈΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π°Π΄ΡΠ΅ΡΠΎΠ²
lpm R0, Z+
lpm R1, Z
movw ZH: ZL, R1: R0; Π·Π°Π³ΡΡΠ·ΠΊΠ° Π°Π΄ΡΠ΅ΡΠ° Π² ΡΠ΅Π³ΠΈΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ
ijmp; ΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ
; ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ / ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠΈΠΌΡΠ»ΡΡΠΈΠΈ
stim_pressed:
in tmpL, TCCR1A
ldi tmpH, 1<
eor tmpL, tmpH
out TCCR1A, tmpL; ΠΈΠ½Π²Π΅ΡΡΠΈΡ Π±ΠΈΡΠ° COM1B1 Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ TCCR1A — Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ / ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π½Π΅ΠΈΠ½Π²Π΅ΡΡΠΈΡΡΡΡΠ΅Π³ΠΎ PWM Π½Π° Π»ΠΈΠ½ΠΈΠΈ OC1B
mov tmpH, tmpL
ldi tmpL, 0xC7; ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΊ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π½Π° LCD Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΡΠΈΠΌΡΠ»ΡΡΠΈΠΈ: on/off
sbrs tmpH, COM1B1
rjmp PC+4
ldi ZH, high (str_on<<1); Π΅ΡΠ»ΠΈ PWM Π²ΠΊΠ»ΡΡΠ΅Π½, Π·Π°ΠΏΠΈΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ° ΡΡΡΠΎΠΊΠΈ «on»
ldi ZL, low (str_on<<1)
rjmp PC+3
ldi ZH, high (str_off<<1); ΠΈΠ½Π°ΡΠ΅ Π·Π°ΠΏΠΈΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ° ΡΡΡΠΎΠΊΠΈ «off»
ldi ZL, low (str_off<<1)
rcall LCD_send_string; Π²ΡΠ·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π½Π° LCD
ret; ΠΈ Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ
; ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ Π²ΡΠ±ΠΎΡΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°
param_pressed:
lds tmpH, Menu_pos
inc tmpH; ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½Ρ ΡΠ΅Π³ΠΈΡΡΡΠ° ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΌΠ΅Π½Ρ
cpi tmpH, 0×03
brlo PC+2
clr tmpH; Π΅ΡΠ»ΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΌΠ΅Π½Ρ > 3, ΠΎΠ±Π½ΡΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΌΠ΅Π½Ρ
sts Menu_pos, tmpH
ld tmpL, X
cp tmpL, predvalue; ΡΡΠ΅Π²Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ
breq m7; Π΅ΡΠ»ΠΈ ΡΠ°Π²Π½ΠΎ, ΡΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° ΠΌΠ΅ΡΠΊΡ Π²ΡΠ±ΠΎΡΠ° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΌΠ΅Π½Ρ
; ΠΈΠ½Π°ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ½Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π² EEPROM
push tmpH
mov tmpH, XL
subi tmpH, 0×60−0×20
out EEAR, tmpH; ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΊ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌΡ Π°Π΄ΡΠ΅ΡΡ Π² EEPROM
out EEDR, tmpL
rcall EEWrite; ΠΈ Π²ΡΠ·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π² EEPROM
pop tmpH
; Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
m7: ldi ZH, high (Menu_handlers<<1)
ldi ZL, low (Menu_handlers<<1)
lsl tmpH
add ZL, tmpH
adc ZH, ZERO
lpm R0, Z+
lpm R1, Z; ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ Π°Π΄ΡΠ΅ΡΠ° ΠΌΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΠΊ Π΄Π°Π½Π½ΠΎΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
movw ZH: ZL, R1: R0
ijmp; ΠΈ ΡΡΠ»ΠΎΠ²Π½ΡΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠ΅ΡΠΊΠ΅
; ΠΌΠ΅ΡΠΊΠ° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΠΊ ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²ΠΊΠ΅ ΡΠ°ΡΡΠΎΡΡ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠΌΠΏΡΠ»ΡΡΠΎΠ²
Param1sel:
ldi Maxvalue, 0x1F
ldi XL, Freq
ldi tmpL, 0×80; ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π°Π΄ΡΠ΅ΡΠ° Π²ΡΠ²ΠΎΠ΄Π° ΡΠΈΠΌΠ²ΠΎΠ»Π° ΡΡΡΠ΅Π»ΠΊΠΈ Π²ΠΏΡΠ°Π²ΠΎ
push tmpL
ldi tmpL, 0xC0; ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π°Π΄ΡΠ΅ΡΠ° Π²ΡΠ²ΠΎΠ΄Π° ΠΏΡΠΎΠ±Π΅Π»Π°
push tmpL
rjmp m8; ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° ΠΌΠ΅ΡΠΊΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ΅
; ΠΌΠ΅ΡΠΊΠ° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΠΊ ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²ΠΊΠ΅ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈΠΌΠΏΡΠ»ΡΡΠ°
Param2sel:
ldi Maxvalue, 0×03
ldi XL, Width
ldi tmpL, 0×88; ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π°Π΄ΡΠ΅ΡΠ° Π²ΡΠ²ΠΎΠ΄Π° ΡΠΈΠΌΠ²ΠΎΠ»Π° ΡΡΡΠ΅Π»ΠΊΠΈ Π²ΠΏΡΠ°Π²ΠΎ
push tmpL
ldi tmpL, 0×80; ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π°Π΄ΡΠ΅ΡΠ° Π²ΡΠ²ΠΎΠ΄Π° ΠΏΡΠΎΠ±Π΅Π»Π°
push tmpL
rjmp m8; ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° ΠΌΠ΅ΡΠΊΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ΅
; ΠΌΠ΅ΡΠΊΠ° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΠΊ ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²ΠΊΠ΅ ΡΠΎΠΊΠ° (Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ Π² ΡΡΠ΅Π΄Π½Π΅ΠΉ ΡΠΎΡΠΊΠ΅ ΡΠΈΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠΎΠΌΠ΅ΡΡΠ°)
Param3sel:
ldi Maxvalue, 0x0F
ldi XL, Current
ldi tmpL, 0xC0; ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π°Π΄ΡΠ΅ΡΠ° Π²ΡΠ²ΠΎΠ΄Π° ΡΠΈΠΌΠ²ΠΎΠ»Π° ΡΡΡΠ΅Π»ΠΊΠΈ Π²ΠΏΡΠ°Π²ΠΎ
push tmpL
ldi tmpL, 0×88; ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π°Π΄ΡΠ΅ΡΠ° Π²ΡΠ²ΠΎΠ΄Π° ΠΏΡΠΎΠ±Π΅Π»Π°
push tmpL
m8: pop tmpL; ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ Π² tmpL Π°Π΄ΡΠ΅ΡΠ° Π²ΡΠ²ΠΎΠ΄Π° ΠΏΡΠΎΠ±Π΅Π»Π°
rcall LCD_send_command; Π΅Π³ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΊΠ° Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ
ldi tmpL, ' '
rcall LCD_send_data; ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΠΏΡΠΎΠ±Π΅Π»Π° Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ
pop tmpL; ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ Π² tmpL Π°Π΄ΡΠ΅ΡΠ° Π²ΡΠ²ΠΎΠ΄Π° ΡΠΈΠΌΠ²ΠΎΠ»Π° ΡΡΡΠ΅Π»ΠΊΠΈ Π²ΠΏΡΠ°Π²ΠΎ
rcall LCD_send_command; Π΅Π³ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΊΠ° Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ
clr tmpL
rcall LCD_send_data; ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΡΠΈΠΌΠ²ΠΎΠ»Π° ΡΡΡΠ΅Π»ΠΊΠΈ Π²ΠΏΡΠ°Π²ΠΎ Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ
ret; ΠΈ Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ
; ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°
plus_pressed:
ld tmpL, X; ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· SRAM Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°
cp tmpL, Maxvalue
brsh ret1; Π΅ΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠ΅, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° ΠΌΠ΅ΡΠΊΡ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
inc tmpL; ΠΈΠ½Π°ΡΠ΅ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°
st X, tmpL; Π΅Π³ΠΎ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π² SRAM
rjmp Param_change; ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° ΠΌΠ΅ΡΠΊΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ΅ΠΌΠ΅ΡΡΠ°
; ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°
minus_pressed:
ld tmpL, X; ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· SRAM Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°
tst tmpL
breq ret1; Π΅ΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ = 0, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° ΠΌΠ΅ΡΠΊΡ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
dec tmpL; ΠΈΠ½Π°ΡΠ΅ Π΄Π΅ΠΊΡΠ΅ΠΌΠ΅Π½Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°
st X, tmpL; Π΅Π³ΠΎ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π² SRAM
; ΠΎΠ±ΡΠ°Ρ ΠΌΠ΅ΡΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°
Param_change:
lds tmpH, Menu_pos; ΠΌΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΌΠ΅Π½Ρ
ldi ZH, high (Change_handlers<<1)
ldi ZL, low (Change_handlers<<1)
lsl tmpH
add ZL, tmpH
adc ZH, ZERO
lpm R0, Z+
lpm R1, Z
movw ZH: ZL, R1: R0; ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ Π°Π΄ΡΠ΅ΡΠ° ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°
icall; ΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ret1:
clr T0_int_countH; ΠΎΠ±Π½ΡΠ»Π΅Π½ΠΈΠ΅ ΡΡΡΡΡΠΈΠΊΠ° 109 ΠΌΡ-ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠ²
ret; ΠΈ Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
; ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ΅Π½Ρ ΠΏΡΠΈΠ±ΠΎΡΠ°
Device_init:
ldi tmpL, 0×81
ldi ZH, high (str_freq<<1)
ldi ZL, low (str_freq<<1)
rcall LCD_send_string
ldi tmpL, 0×86
ldi ZH, high (str_HZ<<1)
ldi ZL, low (str_HZ<<1)
rcall LCD_send_string
ldi tmpL, 0×89
ldi ZH, high (str_Ti<<1)
ldi ZL, low (str_Ti<<1)
rcall LCD_send_string
ldi ZH, high (str_current<<1)
ldi ZL, low (str_current<<1)
ldi tmpL, 0xC1
rcall LCD_send_string
ldi ZH, high (str_off<<1)
ldi ZL, low (str_off<<1)
ldi tmpL, 0xC7
rcall LCD_send_string; Π²ΡΠ²ΠΎΠ΄ ΡΡΡΠΎΠΊ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ
ldi tmpH, EEFreq
rcall EERead; ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°ΡΡΠΎΡΡ ΠΈΠ· EEPROM
cpi tmpL, 0×32
brlo m1; Π΅ΡΠ»ΠΈ ΡΠ°ΡΡΠΎΡΠ° Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠΉ, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° m1
clr tmpL
rcall EEWrite; ΠΈΠ½Π°ΡΠ΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°ΡΡΠΎΡΡ Π² EEPROM
m1: sts Freq, tmpL
rcall set_freq; Π²ΡΠ·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ°ΡΡΠΎΡΡ
ldi tmpH, EEWidth
rcall EERead; ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ°ΡΡΠΎΡΡ ΠΈΠ· EEPROM
cpi tmpL, 0×04
brlo m2; Π΅ΡΠ»ΠΈ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠΉ, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° m2
clr tmpL
rcall EEWrite; ΠΈΠ½Π°ΡΠ΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π² EEPROM
m2: sts Width, tmpL
rcall set_width
ldi tmpH, EECurrent
rcall EERead; ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠΊΠ° ΡΡΠΈΠΌΡΠ»ΡΡΠΈΠΈ ΠΈΠ· EEPROM
cpi tmpL, 0×10
brlo m3; Π΅ΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠ³ΠΎ, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° m3
clr tmpL
rcall EEWrite; ΠΈΠ½Π°ΡΠ΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π² EEPROM
m3: sts Current, tmpL
rcall set_current; Π²ΡΠ·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠΎΠΊΠ° ΡΡΠΈΠΌΡΠ»ΡΡΠΈΠΈ
rcall Param1sel; Π²ΡΠ·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΡΠ±ΠΎΡΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° 1 (ΡΠ°ΡΡΠΎΡΡ ΠΈΠΌΠΏΡΠ»ΡΡΠΎΠ²)
ret; ΠΈ Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
; ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ°ΡΡΠΎΡΡ: ΡΠ΅Π³ΠΈΡΡΡ Freq Π² ΠΎΠ±Π»Π°ΡΡΠΈ SRAM — ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΡΡΠΎΡΡ
set_freq:
ldi tmpH, high (50 000)
ldi tmpL, low (50 000)
lds divisor, Freq
inc divisor
rcall div16to8; Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ° ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ OC1A, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ Π΄Π»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°ΡΡΠΎΡΡ: OC1A = 50 000/Freq
out OCR1AH, tmpH
out OCR1AL, tmpL; ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π² OC1A
rcall ind_freq; Π²ΡΠ·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ°ΡΡΠΎΡΡ
ret; ΠΈ Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ°ΡΡΠΎΡΡ
; ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ°ΡΡΠΎΡΡ
ind_freq:
ldi tmpL, 0×83
rcall LCD_send_command; ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΊ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΠΈ
lds tmpL, Freq
ldi ZL, digbuf+3
lds tmpL, Freq
inc tmpL
mov tmpH, tmpL
lsl tmpL
lsl tmpL
add tmpL, tmpH; Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΈΠ· ΡΠ΅Π³ΠΈΡΡΡΠ° ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°ΡΡΠΎΡΡ Freq Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°ΡΡΠΎΡΡ Π² ΠΠ΅ΡΡΠ°Ρ : Hz = (Freq+1)*5
m4: rcall div10; Π²ΡΠ·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π° 10
st — Z, rest; Π·Π°ΠΏΠΈΡΡ ΠΎΡΡΠ°ΡΠΊΠ° ΠΎΡ Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ Π°Π΄ΡΠ΅ΡΡ Π² Π±ΡΡΠ΅ΡΠ΅ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΡΡ ΡΠΈΡΡ Ρ ΠΏΡΠ΅Π΄Π΄Π΅ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΎΠΌ Π°Π΄ΡΠ΅ΡΠ°
cpi ZL, digbuf
brne m4; Π΅ΡΠ»ΠΈ Π°Π΄ΡΠ΅Ρ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° m4
m5: ld tmpL, Z+
subi tmpL,-0×30
rcall LCD_send_data; ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ ΡΠΈΡΡ ΠΈΠ· Π±ΡΡΠ΅ΡΠ° Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΡΡ ΡΠΈΡΡ
cpi ZL, digbuf+3
brlo m5; ΠΏΠΎΠΊΠ° Π½Π΅ Π²ΡΠ²Π΅Π΄Π΅Π½Ρ Π΅Π΄ΠΈΠ½ΠΈΡΡ, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° m5
ret; Π΄Π°Π»Π΅ Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
; ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈΠ· ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ Width: T = (Width+2)*0.1 ΠΌΡ
set_width:
ldi tmpL, 0x8E
rcall LCD_send_command; ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° LCD ΠΊ Π°Π΄ΡΠ΅ΡΡ Π²ΡΠ²ΠΎΠ΄Π° Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ
lds cnt1, Width
inc cnt1
push cnt1
ldi tmpL, 25
clr tmpH
m6: subi tmpL, — 25
dec cnt1; Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠ°Π½Π°Π»Π° PWM OC1B Π΄Π»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ: OC1B = 25*(2+Width)
brne m6
out OCR1BH, tmpH
out OCR1BL, tmpL; ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² OC1B
pop cnt1
inc cnt1
mov tmpL, cnt1
subi tmpL,-0×30
rcall LCD_send_data; Π²ΡΠ²ΠΎΠ΄ Π΄Π΅ΡΡΡΡΡ Π΄ΠΎΠ»Π΅ΠΉ ΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ
ret; ΠΈ Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
; ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ Π² ΡΡΠ΅Π΄Π½Π΅ΠΉ ΡΠΎΡΠΊΠ΅ ΠΏΠΎΡΠ΅Π½ΡΠΈΠΎΠΌΠ΅ΡΡΠ° — ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠΎΠΊΠ°
set_current:
ldi tmpH, 0x0F
lds tmpL, Current; ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠΊΠ°
push tmpL
sub tmpH, tmpL
rcall mul_to17; Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ Π½Π° ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΠ΅Π½ΡΠΈΠΎΠΌΠ΅ΡΡ Π±Π°ΠΉΡΠ° Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
rcall set_resistance; Π²ΡΠ·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ Π² ΡΡΠ΅Π΄Π½Π΅ΠΉ ΡΠΎΡΠΊΠ΅ ΠΏΠΎΡΠ΅Π½ΡΠΈΠΎΠΌΠ΅ΡΡΠ°
pop tmpH
lsl tmpH
rcall ind_current; Π²ΡΠ·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠΊΠ°
ret; ΠΈ Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
; ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠΊΠ°: ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΊΠ° = tmpH = Current<<1
ind_current:
push tmpH
ldi tmpL, 0xC3
rcall LCD_send_command; ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΊ Π°Π΄ΡΠ΅ΡΡ Π²ΡΠ²ΠΎΠ΄Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠΊΠ°
pop tmpL
rcall div10; Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠΊΠ° Π½Π° 10
subi tmpL,-0×30
rcall LCD_send_data; Π²ΡΠ²ΠΎΠ΄ Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π΄Π΅Π»Π΅Π½ΠΈΡ — Π΅Π΄ΠΈΠ½ΠΈΡ ΠΌΠΈΠ»ΠΈΠ°ΠΌΠΏΠ΅Ρ
ldi tmpL, '.'
rcall LCD_send_data; Π²ΡΠ²ΠΎΠ΄ Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ
mov tmpL, rest
subi tmpL,-0×30
rcall LCD_send_data; Π²ΡΠ²ΠΎΠ΄ Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ ΠΎΡΡΠ°ΡΠΊΠ° ΠΎΡ Π΄Π΅Π»Π΅Π½ΠΈΡ — Π΄Π΅ΡΡΡΡΡ Π΄ΠΎΠ»Π΅ΠΉ ΠΌΠΈΠ»ΠΈΠ°ΠΌΠΏΠ΅ΡΠ°
ret; ΠΈ Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
; Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° 17: ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π±Π°ΠΉΡΠ° ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²ΠΊΠΈ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ Π² ΡΡΠ΅Π΄Π½Π΅ΠΉ ΡΠΎΡΠΊΠ΅ ΡΠΈΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠΎΠΌΠ΅ΡΡΠ°
mul_to17:
mov tmpL, tmpH
lsl tmpH
lsl tmpH
lsl tmpH
lsl tmpH
add tmpH, tmpL
ret
;ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π° Π² ΡΡΠ΅Π΄Π½Π΅ΠΉ ΡΠΎΡΠΊΠ΅ ΡΠΈΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠΎΠΌΠ΅ΡΡΠ°
set_resistance:
rcall I2C_start; ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ°ΡΡ-ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° ΡΠΈΠ½Π΅ I2C
ldi tmpL, Device_adr
rcall I2C_send; ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΡΠ»Π΅ΠΉΠ²-Π°Π΄ΡΠ΅ΡΠ° ΡΠΈΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠΎΠΌΠ΅ΡΡΠ°
clr tmpL
rcall I2C_send; ΠΎΡΠΏΡΠ°Π²ΠΊΠ° Π±Π°ΠΉΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΠ½Π°ΡΠΈΠΈ
mov tmpL, tmpH
rcall I2C_send; ΠΎΡΠΏΡΠ°Π²ΠΊΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π±Π°ΠΉΡΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ Π² ΡΡΠ΅Π΄Π½Π΅ΠΉ ΡΠΎΡΠΊΠ΅ U0: U0 = VCC*value/256
rcall I2C_stop; ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΠΏ-ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° ΡΠΈΠ½Π΅ I2C
ret; ΠΈ Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
; ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ LCD Π² ΡΠ΅ΡΡΡΡΡ Π±ΠΈΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅
LCD_init:
ldi tmpL, 0×18
out PORTD, tmpL; Π²ΡΠ²ΠΎΠ΄ Π² PORTD Π±Π°ΠΉΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ = 0×30
ldi tmpL, 0x0A
m0: ldi cnt1,0×40
rcall next_del
dec tmpL
brne m0; Π·Π°Π΄Π΅ΡΠΆΠΊΠ° ΠΎΠΊΠΎΠ»ΠΎ 40 ΠΌΡ
rcall LCD_strobe; ΠΏΠΎΠ΄Π°ΡΠ° Π½Π° LCD ΡΠΈΠ½Ρ ΡΠΎΠΈΠΌΠΏΡΠ»ΡΡΠ°
ldi cnt1,0×40
rcall next_del; Π·Π°Π΄Π΅ΡΠΆΠΊΠ° ΠΎΠΊΠΎΠ»ΠΎ 4 ΠΌΡ
rcall LCD_strobe; ΠΏΠΎΠ΄Π°ΡΠ° Π½Π° LCD ΡΠΈΠ½Ρ ΡΠΎΠΈΠΌΠΏΡΠ»ΡΡΠ°
ldi cnt1,0×04
rcall next_del; Π·Π°Π΄Π΅ΡΠΆΠΊΠ° ΠΎΠΊΠΎΠ»ΠΎ 256 ΠΌΠΊΡ
rcall LCD_strobe_delay; Π²ΡΠ·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ LCD Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ
ldi tmpL, 0×10
out PORTD, tmpL; Π²ΡΠ²ΠΎΠ΄ Π² PORTD Π±Π°ΠΉΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ = 0×20
rcall LCD_strobe_delay; Π²ΡΠ·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ LCD Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ — ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΡΡΡΡ Π±ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°
ldi tmpL, 0×28
rcall LCD_send_command; ΠΎΡΠΏΡΠ°Π²ΠΊΠ° Π½Π° LCD ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π²ΡΡΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° LCD
ldi tmpL, 0x0C
rcall LCD_send_command; ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΡΡ LCD Π±Π΅Π· Π²ΠΈΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΊΡΡΡΠΎΡΠ°, Π±Π΅Π· ΠΏΠΎΠ΄ΡΡΡΠΊΠΈΠ²Π°Π½ΠΈΠΉ
ldi tmpL, 0×06
rcall LCD_send_command; ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ΄Π²ΠΈΠ³Π° Π²ΠΏΡΠ°Π²ΠΎ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°
ldi tmpL, 0×01
rcall LCD_send_command; ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΡΠΈΡΡΠΊΠΈ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ°
ret; ΠΈ Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
;ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π² ΠΎΠ±Π»Π°ΡΡΠΈ Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° LCD: Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ Π² ΠΎΠ±Π»Π°ΡΡΠΈ Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° = 0×40+(tmpL&0×07)<<3, Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π² flash ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ ZH: ZL
LCD_sym_gen:
andi tmpL, 0×07
swap tmpL
lsr tmpL
subi tmpL,-0×40; tmpL = 0×40+((tmpL&0×07)<<3) — Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π°
rcall LCD_send_command; ΠΎΡΠΏΡΠ°Π²ΠΊΠ° Π½Π° LCD ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»Π°
clr R20; ΠΎΠ±Π½ΡΠ»Π΅Π½ΠΈΠ΅ ΡΡΡΡΡΠΈΠΊΠ°
next_sym_code:
lpm tmpL, Z+; Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΈΠ· flash ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° Ρ ΠΏΠΎΡΡΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΎΠΌ Π°Π΄ΡΠ΅ΡΠ°
rcall LCD_send_data; ΠΎΡΠΏΡΠ°Π²ΠΊΠ° Π½Π° LCD Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ° Π΄Π°Π½Π½ΡΡ
inc R20; ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½Ρ ΡΡΡΡΡΠΈΠΊΠ° ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π±Π°ΠΉΡ
cpi R20,0×08
brlo next_sym_code; Π΅ΡΠ»ΠΈ ΡΡΡΡΡΠΈΠΊ < 8, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° ΠΌΠ΅ΡΠΊΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π½Π° LCD ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π±Π°ΠΉΡΠ°
ret; ΠΈ Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
; ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΡΡΠΎΠΊΠΈ Π½Π° LCD: ΡΡΡΠΎΠΊΠ° ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π° Π² flash Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π°Π΄ΡΠ΅ΡΠ° ZH: ZL, Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΡΡ Π±Π°ΠΉΡΠΎΠΌ = 0×00, Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π½Π° LCD Π·Π°Π΄Π°Π½Π° Π² tmpL
LCD_send_string:
rcall LCD_send_command; ΠΎΡΠΏΡΠ°Π²ΠΊΠ° Π½Π° LCD ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΠΊ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ Π²ΡΠ²ΠΎΠ΄Π° ΡΡΡΠΎΠΊΠΈ
next_sym:
lpm tmpL, Z+; Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΈΠ· ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π°Π΄ΡΠ΅ΡΠ° Π² flash Π±Π°ΠΉΡΠ° Π΄Π°Π½Π½ΡΡ Ρ ΠΏΠΎΡΡΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΎΠΌ Π°Π΄ΡΠ΅ΡΠ°
tst tmpL
brne PC+2
ret; Π΅ΡΠ»ΠΈ ΠΈΠ·Π²Π»Π΅ΡΡΠ½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ = 0 (ΠΊΠΎΠ½Π΅Ρ ΡΡΡΠΎΠΊΠΈ), Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
rcall LCD_send_data; ΠΈΠ½Π°ΡΠ΅ ΠΎΠΏΡΠ°Π²ΠΊΠ° ΠΈΠ·Π²Π»Π΅ΡΡΠ½Π½ΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ° Π΄Π°Π½Π½ΡΡ Π½Π° LCD
rjmp next_sym; ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΊ ΠΌΠ΅ΡΠΊΠ΅ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°
; ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π½Π° LCD Π±Π°ΠΉΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎΡΡ Π² tmpL Π² ΡΠ΅ΡΡΡΡΡ Π±ΠΈΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅
LCD_send_command:
cbi PORTD, LCD_RS_line; Π²ΡΠ²ΠΎΠ΄ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ «0» Π² Π»ΠΈΠ½ΠΈΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ LCD RS
rjmp PC+2; ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌ ΠΏΠΎ ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅ Π±Π°ΠΉΡΠ°
; ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π½Π° LCD Π±Π°ΠΉΡΠ° Π΄Π°Π½Π½ΡΡ , ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎΡΡ Π² tmpL Π² ΡΠ΅ΡΡΡΡΡ Π±ΠΈΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅
LCD_send_data:
sbi PORTD, LCD_RS_line; Π²ΡΠ²ΠΎΠ΄ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ «1» Π² Π»ΠΈΠ½ΠΈΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ LCD RS
rcall LCD_short_delay; Π²ΡΠ·ΠΎΠ² ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ
push tmpL; Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ° Π² ΡΡΠ΅ΠΊΠ΅
andi tmpL, 0xF0
lsr tmpL
in tmpH, PORTD; Π·Π°ΠΏΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π²ΡΡ ΠΎΠ΄Π½ΡΡ Π»ΠΈΠ½ΠΈΠΉ PORTD Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ
andi tmpH, 0×07; Π·Π°ΠΏΠΈΡΡ Π² Π±ΠΈΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ°, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Π»ΠΈΠ½ΠΈΡΠΌ Π΄Π°Π½Π½ΡΡ LCD Π½ΡΠ»Π΅ΠΉ
or tmpL, tmpH; Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΠΠ ΡΠ΅Π³ΠΈΡΡΡΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ ΡΡΠ°ΡΡΠΈΠΉ ΠΏΠΎΠ»ΡΠ±Π°ΠΉΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Ρ Π±ΠΈΡΠ°ΠΌΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ° ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π²ΡΡ ΠΎΠ΄Π½ΡΡ Π»ΠΈΠ½ΠΈΠΉ PORTD
out PORTD, tmpL; Π²ΡΠ²ΠΎΠ΄ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π² PORTD
rcall LCD_short_delay; Π²ΡΠ·ΠΎΠ² ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ
rcall LCD_strobe; Π²ΡΠ·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ LCD
pop tmpL; ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΠ½Π½ΠΎΠ³ΠΎ Π² ΡΡΠ΅ΠΊΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
push tmpL
swap tmpL; ΠΎΠ±ΠΌΠ΅Π½ ΠΈΠ·Π²Π»Π΅ΡΡΠ½Π½ΡΡ ΠΏΠΎΠ»ΡΠ±Π°ΠΉΡ Π² ΠΈΠ·Π²Π»Π΅ΡΡΠ½Π½ΠΎΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ΅ — Π²ΡΠ²ΠΎΠ΄ ΠΌΠ»Π°Π΄ΡΠΈΡ Π±Π°ΠΉΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΡΠ°ΡΡΠΈΠ΅
andi tmpL, 0xF0
lsr tmpL
in tmpH, PORTD; Π·Π°ΠΏΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π²ΡΡ ΠΎΠ΄Π½ΡΡ Π»ΠΈΠ½ΠΈΠΉ PORTD Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ
andi tmpH, 0×07; Π·Π°ΠΏΠΈΡΡ Π² Π±ΠΈΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ°, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Π»ΠΈΠ½ΠΈΡΠΌ Π΄Π°Π½Π½ΡΡ LCD Π½ΡΠ»Π΅ΠΉ
or tmpL, tmpH; Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΠΠ ΡΠ΅Π³ΠΈΡΡΡΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ ΠΌΠ»Π°Π΄ΡΠΈΠΉ ΠΏΠΎΠ»ΡΠ±Π°ΠΉΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Ρ Π±ΠΈΡΠ°ΠΌΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ° ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π²ΡΡ ΠΎΠ΄Π½ΡΡ Π»ΠΈΠ½ΠΈΠΉ PORTD
out PORTD, tmpL; Π²ΡΠ²ΠΎΠ΄ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π² PORTD
rcall LCD_short_delay; Π²ΡΠ·ΠΎΠ² ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ
pop tmpL; ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ° Π² tmpL Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ LCD Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ
rcall LCD_strobe_delay; Π²ΡΠ·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ° Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ
ret; ΠΈ Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π±Π°ΠΉΡΠ° Π½Π° LCD
; ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ° Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ — Π²ΡΠ΅ΠΌΡ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎΡΡ Π² tmpL
LCD_strobe_delay:
rcall LCD_strobe; Π²ΡΠ·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ°
sbic PORTD, LCD_RS_line
rjmp PC+3
cpi tmpL, 0×03
brlo PC+3
ldi cnt1,0×01; Π΅ΡΠ»ΠΈ Π±ΡΠ»ΠΈ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Ρ Π΄Π°Π½Π½ΡΠ΅ Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° <> ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΎΡΠΈΡΡΠΊΠ΅, Π·Π°ΠΏΠΈΡΡ Π² ΡΡΡΡΡΠΈΠΊ 64 ΠΌΠΊΡ-Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡ = 1
rjmp next_del
ldi cnt1,0×20; Π΅ΡΠ»ΠΈ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡΠΈΡΡΠΊΠΈ LCD, Π·Π°ΠΏΠΈΡΡ Π² ΡΡΡΡΡΠΈΠΊ 64 ΠΌΠΊΡ-Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡ = 32 (Π΄Π»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΎΠΊΠΎΠ»ΠΎ 2 ΠΌΡ)
next_del:
rcall LCD_after_send_delay; Π²ΡΠ·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ 64 ΠΌΠΊΡ
dec cnt1; Π΄Π΅ΠΊΡΠ΅ΠΌΠ΅Π½Ρ ΡΡΡΡΡΠΈΠΊΠ° 64 ΠΌΠΊΡ-Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ
brne next_del; ΠΏΠΎΠΊΠ° ΡΡΡΡΡΠΈΠΊ Π½Π΅ ΠΎΠ±Π½ΡΠ»ΠΈΠ»ΡΡ, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° next_del
ret; ΠΈ Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
; ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ LCD-ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ°
LCD_strobe:
sbi PORTD, LCD_E_line
rcall LCD_short_delay; Π²ΡΠ²ΠΎΠ΄ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ «1» Π² Π»ΠΈΠ½ΠΈΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ Π»ΠΈΠ½ΠΈΠΈ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ° Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ
cbi PORTD, LCD_E_line
rcall LCD_short_delay; Π²ΡΠ²ΠΎΠ΄ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ «0» Π² Π»ΠΈΠ½ΠΈΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ Π»ΠΈΠ½ΠΈΠΈ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ° Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ
ret; ΠΈ Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
; ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ Π΄Π»Ρ LCD (ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π²Π½ΡΡΡΠΈ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ Π΄Π»Ρ LCD)
LCD_short_delay:
ldi cnt2,0×04
rcall short_delay1
ret
; ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ (ΠΎΠΊΠΎΠ»ΠΎ 64 ΠΌΠΊΡ) ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π±Π°ΠΉΡΠ° Π½Π° LCD
LCD_after_send_delay:
clr cnt2
rcall short_delay1
ret
; ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ Π΄Π»Ρ ΡΠΈΠ½Ρ I2C
; ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ°ΡΡ-ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° ΡΠΈΠ½Π΅ I2C
I2C_start:
sbi PORTB, SCL
rcall i2c_delay
sbi DDRB, SDA
rcall i2c_delay
ret
; ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π±Π°ΠΉΡΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎΡΡ Π² tmpL ΠΏΠΎ ΡΠΈΠ½Π΅ I2C
I2C_send:
ldi cnt1,0×08
cbi PORTB, SCL
rcall i2c_delay
lsl tmpL
brcc PC+3
cbi DDRB, SDA
rjmp PC+2
sbi DDRB, SDA
rcall i2c_delay
sbi PORTB, SCL
rcall i2c_delay
dec cnt1
brne I2C_send+1
cbi PORTB, SCL
rcall i2c_delay
cbi DDRB, SDA
rcall i2c_delay
sbi PORTB, SCL
rcall i2c_delay
ret
; ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠΏ-ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° ΡΠΈΠ½Π΅ I2C
I2C_stop:
cbi PORTB, SCL
rcall i2c_delay
sbi DDRB, SDA
rcall i2c_delay
sbi PORTB, SCL
rcall i2c_delay
cbi DDRB, SDA
rcall i2c_delay
ret
; ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ Π΄Π»Ρ I2C, LCD_short_delay ΠΈ Ρ. Π΄.
I2C_delay:
ldi cnt2,0×10
; ΠΎΠ±ΡΠ°Ρ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ: Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π²Π½ΡΡΡΠΈ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ I2C_delay
short_delay1:
dec cnt2
nop
brne short_delay1
ret
; ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π΅Π»Π΅Π½ΠΈΡ 16-ΡΠΈ Π±ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π² ΡΠ΅Π³ΠΈΡΡΡΠΎΠ²ΠΎΠΉ ΠΏΠ°ΡΠ΅ tmpH: tmpL Π½Π° Π²ΠΎΡΡΠΌΠΈΠ±ΠΈΡΠ½ΠΎΠ΅ Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ divisor: ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ — Π² tmpH: tmpL, ΠΎΡΡΠ°ΡΠΎΠΊ — Π² rest
div16to8:
ldi cnt1,0×11
clr rest
clc
rol tmpL
rol tmpH
dec cnt1
brne PC+2
ret
rol rest
sub rest, divisor
brcs PC+3
sec
rjmp div16to8+3
add rest, divisor
rjmp div16to8+2
; ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠ° tmpL Π½Π° 10: ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΎΡ Π΄Π΅Π»Π΅Π½ΠΈΡ Π² tmpL, ΠΎΡΡΠ°ΡΠΎΠΊ — Π² rest
div10:
ldi cnt1,0×09
clr rest
clc
rol tmpL
dec cnt1
brne PC+2
ret
rol rest
subi rest, 0x0A
brcs PC+3
sec
rjmp div10+3
subi rest,-0x0A
rjmp div10+2
; ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°ΠΏΠΈΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΡΠ΅Π³ΠΈΡΡΡΠ° tmpL ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ EEPROM, Π·Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠΌΡ Π² tmpH
EEWrite:
out EEAR, tmpH
out EEDR, tmpL
sbi EECR, EEMWE
sbi EECR, EEWE
sbic EECR, EEWE
rjmp PC-1
ret
; ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΡΠ΅Π½ΠΈΡ Π² ΡΠ΅Π³ΠΈΡΡΡ tmpL ΠΈΠ· Π°Π΄ΡΠ΅ΡΠ° EEPROM, Π·Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π² tmpH
EERead:
out EEAR, tmpH
sbi EECR, EERE
in tmpL, EEDR
ret
; ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ OC0A ΡΠ°ΠΉΠΌΠ΅ΡΠ° T0 (ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Ρ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠΌ 1 ΠΌΡ)
T0_COMPA_handle:
push tmpL
in tmpL, SREG
push tmpL; ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΈΡΠΈΡΠ½ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π² ΡΡΠ΅ΠΊΠ΅
inc T0_int_countL; ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½Ρ ΡΡΡΡΡΠΈΠΊΠ° 1 ΠΌΡ-Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ
pop tmpL
out SREG, tmpL
pop tmpL; ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΡΠΈΡΠΈΡΠ½ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΈΠ· ΡΡΠ΅ΠΊΠ°
reti; ΠΈ Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ
; ΡΠ°Π±Π»ΠΈΡΠ° Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ
key_handlers: .dw stim_pressed, param_pressed, plus_pressed, minus_pressed
; ΡΠ°Π±Π»ΠΈΡΠ° Π°Π΄ΡΠ΅ΡΠΎΠ² Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ Π²ΡΠ±ΠΎΡΠ° ΡΠ΅Π³ΡΠ»ΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° (Π°Π΄ΡΠ΅Ρ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°)
Menu_handlers: .dw Param1sel, Param2sel, Param3sel
; ΡΠ°Π±Π»ΠΈΡΠ° Π°Π΄ΡΠ΅ΡΠΎΠ² Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΉ ΠΊΠ»Π°Π²ΠΈΡ ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²ΠΊΠΈ (Π°Π΄ΡΠ΅Ρ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°)
change_handlers: .dw set_freq, set_Width, set_current
; ΠΊΠΎΠ΄Ρ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΡΡΡΠ΅Π»ΠΊΠΈ Π²ΠΏΡΠ°Π²ΠΎ Π² ΠΎΠ±Π»Π°ΡΡΠΈ Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° LCD
sym_right: .db 0×08,0x0C, 0x0E, 0x0 °F, 0x0E, 0x0C, 0×08,0×00
; Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΡΠ΅ Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ ΡΡΡΠΎΠΊΠΈ
str_off: .db «off», 0×00
str_on: .db «on», 0×00
str_HZ: .db «Hz», 0×00,0xFF
str_Ti: .db «Ti=0.», 0×00
str_current: .db «I=», 0×00,0xFF
str_freq: .db «F=», 0×00,0xFF