ΠΠ²ΡΠΎΠΌΠ°Ρ ΠΏΠΎΠ΄Π°ΡΠΈ Π·Π²ΠΎΠ½ΠΊΠΎΠ² Π² ΡΡΠ΅Π±Π½ΠΎΠΌ Π·Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΠ
Π ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ AVR ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΠ°ΡΠ²Π°ΡΠ΄ΡΠΊΠ°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΠ΅ΡΡΡ ΡΠ°Π·Π΄Π΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈ Π΄Π°Π½Π½ΡΡ , ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠΈΠ½Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½ΠΈΠΌ. Π’Π°ΠΊΠ°Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ Ρ ΠΏΠ°ΠΌΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΡΠ°ΠΊ ΠΈ Ρ ΠΏΠ°ΠΌΡΡΡΡ Π΄Π°Π½Π½ΡΡ . Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠ½ Π΄ΠΎΡΡΡΠΏΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΏΠ°ΠΌΡΡΠΈ ΡΠΈΠ½Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΡΠ΄Π½ΠΎΡΡΠΈ, ΠΏΡΠΈΡΠ΅ΠΌ ΡΠΏΠΎΡΠΎΠ±Ρ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠ²ΡΠΎΠΌΠ°Ρ ΠΏΠΎΠ΄Π°ΡΠΈ Π·Π²ΠΎΠ½ΠΊΠΎΠ² Π² ΡΡΠ΅Π±Π½ΠΎΠΌ Π·Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΠ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
- ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
- 1. Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°ΡΡΡ
- 1.1 ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
- 1.2 Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ
- 2. ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°ΡΡΡ
- 2.1 ΠΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°
- 2.2 ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
- 2.3 Π’Π΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
- 2.4 Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ (ΡΠΈΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ) ΡΡΡΡΠΎΠΉΡΡΠ²Π°
- 2.5 ΠΠ½Π°Π»ΠΈΠ· ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ²
- ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
- ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ — ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ°, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½Π°Ρ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ. Π’ΠΈΠΏΠΈΡΠ½ΡΠΉ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΡΠΎΡΠ΅ΡΠ°Π΅Ρ Π² ΡΠ΅Π±Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ², ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΠΠ£. ΠΡΠΎΠΌΠ΅ ΠΠΠ£, ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΠ½Π΅ΡΠ³ΠΎΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΠΏΠ°ΠΌΡΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ Π΄Π°Π½Π½ΡΡ . ΠΡΡΠ³ΠΈΠ΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² ΠΎΠ±Π»Π°Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈ ΡΠ½Π΅ΡΠ³ΠΎΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ [2, ΡΡΡ.21].
ΠΠ΅ΡΠ²ΡΠΉ ΠΏΠ°ΡΠ΅Π½Ρ Π½Π° ΠΎΠ΄Π½ΠΎΠΊΡΠΈΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠΈΠΊΡΠΎ-ΠΠΠ Π±ΡΠ» Π²ΡΠ΄Π°Π½ Π² 1971 Π³ΠΎΠ΄Ρ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ°ΠΌ ΠΠΎΡΡΠ΅Π½Ρ ΠΈ ΠΡΠ½Ρ, ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°ΠΌ Π°ΠΌΠ΅ΡΠΈΠΊΠ°Π½ΡΠΊΠΎΠΉ Texas Instruments. ΠΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ»ΠΈ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΊΡΠΈΡΡΠ°Π»Π»Π΅ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ, Π½ΠΎ ΠΈ ΠΏΠ°ΠΌΡΡΡ Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°.
Π 1976 Π³ΠΎΠ΄Ρ Π°ΠΌΠ΅ΡΠΈΠΊΠ°Π½ΡΠΊΠ°Ρ ΡΠΈΡΠΌΠ° Intel Π²ΡΠΏΡΡΠΊΠ°Π΅Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ i8048. Π 1978 Π³ΠΎΠ΄Ρ ΡΠΈΡΠΌΠ° Motorola Π²ΡΠΏΡΡΡΠΈΠ»Π° ΡΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ MC6801, ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ Π²ΡΠΏΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π½Π΅Π΅ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° MC6800. Π§Π΅ΡΠ΅Π· 4 Π³ΠΎΠ΄Π°, Π² 1980 Π³ΠΎΠ΄Ρ, Intel Π²ΡΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ: i8051. Π£Π΄Π°ΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ², Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π³ΠΈΠ±ΠΊΠΎΠ³ΠΎ Π²ΡΠ±ΠΎΡΠ° Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΈΠ»ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΠ°Ρ ΡΠ΅Π½Π° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ»ΠΈ ΡΡΠΎΠΌΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ ΡΡΠΏΠ΅Ρ Π½Π° ΡΡΠ½ΠΊΠ΅. Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ i8051 ΡΠ²Π»ΡΠ»ΡΡ Π΄Π»Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΡΠΌ ΠΈΠ·Π΄Π΅Π»ΠΈΠ΅ΠΌ — Π² ΠΊΡΠΈΡΡΠ°Π»Π»Π΅ Π±ΡΠ»ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΎ 128 ΡΡΡΡΡ ΡΡΠ°Π½Π·ΠΈΡΡΠΎΡΠΎΠ², ΡΡΠΎ Π² 4 ΡΠ°Π·Π° ΠΏΡΠ΅Π²ΡΡΠ°Π»ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ°Π½Π·ΠΈΡΡΠΎΡΠΎΠ² Π² 16-ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠΌ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅ i8086 [2, ΡΡΡ.12].
ΠΠ° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ 200 ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ², ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ Ρ i8051, Π²ΡΠΏΡΡΠΊΠ°Π΅ΠΌΡΡ Π΄Π²ΡΠΌΡ Π΄Π΅ΡΡΡΠΊΠ°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ, ΠΈ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² Π΄ΡΡΠ³ΠΈΡ ΡΠΈΠΏΠΎΠ². ΠΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡΡ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ 8-Π±ΠΈΡΠ½ΡΠ΅ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ PIC ΡΠΈΡΠΌΡ Microchip Technology ΠΈ AVR ΡΠΈΡΠΌΡ Atmel, 16-Π±ΠΈΡΠ½ΡΠ΅ MSP430 ΡΠΈΡΠΌΡ TI, Π° ΡΠ°ΠΊΠΆΠ΅ 32-Π±ΠΈΡΠ½ΡΠ΅ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ, Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ARM, ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΠΈΡΠΌΠ° ARM Limited ΠΈ ΠΏΡΠΎΠ΄Π°ΡΡ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΡΠΈΡΠΌΠ°ΠΌ Π΄Π»Ρ ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π° [3, ΡΡΡ.17].
ΠΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ°Π½ΡΡΠ΅ ΡΠΎΠ±ΠΈΡΠ°Π»ΠΎΡΡ Π½Π° ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ , Π±ΡΠ΄ΡΡΠΈ ΡΠΎΠ±ΡΠ°Π½ΠΎ Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ², ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΏΡΠΎΡΠ΅, Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ ΠΌΠ΅Π½ΡΡΠ΅ ΠΏΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π±Π΅Π·Π³ΡΠ°Π½ΠΈΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΊ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌ.
ΠΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ Π±Π°Π»Π°Π½Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΈ ΡΡΠΎΠΈΠΌΠΎΡΡΡΡ Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡΡΡ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ Ρ Π΄ΡΡΠ³ΠΎΠΉ. ΠΠ»Ρ ΡΠ°Π·Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΡΡΠΈΡ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ ΠΎΡΠ΅Π½Ρ ΡΠΈΠ»ΡΠ½ΠΎ. ΠΠΎΡΡΠΎΠΌΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΈΠΏΠΎΠ² ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ², ΠΎΡΠ»ΠΈΡΠ°ΡΡΠΈΡ ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ, ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΠΈ ΡΠΈΠΏΠΎΠΌ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, Π½Π°Π±ΠΎΡΠΎΠΌ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ², ΡΠΈΠΏΠΎΠΌ ΠΊΠΎΡΠΏΡΡΠ° ΠΈ Ρ. Π΄. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΎΠ±ΡΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ², Π² ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°Ρ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π³Π°ΡΠ²Π°ΡΠ΄ΡΠΊΠ°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΠ°ΠΌΡΡΠΈ, ΡΠΎ Π΅ΡΡΡ ΡΠ°Π·Π΄Π΅Π»ΡΠ½ΠΎΠ΅ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΠΠΠ£ ΠΈ ΠΠΠ£ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
Π¦Π΅Π»ΡΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π°Π²ΡΠΎΠΌΠ°ΡΠ° ΠΏΠΎΠ΄Π°ΡΠΈ Π·Π²ΠΎΠ½ΠΊΠΎΠ² Π² ΡΡΠ΅Π±Π½ΠΎΠΌ Π·Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΠ. ΠΠ°Π΄Π°ΡΠ΅ΠΉ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΡΠ±ΠΎΡΠΊΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΡ Π΅ΠΌΡ ΠΈ ΡΠΈΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π»ΠΈΡΡΠΈΠ½Π³ ΡΡ Π΅ΠΌΠ°
1. Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°ΡΡΡ
1.1 ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠ° ΠΏΠΎΠ΄Π°ΡΠΈ Π·Π²ΠΎΠ½ΠΊΠΎΠ² Π² ΡΡΠ΅Π±Π½ΠΎΠΌ Π·Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ Π½Π° atmega8, ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΡΠΈΠΌΡΠ»ΡΡΠΈΡ, ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ, ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ . ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ:
1. CodeVisionAVR C compiler — Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°.
2. Proteus — Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ, ΡΠΈΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΡΡ Π΅ΠΌΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
ΠΡΡΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠ΄ΠΎΠ±Π½ΡΠΌΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌΠΈ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠ΅ ΡΠ΅ΡΠ°Π΅ΠΌΡΡ Π·Π°Π΄Π°Ρ.
1.2 Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ
ΠΠ°ΠΊ ΠΈ Π²ΡΠ΅ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ AVR ΡΠΈΡΠΌΡ «Atmel», ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° ATmega ΡΠ²Π»ΡΡΡΡΡ 8-ΡΠ°Π·ΡΡΠ΄Π½ΡΠΌΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°ΠΌΠΈ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΌΠΈ Π΄Π»Ρ Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ½ΠΈ ΠΈΠ·Π³ΠΎΡΠ°Π²Π»ΠΈΠ²Π°ΡΡΡΡ ΠΏΠΎ ΠΌΠ°Π»ΠΎΠΏΠΎΡΡΠ΅Π±Π»ΡΡΡΠ΅ΠΉ CMOP-ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ ΡΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°Π½Π½ΠΎΠΉ RISC-Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΎΡΡΠΈΡΡ Π½Π°ΠΈΠ»ΡΡΡΠ΅Π³ΠΎ ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ/ΡΠ½Π΅ΡΠ³ΠΎΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ [3, ΡΡΡ.24].
ΠΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠ΅ΡΠ΄ΡΠ΅ΠΌ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² ΠΈ ΠΏΡΠΈΠ±ΠΎΡΠΎΠ². Π‘Π°ΠΌΠΎΠΉ Π³Π»Π°Π²Π½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ Ρ ΠΈΡ ΠΏΠΎΠΌΠΎΡΡΡ Π»Π΅Π³ΡΠ΅ ΠΈ Π·Π°ΡΠ°ΡΡΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π΄Π΅ΡΠ΅Π²Π»Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡ Π΅ΠΌΡ.
ΠΠ½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° ΡΠΈΡΠΌΡ ATmega ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 1.1.
Π ΠΈΡΡΠ½ΠΎΠΊ 1.1 — ΠΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΡΠΈΡΠΌΡ ATmega
Π ΡΠΈΡΠ»Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° AVR ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° ATmega ΠΎΡΠ½ΠΎΡΡΡΡΡ:
1. FLASH-ΠΏΠ°ΠΌΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΎΠ±ΡΠ΅ΠΌΠΎΠΌ 8 — 128 ΠΠ±Π°ΠΉΡ;
2. ΠΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π°Ρ ΠΏΠ°ΠΌΡΡΡ (ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΠΠ£) ΠΎΠ±ΡΠ΅ΠΌΠΎΠΌ 1 — 4 ΠΠ±Π°ΠΉΡ;
3. ΠΠ°ΠΌΡΡΡ Π΄Π°Π½Π½ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΠ‘ΠΠΠΠ£ (EEPROM) ΠΎΠ±ΡΠ΅ΠΌΠΎΠΌ ΠΎΡ 512 Π±Π°ΠΉΡ Π΄ΠΎ 4 ΠΠ±Π°ΠΉΡ;
4. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΡΠΈΡΡ ΠΎΡ ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈ Π΄Π°Π½Π½ΡΡ ;
5. ΠΠ°Π»ΠΈΡΠΈΠ΅ Π΄Π΅ΡΠ΅ΠΊΡΠΎΡΠ° ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ ΠΏΠΈΡΠ°Π½ΠΈΡ (brown-out-detector, BOD) [1, ΡΡΡ.37].
ΠΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° ATmega ΡΠ°ΠΊΠΈΠ΅ ΠΆΠ΅, ΡΡΠΎ ΠΈ Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² Π΄ΡΡΠ³ΠΈΡ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²:
1. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π²ΡΠ±ΠΎΡ ΠΏΠΎΡΡΠΎΠ² Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π°;
2. ΠΡΠ²ΠΎΠ΄Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½Ρ ΠΊΠ°ΠΊ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ ΠΈ ΠΊΠ°ΠΊ Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°;
3. ΠΡ ΠΎΠ΄Π½ΡΠ΅ Π±ΡΡΠ΅ΡΡ Ρ ΡΡΠΈΠ³Π³Π΅ΡΠΎΠΌ ΡΠΌΠΈΡΡΠ° Π½Π° Π²ΡΠ΅Ρ Π²ΡΠ²ΠΎΠ΄Π°Ρ ;
4. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎ Π²ΡΠ΅ΠΌ Π²Ρ ΠΎΠ΄Π°ΠΌ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°ΡΡΠΈΡ ΡΠ΅Π·ΠΈΡΡΠΎΡΠΎΠ² (ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅Π·ΠΈΡΡΠΎΡΠΎΠ² 35 — 120 ΠΊΠΠΌ).
ΠΠΎΡΡΡ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° AVR ΠΈΠΌΠ΅ΡΡ ΡΠΈΡΠ»ΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ Π»ΠΈΠ½ΠΈΠΉ «ΠΡ ΠΎΠ΄/ΠΡΡ ΠΎΠ΄» ΠΎΡ 3 Π΄ΠΎ 53. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·ΡΡΠ΄ ΠΏΠΎΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ Π½Π° Π²Π²ΠΎΠ΄ ΠΈΠ»ΠΈ Π½Π° Π²ΡΠ²ΠΎΠ΄ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. ΠΠΎΡΠ½ΡΠ΅ Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΡΠΎΠΊΠΎΠ²ΡΡ Π½Π°Π³ΡΡΠ·ΠΎΡΠ½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ 20 ΠΌΠ Π½Π° Π»ΠΈΠ½ΠΈΡ ΠΏΠΎΡΡΠ° (Π²ΡΠ΅ΠΊΠ°ΡΡΠΈΠΉ ΡΠΎΠΊ) ΠΏΡΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ 40 ΠΌΠ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ ΠΊ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄Ρ ΠΈ Π±ΠΈΠΏΠΎΠ»ΡΡΠ½ΡΠ΅ ΡΡΠ°Π½Π·ΠΈΡΡΠΎΡΡ. ΠΠ±ΡΠ°Ρ ΡΠΎΠΊΠΎΠ²Π°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ° Π½Π° Π²ΡΠ΅ Π»ΠΈΠ½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ 80 ΠΌΠ (Π²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ ΠΏΠΈΡΠ°Π½ΠΈΡ 5 Π) [4, ΡΡΡ.55].
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠΎΠ² Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° Ρ AVR Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²ΡΠ²ΠΎΠ΄Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ 3 Π±ΠΈΡΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ/ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, Π° Π½Π΅ 2, ΠΊΠ°ΠΊ Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ 8-ΡΠ°Π·ΡΡΠ΄Π½ΡΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² (Intel, Microchip, Motorola ΠΈ Ρ. Π΄.).
ΠΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° ATmega ΠΈΠΌΠ΅ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π±ΠΎΠ³Π°ΡΡΠΉ Π½Π°Π±ΠΎΡ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² (ΠΠ£). ΠΡΠΈ ΡΡΠΎΠΌ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈΠΌΠ΅ΡΡΡΡ Π²ΡΠ΅ ΠΠ£, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠΎΠ±ΡΠ΅ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ Π² ΡΠΎΡΡΠ°Π²Π΅ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² AVR. ΠΡΠΈΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ:
1. 8-ΡΠ°Π·ΡΡΠ΄Π½ΡΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΡ/ΡΡΠ΅ΡΡΠΈΠΊΠΈ (ΡΠ°ΠΉΠΌΠ΅ΡΡ Π’0 ΠΈ Π’2). Π ΡΡΠ΄Π΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΡΡΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΡ/ΡΡΠ΅ΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°ΡΠΎΠ² ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (Π² Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅). Π£ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠ΄Π½ΠΎ — ΠΈΠ»ΠΈ Π΄Π²ΡΡ ΠΊΠ°Π½Π°Π»ΡΠ½ΠΎΠ³ΠΎ 8-Π±ΠΈΡΠ½ΠΎΠ³ΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° Π¨ΠΠ-ΡΠΈΠ³Π½Π°Π»ΠΎΠ². ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ², ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡΠΈΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΡ, Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ.
2. 16-ΡΠ°Π·ΡΡΠ΄Π½ΡΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΡ/ΡΡΠ΅ΡΡΠΈΠΊΠΈ (ΡΠ°ΠΉΠΌΠ΅ΡΡ Π’1 ΠΈ Π’3). ΠΠ°ΠΊ ΠΈ 8-ΡΠ°Π·ΡΡΠ΄Π½ΡΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΡ/ΡΡΠ΅ΡΡΠΈΠΊΠΈ, ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ° Π²Π½Π΅ΡΠ½ΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ, ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠ³Π½Π°Π»ΠΎΠ², Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ Π¨ΠΠ, Π½ΠΎ ΡΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π·ΡΡΠ΄Π½ΠΎΡΡΠΈ, ΠΈ Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΡΠ²ΠΎΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ΅ ΠΏΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΌΡ ΡΠΎΠ±ΡΡΠΈΡ.
3. Π‘ΡΠΎΡΠΎΠΆΠ΅Π²ΠΎΠΉ ΡΠ°ΠΉΠΌΠ΅Ρ WDT. ΠΠ½ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² ΠΎΡ ΡΠ±ΠΎΠ΅Π² Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΈ ΠΈΠΌΠ΅Π΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅Ρ ΠΌΠΎΠ΄Π΅Π»ΡΡ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π°. ΠΡΠΎΡ ΡΠ°ΠΉΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π°ΠΆΠ΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ°Ρ ΠΏΠΎΠ½ΠΈΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ½Π΅ΡΠ³ΠΎΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ, Ρ.ΠΊ. ΠΈΠΌΠ΅Π΅Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΉ ΡΠ°ΠΊΡΠΎΠ²ΡΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Π½Π° ΡΠ°ΡΡΠΎΡΠ΅ 1ΠΠΡ ΠΏΡΠΈ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠΈ 5 Π.
4. ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΡΠΈΠ³Π½Π°Π»Π° Ρ Π¨ΠΠ ΡΠ°Π·ΡΡΠ΄Π½ΠΎΡΡΡΡ 8 Π±ΠΈΡ (ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ΅ΠΆΠΈΠΌΠΎΠ² ΡΠ°Π±ΠΎΡΡ 8-ΡΠ°Π·ΡΡΠ΄Π½ΡΡ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠ²/ΡΡΠ΅ΡΡΠΈΠΊΠΎΠ² Π’0 ΠΈ Π’2).
5. ΠΠ΄Π½ΠΎΠΊΠ°Π½Π°Π»ΡΠ½ΡΠ΅, Π΄Π²ΡΡ ΠΊΠ°Π½Π°Π»ΡΠ½ΡΠ΅ ΠΈ ΡΡΠ΅Ρ ΠΊΠ°Π½Π°Π»ΡΠ½ΡΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΡΠΈΠ³Π½Π°Π»Π° Ρ Π¨ΠΠ ΡΠ΅Π³ΡΠ»ΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠ°Π·ΡΡΠ΄Π½ΠΎΡΡΠΈ (ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ΅ΠΆΠΈΠΌΠΎΠ² ΡΠ°Π±ΠΎΡΡ 16-ΡΠ°Π·ΡΡΠ΄Π½ΡΡ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠ² Π’1 ΠΈ Π’3). Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π¨ΠΠ-ΡΠΈΠ³Π½Π°Π»Π° Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ 8 — 10 Π±ΠΈΡ ΠΈΠ»ΠΈ 1 — 16 Π±ΠΈΡ.
6. ΠΠ½Π°Π»ΠΎΠ³ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΏΠ°ΡΠ°ΡΠΎΡ. ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠΉ, ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡΠΈΡ Π½Π° Π΄Π²ΡΡ Π²ΡΠ²ΠΎΠ΄Π°Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ. ΠΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΎ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»Π΅Π½ Π·Π°Ρ Π²Π°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ° ΡΠ°ΠΉΠΌΠ΅ΡΠ°/ΡΡΠ΅ΡΡΠΈΠΊΠ° Π’1, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅ΡΠΈΡΡ Π΄Π»ΠΈΠ½Ρ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²ΡΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠ².
7. ΠΠ½ΠΎΠ³ΠΎΠΊΠ°Π½Π°Π»ΡΠ½ΡΠΉ 10-ΡΠ°Π·ΡΡΠ΄Π½ΡΠΉ ΠΠ¦Π ΠΊΠ°ΠΊ Ρ Π½Π΅ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠΌΠΈ, ΡΠ°ΠΊ ΠΈ Ρ Π΄ΠΈΡΡΠ΅ΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠΌΠΈ Π²Ρ ΠΎΠ΄Π°ΠΌΠΈ. ΠΠ½ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°Π΅Ρ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²ΡΠΉ ΡΠΈΠ³Π½Π°Π» Π² ΡΠΈΡΡΠΎΠ²ΠΎΠ΅ Π²Ρ ΠΎΠ΄Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π²Ρ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΠΈΠ³Π½Π°Π»Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ. ΠΠ¦Π Π±ΡΠ²Π°ΡΡ: ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΠΉ, ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΡΠΉ ΠΈ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ.
8. ΠΠΎΠ»Π½ΠΎΠ΄ΡΠΏΠ»Π΅ΠΊΡΠ½ΡΠΉ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ ΠΏΡΠΈΠ΅ΠΌΠΎΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠΈΠΊ (UART).
9. ΠΠΎΠ»Π½ΠΎΠ΄ΡΠΏΠ»Π΅ΠΊΡΠ½ΡΠΉ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ/Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ ΠΏΡΠΈΠ΅ΠΌΠΎΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠΈΠΊ (USART).
10. ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ SPI.
11. ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ Π΄Π²ΡΡ ΠΏΡΠΎΠ²ΠΎΠ΄Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ TWI [3, ΡΡΡ.78].
Π―Π΄ΡΠΎ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² AVR ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° ATmega Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΏΠΎ ΡΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°Π½Π½ΠΎΠΉ RISC-Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ (enhanced RISC). ΠΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠΎ-Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ (ΠΠΠ£), Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ΅Π΅ Π²ΡΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊ 32-ΠΌ ΡΠ°Π±ΠΎΡΠΈΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌ, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΠΌ Π² ΡΠ΅Π³ΠΈΡΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ». ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ ΠΠΠ£ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠ΄Π½Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ (ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ², Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈ Π·Π°ΠΏΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² ΡΠ΅Π³ΠΈΡΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ») Π·Π° ΠΎΠ΄ΠΈΠ½ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΡΠΈΠΊΠ». ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄ (Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄, Ρ ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ 16-ΡΠ°Π·ΡΡΠ΄Π½ΡΠΉ Π°Π΄ΡΠ΅Ρ) Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΎΠ΄Π½Ρ ΡΡΠ΅ΠΉΠΊΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ [1, ΡΡΡ.144].
Π ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ AVR ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΠ°ΡΠ²Π°ΡΠ΄ΡΠΊΠ°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΠ΅ΡΡΡ ΡΠ°Π·Π΄Π΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈ Π΄Π°Π½Π½ΡΡ , ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠΈΠ½Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½ΠΈΠΌ. Π’Π°ΠΊΠ°Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ Ρ ΠΏΠ°ΠΌΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΡΠ°ΠΊ ΠΈ Ρ ΠΏΠ°ΠΌΡΡΡΡ Π΄Π°Π½Π½ΡΡ . Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠ½ Π΄ΠΎΡΡΡΠΏΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΏΠ°ΠΌΡΡΠΈ ΡΠΈΠ½Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΡΠ΄Π½ΠΎΡΡΠΈ, ΠΏΡΠΈΡΠ΅ΠΌ ΡΠΏΠΎΡΠΎΠ±Ρ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠΈΠΏΡ ΠΏΠ°ΠΌΡΡΠΈ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½Ρ [2, ΡΡΡ.98].
2. ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°ΡΡΡ
2.1 ΠΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°
ΠΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π° Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 2.1.
Π ΠΈΡΡΠ½ΠΎΠΊ 2.1 - Π‘Ρ Π΅ΠΌΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°:
1. ΠΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ATmega8;
2. ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»Ρ MAX232;
3. ΠΠΎΠ½Π΄Π΅Π½ΡΠ°ΡΠΎΡΡ;
4. Com ΠΏΠΎΡΡ;
5. ΠΠΈΠ½Π°ΠΌΠΈΠΊ (buzzer).
2.2 ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΠ»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π°Π²ΡΠΎΠΌΠ°ΡΠ° ΠΏΠΎΠ΄Π°ΡΠΈ Π·Π²ΠΎΠ½ΠΊΠΎΠ² Π² ΡΡΠ΅Π±Π½ΠΎΠΌ Π·Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 2.2.
Π ΠΈΡΡΠ½ΠΎΠΊ 2.2 - ΠΠ»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° ΡΠ°Π±ΠΎΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°
2.3 Π’Π΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ Π² ΡΡΠ΅Π΄Π΅ CodeVisionAVR C Compiler ΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π½ΠΈΠΆΠ΅.
void main (void)
{
DDRB.0=1;
init (); // Π²ΠΈΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ int (ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π²ΡΠ΅Π³ΠΎ)
while (1) {
ADCSRA=0b11001011;
if (owf_flag)
{
PORTB.0=1;
while (buf_cnt) {
buf_cnt—;
printf («%d», buff [buf_cnt]);
putchar (0x0D); // Π½Π° Π½ΠΎΠ²ΡΡ ΡΡΡΠΎΠΊΡ Π£ΠΠ Π’Π
}
owf_flag = 0;
}
}
2.4 Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ (ΡΠΈΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ) ΡΡΡΡΠΎΠΉΡΡΠ²Π°
ΠΠ»Ρ ΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΡΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Proteus, Π³Π΄Π΅ Π±ΡΠ»Π° ΡΠΎΠ±ΡΠ°Π½Π° ΡΡ Π΅ΠΌΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π½Π° ΡΠ·ΡΠΊΠ΅ C#. ΠΠ°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΡ Π΅ΠΌΡ Π² ΡΠΌΡΠ»ΡΡΠΎΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 2.3.
Π ΠΈΡΡΠ½ΠΎΠΊ 2.3 - ΠΠ°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°
ΠΠ»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° ΠΊ ΠΠ Π±ΡΠ» Π²ΡΠ±ΡΠ°Π½ com ΠΏΠΎΡΡ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ VSPD ΠΈΠΌΠΈΡΠΈΡΠΎΠ²Π°Π»ΠΎΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ (Π ΠΈΡΡΠ½ΠΎΠΊ 2.4).
Π ΠΈΡΡΠ½ΠΎΠΊ 2.4 - ΠΠΌΠΈΡΠ°ΡΠΈΡ com ΠΏΠΎΡΡΠ°
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π»Ρ ΠΠ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 2.5 ΠΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠ³Π΄Π° Π²ΡΠ΅ΠΌΡ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ΄Π°ΡΠ° ΡΠΈΠ³Π½Π°Π»Π° Π² com ΠΏΠΎΡΡ, ΠΎΡΠΊΡΠ΄Π° Π·Π°ΡΠ΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ Π½Π° ΡΠ°ΠΌ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΈ Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊ (Π ΠΈΡΡΠ½ΠΎΠΊ 2.6).
Π ΠΈΡΡΠ½ΠΎΠΊ 2.5 - Π Π°Π±ΠΎΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
Π ΠΈΡΡΠ½ΠΎΠΊ 2.6 - Π Π°Π±ΠΎΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°
2.5 ΠΠ½Π°Π»ΠΈΠ· ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ²
Π Ρ ΠΎΠ΄Π΅ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ, Π±ΡΠ»Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π° ΡΡ Π΅ΠΌΠ° ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ°Π±ΠΎΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠ° ΠΏΠΎΠ΄Π°ΡΠΈ Π·Π²ΠΎΠ½ΠΊΠΎΠ² Π² ΡΡΠ΅Π±Π½ΠΎΠΌ Π·Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΠ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ CodeVisionAVR C compiler (Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° ATMega8), Proteus, MVS12.
Π Ρ ΠΎΠ΄Π΅ Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ Π΄Π°Π²Π°Π»Π° ΡΠ±ΠΎΠ΅Π². ΠΡΠΏΠΎΠ»Π½ΡΠ»Π° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π·Π°ΠΏΡΠΎΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΡΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π±ΡΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ Π²ΡΠ΅ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΈ ΡΠ΅Π»ΠΈ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° «ΠΠ²ΡΠΎΠΌΠ°Ρ ΠΏΠΎΠ΄Π°ΡΠΈ Π·Π²ΠΎΠ½ΠΊΠΎΠ² Π² ΡΡΠ΅Π±Π½ΠΎΠΌ Π·Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΠ», Π° ΠΈΠΌΠ΅Π½Π½ΠΎ:
ΡΠΎΠ±ΡΠ°Π½Π° ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°;
Π½Π°ΠΏΠΈΡΠ°Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π»Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°;
Π½Π°ΠΏΠΈΡΠ°Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π»Ρ ΠΠ;
ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π° ΡΠΈΠΌΡΠ»ΡΡΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°;
ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ Π²Π½Π΅Π΄ΡΡΡΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΠΎ Π²ΡΠ΅, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΠΎΡΡΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²
AVR — Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ 8-ΡΠ°Π·ΡΡΠ΄Π½ΡΠΉ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ, Π½Π°Π±ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ ΠΏΠΎΠ΄ ΡΠ·ΡΠΊΠΈ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ. ΠΠΎΠ΄ Π½Π° ΡΠ·ΡΠΊΠ΅ C Π΄Π΅Π»Π°Π΅Ρ Π΄Π°Π½Π½ΡΡ ΠΎΠΏΠΎΡΠ½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π»Π΅Π³ΠΊΠΎ Π°Π΄Π°ΠΏΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠ΅ΠΌΠΎΠΉ.
Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (RTC) ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎ Π²ΡΠ΅Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°Ρ ΡΠ΅ΡΠΈΠΈ «mega» ΠΈ Π² Π΄Π²ΡΡ ΠΊΡΠΈΡΡΠ°Π»Π»Π°Ρ ΡΠ΅ΡΠΈΠΈ «classic». Π’Π°ΠΉΠΌΠ΅Ρ/ΡΡΠ΅ΡΡΠΈΠΊ RTC ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΡΠ΅Π΄Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΈΠ»ΠΈ ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΌΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΡ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠΉ ΡΠ°ΡΡΠΎΡΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°, ΠΈΠ»ΠΈ ΠΊ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΌΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΡ ΠΎΠΏΠΎΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΎΡΡ (ΠΊΠ²Π°ΡΡΠ΅Π²ΡΠΉ ΡΠ΅Π·ΠΎΠ½Π°ΡΠΎΡ ΠΈΠ»ΠΈ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΡΠΈΠ½Ρ ΡΠΎΡΠΈΠ³Π½Π°Π»). ΠΠ°ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΡΠ° ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°ΠΌΠΈ, Π² ΡΠ±ΠΎΡΠΊΠ΅ ΡΡ Π΅ΠΌ ΠΈ ΠΈΡ Π½Π°Π»Π°Π΄ΠΊΠ΅.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π
#include
#include
#include
#define ADC_VREF_TYPE & 0xff;
#define BUF_SIZE 512 // Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠΎΡΠ΅ΠΊ
unsigned char buff [BUF_SIZE];
unsigned int buf_cnt=0;
unsigned char owf_flag =0;
unsigned char start;
interrupt [ADC_INT] void adc_isr (void) { start=ADCW;
if (! owf_flag) {
buff [buf_cnt] =ADCW;
buf_cnt++;
if (buf_cnt == BUF_SIZE) owf_flag=1; }
}
void init (void) {
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 57 600
UCSRA=0×00;
UCSRB=0×18;
UCSRC=0×86;
UBRRH=0×00;
UBRRL=0x0C;
ADMUX=0x0b00000000; // Π²ΠΈΠ±ΠΈΡΠ°Π΅ΠΌ 0-ΠΉ ΠΊΠ°Π½Π°Π» ΠΠ¦Π
ADCSRA=0x0b10001011; // ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΠ¦Π
#asm («sei»); // ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ Π²ΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΠ²Π°Π½ΠΈΡ
}
void main (void)
{
DDRB.0=1;
init (); // Π²ΠΈΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ int (ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π²ΡΠ΅Π³ΠΎ)
while (1) {
ADCSRA=0b11001011; // Π²ΠΊΠ»ΡΡΠ°Π΅ΠΌ Π½Π΅ΠΏΡΠ΅ΡΠΈΠ²Π½ΠΎΠ΅ ΠΠ¦Π ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅
if (owf_flag)
{
PORTB.0=1;
while (buf_cnt) {
buf_cnt—;
printf («%d», buff [buf_cnt]); // ΠΏΠ΅ΡΠ°ΡΠ°Π΅ΠΌ Π² Π£ΠΠ Π’ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
putchar (0x0D); // Π½Π° Π½ΠΎΠ²ΡΡ ΡΡΡΠΎΠΊΡ Π£ΠΠ Π’Π
}
owf_flag = 0;
}
}
}
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π
using System;
using System. Collections. Generic;
using System. componentModel;
using System. Data;
using System. Drawing;
using System. Linq;
using System. Text;
using System. Threading. Tasks;
using System. Windows. Forms;
using System. IO. Ports;
namespace Kurs
{
public partial class Form1: Form
{
public Form1 ()
{
InitializeComponent ();
}
private void Form1_Load (object sender, EventArgs e)
{
}
private void button1_Click (object sender, EventArgs e)
{
label1. Text = DateTime. Now. Hour. ToString () +" ." + DateTime. Now. Minute. ToString () +" ." + DateTime. Now. Second. ToString ();
}
private void timer1_Tick1 (object sender, EventArgs e)
{
label1. Text = DateTime. Now. Hour. ToString () +" ." + DateTime. Now. Minute. ToString () +" ." + DateTime. Now. Second. ToString ();
if (label1. Text == «8.30.0») {
SerialPort port = new SerialPort («COM2», 9600, Parity. None, 8, StopBits. One);
port. Open ();
byte [] data = {1};
port. Write (data, 0, data. Length);
port. Close ();
};
if (label1. Text == «9.50.0») {
SerialPort port = new SerialPort («COM2», 9600, Parity. None, 8, StopBits. One);
port. Open ();
byte [] data = {1};
port. Write (data, 0, data. Length);
port. Close ();
};
if (label1. Text == «10.0.0») {
SerialPort port = new SerialPort («COM2», 9600, Parity. None, 8, StopBits. One);
port. Open ();
byte [] data = {1};
port. Write (data, 0, data. Length);
port. Close ();
};
if (label1. Text == «11.20.0») {
SerialPort port = new SerialPort («COM2», 9600, Parity. None, 8, StopBits. One);
port. Open ();
byte [] data = {1};
port. Write (data, 0, data. Length);
port. Close ();
};
if (label1. Text == «11.50.0») {
SerialPort port = new SerialPort («COM2», 9600, Parity. None, 8, StopBits. One);
port. Open ();
byte [] data = {1};
port. Write (data, 0, data. Length);
port. Close ();
};
if (label1. Text == «13.10.0») {
SerialPort port = new SerialPort («COM2», 9600, Parity. None, 8, StopBits. One);
port. Open ();
byte [] data = {1};
port. Write (data, 0, data. Length);
port. Close ();
};
if (label1. Text == «13.20.0») {
SerialPort port = new SerialPort («COM2», 9600, Parity. None, 8, StopBits. One);
port. Open ();
byte [] data = {1};
port. Write (data, 0, data. Length);
port. Close ();
};
if (label1. Text == «14.40.0») {
SerialPort port = new SerialPort («COM2», 9600, Parity. None, 8, StopBits. One);
port. Open ();
byte [] data = {1};
port. Write (data, 0, data. Length);
port. Close ();
};
if (label1. Text == «14.50.0») {
SerialPort port = new SerialPort («COM2», 9600, Parity. None, 8, StopBits. One);
port. Open ();
byte [] data = {1};
port. Write (data, 0, data. Length);
port. Close ();
};
if (label1. Text == «16.10.0»)
{
SerialPort port = new SerialPort («COM2», 9600, Parity. None, 8, StopBits. One);
port. Open ();
byte [] data = { 1 };
port. Write (data, 0, data. Length);
port. Close ();
};
}
}
}