Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΅ΡΠΌΠΎΠΌΠ΅ΡΡΠ° Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΠΌ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° AΠ’90S2313 Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅ΡΠΌΠΎΡΡΠ°ΡΠ° DS1620
ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ ΠΎΡ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ ΠΊ Π²Π½Π΅ΡΠ½Π΅ΠΌΡ ΡΡΡΡΠΎΠΉΡΡΠ²Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΡΠ΅Ρ ΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠΈΠ½Π΅: Π‘LK/Π‘ΠNV (ΠΊΠΎΠ½ΡΠ°ΠΊΡ 2), DQ (ΠΊΠΎΠ½ΡΠ°ΠΊΡ 1) ΠΈ RΠSΠΠ’ (ΠΊΠΎΠ½ΡΠ°ΠΊΡ 3). ΠΡΠΈ Π²ΡΡ ΠΎΠ΄Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡ Ρ ΡΡΠΎΠ²Π½ΡΠΌΠΈ Π’Π’Π. Π’higt (ΠΊΠΎΠ½ΡΠ°ΠΊΡ 7) — Π²ΡΡ ΠΎΠ΄ ΡΡΠΈΠ³Π³Π΅ΡΠ° Π²ΡΡΠΎΠΊΠΎΠΉ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ. ΠΡΠ»ΠΈ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ° ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ Π²Π΅ΡΡ Π½ΠΈΠΉ ΠΏΠΎΡΠΎΠ³, ΡΠΎ Π²ΡΡ ΠΎΠ΄ Π’higt ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΎΠ± ΡΡΠΎΠΌ Π²ΡΡΠΎΠΊΠΈΠΌ ΡΡΠΎΠ²Π½Π΅ΠΌ ΠΈ ΠΎΡΡΠ°Π΅ΡΡΡ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΅ΡΠΌΠΎΠΌΠ΅ΡΡΠ° Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΠΌ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° AΠ’90S2313 Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅ΡΠΌΠΎΡΡΠ°ΡΠ° DS1620 (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΡΡΡΠΎΠ²ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ
Π½Π° ΡΠ΅ΠΌΡ:
«Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΅ΡΠΌΠΎΠΌΠ΅ΡΡΠ° Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΠΌ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° AΠ’90S2313 Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅ΡΠΌΠΎΡΡΠ°ΡΠ° DS1620»
ΠΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΈ ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½Π΅ΠΎΡΡΠ΅ΠΌΠ»Π΅ΠΌΡΡ ΠΈ Π²Π°ΠΆΠ½ΡΡ Π·Π°Π΄Π°Ρ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΠΌΠΈΡΠ΅. Π’Π°ΠΊΠ°Ρ Π·Π°Π΄Π°ΡΠ° ΡΡΠΎΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΠΎΡΡΡΡ, ΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅Π»ΡΡΠΊΠΈΠΌ Ρ ΠΎΠ·ΡΠΉΡΡΠ²ΠΎΠΌ, ΠΈ Π² Π±ΡΡΡ ΠΈ Π΄Π°ΠΆΠ΅ Π² ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΡΡΠΎΠΊΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. Π ΡΠ°Π·Π½ΡΡ ΡΠ»ΡΡΠ°ΡΡ Π·Π°Π΄Π°ΡΠ° ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΡ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΡ ΡΠ΅Π»Ρ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ΅ΡΠ΅Π½ΠΈΡ.
Π Π΅Π³ΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π³Π°Π·ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΡ , ΡΡΠΏΡΡΠΈΡ ΠΈ ΠΆΠΈΠ΄ΠΊΠΈΡ ΡΡΠ΅Π΄, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π²ΠΎΠ·Π΄ΡΡ Π° ΠΈ Π²ΠΎΠ΄Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π°Π΄Π°ΡΠ΅ΠΉ ΠΈ Π΄Π»Ρ Π΄ΠΎΡΠΎΠΆΠ½ΠΎ-ΡΡΡΠΎΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΎΡΡΠ°ΡΠ»ΠΈ ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΠΎΡΡΠΈ. ΠΡΠΈΠΌΠ΅ΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΠΆΠΈΡΡ ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ ΠΏΡΠΈΠ³ΠΎΡΠΎΠ²Π»Π΅Π½ΠΈΡ Π±ΠΈΡΡΠΌΠ½ΠΎΠΉ ΡΠΌΠ΅ΡΠΈ, Π°ΡΡΠ°Π»ΡΡΠ° ΠΈ Ρ. Π΄.
ΠΠΎΠ·Π»Π°Π³Π°ΡΡ Π½Π° ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° Π·Π°Π΄Π°ΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΈ ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π² ΡΠΏΠΎΡ Ρ Π²ΡΡΠΎΠΊΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΡΠ°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ. ΠΠ° ΠΏΠΎΠΌΠΎΡΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΡ ΠΏΡΠΈΡΠ»ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΠΎΠ²ΡΠ΅ Π΄Π°ΡΡΠΈΠΊΠΈ ΠΈ ΡΠ΅Π³ΡΠ»ΡΡΠΎΡΡ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ.
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΊΡΡΡΠΎΠ²ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΈΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π³ΡΠ»ΡΡΠΎΡΠ° ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ-ΡΠ΅ΡΠΌΠΎΠΌΠ΅ΡΡΠ° DS1620, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΠ°Π΅Ρ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ½ΡΠΉ Π΄Π°ΡΡΠΈΠΊ, ΡΡ Π΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΠΠ¦Π Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΡΠΈΡΡΠ°Π»Π»Π΅, ΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° ΡΠΈΡΠΌΡ Atmel AT90S2313.
1. ΠΠ½Π°Π»ΠΈΠ· Π·Π°Π΄Π°ΡΠΈ. ΠΡΠ±ΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²
ΠΠ°ΡΠ° Π·Π°Π΄Π°ΡΠ° ΡΠΎΡΡΠΎΠΈΡ Π² ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΠΈ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΠΎΡΠΈΠ΄ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ Π·Π°Π΄Π°Π΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ. ΠΠ° ΠΠΠ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ΅, ΠΎ Π²Π΅ΡΡ Π½Π΅ΠΌ ΠΏΡΠ΅Π΄Π΅Π»Π΅ ΠΈ ΠΎ Π½ΠΈΠΆΠ½Π΅ΠΌ ΠΏΡΠ΅Π΄Π΅Π»Π΅ (ΠΏΠΎΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ°). Π’Π΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ½ΡΠΉ Π΄Π°ΡΡΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΠ±ΡΠ°ΡΡ ΠΎ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΡΠΈΠ΄ΠΎΡΠ΅ ΡΠ²Π΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄Π° Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠ²ΠΎΠΈΡ Π²ΡΠ²ΠΎΠ΄ΠΎΠ² (Tcom). Π’Π°ΠΊΠΆΠ΅ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΡΠ΅ΡΠΌΠΎΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ (Π½Π°Π³ΡΠ΅Π²Π°ΡΠ΅Π»Π΅ΠΌ ΠΈ ΠΎΡ Π»Π°Π΄ΠΈΡΠ΅Π»Π΅ΠΌ) ΠΏΠΎΠ΄Π°ΡΠ΅ΠΉ ΡΠΈΠ³Π½Π°Π»Π° Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄Ρ (Thigh ΠΈ Tlow). ΠΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌΠΈ ΠΎΠ±Π° ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π±ΡΡΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ. ΠΠ°Π΄Π°ΡΠΈ ΠΏΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΠΌΠΎΡΡΠ°ΡΠΎΠΌ, ΠΏΠΎ Π²ΡΠ²ΠΎΠ΄Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π½Π° ΠΠΠ, ΠΏΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Ρ ΡΠ΅ΡΠΌΠΎΡΡΠ°ΡΠ° ΠΈ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° Π²ΠΎΠ·Π»Π°Π³Π°ΡΡΡΡ Π½Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ.
1.1 ΠΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ
AT90S2313 — ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΠ½ΡΠΉ 8 Π±ΠΈΡΠΎΠ²ΡΠΉ ΠΠΠΠ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ, ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠΉ RISC Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ AVR. ΠΡΠΏΠΎΠ»Π½ΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π·Π° ΠΏΠ΅ΡΠΈΠΎΠ΄ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠΉ ΡΠ°ΡΡΠΎΡΡ, AT90S2313 ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΎΠΊΠΎΠ»ΠΎ 1MIPS Π½Π° ΠΠΡ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠΎ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΈ ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅ΠΌΠΎΠΉ ΠΌΠΎΡΠ½ΠΎΡΡΠΈ.
Π ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ΄ΡΠ° AVR Π»Π΅ΠΆΠΈΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½Π°Ρ RISC Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΠ°Ρ ΡΠ°Π·Π²ΠΈΡΡΠΉ Π½Π°Π±ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ 32 ΡΠ΅Π³ΠΈΡΡΡΠ° ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡΠ΅ 32 ΡΠ΅Π³ΠΈΡΡΡΠ° Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΊ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠΎ-Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΡΡΡΡΠΎΠΉΡΡΠ²Ρ (ΠΠΠ£), ΡΡΠΎ Π΄Π°Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ Π»ΡΠ±ΡΠΌ Π΄Π²ΡΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌ Π·Π° ΠΎΠ΄ΠΈΠ½ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΡΠΈΠΊΠ».
ΠΠΎΠ΄ΠΎΠ±Π½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΄Π΅ΡΡΡΠΈΠΊΡΠ°ΡΠ½ΡΠΉ Π²ΡΠΈΠ³ΡΡΡ Π² ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΊΠΎΠ΄Π° ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΌΠΈ CISC ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°ΠΌΠΈ.
AT90S2313 ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ: 2ΠΊΠ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΠΎΠΉ ΡΠ»ΡΡ ΠΏΠ°ΠΌΡΡΠΈ; 128 Π±Π°ΠΉΡ EEPROM; 15 Π»ΠΈΠ½ΠΈΠΉ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ; 32 ΡΠ°Π±ΠΎΡΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠ°; Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΡ/ΡΡΠ΅ΡΡΠΈΠΊΠΈ Ρ ΡΠ΅ΠΆΠΈΠΌΠΎΠΌ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΡ; Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ; ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΡ; ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌΡΠΉ ΡΡΠΎΡΠΎΠΆΠ΅Π²ΠΎΠΉ ΡΠ°ΠΉΠΌΠ΅Ρ ΡΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠΌ; SPI ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΡ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ; Π΄Π²Π° Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΡΠ½Π΅ΡΠ³ΠΎΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ. Π₯ΠΎΠ»ΠΎΡΡΠΎΠΉ ΡΠ΅ΠΆΠΈΠΌ (Idle Mode) ΠΎΡΠΊΠ»ΡΡΠ°Π΅Ρ Π¦ΠΠ£, ΠΎΡΡΠ°Π²Π»ΡΡ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΡΠ΅Π³ΠΈΡΡΡΡ, ΡΠ°ΠΉΠΌΠ΅ΡΡ/ΡΡΠ΅ΡΡΠΈΠΊΠΈ, SPI ΠΏΠΎΡΡ ΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ. ΠΠΊΠΎΠ½ΠΎΠΌΠΈΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ (Power Down Mode) ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ², Π½ΠΎ ΠΎΡΠΊΠ»ΡΡΠ°Π΅Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ, Π·Π°ΠΏΡΠ΅ΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² Π΄ΠΎ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΠ±ΡΠΎΡΠ°.
ΠΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡΠ½Π΅ΡΠ³ΠΎΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π²ΡΡΠΎΠΊΠΎΠΉ ΠΏΠ»ΠΎΡΠ½ΠΎΡΡΠΈ ΡΠΈΡΠΌΡ Atmel. ΠΠ°Π³ΡΡΠΆΠ°Π΅ΠΌΠ°Ρ ΡΠ»ΡΡ ΠΏΠ°ΠΌΡΡΡ Π½Π° ΠΊΡΠΈΡΡΠ°Π»Π»Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½Π° ΠΏΡΡΠΌΠΎ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠ΅ΡΠ΅Π· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ SPI ΠΈΠ»ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΡΠΎΡΠΎΠΌ ΡΠ½Π΅ΡΠ³ΠΎΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΊΡΠΈΡΡΠ°Π»Π»Π΅ ΡΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°Π½Π½ΡΠΉ 8-Π±ΠΈΡΠΎΠ²ΡΠΉ RISC ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Ρ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΠΎΠΉ ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΡΡ, AT90S2313 ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠΎΡΠ½ΡΠΌ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π³ΠΈΠ±ΠΊΠΈΠ΅ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΏΠΎ ΡΡΠΎΠΈΠΌΠΎΡΡΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. AT90S2313 ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π²ΠΊΠ»ΡΡΠ°ΡΡΠ΅ΠΉ Π² ΡΠ΅Π±Ρ ΠΌΠ°ΠΊΡΠΎΠ°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ/ΡΠΈΠΌΡΠ»ΡΡΠΎΡ, Π²Π½ΡΡΡΠΈΡΡ Π΅ΠΌΠ½ΡΠΉ ΡΠΌΡΠ»ΡΡΠΎΡ ΠΈ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ.
1.2 Π¦ΠΈΡΡΠΎΠ²ΠΎΠΉ Π΄Π°ΡΡΠΈΠΊ-ΡΠ΅ΡΠΌΠΎΠΌΠ΅ΡΡ DS1620
ΠΠ»Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ Π² ΡΠΈΡΡΠΎΠ²ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ½ΡΠΉ Π΄Π°ΡΡΠΈΠΊ, ΡΡ Π΅ΠΌΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΠΠ¦Π. ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ½ΡΡ Π΄Π°ΡΡΠΈΠΊΠΎΠ² ΡΠΎΠ²ΠΌΠ΅ΡΠ°ΡΡ ΡΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΡΠΈΡΡΠ°Π»Π»Π΅.
ΠΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ° DS1620 (Dallas RS218−3810) — ΡΡΠΎ Π΄Π΅Π²ΡΡΠΈΡΠ°Π·ΡΡΠ΄Π½ΡΠΉ ΡΠ΅ΡΠΌΠΎΠΌΠ΅ΡΡ ΠΈ ΡΠ΅ΡΠΌΠΎΡΡΠ°Ρ, ΡΠ»ΡΠΆΠ°ΡΠΈΠΉ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ (ΡΠΈΡ. 1). ΠΠ½ ΠΈΠΌΠ΅Π΅Ρ ΡΡΠΈ Π²ΡΡ ΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅ΡΠΌΠΎΡΡΠ°ΡΠ°. ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠ³Π½Π°Π»Π° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΠ½Π΅ΡΠ³ΠΎΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. Π£ΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΈΠ·ΠΌΠ΅ΡΡΠ΅Ρ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ ΠΎΡ -55 Π΄ΠΎ +12?Π‘ ΡΠ°Π³ΠΎΠΌ 0,5?Π‘, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 1 Ρ.
ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ ΠΎΡ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ ΠΊ Π²Π½Π΅ΡΠ½Π΅ΠΌΡ ΡΡΡΡΠΎΠΉΡΡΠ²Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΡΠ΅Ρ ΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠΈΠ½Π΅: Π‘LK/Π‘ΠNV (ΠΊΠΎΠ½ΡΠ°ΠΊΡ 2), DQ (ΠΊΠΎΠ½ΡΠ°ΠΊΡ 1) ΠΈ RΠSΠΠ’ (ΠΊΠΎΠ½ΡΠ°ΠΊΡ 3). ΠΡΠΈ Π²ΡΡ ΠΎΠ΄Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡ Ρ ΡΡΠΎΠ²Π½ΡΠΌΠΈ Π’Π’Π. Π’higt (ΠΊΠΎΠ½ΡΠ°ΠΊΡ 7) — Π²ΡΡ ΠΎΠ΄ ΡΡΠΈΠ³Π³Π΅ΡΠ° Π²ΡΡΠΎΠΊΠΎΠΉ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ. ΠΡΠ»ΠΈ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ° ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ Π²Π΅ΡΡ Π½ΠΈΠΉ ΠΏΠΎΡΠΎΠ³, ΡΠΎ Π²ΡΡ ΠΎΠ΄ Π’higt ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΎΠ± ΡΡΠΎΠΌ Π²ΡΡΠΎΠΊΠΈΠΌ ΡΡΠΎΠ²Π½Π΅ΠΌ ΠΈ ΠΎΡΡΠ°Π΅ΡΡΡ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ° Π½Π΅ ΡΠΏΠ°Π΄Π΅Ρ Π½ΠΈΠΆΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠ³Π°. Π’low (ΠΊΠΎΠ½ΡΠ°ΠΊΡ 6) — Π²ΡΡ ΠΎΠ΄ ΡΡΠΈΠ³Π³Π΅ΡΠ° Π½ΠΈΠ·ΠΊΠΎΠΉ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ. ΠΡΠ»ΠΈ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ° ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π½ΠΈΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΏΡΠ΅Π΄Π΅Π»Π°, ΡΠΎ Π½Π° Π½Π΅ΠΌ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠ³Π½Π°Π» Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΡΠΎΡ ΡΠ°Π½ΡΡΡΠΈΠΉΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ° Π½Π΅ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ΅ΡΡΡ Π²ΡΡΠ΅ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄Π΅Π»Π°. Π’ΡΠΎm (ΠΊΠΎΠ½ΡΠ°ΠΊΡ 5) — ΡΡΠΎ Π²ΡΡ ΠΎΠ΄ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠΈΠ³Π³Π΅ΡΠ° Π²ΡΡΠΎΠΊΠΎΠΉ ΠΈ Π½ΠΈΠ·ΠΊΠΎΠΉ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ. Π’ΡΠΎm=1, ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ° ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ Π²Π΅ΡΡ Π½ΠΈΠΉ ΠΏΡΠ΅Π΄Π΅Π», Π’ΡΠΎm=0, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π½ΠΈΠΆΠ΅ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΏΡΠ΅Π΄Π΅Π»Π°. ΠΠΎΠ½ΡΠ°ΠΊΡΡ 4 ΠΈ 8 ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Ρ Ρ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΏΡΠΎΠ²ΠΎΠ΄Π°ΠΌΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΠΏΠΈΡΠ°Π½ΠΈΡ. ΠΠΎΡΡΠ΅Π±Π»ΡΠ΅ΠΌΡΠΉ ΡΠΎΠΊ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΡΠ°Π²Π΅Π½ 1 ΠΌΠΊΠ, Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ — 1 ΠΌΠ.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π² Π΄Π²Π° ΡΡΠ°ΠΏΠ°: ΡΠ½Π°ΡΠ°Π»Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ Π² ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ, Π° Π·Π°ΡΠ΅ΠΌ Π΄Π΅Π²ΡΡΠΈΡΠ°Π·ΡΡΠ΄Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ΅, Π»ΠΈΠ±ΠΎ ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ, Π»ΠΈΠ±ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ. ΠΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ° ΠΈΠΌΠ΅Π΅Ρ Π΄Π΅Π²ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄:
1. Read temp (AΠh): ΡΡΠ΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ.
2. Start conversion T (EΠh): Π·Π°ΠΏΡΡΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ. ΠΠ°Π½Π½ΡΠ΅ Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ.
3. Stop convert T (22h): ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ. ΠΠ°Π½Π½ΡΠ΅ Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ.
4. Write TH (01h): Π·Π°ΠΏΠΈΡΡ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΠΏΡΠ΅Π΄Π΅Π»Π° Π² ΡΡΠΈΠ³Π³Π΅Ρ Π²ΡΡΠΎΠΊΠΎΠΉ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ — 9 Π±ΠΈΡ Π΄Π°Π½Π½ΡΡ .
5. Write TL (01h): Π·Π°ΠΏΠΈΡΡ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΏΡΠ΅Π΄Π΅Π»Π° Π² ΡΡΠΈΠ³Π³Π΅Ρ Π²ΡΡΠΎΠΊΠΎΠΉ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ — 9 Π±ΠΈΡ Π΄Π°Π½Π½ΡΡ .
6. Read TH (A1h): ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΡΠΈΠ³Π³Π΅ΡΠ° Π²ΡΡΠΎΠΊΠΎΠΉ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ — 9 Π±ΠΈΡ Π΄Π°Π½Π½ΡΡ .
7. Read TL (A2h): ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΡΠΈΠ³Π³Π΅ΡΠ° Π½ΠΈΠ·ΠΊΠΎΠΉ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ — 9 Π±ΠΈΡ Π΄Π°Π½Π½ΡΡ .
8. Write configuratioin (0Ch): Π·Π°ΠΏΠΈΡΡ Π½Π°ΡΡΡΠΎΠ΅ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ — 8 Π±ΠΈΡ Π΄Π°Π½Π½ΡΡ .
9. Read configuratioin (ACh): ΡΡΠ΅Π½ΠΈΠ΅ Π½Π°ΡΡΡΠΎΠ΅ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΡΠ΅Π³ΠΈΡΡΡΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ — 8 Π±ΠΈΡ Π΄Π°Π½Π½ΡΡ .
ΠΠ°ΡΡΡΠΎΠ΅ΡΠ½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅ΠΆΠΈΠΌΠ°ΠΌΠΈ ΡΠ°Π±ΠΎΡΡ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ DS1620. ΠΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ. Π€ΡΠ½ΠΊΡΠΈΠΈ Π±ΠΈΡΠΎΠ² ΡΠ΅Π³ΠΈΡΡΡΠ° ΠΏΠΈΠ²Π΅Π΄Π΅Π½Ρ Π½ΠΈΠΆΠ΅:
DONE THF TLF XXX CPU 1SHOT
X | Π»ΡΠ±ΠΎΠ΅ | |
DONE | 0 — ΠΈΠ΄Π΅Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ | |
1 — ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΎ | ||
THF | ΡΠ»Π°Π³ Π²ΡΡΠΎΠΊΠΎΠΉ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ. ΠΡΠ»ΠΈ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ° ΡΠ°Π²Π½Π° ΠΈΠ»ΠΈ Π²ΡΡΠ΅ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΠΏΡΠ΅Π΄Π΅Π»Π°, ΡΠΎ Π±ΠΈΡ Π’ΠF=1. ΠΠ½ ΠΎΡΡΠ°Π΅ΡΡΡ Π² Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π΅Π³ΠΎ Π½Π΅ ΡΠ±ΡΠΎΡΡΡ, Π·Π°ΠΏΠΈΡΠ°Π² Π½ΠΎΠ»Ρ, ΠΈΠ»ΠΈ Π½Π΅ ΠΎΡΠΊΠ»ΡΡΠ°Ρ ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° | |
TLF | ΡΠ»Π°Π³ Π½ΠΈΠ·ΠΊΠΎΠΉ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ. ΠΡΠ»ΠΈ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ° ΡΠ°Π²Π½Π° ΠΈΠ»ΠΈ Π½ΠΈΠΆΠ΅ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ/ΠΏΡΠ΅Π΄Π΅Π»Π°, ΡΠΎ Π±ΠΈΡ Π’LF=1. ΠΠ½ ΠΎΡΡΠ°Π΅ΡΡΡ Π² Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π΅Π³ΠΎ Π½Π΅ ΡΠ±ΡΠΎΡΡΡ, Π·Π°ΠΏΠΈΡΠ°Π² Π½ΠΎΠ»Ρ, ΠΈΠ»ΠΈ Π½Π΅ ΠΎΡΠΊΠ»ΡΡΠ°Ρ ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° | |
CPU | Π΅ΡΠ»ΠΈ Π‘Π U=0, ΡΠΎ Π²Ρ ΠΎΠ΄ Π‘LK/Π‘ΠNV ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π½Π°ΡΠ°Π»ΠΎΠΌ ΡΠΈΠΊΠ»Π° ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ; Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΠ±ΠΌΠ΅Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ | |
1SHOT | Π΅ΡΠ»ΠΈ 1SΠΠΠ’=1, ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΠΎΠ΄ΠΈΠ½ ΡΠΈΠΊΠ» ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ; Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΠ‘ Π½Π°ΡΡΡΠΎΠ΅Π½Π° Π½ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ | |
ΠΠ°Π½Π½ΡΠ΅ ΠΎ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ Π΄Π΅Π²ΡΡΠΈΠ±ΠΈΡΠΎΠ²ΡΠΉ ΡΠΎΡΠΌΠ°Ρ.
ΠΠΈΡΠΊΡΠ΅ΡΠ½ΠΎΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ ΡΠ°Π²Π½Π° ½?Π‘. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ ΠΈ Π²ΡΡ ΠΎΠ΄Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π½ΠΈΠΆΠ΅:
+125?Π‘ | 0 11 111 010 (00FA) | |
+25?Π‘ | 0 110 010 (0032) | |
+½?C | 0 1 (0001) | |
0?C | 0 0 (0000) | |
— ½?C | 1 11 111 111 (00FF) | |
— 25? Π‘ | 1 11 001 110 (01CE) | |
— 55? Π‘ | 1 10 010 010 (0192) | |
ΠΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π½Π° ΡΠΈΡ 2. ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ½ΡΠ° Π½Π° Π²Ρ ΠΎΠ΄ RST (ΠΊΠΎΠ½ΡΠ°ΠΊΡ 3). ΠΡΠ»ΠΈ Π½Π° ΡΡΠΎΡ Π²Ρ ΠΎΠ΄ ΠΏΠΎΠ΄Π°ΡΡ 0, ΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π΅ΡΡΡ. ΠΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ ΡΡΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°ΠΊΡΠΈΡΡΡΡΠΈΠΉ Π²Ρ ΠΎΠ΄ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ. ΠΠ΄ΠΈΠ½ ΡΠ°ΠΊΡΠΎΠ²ΡΠΉ ΡΠΈΠΊΠ» ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ½ΡΠ° ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π·Π° Π½ΠΈΠΌ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ. ΠΡΠΈ Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π±ΠΈΡΠΎΠ² Π΄Π°Π½Π½ΡΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΡΠΌ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ½ΡΠ°. ΠΡΠΈ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΠΈ Π΄Π°Π½Π½ΡΠ΅ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ ΠΈΠ· ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΡΡΠΎΠ½ΡΡ ΡΠ°ΠΊΡΠΎΠ²ΡΡ ΠΈΠΌΠΏΡΠ»ΡΡΠΎΠ². ΠΠΎΠ³Π΄Π° Π½Π° ΡΠ°ΠΊΡΠΎΠ²ΠΎΠΌ Π²Ρ ΠΎΠ΄Π΅ Π²ΡΡΠΎΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ, Π²ΡΡ ΠΎΠ΄ DQ (ΠΊΠΎΠ½ΡΠ°ΠΊΡ 1) ΠΈΠΌΠ΅Π΅Ρ Π²ΡΡΠΎΠΊΠΎΠ΅ ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅. ΠΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΡΡ ΠΌΠ»Π°Π΄ΡΠΈΠΉ Π±ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΌ. Π§Π΅ΡΠ΅Π· ΡΡΠΎΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ°ΠΊ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ, ΡΠ°ΠΊ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅. Π‘Ρ Π΅ΠΌΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ΅ΡΠΌΠΎΠΌΠ΅ΡΡΠ° DS1620, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΠ΅ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ°, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π½Π° ΡΠΈΡ. 3.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠ²ΠΎΠ΄ DQ, ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ, Π° Π½Π° ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΠ΅ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ° ΡΠ°ΠΊΠΈΡ Π΄Π²ΡΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π»ΠΈΠ½ΠΈΠΉ Π½Π΅Ρ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΡΠ°Π½Π·ΠΈΡΡΠΎΡ. ΠΠ°Π·Π° ΡΡΠ°Π½Π·ΠΈΡΡΠΎΡΠ° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π° Ρ ΡΠ°ΠΊΡΠΎΠΌ D1. ΠΠΎΠ³Π΄Π° ΠΠ‘ Π½Π°ΡΡΡΠΎΠ΅Π½Π° Π½Π° ΠΏΡΠΈΠ΅ΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ ΠΈΠ· ΠΊΠΎΠΌ ΠΏΡΡΡΠ΅ΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ°ΠΊΡ D1, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ΅ΡΠ΅Π· ΡΡΠ°Π½Π·ΠΈΡΡΠΎΡ Π² ΠΈΠ½Π²Π΅ΡΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅ — Π½Π° ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ. ΠΠΎΠ³Π΄Π° ΠΎΠ½Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΡΠ°Π½Π·ΠΈΡΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π·Π°ΠΊΡΡΡ (ΡΡΠΎ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ ΠΏΠΎΠ΄Π°ΡΠ΅ΠΉ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π½Π° Π΅Π³ΠΎ Π±Π°Π·Ρ ΡΠ΅ΡΠ΅Π· ΡΠΎΡ ΠΆΠ΅ ΠΊΠΎΠ½ΡΠ°ΠΊΡ), ΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ Π½Π° ΠΊΠΎΠ½ΡΠ°ΠΊΡ S1. ΠΡ ΠΎΠ΄Ρ Π‘LΠ/Π‘ΠNV ΠΈ RSΠ’ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Ρ Ρ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ°ΠΌΠΈ Π‘1 ΠΈ Π‘2. ΠΠΎΡΠ»Π΅ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ½ΡΠ° ΠΏΠΎ Π²Ρ ΠΎΠ΄Ρ RST ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ° Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° ΠΏΡΠΈΠ΅ΠΌ ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΡΠΈΡΡΠ²Π°ΡΡΡΡ Ρ Π»ΠΈΠ½ΠΈΠΈ Π‘1 ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΊΡΠΎΠ²ΡΡ ΠΈΠΌΠΏΡΠ»ΡΡΠΎΠ². ΠΡΠ»ΠΈ DS1620 Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° Π²ΡΠ²ΠΎΠ΄ Π΄Π°Π½Π½ΡΡ , ΡΠΎ ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π² Π½Π΅Π΅ ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ D1 ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π² Π½ΡΠ»Π΅Π²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, Π° Π±ΠΈΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΊΡΠΎΠ²ΡΡ ΠΈΠΌΠΏΡΠ»ΡΡΠΎΠ² ΠΈ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ Π½Π° ΠΊΠΎΠ½ΡΠ°ΠΊΡ S1. ΠΡΠ»ΠΈ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅, ΠΎΠ½ΠΈ ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΊΡΠΎΠ²ΡΡ ΠΈΠΌΠΏΡΠ»ΡΡΠΎΠ².
1.3 ΠΠΈΠ΄ΠΊΠΎΠΊΡΠΈΡΡΠ°Π»Π»ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ mt-10t7−7
ΠΠ°Π½Π½ΡΠΉ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ 10 Π·Π½Π°ΠΊΠΎΠΌΠ΅ΡΡ Ρ ΡΠΎΡΠΊΠΎΠΉ. ΠΡΠ±ΠΎΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ Π»ΡΠ±ΠΎΠ³ΠΎ Π·Π½Π°ΠΊΠΎΠΌΠ΅ΡΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΈ Π²ΡΠΊΠ»ΡΡΠ°ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ².
Π Π΅Π³ΠΈΡΡΡΡ Π΄Π°Π½Π½ΡΡ Π² ΠΠΠ‘ Π΄Π΅Π»ΡΡΡΡ Π½Π° Π΄Π²Π΅ ΡΠ΅ΡΡΠ°Π΄Ρ: SGx (L) ΠΈ SGx (H). ΠΠ°ΠΏΠΈΡΡ Π΄Π°Π½Π½ΡΡ Π² Π·Π½Π°ΠΊΠΎΠΌΠ΅ΡΡΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π·Π° Π΄Π²Π° ΡΠ°ΠΊΡΠ°: ΡΠ½Π°ΡΠ°Π»Π° Π² ΠΌΠ»Π°Π΄ΡΡΡ ΡΠ΅ΡΡΠ°Π΄Ρ, Π·Π°ΡΠ΅ΠΌ Π² ΡΡΠ°ΡΡΡΡ. ΠΠ»Π°Π΄ΡΠ°Ρ ΡΠ΅ΡΡΠ°Π΄Π° ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ g, e, d, a, Π° ΡΡΠ°ΡΡΠ°Ρ — Π·Π° ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ h, b, c, d. (ΡΠΌ. ΡΠΈΡ.).
ΠΠ°ΠΏΠΈΡΡ Π Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π²ΡΡΠ²Π΅ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°, Π° Π·Π°ΠΏΠΈΡΡ LΠ΅Π³ΠΎ Π³Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΠΎΠ½ΡΡΠ°ΡΡΠ½ΠΎΡΡΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ° Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ. Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠ°ΡΡΠ½ΠΎΡΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΡΠ΅Π·ΠΈΡΡΠΎΡΠ° Π½Π° Π²ΡΠ²ΠΎΠ΄ V0.
RΠ²Π½Π΅Ρ.=0 — ΠΠΠ₯ ΠΊΠΎΠ½ΡΡΠ°ΡΡΠ½ΠΎΡΡΡ.
RΠ²Π½Π΅Ρ.=(Π½Π΅Ρ ΡΠ΅Π·ΠΈΡΡΠΎΡΠ°) — MIN ΠΊΠΎΠ½ΡΡΠ°ΡΡΠ½ΠΎΡΡΡ.
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΠΠ ΠΌΠΎΠ΄ΡΠ»Ρ
Π‘Π½Π°ΡΠ°Π»Π° Π½Π° ΡΠΈΠ½Π΅ Π²ΡΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π°Π΄ΡΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ Π·Π½Π°ΠΊΠΎΠΌΠ΅ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΈΠΊΡΠΈΡΡΠ΅ΡΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ Π°Π΄ΡΠ΅ΡΠ° ΠΏΡΠΈ Π½ΠΈΠ·ΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ Π½Π° Π²Ρ ΠΎΠ΄Π΅ WRx (ΡΠΌ.ΡΠ°Π±Π»ΠΈΡΡ). ΠΡ ΠΎΠ΄Ρ WR1 ΠΈWR2 Π·Π°ΡΠ΅Π»ΠΊΠΈΠ²Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΡΠΎΡΡΡΡ Π½Π° ΡΠΈΠ½Π΅, Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠ°Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. ΠΠ½ΡΡΡΠΈ ΠΠΠ‘ ΡΡΠΈ Π²Ρ ΠΎΠ΄Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ ΠΏΠΎ ΡΡ Π΅ΠΌΠ΅ WR1 &WR2. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π°ΠΏΠΈΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ WR1 = «H» ΠΈWR2 = «L» ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. Π’Π°ΠΊΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ CS (Π²ΡΠ±ΠΎΡ ΠΊΡΠΈΡΡΠ°Π»Π»Π°) ΠΏΡΠΈ Π±ΠΎΠ»ΡΡΠΎΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π½Π° ΡΠΈΠ½Π΅, ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ Π½Π° ΡΠΈΠ½Π΅ ΠΈΠΌΠ΅ΡΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
ΠΡΠΈ Π·Π°ΠΏΠΈΡΠΈ Π°Π΄ΡΠ΅ΡΠ° Π·Π½Π°ΠΊΠΎΠΌΠ΅ΡΡΠ° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠ΅ΡΡΠ°Π΄Ρ ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ Π² ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ SGx (L). ΠΠ°ΠΏΠΈΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π² ΠΌΠ»Π°Π΄ΡΡΡ ΡΠ΅ΡΡΠ°Π΄Ρ ΠΏΡΠΈ Π²ΡΡΠΎΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ ΡΠΈΠ³Π½Π°Π»Π° Π½Π° Π²Ρ ΠΎΠ΄Π΅ Π0 ΡΠΈΠ³Π½Π°Π»ΠΎΠΌ WRx. ΠΠΎ ΡΡΠΎΠΌΡ ΠΆΠ΅ ΡΠΈΠ³Π½Π°Π»Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠ΅ΡΡΠ°Π΄Ρ Π΄Π°Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ SGx (H), ΡΠΎΡ ΡΠ°Π½ΡΡ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠΎΡ ΠΆΠ΅ Π°Π΄ΡΠ΅Ρ Π·Π½Π°ΠΊΠΎΠΌΠ΅ΡΡΠ°. ΠΠ°Π½Π½ΡΠ΅ Π² ΡΡΠ°ΡΡΡΡ ΡΠ΅ΡΡΠ°Π΄Ρ SGx (H) Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΌΠ»Π°Π΄ΡΠ΅ΠΉ ΡΠ΅ΡΡΠ°Π΄Π΅ SGx (L). ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΠΈΡΠΈ Π²ΡΠΎΡΠΎΠΉ ΡΠ΅ΡΡΠ°Π΄Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ° Π°Π΄ΡΠ΅ΠΌΠ° ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΈΡΡΠ΅ΡΡΡ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ Π·Π½Π°ΠΊΠΎΠΌΠ΅ΡΡΠΎ Π±Π΅Π· Π·Π°ΠΏΠΈΡΠΈ Π°Π΄ΡΠ΅ΡΠ°.
ΠΠΎ Π°Π΄ΡΠ΅ΡΡ 0Fh ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ ΡΡΠΈΠ³Π³Π΅Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΠΈΠ½Ρ. ΠΠ°ΠΏΠΈΡΡ Π² Π½Π΅Π³ΠΎ DB0="L" Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ Π·Π°ΠΏΠΈΡΠΈ Π² ΠΠΠ‘ Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΈ Π΄Π°Π½Π½ΡΡ Π½Π° 30 ΡΠΈΠ³Π½Π°Π»ΠΎΠ² WRx. Π Π°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΡΠΈΠ½Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π·Π°ΠΏΠΈΡΡΡ DB="H" ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ 0Fh.
ΠΠΎΡΠ»Π΅ ΠΏΠΎΠ΄Π°ΡΠΈ ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² SGx Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΏΠΈΡΠ°Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π΅Π»Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΎΡΠΈΡΡΠΊΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ². Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΡΠΈΠ³Π³Π΅ΡΠ° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΠΎΠΆΠ΅ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠ΅ΡΠ΅Π΄ Π½Π°ΡΠ°Π»ΠΎΠΌ Π²ΡΠ²ΠΎΠ΄Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ ΡΠΈΠ½Ρ. Π Π°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΡΠΈΠ½Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π·Π°ΠΏΠΈΡΡΡ DB0="H" ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ 0Fh.
2. Π‘Ρ Π΅ΠΌΡ ΡΠΎΠΏΡΡΠΆΠ΅Π½ΠΈΡ (ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½Π°Ρ)
2.1 Π‘ΡΡΡΠΊΡΡΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ°
2.2 ΠΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ°
3. ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ
3. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Assembler c ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΉ ΠΎΡΠ»Π°Π΄ΠΊΠΎΠΉ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ AVR Studio.
ΠΡΠ²ΠΎΠ΄
Π Ρ ΠΎΠ΄Π΅ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΡΠ΅Π³ΡΠ»ΡΡΠΎΡ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ Π½Π° Π±Π°Π·Π΅ ΡΠ΅ΡΠΌΠΎΡΡΠ°ΡΠ° DS1620 ΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° AT90S2313 Ρ ΡΠ°Π±ΠΎΡΠΈΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡ -55?Π‘ Π΄ΠΎ 125? Π‘. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π·Π°Π΄Π°Π½Π½Π°Ρ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π²ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΡΠ³Π°Π½ΠΎΠ²: «Π½Π°Π³ΡΠ΅Π²Π°ΡΠ΅Π»Ρ» ΠΈ «ΠΎΡ Π»Π°Π΄ΠΈΡΠ΅Π»Ρ». Π’Π΅ΠΊΡΡΠ°Ρ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΠΈ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΡΠΈΠ΄ΠΎΡΠ° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π½Π° ΠΠΠ Π² Π³ΡΠ°Π΄ΡΡΠ°Ρ ΠΏΠΎ Π¦Π΅Π»ΡΡΠΈΡ Ρ ΡΠΎΡΠ½ΠΎΡΡΡΡ 0,5?Π‘.
1. ΠΠ°ΡΡΠ½ΠΎΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΆΡΡΠ½Π°Π» «Π‘Ρ Π΅ΠΌΠΎΡΠ΅Ρ Π½ΠΈΠΊΠ°» № 2, 2001;2002 Π³Π³.
2. ΠΠΎΡΠΎΠ±ΠΈΠ΅ «Π‘ΡΠ΅Π΄ΡΡΠ²Π° ΡΠΎΠΏΡΡΠΆΠ΅Π½ΠΈΡ Ρ ΠΠ»
3.Internet:
http://www.atmel.ru
http://www.telesys.users.ru
http://www.kulakov.ru
http://www.platan.ru
http://www.sensorsmag.com
http://www.ferrite.ru
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅: ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π° ΡΠ·ΡΠΊΠ΅ Assembler
;*************************************************************************
;* Π’Π΅ΡΠΌΠΎΡΡΠ°Ρ Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° AT90S2313 *
;* Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ ΡΠ΅ΡΠΌΠΎΠ΄Π°ΡΡΠΈΠΊΠ° DS1620 *
;*************************************************************************
;*************************************************************************
;* ΠΠ°Π·Π²Π°Π½ΠΈΠ΅: Π¦ΠΈΡΡΠΎΠ²ΠΎΠΉ ΡΠ΅Π³ΡΠ»ΡΡΠΎΡ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ
;* ΠΠ°ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ: 20.06.02
;* ΠΠ±ΡΠ΅ΠΊΡ: AVR ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ AT90S2313 ΠΈ ΡΠ΅ΡΠΌΠΎΡΡΠ°Ρ DS1620
;* ΠΠ²ΡΠΎΡ: ΠΠ΅Π½Π΄ΡΠΊ ΠΠ°ΠΊΡΠΈΠΌ Π‘Π΅ΡΠ³Π΅Π΅Π²ΠΈΡ
;*
;*
;*************************************************************************
.include «2313DEF.INC»
;***** ΠΠΎΠ½ΡΡΠ°Π½ΡΡ
.equ preset=192 ;T/C0 Preset constant (256−64)
.def result=r16 ;Result and intermediate data
.def temp=r16 ;Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ
.def temp1=r17 ;Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ
.def temp2=r18 ;Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ
.def temp3=r19 ;Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ
.def ramsize=r19 ;ΡΠ°Π·ΠΌΠ΅Ρ Π±Π»ΠΎΠΊΠ°
.def tmode=r22 ;Π Π΅Π³ΠΈΡΡΡ ΡΠ΅ΠΆΠΈΠΌΠ°
.def key=r20 ;Π Π΅Π³ΠΈΡΡΡ Π½Π°ΠΆΠ°ΡΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠΈ
.def keyc=r21 ;Π‘ΡΠ΅ΡΡΠΈΠΊ Π΄Π»Ρ ΠΏΡΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ
.def TMIN=r22 ;ΡΡΠ΅ΠΉΠΊΠ° Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ ΡΠ΅ΡΠΌΠΎΡΡΠ°ΡΠ°
.def TMINL=r22 ;ΠΌΠ»Π°Π΄ΡΠΈΠΉ
.def TMINH=r23 ;ΡΡΠ°ΡΡΠΈΠΉ
.def TMAX=r24 ;ΡΡΠ΅ΠΉΠΊΠ° Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ ΡΠ΅ΡΠΌΠΎΡΡΠ°ΡΠ°
.def TMAXL=r24 ;ΠΌΠ»Π°Π΄ΡΠΈΠΉ
.def TMAXH=r25 ;ΡΡΠ°ΡΡΠΈΠΉ
.def TNORM=r26 ;ΡΡΠ΅ΠΉΠΊΠ° Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ ΡΠ΅ΡΠΌΠΎΡΡΠ°ΡΠ°
.def TNORML=r26 ;ΠΌΠ»Π°Π΄ΡΠΈΠΉ
.def TNORMH=r27 ;ΡΡΠ°ΡΡΠΈΠΉ
.equ DLCD=$ 66 ;ΡΡΠ°ΡΡΠΎΠ²ΡΠΉ Π°Π΄ΡΠ΅Ρ SRAM Π΄Π»Ρ Π±ΡΡΠ΅ΡΠ° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ°
;ΠΌΠ°Π»Π°Π΄ΡΠ°Ρ ΡΡΠ΅ΠΉΠΊΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π»Π΅Π²ΠΎΠΌΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ
;Π½Π° Π΄ΠΈΡΠΏΠ»Π΅Π΅
.def fbinL =r16;Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΌΠ»Π°Π΄ΡΠΈΠΉ Π±Π°ΠΉΡ
.def fbinH =r17;Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΡΠ°ΡΡΠΈΠΉ Π±Π°ΠΉΡ
;Π±ΠΈΡΡ ΠΏΠΎΡΡΠΎΠ²
.equ K1 =3 ;Π±ΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ
.equ K2 =4 ;Π±ΠΈΡ Π²ΡΠΎΡΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ
.equ K3 =5 ;Π±ΠΈΡ ΡΡΠ΅ΡΡΠ΅ΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ
.equ WR1 =5 ;Π±ΠΈΡ WR1
.equ WR2 =6 ;Π±ΠΈΡ WR2
.equ A0 =7 ;Π±ΠΈΡ A0
.equ DQ =0 ;Π±ΠΈΡ DQ ΠΊΠ°Π½Π°Π» Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΠΌΠΎΡΡΠ°ΡΠ°
.equ CLK =1 ;Π±ΠΈΡ CLK ΠΊΠ°Π½Π°Π» ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ
;*************************************************************************
;*
;* PROGRAM START — ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ°
;*
;*************************************************************************
.cseg
.org $ 0000
rjmp RESET;Reset handle
.org $ 0020
RETI
RETI
RETI
RETI
RETI
RETI
RETI
RETI
RETI
RETI
;*************************************************************************
; Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΊΠΎΠ½ΡΡΠ°Π½Ρ
SETCONST:
ldi temp, 20
mov TMINL, temp
ldi temp, 0
mov TMINH, temp
ldi temp, 25
mov TMAXL, temp
ldi temp, 0
mov TMAXH, temp
ret
;*************************************************************************
; ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΊΠΎΠ½ΡΡΠ°Π½Ρ
OUTCONST:
mov temp, TMINl
mov temp1, TMINH
ldi temp2,2 ;Π·Π°ΠΏΠΈΡΡ Π½ΠΈΠΆΠ½Π΅ΠΉ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ
rcall TERMOUT2
mov temp, TMAXL
mov temp1, TMAXH
ldi temp2,1 ;Π·Π°ΠΏΠΈΡΡ Π½ΠΈΠΆΠ½Π΅ΠΉ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ
rcall TERMOUT2
ldi temp1,0xee; ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΠΌΠΎΡΡΠ°ΡΠ°
rcall TERMOUT1
ret
;*************************************************************************
; ΠΠ°ΡΡΠΎΠΉΠΊΠ° ΠΏΠΎΡΡΠΎΠ² Π²Π²ΠΎΠ΄Π° Π²ΡΠ²ΠΎΠ΄Π°
port_set:
ldi result,$ff ;PORTB Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° Π²ΡΠ²ΠΎΠ΄
out DDRB, result ;Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ
ldi result,$ 00 ;Π²ΡΠ΅ Π±ΠΈΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π² Π½ΠΎΠ»Ρ
out PORTB, result;PORTD Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ
ldi result, 0b01000011; Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠΎΠΉ ΠΈ
out DDRD, result ;ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠΎΠΉ ΡΠ΅ΡΠΌΠΎΠΌΠ΅ΡΡΠ°
ldi result, 0b11111001; Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠΎΠΉ ΠΈ
out PORTD, result ;ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠΎΠΉ ΡΠ΅ΡΠΌΠΎΠΌΠ΅ΡΡΠ°
ret
;*************************************************************************
;* ΠΎΡΠΈΡΡΠΊΠ° Π±ΡΡΠ΅ΡΠ° ΠΠΠ
CLRLCD:
ldi ramsize, 10 ;ΠΎΡΠΈΡΡΠΊΠ° Π±ΡΡΠ΅ΡΠ° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ°
ldi temp, 0
ldi ZH, high (DLCD)
ldi ZL, low (DLCD)
clrlcdloop:
st Z+, temp
dec ramsize
brne clrlcdloop ;Π΅ΡΠ»ΠΈ Π½Π΅ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ
rjmp LCDOUT
;*************************************************************************
; ΠΡΠ²ΠΎΠ΄ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ° Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ
LCDOUT:
ldi temp, low (DLCD) ;ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Z ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π±ΡΡΠ΅Ρ
mov ZL, temp ;ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ°
ldi temp, high (DLCD)
mov ZH, temp
ldi ramsize, 10
LCDOUT1:
mov temp, ramsize ;Π·Π°ΠΏΠΈΡΡ Π² ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ Π°Π΄ΡΠ΅ΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»Π°
andi temp, 0b00001111
out PORTB, temp
cbi PORTB, A0
sbi PORTB, WR1
cbi PORTB, WR1
ld temp1, Z+; ΠΏΠΎΠ»ΡΡΠΈΡΡ Π±Π°ΠΉΡ ΠΈΠ· DLCD
mov temp, temp1
andi temp, 0b00001111 ;ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΌΠ»Π°Π΄ΡΡΡ ΡΠ΅ΡΡΠ°Π΄Ρ
sbrs temp, A0
out PORTB, temp
sbi PORTB, WR1
cbi PORTB, WR1
mov temp, temp1
swap temp
andi temp, 0b00001111 ;ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠ°ΡΡΡΡ ΡΠ΅ΡΡΠ°Π΄Ρ
sbrs temp, A0
out PORTB, temp
sbi PORTB, WR1
cbi PORTB, WR1
dec ramsize ;
brne LCDOUT1 ;Π΅ΡΠ»ΠΈ Π½Π΅ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ
ret
;*************************************************************************
;* Π²ΡΠ²ΠΎΠ΄ Π³ΠΎΡΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π² Π±ΡΡΠ΅Ρ ΠΈ Π²ΡΠ²ΠΎΠ΄ Π±ΡΡΠ΅ΡΠ° Π½Π° ΠΠΠ
;* temp — Π½ΠΎΠΌΠ΅Ρ ΡΡΡΠΎΠΊΠΈ
;* ramsize — ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²
STRLCDD:
ldi YH, high (tcstr)
ldi YL, low (tcstr)
add temp, temp
add temp, temp
add YL, temp
ldi ramsize, 4
;*************************************************************************
;* Π²ΡΠ²ΠΎΠ΄ Π³ΠΎΡΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π² Π±ΡΡΠ΅Ρ ΠΈ Π²ΡΠ²ΠΎΠ΄ Π±ΡΡΠ΅ΡΠ° Π½Π° ΠΠΠ
;* Y — ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΡΠΎΠΊΡ temp — ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
;* ramsize — ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²
STRLCD:
ldi ZH, high (DLCD)
ldi ZL, low (DLCD)
strtolcdloop:
ld temp, Y+
st Z+, temp
dec ramsize
brne strtolcdloop ;Π΅ΡΠ»ΠΈ Π½Π΅ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ
rjmp LCDOUT
;*************************************************************************
;* ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΡΠ΅ΡΠΌΠΎΡΡΠ°ΡΠ°
;* temp2 — ΠΊΠΎΠΌΠ°Π½Π΄Π° temp — ΠΏΠ΅ΡΠ²ΡΠ΅ 8 Π±ΠΈΡ temp1 — 9-ΡΠΉ Π±ΠΈΡ
TERMIN:
ldi ramsize, 8
terminloop:
sbi PIND, DQ
sbrc temp2,0
cbi PIND, DQ
sbi PIND, CLK
cbi PIND, CLK
ror temp2
dec ramsize
brne terminloop ;Π΅ΡΠ»ΠΈ Π½Π΅ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ
ldi ramsize, 0x8
sbi DDRD, DQ
termindloop:
sbi PIND, DQ
sbrc temp, 0
cbi PIND, DQ
sbi PIND, CLK
cbi PIND, CLK
ror temp2
dec ramsize
brne termindloop ;Π΅ΡΠ»ΠΈ Π½Π΅ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ
sbi PIND, DQ
sbrc temp1,0
cbi PIND, DQ
sbi PIND, CLK
cbi PIND, CLK
cbi DDRD, DQ
ret
;*************************************************************************
;* ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ° Π΄Π°Π½Π½ΡΡ Π½Π° ΡΠ΅ΡΠΌΠΎΡΡΠ°Ρ
;* temp2 — ΠΊΠΎΠΌΠ°Π½Π΄Π°
TERMOUT1:
ldi ramsize, 8
termout1loop:
sbi PIND, DQ
sbrc temp2,0
cbi PIND, DQ
sbi PIND, CLK
cbi PIND, CLK
ror temp2
dec ramsize
brne termout1loop ;Π΅ΡΠ»ΠΈ Π½Π΅ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ
ldi ramsize, 0x8
ret
;*************************************************************************
;* ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ° Π΄Π°Π½Π½ΡΡ Π½Π° ΡΠ΅ΡΠΌΠΎΡΡΠ°Ρ ΠΈ 9 Π±ΠΈΡ
;* temp2 — ΠΊΠΎΠΌΠ°Π½Π΄Π° temp — ΠΏΠ΅ΡΠ²ΡΠ΅ 8 Π±ΠΈΡ temp1 — 9-ΡΠΉ Π±ΠΈΡ
TERMOUT2:
ldi ramsize, 8
termout2loop:
sbi PIND, DQ
sbrc temp2,0
cbi PIND, DQ
sbi PIND, CLK
cbi PIND, CLK
ror temp2
dec ramsize
brne termout2loop ;Π΅ΡΠ»ΠΈ Π½Π΅ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ
ldi ramsize, 0x8
termout2loopdat:
clc
sbi PIND, CLK
sbic PIND, DQ
sec
cbi PIND, CLK
ror temp2
dec ramsize
brne termout2loopdat ;Π΅ΡΠ»ΠΈ Π½Π΅ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ
ldi temp1,0
sbi PIND, CLK
sbic PIND, DQ
ldi temp1,1
cbi PIND, CLK
cbi DDRD, DQ
ret
;*************************************************************************
;* ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π½Π°ΠΆΠ°ΡΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠΈ Π΅ΡΠ»ΠΈ ΠΎΠ½Π° Π½Π°ΠΆΠ°ΡΠ° Π±ΠΎΠ»Π΅Π΅ 20 ΠΌΡ
;* ΠΊΠΎΠ΄ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ key Π΅ΡΠ»ΠΈ ΡΠ±ΡΠΎΡΠ΅Π½ Π±ΠΈΡ Z
KEYPRESS:
ldi temp1,20 ;ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠΏΡΡΠΎΠΊ Π΄Π»Ρ Π³Π°ΡΠ΅Π½ΠΈΡ
;Π΄ΡΠ΅Π±Π΅Π·Π³Π° ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ²
keyloop:
in temp, PIND
andi temp, 0b00111000
breq keynopress
sbic PIND, K1
ldi key, 1
sbic PIND, K2
ldi key, 2
sbic PIND, K3
ldi key, 3
dec temp1
brne keyloop ;Π΅ΡΠ»ΠΈ Π½Π΅ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ
keynopress:
and key, key
ret
;*************************************************************************
;* ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΠΎΡΠΏΡΡΠΊΠ°Π½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ
KEYUP:
ldi temp1,20 ;ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠΏΡΡΠΎΠΊ Π΄Π»Ρ Π³Π°ΡΠ΅Π½ΠΈΡ
;Π΄ΡΠ΅Π±Π΅Π·Π³Π° ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ²
keyuloop:
in temp, PIND
andi temp, 0b001110000
breq unpress
dec temp1
brne KEYUP ;Π΅ΡΠ»ΠΈ Π½Π΅ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ
unpress:
and key, key
ret
;*************************************************************************
; ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ΅ΠΆΠΈΠΌΠ°
; ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ Π΄Π»Ρ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΠΈ
; calckterm
outTmax:
mov fbinL, TMAXL
mov fbinH, TMAXH
rjmp outterm
outTmin:
mov fbinL, TMAXL
mov fbinH, TMAXH
rjmp outterm
calckterm:
mov temp, tmode
rcall STRLCD
mov fbinL, TNORML
mov fbinH, TNORMH
cpi tmode, 1
breq outTmin
cpi tmode, 2
breq outTmax
ldi temp, 0xb
outterm:
ldi ZH, high (DLCD+5)
ldi ZL, low (DLCD+5)
ldi temp2,0xb
sbrs fbinH, 0
ldi temp2,0×10
; ldi temp3,0
; sub temp3, temp2
; ror temp3
st Z+, temp2
inc ZL
inc ZL
ldi temp2,5
sbrs fbinL, 0
ldi temp2,0
st Z+, temp2
ldi fbinH, 0
clc
ror fbinL
rcall bin16BCD5
mov temp3, fbinH
mov temp2, fbinL
swap temp2
andi temp3,0xf
andi temp2,0xf
andi temp, 0xf
rcall getcod
mov temp1, temp
set
bst temp1,4
mov temp, temp2
rcall getcod
mov temp2, temp
mov temp, temp3
rcall getcod
mov temp3, temp
ldi ZH, high (DLCD+6)
ldi ZL, low (DLCD+6)
st Z+, temp3
st Z+, temp2
st Z+, temp1
rcall LCDOUT
;*************************************************************************
; ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠ΄ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π΄Π»Ρ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ°
; Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ temp Π·Π°ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π°
; ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ΅ ΠΈ ΠΎΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π½Π°Π·Π°Π΄ Π² ΡΡΠ΅ΠΉΠΊΡ temp
getcod:
ldi ZH, high (LCDCG*2)
ldi ZL, low (LCDCG*2);init Z-pointer
add ZL, temp
lpm ;get constant
mov temp, r0
ret
;*************************************************************************
; Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ΅
LCDCG: ;ΡΠΈΠΏ ΠΊΠΎΠ΄
.DB 0xEE ;ΡΠΈΡΠ»ΠΎ 0
.DB 0×60 ;ΡΠΈΡΠ»ΠΎ 1
.DB 0x2 °F ;ΡΠΈΡΠ»ΠΎ 2
.DB 0x6D ;ΡΠΈΡΠ»ΠΎ 3
.DB 0xE1 ;ΡΠΈΡΠ»ΠΎ 4
.DB 0xCD ;ΡΠΈΡΠ»ΠΎ 5
.DB 0xCF ;ΡΠΈΡΠ»ΠΎ 6
.DB 0×68 ;ΡΠΈΡΠ»ΠΎ 7
.DB 0xEF ;ΡΠΈΡΠ»ΠΎ 8
.DB 0xED ;ΡΠΈΡΠ»ΠΎ 9
.DB 0×10 ;ΡΠΈΠΌΠ²ΠΎΠ». a
.DB 0×01 ;ΡΠΈΠΌΠ²ΠΎΠ» — b
.DB 0×87 ;ΡΠΈΠΌΠ²ΠΎΠ» t c
.DB 0×46 ;ΡΠΈΠΌΠ²ΠΎΠ» u d
.DB 0×67 ;ΡΠΈΠΌΠ²ΠΎΠ» d e
.DB 0×07 ;ΡΠΈΠΌΠ²ΠΎΠ» c f
.DB 0×00 ;ΡΠΈΠΌΠ²ΠΎΠ» blanck 10 ΠΏΡΡΡΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ»
;ΡΡΡΠΎΠΊΠ° tc;
tcstr:
.DB 0x0c, 0x0f, 0x0b, 0×10
;ΡΡΡΠΎΠΊΠ° tu;
tustr:
.DB 0x0c, 0x0d, 0x0b, 0×10
;cΡΡΠΎΠΊΠ° td;
tdstr:
.DB 0x0c, 0x0e, 0x0b, 0×10
;*************************************************************************
;*
;* PROGRAM RESET — Π³Π»Π°Π²Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°
;*
;*************************************************************************
RESET:
ldi temp, low (RAMEND)
out SPL, temp; Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΡΠ΅ΠΊΠ° Π½Π° Π²Π΅ΡΡ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π°Π½Π½ΡΡ
rcall port_set; Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΠΎΡΡΡ
rcall CLRLCD
;*************************************************************************
;*
;* mainloop — Π³Π»Π°Π²Π½ΡΠΉ ΡΠΈΠΊΠ» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
;*
;*************************************************************************
mainloop:
ldi temp1,250
mov r5, temp1
mainloop1:
rcall KEYPRESS ;ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ
brne keyis; ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π΅ΡΠ»ΠΈ Ρ ΠΎΡΡΠ±Ρ ΠΎΠ΄Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ° Π½Π°ΠΆΠ°ΡΠ°
rjmp returnin ;Π²ΠΎΠ·Π²ΡΠ°Ρ ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌΡ ΡΡΠΊΠ»Ρ
keyis:
ldi temp1,250
mov r5, temp1
cpi temp, 1
rcall key1press
cpi temp, 2
rcall key2press
cpi temp, 3
rcall key3press
returnin:
ldi temp1,0xaa; ΡΡΠ΅Π½ΠΈΠ΅Π΅ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ ΡΠ΅ΡΠΌΠΎΡΡΠ°ΡΠ°
rcall TERMIN
ldi temp2,0xaa; ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΠΌΠΎΡΡΠ°ΡΠ°
rcall TERMIN
mov TNORML, temp
mov TNORMH, temp1
rcall calckterm; ΡΠ°ΡΡΠ΅Ρ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ
dec r5
brne mainloop1; ΠΏΠΎΡΠ»Π΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΆΠΆΠΈΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΌΠΈΠ½ΡΡΡ
ldi tmode, 0; Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΡΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ΅ΠΆΠΈΠΌ
rjmp mainloop
;*************************************************************************
;* ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΠ»Π°Π²ΠΈΡΠΈ ΡΠ΅ΠΆΠΈΠΌΠ°
key1press:
and tmode, tmode
brne k1setmax
dec tmode
rjmp keyret
k1setmax:
ldi temp, 2
mov tmode, temp
keyret:
rcall calckterm
rjmp KEYUP
;*************************************************************************
;* ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΠ»Π°Π²ΠΈΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²Π²Π΅ΡΡ
key2press:
cpi tmode, 1
brne key2min
cpi tmode, 2
brne key2max
rjmp keyret
key2min:
sbrs TMINH, 0
rjmp key2minm
inc TMINL
brmi key2mins
rjmp keyret
key2mins:
ldi TMINH, 0
rjmp keyret
key2minm:
cpi TMINL, 0xfa
brmi keyret
inc TMINL
rjmp keyret
key2max:
sbrs TMAXH, 0
rjmp key2maxm
inc TMINL
brmi key2maxs
rjmp keyret
key2maxs:
ldi TMAXH, 0
rjmp keyret
key2maxm:
cpi TMAXL, 0xfa
brmi keyret
inc TMAXL
rjmp keyret
;*************************************************************************
;* ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΠ»Π°Π²ΠΈΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²Π½ΠΈΠ·
key3press:
cpi tmode, 1
brne key3min
cpi tmode, 2
brne key3max
rjmp keyret
key3min:
sbrc TMINH, 0
rjmp key3minm
dec TMINL
brmi key3mins
rjmp keyret
key3mins:
ldi TMINH, 1
rjmp keyret
key3minm:
cpi TMINL, 0×92
brmi keyret
dec TMINL
rjmp keyret
key3max:
sbrc TMAXH, 0
rjmp key3maxm
dec TMAXL
brmi key3maxs
rjmp keyret
key3maxs:
ldi TMAXH, 1
rjmp keyret
key3maxm:
cpi TMAXL, 0×92
brmi keyret
dec TMAXL
rjmp keyret
;*************************************************************************
;1. Π’Π΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ «bin16BCD5» — ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ 16-Π±ΠΈΡΠ½ΠΎΠ³ΠΎ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ
;Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΡΠΉ BCD ΡΠΎΡΠΌΠ°Ρ
;*************************************************************************
;* ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»ΠΎΠ² ΠΊΠΎΠ΄Π°:25 + Π²ΠΎΠ·Π²ΡΠ°Ρ
;* ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΈΠΊΠ»ΠΎΠ²:25/176 (ΠΠΈΠ½/ΠΠ°ΠΊΡ) + Π²ΠΎΠ·Π²ΡΠ°Ρ
;* ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΌΠ»Π°Π΄ΡΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ: Π½Π΅Ρ
;* ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΠ°ΡΡΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ:4(fbinL, fbinH/tBCD0,tBCD1,tBCD2)
;* ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ: Π½Π΅Ρ
;*************************************************************************
;***** Π Π΅Π³ΠΈΡΡΡΠΎΠ²ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
.def fbinL =r16;Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΌΠ»Π°Π΄ΡΠΈΠΉ Π±Π°ΠΉΡ
.def fbinH =r17;Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΡΠ°ΡΡΠΈΠΉ Π±Π°ΠΉΡ
.def tBCD0 =r17;BCD Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠΈΡΡΡ 1 ΠΈ 0
.def tBCD1 =r18;BCD Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠΈΡΡΡ 3 ΠΈ 2
.def tBCD2 =r19;BCD Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠΈΡΡΠ° 4
;ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ fbinH ΠΈ tBCD0 Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ
;ΡΠ΅Π³ΠΈΡΡΡΠ΅.
;***** ΠΠΎΠ΄
;*************************************************************************
bin16BCD5:
ldi tBCD2, -1
bin16BCD5_loop1:
inc tBCD2
subi fbinL, low (10 000)
sbci fbinH, high (10 000)
brsh bin16BCD5_loop1
subi fbinL, low (-10 000)
sbci fbinH, high (-10 000)
ldi tBCD1, -0×11
bin16BCD5_loop2:
subi tBCD1, -0×10
subi fbinL, low (1000)
sbci fbinH, high (1000)
brsh bin16BCD5_loop2
subi fbinL, low (-1000)
sbci fbinH, high (-1000)
bin16BCD5_loop3:
inc tBCD1
subi fbinL, low (100)
sbci fbinH, high (100)
brsh bin16BCD5_loop3
subi fbinL, -100
ldi tBCD0, -0×10
bin16BCD5_loop4:
subi tBCD0, -0×10
subi fbinL, 10
brsh bin16BCD5_loop4
subi fbinL, -10
add tBCD0, fbinL
ret
;*************************************************************************