ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Ρ‚ΠΈΠΏΠ° AVR ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ATMEL

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Рисунок 3.1 — Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ модСль Π‘Π»ΠΎΠΊ ΠΎΠ±ΠΌΠ΅Π½Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ — Π² Π΄Π°Π½Π½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ производится ΠΎΠ±ΠΌΠ΅Π½ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· Com-port. Π Π°Π±ΠΎΡ‚Π° этого Π±Π»ΠΎΠΊΠ° осущСствляСтся Π² ΠΏΠΎΠ»ΡƒΠ΄ΡƒΠΏΠ»Π΅ΠΊΡΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ — ΠΏΠΎΠΎΡ‡Π΅Ρ€Π΅Π΄Π½Π° пСрСдавая Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ управляСмой Ρ€Π°ΠΊΠ΅Ρ‚ΠΊΠΈ. Π’Π°ΠΊΠΆΠ΅ этот Π±Π»ΠΎΠΊ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ сСтСвого соСдинСния. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° проводится ΠΏΠΎ ΡΡ…Π΅ΠΌΠ΅ «Π ΡƒΠΊΠΎΠΏΠΎΠΆΠ°Ρ‚ΠΈΠ΅» ΠΏΡ€ΠΈ этом ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ посылаСт… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Ρ‚ΠΈΠΏΠ° AVR ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ATMEL (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π’Π’Π•Π”Π•ΠΠ˜Π•

Π—Π°Π΄Π°Ρ‡Π΅ΠΉ Π΄Π°Π½Π½ΠΎΠ³ΠΎ курсового ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±Ρ‹Π»ΠΎ практичСскоС ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π½Π°Π½ΠΈΠΉ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Ρ€Π°Π½Π΅Π΅ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… областях Π½Π°ΡƒΠΊΠΈ, для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ тСхничСского задания.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ выполнСния Ρ‚Π°ΠΊΠΎΠ³ΠΎ задания являлась рСализация сСтСвой ΠΈΠ³Ρ€Ρ‹ «ΠŸΠΈΠ½Π³ Понг», рассчитанной Π½Π° Π΄Π²ΡƒΡ… ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ² Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ AVR АВMEGA 128. Π‘Ρ‡Ρ‘Ρ‚ ΠΈΠ³Ρ€Ρ‹ вСдётся Π΄ΠΎ 8, послС Ρ‡Π΅Π³ΠΎ опрСдСляСтся ΠΈΠ³Ρ€ΠΎΠΊ ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ (индикация побСдитСля Π½Π° ΡΠΊΡ€Π°Π½Π΅) Π·Π°Ρ‚Π΅ΠΌ ΠΈΠ³Ρ€Π° начинаСтся сначала Ρ‡Π΅Ρ€Π΅Π· Π·Π°Ρ€Π°Π½Π΅Π΅ установлСнноС врСмя. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ управлСния Ρ€Π°ΠΊΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² ΠΎΠ΄Π½ΠΎΠΉ систСмС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚. Π’ ΠΏΠΎΡΡΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ запискС прСдставлСны этапы ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΎΡ‚ ΡΠ»ΠΎΠ²Π΅ΡΠ½ΠΎΠ³ΠΎ описания поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ Π΄ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Π²ΠΈΠ΄Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ устройства. Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ всС этапы проСктирования ΠΎΡ‚ Ρ‚СхничСского задания Π΄ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ элСмСнтной Π±Π°Π·Π΅. Π’Π°ΠΊΠΆΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° AVR АВMEGA 128.

ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ сСмСйства AVR Π·Π° ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ врСмя Π·Π°Π²ΠΎΠ΅Π²Π°Π»ΠΈ Π·Π°ΡΠ»ΡƒΠΆΠ΅Π½Π½ΡƒΡŽ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ Π²ΠΎ Π²ΡΡ‘ΠΌ ΠΌΠΈΡ€Π΅.

AVR, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ°ΠΌΡ‹Ρ… интСрСсных Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΉ, Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ†ΠΈΠ΅ΠΉ Atmel. Они ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт для создания соврСмСнных Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠ½ΠΎΠ³ΠΎΡ†Π΅Π»Π΅Π²Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ². На Π½Π°ΡΡ‚оящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ «Ρ†Π΅Π½Π° — ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ — энСргопотрСблСниС» для AVR являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… Π½Π° ΠΌΠΈΡ€ΠΎΠ²ΠΎΠΌ Ρ€Ρ‹Π½ΠΊΠ΅ 8-разрядных ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ². ΠžΠ±ΡŠΠ΅ΠΌΡ‹ ΠΏΡ€ΠΎΠ΄Π°ΠΆ AVR Π² ΠΌΠΈΡ€Π΅ ΡƒΠ΄Π²Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π΅ΠΆΠ΅Π³ΠΎΠ΄Π½ΠΎ. Π’ Π³Π΅ΠΎΠΌΠ΅Ρ‚ричСской прогрСссии растСт число сторонних Ρ„ΠΈΡ€ΠΌ, Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… ΠΈ Π²Ρ‹ΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ срСдства ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ для Π½ΠΈΡ…. МоТно ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ AVR постСпСнно становится Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ½Π΄ΡƒΡΡ‚Ρ€ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ стандартом срСди 8-разрядных ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния.

ΠžΠ±Π»Π°ΡΡ‚ΠΈ примСнСния AVR ΠΌΠ½ΠΎΠ³ΠΎΠ³Ρ€Π°Π½Π½Ρ‹. Для сСмСйства «tiny» — это ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ назначСния, ΠΈΠ³Ρ€ΡƒΡˆΠΊΠΈ, ΠΈΠ³Ρ€ΠΎΠ²Ρ‹Π΅ приставки, матСринскиС ΠΏΠ»Π°Ρ‚Ρ‹ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ², ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ доступа Π² ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°Ρ…, зарядныС устройства, Π΄Π΅Ρ‚Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ Π΄Ρ‹ΠΌΠ° ΠΈ ΠΏΠ»Π°ΠΌΠ΅Π½ΠΈ, бытовая Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ°, Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ инфракрасныС ΠΏΡƒΠ»ΡŒΡ‚Ρ‹ дистанционного управлСния. Для сСмСйства «classic» — это ΠΌΠΎΠ΄Π΅ΠΌΡ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², соврСмСнныС зарядныС устройства, издСлия класса Smart Cards ΠΈ ΡƒΡΡ‚ройства чтСния для Π½ΠΈΡ…, спутниковыС Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы для опрСдСлСния мСстополоТСния Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ Π½Π° Ρ‚рассС, слоТная бытовая Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ°, ΠΏΡƒΠ»ΡŒΡ‚Ρ‹ дистанционного управлСния, сСтСвыС ΠΊΠ°Ρ€Ρ‚Ρ‹, матСринскиС ΠΏΠ»Π°Ρ‚Ρ‹ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ², сотовыС Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹ Π½ΠΎΠ²ΠΎΠ³ΠΎ поколСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΈ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½Ρ‹Π΅ систСмы контроля ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ. Для «mega» AVR — это Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ (NMT, ETACS, AMPS) ΠΈ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ (GSM, CDMA) ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹, ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹ ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ для Π½ΠΈΡ…, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΠΎΠ² Ρ„Π°ΠΊΡΠΈΠΌΠΈΠ»ΡŒΠ½ΠΎΠΉ связи ΠΈ ΠΊΡΠ΅Ρ€ΠΎΠΊΡΠΎΠ², ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ соврСмСнных дисковых Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»Π΅ΠΉ, CD-ROM ΠΈ Ρ‚. Π΄.

ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ сСмСйства mega — ATmega128 — ΠΌΠ°Π»ΠΎΠΌΠΎΡ‰Π½Ρ‹ΠΉ 8-разрядный КМОП ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€, основанный Π½Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ AVR RISC-Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅. Π—Π° ΡΡ‡Π΅Ρ‚ выполнСния Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° инструкций Π·Π° ΠΎΠ΄ΠΈΠ½ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» ATmega128 достигаСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ 1 ΠΌΠ»Π½. ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² ΡΠ΅ΠΊΡƒΠ½Π΄Ρƒ, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ°ΠΌ систСм ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ энСргопотрСблСния ΠΈ Π±Ρ‹ΡΡ‚родСйствия. Высокая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ€Π°Π·Π²ΠΈΡ‚ΠΎΠΉ подсистСмы Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ спСктра встроСнных ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Ρ… устройств ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ отнСсти ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ AVR АВMEGA128 ΠΊ ΠΊΠ»Π°ΡΡΡƒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² для встроСнных систСм управлСния.

1. Π’Π•Π₯ΠΠ˜Π§Π•Π‘ΠšΠžΠ• Π—ΠΠ”ΠΠΠ˜Π•

1.1 ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ Π—Π°Π΄Π°Ρ‡Π° Π΄Π°Π½Π½ΠΎΠ³ΠΎ курсового ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ΅Ρ‚Π΅Π²ΡƒΡŽ ΠΈΠ³Ρ€Ρƒ «ΠŸΠΈΠ½Π³ Понг» Π½Π° Π±Π°Π·Π΅ Π΄Π²ΡƒΡ… ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² ATmega128. Π‘Π΅Ρ‚Π΅Π²ΠΎΠ΅ взаимодСйствиС рСализуСтся соСдинСниСм ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² посрСдством БОМ-ΠΏΠΎΡ€Ρ‚Π°. Π˜Π³Ρ€Π° рассчитана для Π΄Π²ΡƒΡ… ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ². По Π΄ΠΎΡΡ‚ΠΈΠΆΠ΅Π½ΠΈΡŽ ΠΎΠ±Ρ‰Π΅ΠΉ суммы ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹ΡˆΠ΅ΠΉ двумя ΠΈΠ³Ρ€ΠΎΠΊΠ°ΠΌΠΈ Π² ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Π΅ восьми ΠΈΠ³Ρ€Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒΡΡ.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ:

- рСализация Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² рисования графичСских ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ²;

- рСализация Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² пСрСсСчСния, отраТСния ΠΈ ΠΎΡ‚сСчСния ΠΎΡ‚Ρ€Π΅Π·ΠΊΠΎΠ²;

- рСализация ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎ COM-port;

- рСализация управлСния ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΡ‹ΡˆΠΈ;

- тСстированиС ΠΈ ΠΎΠΏΡ‚имизация ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°;

- исслСдованиС возмоТностСй ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°.

1.2 Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅/Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ (Ρ‚Π°Π±Π».1.1) ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΈΠ· Π·Π°Π΄Π°Π½ΠΈΡ.

Π’Π°Π±Π»ΠΈΡ†Π° 1.1 — Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅/Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

Π’Ρ…ΠΎΠ΄Ρ‹

НазначСниС

Π Π°Π·Ρ€ΡΠ΄Π½ΠΎΡΡ‚ΡŒ

Π‘ΠΈΠ³Π½Π°Π»Ρ‹ маши ΠΏΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡŽ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Ρ€Π°ΠΊΠ΅Ρ‚ΠΎΠΊ Π½Π° Π΄ΠΈΡΠΏΠ»Π΅Π΅

5.8 Π±ΠΈΡ‚

ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ с ΠΏΠΎΡ€Ρ‚Π°

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ полоТСния Ρ€Π°ΠΊΠ΅Ρ‚ΠΊΠΈ

5.8 Π±ΠΈΡ‚

ΠŸΠΎΡΡ‹Π»ΠΊΠ° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π° ΠΏΠΎΡ€Ρ‚

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ полоТСния Ρ€Π°ΠΊΠ΅Ρ‚ΠΊΠΈ

5.8 Π±ΠΈΡ‚

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ трСбования ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ: описаниС ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ языков программирования Ρ‚ΠΈΠΏΠ° Π‘ ΠΈΠ»ΠΈ ассСмблСр. Бпособ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ: пошаговоС тСстированиС основных этапов ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ Ρ„изичСской Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

2. Π’Π•Π₯ΠΠ˜Π§Π•Π‘ΠšΠžΠ• ΠŸΠ Π•Π”Π›ΠžΠ–Π•ΠΠ˜Π•

2.1 ОписаниС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Алгоритм ΠΎΠ±Ρ‰Π΅Π³ΠΎ взаимодСйствия Π±Π»ΠΎΠΊΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (см. Ρ€ΠΈΡΡƒΠ½ΠΎΠΊ 2.1) основан Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ управлСния ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Π±Π»ΠΎΠΊΡƒ. Π‘Π»ΠΎΠΊ «ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΊΠΈ сСтСвого соСдинСния» ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π‘Π»ΠΎΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ соСдинСния провСряСт ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ синхронизации. Π‘Π»ΠΎΠΊ «ΠΈΠ³Ρ€Π°» ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ процСсса. Алгоритм ΠΈΠ³Ρ€Ρ‹ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 2.3. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ побСдитСля осущСствляСтся ΠΏΡƒΡ‚Ρ‘ΠΌ сравнСния количСства ΠΏΡ€ΠΎΠΌΠ°Ρ…ΠΎΠ² ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ°. Π’ ΠΊΠΎΠ½Ρ†Π΅ осущСствляСтся ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° побСдитСля, Π²Ρ‹Π²ΠΎΠ΄ сообщСния ΠΎ ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»Π΅ ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Π΅Ρ‚ся счСтчик пСрСзапуска ΠΈΠ³Ρ€Ρ‹. Π‘Π»ΠΎΠΊ установки соСдинСния содСрТит Π² ΡΠ΅Π±Π΅ Π΄Π²Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°: Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ сСрвСра ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

Рисунок 2.1 — Алгоритм ΠΎΠ±Ρ‰Π΅Π³ΠΎ взаимодСйствия всСх Π±Π»ΠΎΠΊΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Рисунок 2.2 — Алгоритм ΠΈΠ³Ρ€Ρ‹

2.2 Π’Ρ‹Π±ΠΎΡ€ элСмСнтной Π±Π°Π·Ρ‹ ΠœΠ°ΠΊΠ΅Ρ‚ прСдставляСт собой ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ΅ устройство Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° AVR ATmega 128 (fΡ‚=11,59 200 ΠœΠ“Ρ†), Π² ΡΠΎΡΡ‚Π°Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ входят: ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ AVR ATmega 128, графичСский Π–Πš-дисплСй Toshiba T6963C, Π±Π»ΠΎΠΊ свСтодиодов, ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹: 34 ΠΈ 31 (количСство столбцов количСство строк), АЦП, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ интСрфСйс RS-232C. БопряТСниС Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ ΠΌΠ°ΠΊΠ΅Ρ‚Π° ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π° (ΠŸΠ­Π’Πœ) обСспСчиваСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ интСрфСйса SPI, конструктивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎ стандартный Ρ€Π°Π·ΡŠΠ΅ΠΌ Centronics DB-25. Π‘Π»ΠΎΠΊ ΠΈΠ· Π²ΠΎΡΡŒΠΌΠΈ свСтодиодов ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΡ€Ρ‚ D. БопряТСниС ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ 34 осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΡ€Ρ‚Π° Π•. Π§Π΅Ρ€Π΅Π· ΠΏΠΎΡ€Ρ‚ F, Π»ΠΈΠ½ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Ρ…ΠΎΠ΄Π°ΠΌΠΈ АЦП. На Ρ€ΠΈΡ. 2.4 ΠΏΠΎΠΊΠ°Π·Π°Π½Π° структурная схСма Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ ΠΌΠ°ΠΊΠ΅Ρ‚Π° Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° AVR ATmega 128.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΏΠΎΡ€Ρ‚Π° Π’ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ Π² Π²ΠΈΠ΄Π΅ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΡŠΠ΅ΠΌΠ° DB-25, Для Π»ΠΈΠ½ΠΈΠΉ Π΄Π²ΡƒΡ… встроСнных Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… интСрфСйсов RS-232C (USART0, USART1) ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ Ρ€Π°Π·ΡŠΠ΅ΠΌΡ‹ DB-9, располоТСнныС Π½Π° Π·Π°Π΄Π½Π΅ΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΌΠ°ΠΊΠ΅Ρ‚Π°. На Π·Π°Π΄Π½Π΅ΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ находится Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·ΡŠΠ΅ΠΌ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ внСшнСго источника питания (12 Π’) ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ элСктропитания.

Рисунок 2.3 — Бтруктурная схСма Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ ΠΌΠ°ΠΊΠ΅Ρ‚Π° Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° AVR ATmega 128

ВСхничСскиС характСристики:

1. Π’Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ, ΠΌΠ°Π»ΠΎΠΌΠΎΡ‰Π½Ρ‹ΠΉ 8-разрядный AVR-ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€.

2. Развитая RISC-Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°.

3. 133 ΠΌΠΎΡ‰Π½Ρ‹Ρ… инструкций, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π·Π° ΠΎΠ΄ΠΈΠ½ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ».

4. 32 8-разрядных рСгистров ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния + рСгистры управлСния встроСнной ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠ΅ΠΉ.

5. ΠŸΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ статичСская Ρ€Π°Π±ΠΎΡ‚Π°.

6. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎ 16 ΠΌΠ»Π½. ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² ΡΠ΅ΠΊΡƒΠ½Π΄Ρƒ ΠΏΡ€ΠΈ Ρ‚Π°ΠΊΡ‚ΠΎΠ²ΠΎΠΉ частотС 16 ΠœΠ“Ρ†.

7. ВстроСнноС ΡƒΠΌΠ½ΠΎΠΆΠ°ΡŽΡ‰Π΅Π΅ устройство выполняСт ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° 2 ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»Π°.

8. ЭнСргонСзависимая ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

9. Π˜Π·Π½ΠΎΡΠΎΡΡ‚ΠΎΠΉΠΊΠΎΡΡ‚ΡŒ 128-ΠΌΠΈ ΠΊΠ±Π°ΠΉΡ‚ внутрисистСмно ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ Ρ„Π»ΡΡˆ-памяти: 1000 Ρ†ΠΈΠΊΠ»ΠΎΠ² запись/стираниС.

10. ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹ΠΉ сСктор с ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ Π·Π°Ρ‰ΠΈΡ‚ΠΎΠΉ.

11. ВнутрисистСмноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ встроСнной Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ.

12. Гарантированная Π΄Π²ΡƒΡ…ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΡΡ‚ΡŒ: Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ чтСния Π²ΠΎ Π²Ρ€Π΅ΠΌΡ записи.

13. Π˜Π·Π½ΠΎΡΠΎΡΡ‚ΠΎΠΉΠΊΠΎΡΡ‚ΡŒ 4 ΠΊΠ±Π°ΠΉΡ‚ Π­Π‘ΠŸΠŸΠ—Π£: 100 000 Ρ†ΠΈΠΊΠ»ΠΎΠ² запись/стираниС.

14. ВстроСнноС статичСскоС ΠžΠ—Π£ Π΅ΠΌΠΊΠΎΡΡ‚ΡŒΡŽ 4 ΠΊΠ±Π°ΠΉΡ‚.

15. ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ адрСсации внСшнСй памяти Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π΄ΠΎ 64 ΠΊΠ±Π°ΠΉΡ‚.

Рисунок 2.4 — Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ схСма Π―Π΄Ρ€ΠΎ AVR сочСтаСт Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ инструкций с 32 ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌΠΈ рСгистрами. ВсС 32 рСгистра нСпосрСдствСнно ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΊ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΎ-логичСскому устройству (АЛУ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄Π²Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… рСгистра Π² ΠΎΠ΄Π½ΠΎΠΉ инструкции ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΅Π΅ Π·Π° ΠΎΠ΄ΠΈΠ½ Ρ†ΠΈΠΊΠ». Данная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ большСй ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ΄Π° Π·Π° ΡΡ‡Π΅Ρ‚ достиТСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² 10 Ρ€Π°Π· Π²Ρ‹ΡˆΠ΅ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ CISC-ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ (рис 2.5).

ATmega128 поддСрТиваСтся ΠΏΠΎΠ»Π½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… срСдств для проСктирования, Π² Ρ‚. Ρ‡.: Π‘-компиляторы, макроассСмблСры, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΈ/симуляторы, внутрисистСмныС эмуляторы ΠΈ ΠΎΡ†Π΅Π½ΠΎΡ‡Π½Ρ‹Π΅ Π½Π°Π±ΠΎΡ€Ρ‹.

Π’ Ρ†Π΅Π»ΡΡ… достиТСния максимальной ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»Π΅Π»ΠΈΠ·ΠΌΠ° Ρƒ AVR-ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Гарвардская Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° с Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈ ΡˆΠΈΠ½Π°ΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ с ΠΎΠ΄Π½ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. Π’ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ выполнСния ΠΎΠ΄Π½ΠΎΠΉ инструкции ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ считываСтся ΠΈΠ· ΠΏΠ°ΠΌΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Данная концСпция позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Π·Π° ΠΎΠ΄ΠΈΠ½ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ». ΠŸΠ°ΠΌΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ прСдставляСт собой внутрисистСмно ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΡƒΡŽ Ρ„Π»ΡΡˆ-ΠΏΠ°ΠΌΡΡ‚ΡŒ.

РСгистровый Ρ„Π°ΠΉΠ» с Π±Ρ‹ΡΡ‚Ρ€Ρ‹ΠΌ доступом содСрТит 32×8-Ρ€Π°Π·Ρ€. Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… рСгистров ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния с ΠΎΠ΄Π½ΠΎΡ‚Π°ΠΊΡ‚ΠΎΠ²Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ доступа. Благодаря этому достигнута ΠΎΠ΄Π½ΠΎΡ‚Π°ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΎ-логичСского устройства (АЛУ). ΠŸΡ€ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ АЛУ сначала ΠΈΠ· Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΎΠ²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° загруТаСтся Π΄Π²Π° ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°, Π·Π°Ρ‚Π΅ΠΌ выполняСтся опСрация, Π° ΠΏΠΎΡΠ»Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ отправляСтся ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈ Π²ΡΠ΅ это происходит Π·Π° ΠΎΠ΄ΠΈΠ½ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ».

Π¨Π΅ΡΡ‚ΡŒ рСгистров ΠΈΠ· 32 ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Ρ‚Ρ€ΠΈ 16-Ρ€Π°Π·Ρ€. рСгистра косвСнного адрСса для эффСктивной адрСсации Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… памяти Π΄Π°Π½Π½Ρ‹Ρ…. Один ΠΈΠ· ΡΡ‚ΠΈΡ… ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ адрСса ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ адрСса для доступа ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ прСобразования Π²ΠΎ Ρ„Π»ΡΡˆ-памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π”Π°Π½Π½Ρ‹Π΅ 16-Ρ€Π°Π·Ρ€. рСгистры Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ X-рСгистр, Y-рСгистр ΠΈ Z-рСгистр ΠΈ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ся Π΄Π°Π»Π΅Π΅ Π² ΡΡ‚ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅.

АЛУ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ арифмСтичСскиС ΠΈ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ рСгистрами, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ константой ΠΈ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΎΠΌ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, АЛУ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ дСйствия с ΠΎΠ΄Π½ΠΈΠΌ рСгистром. ПослС выполнСния арифмСтичСской ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ рСгистр статуса обновляСтся для отобраТСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

Для вСтвлСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ инструкции условных ΠΈ Π±Π΅Π·ΡƒΡΠ»ΠΎΠ²Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² ΠΈ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… нСпосрСдствСнно Π°Π΄Ρ€Π΅ΡΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… адрСсного пространства. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ инструкций ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΎΠ΄Π½ΠΎ 16-Ρ€Π°Π·Ρ€. слово. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ адрСс памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ содСрТит 16- ΠΈΠ»ΠΈ 32-Ρ€Π°Π·Ρ€. ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ. Ѐлэш-ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° Π΄Π²Π΅ сСкции: сСкция ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ ΡΠ΅ΠΊΡ†ΠΈΡ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ОбС сСкции ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±ΠΈΡ‚Ρ‹ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ Π·Π°ΠΏΠΈΡΠΈ ΠΈ Ρ‡Ρ‚Сния/записи. Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ SPM (запись Π² ΡΠ΅ΠΊΡ†ΠΈΡŽ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹) Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ сСкции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.

Π’Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ АЛУ AVR-ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Π½Π΅ΠΏΠΎΡΡ€Π΅Π΄ΡΡ‚Π²Π΅Π½Π½ΠΎΠΉ связи со Π²ΡΠ΅ΠΌΠΈ 32 ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌΠΈ рСгистрами. АЛУ позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π·Π° ΠΎΠ΄ΠΈΠ½ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя рСгистрами ΠΈΠ»ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ рСгистром ΠΈ ΠΊΠΎΠ½ΡΡ‚Π°Π½Ρ‚ΠΎΠΉ. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ АЛУ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ классифицированы Π½Π° Ρ‚Ρ€ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹: арифмСтичСскиС, логичСскиС ΠΈ Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ ATmega128 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ умноТСния со Π·Π½Π°ΠΊΠΎΠΌ ΠΈ Π±Π΅Π· Π·Π½Π°ΠΊΠ° ΠΈ Π΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ.

Π’ ΡΠΎΠΎΡ‚вСтствии с Π³Π°Ρ€Π²Π°Ρ€Π΄ΡΠΊΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒ AVR-ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° Π΄Π²Π΅ области: ΠΏΠ°ΠΌΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ATmega128 содСрТит ΠΏΠ°ΠΌΡΡ‚ΡŒ Π½Π° Π­Π‘ΠŸΠŸΠ—Π£ для энСргонСзависимого хранСния Π΄Π°Π½Π½Ρ‹Ρ…. ВсС Ρ‚Ρ€ΠΈ области памяти ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΌΠΈ ΠΈ Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ.

ВнутрисистСмно программируСмая Ρ„Π»ΡΡˆ-ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ATmega128 содСрТит 128 ΠΊΠ±Π°ΠΉΡ‚ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ внутрисистСмно ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ Ρ„Π»ΡΡˆ-памяти для хранСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ всС AVR-инструкции ΡΠ²Π»ΡΡŽΡ‚ΡΡ 16 ΠΈΠ»ΠΈ 32-Ρ€Π°Π·Ρ€., Ρ‚ΠΎ Ρ„Π»ΡΡˆ-ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΊΠ°ΠΊ 64 ΠΊΠ±Π°ΠΉΡ‚16. Для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Ρ„Π»ΡΡˆ-ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° Π΄Π²Π° сСктора: сСктор ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ ΡΠ΅ΠΊΡ‚ΠΎΡ€ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Рисунок 2.5 — ΠšΠ°Ρ€Ρ‚Π° памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

3. Π­Π‘ΠšΠ˜Π—ΠΠ«Π™ ΠŸΠ ΠžΠ•ΠšΠ’ Эскизный ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ — этап составлСния спСцификаций ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ², Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ структурно-Π±Π»ΠΎΡ‡Π½ΠΎΠΉ схСмы устройства. На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 3.1 ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ модСль.

Рисунок 3.1 — Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ модСль Π‘Π»ΠΎΠΊ ΠΎΠ±ΠΌΠ΅Π½Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ — Π² Π΄Π°Π½Π½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ производится ΠΎΠ±ΠΌΠ΅Π½ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· Com-port. Π Π°Π±ΠΎΡ‚Π° этого Π±Π»ΠΎΠΊΠ° осущСствляСтся Π² ΠΏΠΎΠ»ΡƒΠ΄ΡƒΠΏΠ»Π΅ΠΊΡΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ — ΠΏΠΎΠΎΡ‡Π΅Ρ€Π΅Π΄Π½Π° пСрСдавая Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ управляСмой Ρ€Π°ΠΊΠ΅Ρ‚ΠΊΠΈ. Π’Π°ΠΊΠΆΠ΅ этот Π±Π»ΠΎΠΊ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ сСтСвого соСдинСния. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° проводится ΠΏΠΎ ΡΡ…Π΅ΠΌΠ΅ «Π ΡƒΠΊΠΎΠΏΠΎΠΆΠ°Ρ‚ΠΈΠ΅» ΠΏΡ€ΠΈ этом ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ посылаСт запросный ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ «123», Π²Ρ‚ΠΎΡ€ΠΎΠΉ, Π² ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€, отсылаСт ΠΎΡ‚Π²Π΅Ρ‚Π½Ρ‹ΠΉ «321» Ссли ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ ΠΈΠ»ΠΈ искаТСн, Ρ‚ΠΎ Π½Π° Π΄ΠΈΡΠΏΠ»Π΅Π΅ выдастся ошибка. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ² ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ «321», отправляСт сигнал Π½Π° Π½Π°Ρ‡Π°Π»ΠΎ ΠΈΠ³Ρ€Ρ‹, Ссли ΠΆΠ΅ ΠΎΡ‚Π²Π΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ Π½Π΅ ΠΏΡ€ΠΈΡˆΠ΅Π» ΠΈΠ»ΠΈ искаТСн Π½Π° ΡΠΊΡ€Π°Π½Π΅ Ρ‚Π°ΠΊΠΆΠ΅ вывСдСтся сообщСниС ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅.

Π‘Π»ΠΎΠΊ пСрСмСщСния Ρ€Π°ΠΊΠ΅Ρ‚ΠΎΠΊ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Ρ€Π°ΠΊΠ΅Ρ‚ΠΎΠΊ ΠΏΠΎ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌΡƒ полю начиная с Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚. ΠŸΠ΅Ρ€Π΅Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ происходит ΠΏΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π΅ Ρƒ.

Π‘Π»ΠΎΠΊ пСрСмСщСния ΡˆΠ°Ρ€ΠΈΠΊΠ° ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΡˆΠ°Ρ€ΠΈΠΊΠ° ΠΏΠΎ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌΡƒ полю начиная с Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚. ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΡˆΠ°Ρ€ΠΈΠΊΠ° ΠΏΠΎ Π΄Π²ΡƒΠΌ осям Ρ… ΠΈ Ρƒ.

Π‘Π»ΠΎΠΊ сравнСния ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΡΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ с ΠΊΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π°ΠΌΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚: края поля, Ρ€Π°ΠΌΠΊΠΈ Ρ€Π°ΠΊΠ΅Ρ‚ΠΊΠΈ ΠΈ Π΅Π΅ ΠΌΠ΅ΡΡ‚ополоТСния, мСстополоТСния ΡˆΠ°Ρ€ΠΈΠΊΠ° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°ΠΊΠ΅Ρ‚ΠΎΠΊ, ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΡ€Π°Ρ‘Π² ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля. Π’ Ρ‚ΠΎΠΌ случаС Ссли ΡˆΠ°Ρ€ΠΈΠΊ пСрСсёк ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ€Π°ΠΊΠ΅Ρ‚ΠΊΠΈ ΠΈ Π½Π΅ Π±Ρ‹Π» ΠΎΡ‚Π±ΠΈΡ‚, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСдаСтся Π±Π»ΠΎΠΊΡƒ опрСдСлСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΌΡ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Π±Π»ΠΎΠΊΠ΅ сравнСния ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚.

Π‘Π»ΠΎΠΊ опрСдСлСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° считаСт количСство ΠΏΡ€ΠΎΠΌΠ°Ρ…ΠΎΠ² для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ°.

Π‘Π»ΠΎΠΊ подсвСтки Π΄ΠΈΠΎΠ΄ΠΎΠ² выполняСт ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π΄ΠΈΠΎΠ΄ΠΎΠ² Π² ΡΠΎΠΎΡ‚вСтствии с ΠΎΠ±Ρ‰ΠΈΠΌ количСством ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… ΠΎΡ‡ΠΊΠΎΠ².

Π‘Π»ΠΎΠΊ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ†ΠΈΠΈ побСдитСля сообщаСт ΠΎ ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»Π΅ ΠΈ ΠΏΠΎΠ΄Π°Ρ‘Ρ‚ сигнал Π½Π° Π±Π»ΠΎΠΊ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ.

Π‘Π»ΠΎΠΊ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ выполняСт Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ Π½Π° 10 сСкунд ΠΈ ΡΡ‚ΠΈΠΌ опрСдСляСт Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΠ³Ρ€Ρ‹. ПослС Ρ‡Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΡƒ двиТСния ΡˆΠ°Ρ€ΠΈΠΊΠ° ΠΈ Π±Π»ΠΎΠΊΡƒ пСрСмСщСния Ρ€Π°ΠΊΠ΅Ρ‚ΠΎΠΊ, начиная Ρ‚Π΅ΠΌ самым Π½ΠΎΠ²ΡƒΡŽ ΠΈΠ³Ρ€Ρƒ.

4. Π’Π•Π₯ΠΠ˜Π§Π•Π‘ΠšΠ˜Π™ ΠŸΠ ΠžΠ•ΠšΠ’ На Π΄Π°Π½Π½ΠΎΠΌ этапС происходит описаниС ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ языка программирования, Π²Ρ‹Π±ΠΎΡ€ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² построСния ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈ Ρ‚. Π΄.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ этапа ΡΠ²Π»ΡΡŽΡ‚ΡΡ:

— ΡΠΎΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΎΠ² Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ программирования;

— ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ся ΠΌΠ΅ΠΆΠ±Π»ΠΎΠΊΠΎΠ²Ρ‹Π΅ связи;

— ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ констант ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…;

— ΠΎΡ‚Π»Π°Π΄ΠΊΠ° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (пошаговоС тСстированиС основных Π±Π»ΠΎΠΊΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ написания ΠΈ ΠΈΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹).

4.1 Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠŸΡ€ΠΈ описании ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π½Π° ΡΠ·Ρ‹ΠΊΠ°Ρ… программирования большоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ слСдуСт ΡƒΠ΄Π΅Π»ΡΡ‚ΡŒ конструкциям языка. Π’Π°ΠΊ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ конструкции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ программирования ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ конструкции для достиТСния Π½Π°ΠΈΠΌΠ΅Π½ΡŒΡˆΠΈΡ… Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… Π·Π°Ρ‚Ρ€Π°Ρ‚.

Рисунок 4.1 — Бвязи Ρ„Π°ΠΉΠ»ΠΎΠ²

4.2 ОписаниС интСрфСйса ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ построСния ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡŽ написания языкового ΠΊΠΎΠ΄Π°. БпСцификация составляСтся Π½Π° Π²ΡΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΡΠΎΡΡ‚ΠΎΡΡ‰ΡƒΡŽ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² Π² ΡΠΎΠΎΡ‚вСтствиС со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ этапами.

НСобходимо Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π°Π½Π°Π»ΠΈΠ· Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Ρ… Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ ΠΊΠΎΠ½ΡΡ‚Π°Π½Ρ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΡ… Ρ‚ΠΈΠΏ ΠΈ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ значСния.

ΠΠ°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ значСния Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ Π² ΡΠΎΠΎΡ‚вСтствиС с ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ устройства. Π’ΠΈΠΏ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² — int цСлочислСнный Ρ‚ΠΈΠΏ. ΠŸΡ€ΠΈ этом ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ‚ΠΈΠΏΠ° unsigned, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ пСрСмСнная ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π΅ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ значСния. ΠŸΡ€ΠΈ этом самый Π»Π΅Π²Ρ‹ΠΉ Π±ΠΈΡ‚ области памяти, выдСляСмой для хранСния значСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π²ΡΠ΅ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π±ΠΈΡ‚Ρ‹ области памяти — для прСдставлСния значСния.

Π’Π°Π±Π»ΠΈΡ†Π° 4.1 — ОписаниС интСрфСйса всСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π’Ρ…ΠΎΠ΄Ρ‹

Π’ΠΈΠΏ

ΠΠ°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ значСния

ОписаниС

Ρ…

int

ΠΠ°Ρ‡Π°Π»ΡŒΠ½Π°Ρ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° ΡˆΠ°Ρ€ΠΈΠΊΠ° ΠΏΠΎ ΠΎΡΠΈ Ρ…

Ρƒ

int

ΠΠ°Ρ‡Π°Π»ΡŒΠ½Π°Ρ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° ΡˆΠ°Ρ€ΠΈΠΊΠ° ΠΏΠΎ ΠΎΡΠΈ Ρƒ

f

int

Π€Π»Π°Π³ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΡˆΠ°Ρ€ΠΈΠΊΠ°

d

int

ΠžΠ±Ρ‰ΠΈΠ΅ ΠΎΡ‡ΠΊΠΈ ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ²

g2

int

ΠžΡ‡ΠΊΠΈ ΠΈΠ³Ρ€ΠΎΠΊΠ° 1

g1

int

ΠžΡ‡ΠΊΠΈ ΠΈΠ³Ρ€ΠΎΠΊΠ° 2

lx1

int

ΠΠ°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ€Π°ΠΊΠ΅Ρ‚ΠΊΠΈ ΠΈΠ³Ρ€ΠΎΠΊΠ° 2 ΠΏΠΎ ΠΎΡΠΈ Ρ…

ly1

int

ΠΠ°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ€Π°ΠΊΠ΅Ρ‚ΠΊΠΈ ΠΈΠ³Ρ€ΠΎΠΊΠ° 2 ΠΏΠΎ ΠΎΡΠΈ Ρƒ

lx2

int

ΠΠ°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ€Π°ΠΊΠ΅Ρ‚ΠΊΠΈ ΠΈΠ³Ρ€ΠΎΠΊΠ° 1 ΠΏΠΎ ΠΎΡΠΈ Ρ…

ly2

int

ΠΠ°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ€Π°ΠΊΠ΅Ρ‚ΠΊΠΈ ΠΈΠ³Ρ€ΠΎΠΊΠ° 1 ΠΏΠΎ ΠΎΡΠΈ Ρƒ

r

int

Π Π°Π·ΠΌΠ΅Ρ€ ΡˆΠ°Ρ€ΠΈΠΊΠ°

t

int

Π Π°Π·ΠΌΠ΅Ρ€ Ρ€Π°ΠΊΠ΅Ρ‚ΠΎΠΊ ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ²

4.3 ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ конструкции ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹:

1. #include «mega128.h» — для рСгистрации Π²Π²ΠΎΠ΄ΠΎΠ²-Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² для ATMEGA128;

2. #include «delay.h» — для использования Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ;

3. #include «graphics.h» — для Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² Π³Π»Π°Π²Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ source.c. Π‘Π°ΠΌΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ описаны Π² Ρ„Π°ΠΉΠ»Π΅ «graphics.c» .

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π½Π°Ρ‡Π°Ρ‰ΠΈΡ… для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

Листинг 4.1 — Ѐункция ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π°Ρ ΠΏΠΎΡ€Ρ‚Ρ‹

void init_cpu (void)

{

DDRB = 0xff;// РСгистр направлСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΡ€Ρ‚Π° B

PORTB = 0xff;// РСгистр Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΡ€Ρ‚Π° Π’

DDRD = 0xff;// РСгистр направлСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΡ€Ρ‚Π° D

PORTD =0xff;// РСгистр Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΡ€Ρ‚Π° D

DDRF = 0×00;// РСгистр направлСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΡ€Ρ‚Π° F

PORTF = 0×00;// РСгистр Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΡ€Ρ‚Π° F

DDRE = 0xf0;// РСгистр направлСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΡ€Ρ‚Π° E

MCUCR = 0x8a;// РСгистр управлСния ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ

XMCRA = 0xff;// РСгистр, А ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ внСшнСй ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ

SFIOR = 0×10;// РСгистр ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°

}

Листинг 4.2 — Ѐункция отобраТСния

void init_display (void);

{

write_command (0xB2);// АвтоматичСский пСрСзапуск

set_graphic_window (GRAPHICS_HOME0);

write_data (GRAPHICS_WIDTH);// Младший Π±ΠΈΡ‚

write_data (0×00);// Π‘Ρ‚Π°Ρ€ΡˆΠΈΠΉ Π±ΠΈΡ‚

write_command (0×43);// Установка Π΄Π»ΠΈΠ½Π½Ρ‹ графичСской Π»ΠΈΠ½ΠΈΠΈ

set_text_window (TEXT_HOME0);

write_data (TEXT_WIDTH);// Младший Π±ΠΈΡ‚

write_data (0×00);// Π‘Ρ‚Π°Ρ€ΡˆΠΈΠΉ Π±ΠΈΡ‚

write_command (0×41);// Π”Π»ΠΈΠ½Π½Π° Π»ΠΈΠ½ΠΈΠΈ тСкста

write_command (0b10000000);// Бпособ Π½Π°Π±ΠΎΡ€Π°

write_command (0b10011100);// Бпособ показа

write_command (0xA3);// Π’Ρ‹Π±ΠΎΡ€ ΠΎΠ±Ρ€Π°Π·Ρ†Π° курсора

write_command (0×01);

write_command (0×00);

write_command (0×21);// Установка ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ курсора

return;

}

Листинг 4.3 — Ѐункция пСрСрисовки тСкста

void clear_text (void)

{

unsigned int i=0;// ΠŸΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число

set_address (TEXT_HOME0); // Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ адрСсс

for (i;i

{

write_data (0);// Π—Π°ΠΏΠΈΡΡŒ Π΄Π°Π½Π½Ρ‹Ρ…

write_command (0xC0);// Π’Ρ‹Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ…

}

return;

}

ΠŸΡ€ΠΈ написании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ использовался ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ условия if/else, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π΄Π²ΡƒΡ… дСйствий Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΡƒΡΠ»ΠΎΠ²ΠΈΡ.

Листинг 4.4 — ИспользованиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° if/else

if (g2>g1)// Ссли ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… ΠΎΡ‡ΠΊΠΎΠ² Ρƒ ΠΈΠ³Ρ€ΠΎΠΊΠ° 2 большС Ρ‡Π΅ΠΌ //Ρƒ ΠΈΠ³Ρ€ΠΎΠΊΠ° 1

{sprintf (string," WINNER: Player 1″);// Ρ‚ΠΎ ΠΈΠ³Ρ€ΠΎΠΊ 1 ΠΏΠΎΠ±Π΅Π΄ΠΈΠ»

write_string (10, 7, string);

delay_ms (10 000);}

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π±Ρ‹Π»ΠΈ описаны условия отраТСния ΡˆΠ°Ρ€ΠΈΠΊΠ° ΠΎΡ‚ Π³Ρ€Π°Π½ΠΈΡ† экрана ΠΈ ΠΎΡ‚ Ρ€Π°ΠΊΠ΅Ρ‚ΠΎΠΊ ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ².

Для рисования ΡˆΠ°Ρ€ΠΈΠΊΠ° ΠΈ Ρ€Π°ΠΊΠ΅Ρ‚ΠΎΠΊ использовался ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ†ΠΈΠΊΠ»Π° с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ for, ΠΊΠΎΠ³Π΄Π° Π·Π°Ρ€Π°Π½Π΅Π΅ извСстно количСство ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ Ρ†ΠΈΠΊΠ»Π°, Ρ‡Ρ‚ΠΎ позволяло Π·Π°Π΄Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ Π·Π°Π»ΠΈΠ²ΠΊΡƒ ΡˆΠ°Ρ€ΠΈΠΊΠ°, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡˆΠΈΡ€ΠΈΠ½Ρƒ Ρ€Π°ΠΊΠ΅Ρ‚ΠΎΠΊ.

Листинг 4.5 — ИспользованиС Ρ†ΠΈΠΊΠ»Π° for для отрисовки Ρ€Π°ΠΊΠ΅Ρ‚ΠΎΠΊ

for (t=0;t<3;t++)

{

Line (lx2-t, ly2, lx2-t, ly2+20,1); // Ρ€Π°ΠΊΠ΅Ρ‚ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠΊΠ° 1

Line (lx1-t, ly1, lx1-t, ly1+20,1); // Ρ€Π°ΠΊΠ΅Ρ‚ΠΊΠ° ΠΈΠ³Ρ€ΠΎΠΊΠ° 2

}

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ„Π»Π°Π³ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ для опрСдСлСния Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ двиТСния ΡˆΠ°Ρ€ΠΈΠΊΠ° ΠΈ Π΄Π»Ρ прСдотвращСния ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ выполнСния Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ условия измСнСния направлСния двиТСния ΠΏΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌ Ρ… ΠΈ Ρƒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

Листинг4.6 — Π—Π°Π΄Π°Π½ΠΈΠ΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ

if (x<=0 && y>=63)

{f=0;}

if (f==0)

{

x=x+4;

y=y+4;

}

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ содСрТит Ρ„Π°ΠΉΠ» source. map, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ гСнСрируСтся компилятором ΠΈ Π½Π°Ρ…одится Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ с ΠΈΡΡ…ΠΎΠ΄Π½Ρ‹ΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’ Π½Ρ‘ΠΌ указываСтся Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… (Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ… процСссора ΠΈΠ»ΠΈ памяти Π΄Π°Π½Π½Ρ‹Ρ…) ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ часто Π² Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ€Π½Ρ‹Ρ… ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Ρ… Π² Π‘-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

5. Π ΠΠ‘ΠžΠ§Π˜Π™ ΠŸΠ ΠžΠ•ΠšΠ’

5.1 ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ CodeVisionAVR.

Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Π°Ρ срСда CodeVisionAVR прСдставляСт собой кросс-компилятор языка Π‘ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π° ΡΠ΅ΠΌΠ΅ΠΉΡΡ‚Π²ΠΎ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² AVR ΠΈ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚: Π³Ρ€Π°Ρ„ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ для управлСния рСсурсами ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°; тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ исходного модуля ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹; кросс-компилятор; ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€; автоматичСский Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°; Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ интСрфСйсом RS232C (USART). ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ компиляции исходного ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ (Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ) ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСпосрСдствСнно записан Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°.

Рисунок 5.1 — Окно студии CodeVisionAVR

5.2 ΠŸΡ€ΠΎΡˆΠΈΠ²ΠΊΠ° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ° интСрфСйс ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠŸΡ€ΠΎΡˆΠΈΠ²ΠΊΠ° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° рСализуСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса срСды программирования CodeVisionAVR.

Π”Π°Π»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° — ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ исполняСмый ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹ΠΉ для исполнСния ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ. Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Shift+F9. ΠŸΡ€ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ этапа компиляции активизируСтся ΠΎΠΊΠ½ΠΎ Information, содСрТащСС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. Если компиляция ΠΏΡ€ΠΎΡˆΠ»Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, Ρ‚ΠΎ Π΄Π»Ρ записи ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Program, Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части ΠΎΠΊΠ½Π° Information. ВыявлСнныС Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ компиляции сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² Π»Π΅Π²ΠΎΠΉ части Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΎΠΊΠ½Π°, Π³Π΄Π΅ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Ρ€Π΅ΡΡƒΡ€ΡΠ°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠŸΡ€ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·Π°Ρ†ΠΈΠΈ сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅ компилятор Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ свСдСния ΠΎ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ… ошибки.

Рисунок 5.2 — Окно отобраТСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°Ρ… компиляции ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ работоспособности Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ сброс ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° (Reset Chip) ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈΠ· ΠΏΠ°ΠΌΡΡ‚ΠΈ (Erase Chip).

Рисунок 5.3 — Окно отобраТСния настроСк ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π°

5.2 ЀизичСскоС тСстированиС Π’Π°Π±Π»ΠΈΡ†Π° 5.1 — План тСстирования

ВоздСйствиС

ОТидаСмоС

РСальноС

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΡ‡ΠΊΠΎΠ² Ρƒ ΠΈΠ³Ρ€ΠΎΠΊΠ° 1 большС Ρ‡Π΅ΠΌ Ρƒ ΠΈΠ³Ρ€ΠΎΠΊΠ° 2

Π˜Π½Π΄ΠΈΠΊΠ°Ρ†ΠΈΡ: player 1 win

Π˜Π½Π΄ΠΈΠΊΠ°Ρ†ΠΈΡ: player 1 win

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΡ‡ΠΊΠΎΠ² Ρƒ ΠΈΠ³Ρ€ΠΎΠΊΠ° 2 большС Ρ‡Π΅ΠΌ Ρƒ ΠΈΠ³Ρ€ΠΎΠΊΠ° 1

Π˜Π½Π΄ΠΈΠΊΠ°Ρ†ΠΈΡ: player 2 win

Π˜Π½Π΄ΠΈΠΊΠ°Ρ†ΠΈΡ: player 2 win

ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΡˆΠ°Ρ€ΠΈΠΊΠ° ΠΏΠΎ x ΠΈ y ΡΠΎΠ²ΠΏΠ°Π»ΠΈ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ Ρ€Π°ΠΊΠ΅Ρ‚ΠΊΠΈ

Π¨Π°Ρ€ΠΈΠΊ отбился

Π¨Π°Ρ€ΠΈΠΊ отбился

ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΡˆΠ°Ρ€ΠΈΠΊΠ° ΠΏΠΎ x ΠΈ y Π½Π΅ совпали с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ Ρ€Π°ΠΊΠ΅Ρ‚ΠΊΠΈ

Π¨Π°Ρ€ΠΈΠΊ Π½Π΅ ΠΎΡ‚бился

Π¨Π°Ρ€ΠΈΠΊ Π½Π΅ ΠΎΡ‚бился

Π¨Π°Ρ€ΠΈΠΊ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½ ΠΈΠ³Ρ€ΠΎΠΊΠΎΠΌ

ВысвСчиваСтся ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ Ρ€Π°ΡƒΠ½Π΄Π° ΠΈ Π·Π°Π³ΠΎΡ€Π°Π΅Ρ‚ся свСтодиод

ВысвСчиваСтся ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ Ρ€Π°ΡƒΠ½Π΄Π° ΠΈ Π·Π°Π³ΠΎΡ€Π°Π΅Ρ‚ся свСтодиод

ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΡˆΠ°Ρ€ΠΈΠΊΠ° ΠΏΠΎ x ΠΈΠ»ΠΈ y ΡΠΎΠ²ΠΏΠ°Π»ΠΈ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ экрана

Π¨Π°Ρ€ΠΈΠΊ отбился

Π¨Π°Ρ€ΠΈΠΊ отбился

ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΡˆΠ°Ρ€ΠΈΠΊΠ° ΠΏΠΎ x ΠΈΠ»ΠΈ y Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π»ΠΈ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ экрана

Π¨Π°Ρ€ΠΈΠΊ Π½Π΅ ΠΎΡ‚бился

Π¨Π°Ρ€ΠΈΠΊ Π½Π΅ ΠΎΡ‚бился

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΠ±Ρ‰ΠΈΡ… ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… ΠΎΡ‡ΠΊΠΎΠ² ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 8

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ побСдитСля, Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΈ Π½Π°Ρ‡Π°Π»ΠΎ Π½ΠΎΠ²ΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Ρ‡Π΅Ρ€Π΅Π· 10 сСк

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ побСдитСля, Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΈ Π½Π°Ρ‡Π°Π»ΠΎ Π½ΠΎΠ²ΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Ρ‡Π΅Ρ€Π΅Π· 10 сСк

Рисунок 5.4 — Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² Π² ΡΠ΅Ρ‚ΡŒ Рисунок 5.5 — Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π’Π«Π’ΠžΠ”Π« Π”Π°Π½Π½Ρ‹ΠΉ курсовой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» Π±ΠΎΠ»Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ ознакомится с ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ Ρ‚ΠΈΠΏΠ° AVR ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ATMEL. Π’ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±Ρ‹Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ Π½Π°Π²Ρ‹ΠΊΠΈ проСктирования, Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² Ρ€Π΅Π°Π»ΡŒΠ½ΡƒΡŽ модСль.

Π’ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ ΠΎΡ‚Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΡˆΠ°Ρ€ΠΈΠΊ ΠΎΡ‚ Ρ€Π°ΠΊΠ΅Ρ‚ΠΎΠΊ ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ² ΠΈ ΠΎΡ‚ Π³Ρ€Π°Π½ΠΈΡ† экрана ΠΏΠΎΠ΄ случайным ΡƒΠ³Π»ΠΎΠΌ. Π­Ρ‚Π° функция Π±Ρ‹Π»Π° описана Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΎΠΊ.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Ρ€Π°ΠΊΠ΅Ρ‚ΠΎΠΊ ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ² Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ ΡΡ‚Ρ€ΠΎΠ³ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ для Π½ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Сдиная систСма ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚.

НС Π±Ρ‹Π» Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ для Π΄Π²ΡƒΡ… ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ², Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ ΠΊΠΎΠ΄Π° ΠΈ ΡƒΡ…ΡƒΠ΄ΡˆΠ΅Π½ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, поэтому Π±Ρ‹Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π΄Π²Π° ΠΊΠΎΠ΄Π° со ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΌΠΈ для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°.

ΠŸΠ•Π Π•Π§Π•ΠΠ¬ Π‘Π‘Π«Π›ΠžΠš

1. ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ указания ΠΊ Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€Π½Ρ‹ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°ΠΌ ΠΏΠΎ ΠΊΡƒΡ€ΡΡƒ «ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ Π²ΠΎ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½Ρ‹Ρ… систСмах управлСния для студСнтов всСх ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ / БоставитСли Аврунин О. Π“., ΠšΡ€ΡƒΠΊ О. Π―., Π‘Π΅ΠΌΠ΅Π½Π΅Ρ† Π’. Π’. — Π₯НУРЭ, 2005. — 105 с.

2. Π“ΠΎΠ»ΡƒΠ±Ρ†ΠΎΠ² М. Π‘., ΠšΠΈΡ€ΠΈΡ‡Π΅Π½ΠΊΠΎΠ²Π° А. Π’. ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ AVR: ΠΎΡ‚ ΠΏΡ€ΠΎΡΡ‚ΠΎΠ³ΠΎ ΠΊ ΡΠ»ΠΎΠΆΠ½ΠΎΠΌΡƒ.- М.: Π‘ΠžΠ›ΠžΠ-ΠŸΡ€Π΅ΡΡ, 2004. — 304 с.

3. Π‘Π°Ρ€Π°Π½ΠΎΠ² Π’. Н. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² AVR: схСмы, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.- М.: Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π΄ΠΎΠΌ «Π”одэка-XXI», 2004. — 288 с.

4. Аврунин О. Π“.,. ΠšΡ€ΡƒΠΊ О. Π―, Π‘Π΅ΠΌΠ΅Π½Π΅Ρ† Π’. Π’. ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ Π²ΠΎ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½Ρ‹Ρ… систСмах управлСния: Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС — Π₯НУРЭ, 2005. — 105 с.

5.ВСхничСская докумСнтация ΠΊ ΠΌΠΈΠΊΡ€ΠΎΠΊΡ€Π½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ AVR ATmega 128

6.http://www.atmel.ru/ - описаниС ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² Ρ„ΠΈΡ€ΠΌΡ‹ ATMEL Π½Π° Ρ€ΡƒΡΡΠΊΠΎΠΌ языкС.

ΠŸΠ Π˜Π›ΠžΠ–Π•ΠΠ˜Π• Код ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

#include «graphics.h»

#include «source.h»

unsigned char string[30];

int x=65;//nachalnaja koordinata warika po x

int y=63;//nachalnaja koordinata warika po y

int f=0;//flag

int d=0;//obwie ochki

int g2=0;//ochki player 2

int g1=0;//ochki player 1

int lx1=239,ly1=53;//nachalnue koordinatu player 2

int lx2=5,ly2=53;//nachalnue koordinatu player 1

void game (void)

{

int r;

int t;

UCSR0A=0×00; //установка стандартного Ρ€Π΅ΠΆΠΈΠΌΠ° задания скорости ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…

UCSR0B=0×90; //установка 7-Π³ΠΎ ΠΈ 4-Π³ΠΎ Π±ΠΈΡ‚ΠΎΠ² рСгистра UCSR0B для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ USART0 Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ° ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ прСрывания ΠΏΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ ΠΏΡ€ΠΈΠ΅ΠΌΠ° ΠΊΠ°Π΄Ρ€Π°

UCSR0C=0×06;// установка Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΊΠ°Π΄Ρ€Π°: 8 Π±ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ чСтности

UBRR0H=0×00; // установка значСния дСлитСля (47) ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ

UBRR0L=35; // скорости ΠΏΡ€ΠΈΠ΅ΠΌΠ° Π΄Π°Π½Π½Ρ‹Ρ… 19 200 Π±ΠΈΡ‚/с

UCSR1A=0×00;

UCSR1B=0×08; // установка 3-Π³ΠΎ Π±ΠΈΡ‚Π° рСгистра UCSR1B для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ USART1 Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°

UCSR1C=0×06;

UBRR1H=0×00;

UBRR1L=35;

//инициализация отрисовки

init_cpu ();

init_display ();

clear_text ();

clear_graphics ();

while (1)

{

PORTE = 0b11011111;

if (PINE.0==0 && ly1+20<120) //Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°ΠΊΠ΅Ρ‚ΠΊΠΈ 2 ΠΏΠΎ Ρƒ

{

ly1=ly1+3;

UDR1 = ly1;

}

PORTE = 0b10111111;

if (PINE.1==0 && ly1>5) //Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°ΠΊΠ΅Ρ‚ΠΊΠΈ 2 ΠΏΠΎ Ρƒ

{

ly1=ly1−3;

UDR1 = ly1;

}

PORTE = 0b10111111;

if (ly2+20<120) //Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°ΠΊΠ΅Ρ‚ΠΊΠΈ 1 ΠΏΠΎ Ρƒ

{

//ly2=ly2+3;

//UDR0 = ly2;

}

PORTE = 0b11011111;

if (ly2>5) //Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°ΠΊΠ΅Ρ‚ΠΊΠΈ 1 ΠΏΠΎ Ρƒ

{

//ly2=ly2−3;

//UDR0 = ly2;

}

ly2 = UDR0;

clear_graphics ();

for (r=0;r<=5;r++)

{

lcd_circle (x, y, r, 1); //ΡˆΠ°Ρ€ΠΈΠΊ

}

///////////ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅///////////////////////

if (x<=0 && y>=63) //pojavlenie warika v na4alnoj to4ke i na4alnoe dvigenie

{

f=0;

}

if (f==0)

{

x=x+4;

y=y+4;

sprintf (string," «); //stiranie gameover2 player 2

write_string (0, 14, string);

sprintf (string," «); //stiranie gameover1 player 1

write_string (0, 14, string);

sprintf (string," «);//stiranie player 1 or 2 WIN

write_string (10, 7, string);

}

if (x<=230 && y>=120) //yslovie otragenija

{

f=1;

}

if (f==1)//dvigenie

{

x=x+3;

y=y-3;

}

if (x>=lx1 && x<=lx1+5 && y>=ly1 && y<=ly1+20)//ΠΊΠΎΠΎΡ€Π΄ отбивания Ρ€Π°ΠΊΠ΅Ρ‚ΠΊΠΈ player 2

{

f=2;

}

if (f==2)//dvigenie

{

x=x-2;

y=y-3;

}

if (x>=119 && y<=0) //yslovie otragenija

{

f=3;

}

if (f==3)//dvigenie

{

x=x-3;

y=y+3;

}

if (y>=120 && x<=119) //yslovie otragenija

{ f=4; }

if (f==4)//dvigenie

{ x=x-3;

y=y-3; }

if (x>=lx2 && x<=lx2+5 && y>=ly2 && y<=ly2+20)//ΠΊΠΎΠΎΡ€Π΄ отбивания Ρ€Π°ΠΊΠ΅Ρ‚ΠΊΠΈ player 1

{

f=5;

}

if (f==5) //dvigenie

{

x=x+3;

y=y-3;

}

if (y<=0 && x<=119)//Π΄Π΅Π»Π°Π΅Ρ‚ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»Π½Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚

{

f=6;

}

if (f==6)//dvigenie

{

x=x+3;

y=y+3;

}

if (x>=239) //ΠΏΡ€ΠΎΠΈΠ³Ρ€Π°Π» player 2 ΠΈ ΡˆΠ°Ρ€ΠΈΠΊ появляСтся снова

{

f=7;

}

if (f==7)

{

x=65;

y=63;

f=0;

g2=g2+1; //s4itaet o4ki igroka player 2

d=d+1;//s4itaet o4ki obwie

sprintf (string," player2 loose");

write_string (0, 14, string);

delay_ms (1000);

}

if (x<=0) //ΠΏΡ€ΠΎΠΈΠ³Ρ€Π°Π» player 1 ΠΈ ΡˆΠ°Ρ€ΠΈΠΊ появляСтся снова

{

f=8;

}

if (f==8)

{

x=65;

y=63;

f=0;

d=d+1;//s4itaet o4ki obwie

g1=g1+1;//s4itaet o4ki igroka player 1

sprintf (string," player1 loose");

write_string (0, 14, string);

delay_ms (1000);

}

if (x>118 && y<=5 && f==5) //otragenie player 1 na svou storony vverh

{

f=0;

}

if (x<118 && y<=5 && f==2) //otragenie player 2 na svou storony vniz

{

f=3;

}

////////Ρ€Π°ΠΊΠ΅Ρ‚ΠΊΠΈ//////////////

for (t=0;t<3;t++)

{

Line (lx1-t, ly1, lx1-t, ly1+20,1); //ΠΈΠ³Ρ€ΠΎΠΊ 1

Line (lx2-t, ly2, lx2-t, ly2+20,1); //ΠΈΠ³Ρ€ΠΎΠΊ 2

}

/////индикация Π½Π° ΡΠ²Π΅Ρ‚ΠΎΠ΄ΠΈΠΎΠ΄Ρ‹///

if (d==1)

{

PORTD=0b11111110;

}

if (d==2)

{

PORTD=0b11111100;

}

if (d==3)

{

PORTD=0b11111000;

}

if (d==4)

{

PORTD=0b11110000;

}

if (d==5)

{

PORTD=0b11100000;

}

if (d==6)

{

PORTD=0b11000000;

}

if (d==7)

{

PORTD=0b10000000;

}

if (d==8)

{

PORTD=0b00000000;

}

if (d==0 || d==9)

{

PORTD=0b11111111;

}

///////Π²Ρ‹Π²ΠΎΠ΄ тСкста//////

sprintf (string," player 1″);//player 1

write_string (1, 1, string);

sprintf (string," player 2″);// player 2

write_string (20, 1, string);

/////Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹///////////

if (d>8)

{

d=0;

if (g1>g2)// esli player 1 bolwe player 2

{

sprintf (string," WINNER: player 2″);

write_string (10, 7, string);

delay_ms (10 000);

}

if (g2>g1)// esli player 2 bolwe player 1

{

sprintf (string," WINNER: player 1″);

write_string (10, 7, string);

delay_ms (10 000);

}

}

}

}

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ