Site Loader

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ΠœΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π·Π²ΠΎΠ½ΠΎΠΊ Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ | RadioLaba.ru


ΠžΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π·Π²ΠΎΠ½ΠΊΠ° Π±Ρ‹Π» создан Π² нСсколько этапов, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ я Π½Π΅ намСрСвался Π²ΡΠ΅Ρ€ΡŒΠ΅Π· Π΄Π΅Π»Π°Ρ‚ΡŒ Π΄Π°Π½Π½ΠΎΠ΅ устройство, просто ΠΈΠ½ΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»ΠΈ мысли Ρ‚ΠΈΠΏΠ°: Π° Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ свой Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ проигрыватСля ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² с использованиСм ΠΊΠ°Ρ€Ρ‚Ρ‹ памяти…

ВсС Π½Π°Ρ‡Π°Π»ΠΎΡΡŒ с изучСния основных ΠΊΠΎΠΌΠ°Π½Π΄ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠ°Ρ€Ρ‚ΠΎΠΉ памяти MMC, это ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ сброса, ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, чтСния ΠΈ Ρ‚.Π΄., ΠΏΡ€ΠΈΡ‡Π΅ΠΌ всС эти ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈ SD ΠΊΠ°Ρ€Ρ‚Π°ΠΌΠΈ. Для практичСской Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΊΠΈ я Ρ€Π΅ΡˆΠΈΠ» ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ устройство для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ с ΠΊΠ°Ρ€Ρ‚Ρ‹ памяти Π½Π° дисплСй Nokia 1110i. Π’ качСствС ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ PIC16F628A. Π‘Π½Π°Ρ‡Π°Π»Π° я Ρ€Π°Π±ΠΎΡ‚Π°Π» Π±Π΅Π· Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы FAT, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ записывал Π±Π°ΠΉΡ‚Ρ‹ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρ‹ памяти, Π° Ρ‚ΠΎΡ‡Π½Π΅Π΅ Π² ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΈΠΌΠ΅Π»Π° фиксированный адрСс, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ считывал Π΅Π΅. ΠšΡΡ‚Π°Ρ‚ΠΈ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° ΠΊΠ°Ρ€Ρ‚Ρƒ памяти ΠΏΠΎ Π»ΡŽΠ±ΠΎΠΌΡƒ адрСсу ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ WinHex.

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

ΠŸΡ€ΠΎΡˆΠ»ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя, ΠΈ я Ρ€Π΅ΡˆΠΈΠ»ΡΡ ΡƒΠΆΠ΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Ρ‚Π΅Π»ΡŒ ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². На этот Ρ€Π°Π· взял ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΏΠΎΠΌΠΎΡ‰Π½Π΅Π΅ PIC16F876A, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ достаточно ΠΌΠ½ΠΎΠ³ΠΎ ΠžΠ—Π£ ΠΈ большая ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ мноТСство ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. К ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ для удобства ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ» дисплСй ΠΎΡ‚ Nokia, для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ Π½Π° ΠΊΠ°Ρ€Ρ‚Π΅ памяти, Π° Ρ‚Π°ΠΊΠΆΠ΅ отобраТСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ошибок. ΠœΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ являлись самыС простыС WAV Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ использовались Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… устройствах Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… Π² сСти. Π˜Ρ‚Π°ΠΊ, я написал Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ ΠΏΡ€ΠΈΠ»Π΅ΠΏΠΈΠ» ΠΊ Π½Π΅ΠΌΡƒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой. Π’ качСствС Ρ†ΠΈΡ„Ρ€ΠΎ-Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ прСобразоватСля для Π²Ρ‹Π²ΠΎΠ΄Π° Π·Π²ΡƒΠΊΠ° Π² ΠΏΠ΅Ρ€Π²ΠΎΠ΅ врСмя использовал R-2R ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, ΡΠΎΡΡ‚Π°Π²Π»Π΅Π½Π½ΡƒΡŽ ΠΈΠ· рСзисторов, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ количСство Π»ΠΈΠ½ΠΈΠΉ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° позволяло использованиС Ρ‚Π°ΠΊΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹. Π’ дальнСйшСм ΠΏΠΎΠ΄ это Π΄Π΅Π»ΠΎ Π½Π°Ρ‡Π°Π» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ШИМ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π½Π° дисплСй Π²Ρ‹Π²ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ 8.3, Π½Π΅ΠΌΠ°Π»Ρ‹ΠΌΠΈ усилиями Π±Ρ‹Π» Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ записи Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½ Π² систСмС FAT, послС Ρ‡Π΅Π³ΠΎ я ΠΏΠΎΠ΄ΠΏΡ€Π°Π²ΠΈΠ» ΠΊΠΎΠ΄ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π»ΠΈΡ†Π΅Π·Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° дисплСС.

По ΠΏΡ€ΠΎΡˆΠ΅ΡΡ‚Π²ΠΈΠΈ Π΅Ρ‰Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ количСства Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρƒ мСня появилась ΠΌΡ‹ΡΠ»ΡŒ: Π° Π½Π΅ получится Π»ΠΈ Π·Π°ΠΏΠΈΡ…Π½ΡƒΡ‚ΡŒ этот ΠΊΠΎΠ΄, ΡƒΠ±Ρ€Π°Π² всС лишнСС Π² Ρ‚ΠΎΡ‚ самый PIC16F628A? ЕстСствСнно ΠΎΡ‚ дисплСя ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, ΠΈ вмСстС с Π½ΠΈΠΌ сократился объСм ΠΊΠΎΠ΄Π°, ΠΏΡƒΡ‚Π΅ΠΌ выпиливания Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ† Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°. И Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΌΠ½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ пСрСнСсти устройство Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€.

Π’ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠΌ Π·Π²ΠΎΠ½ΠΊΠ΅ для хранСния ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠ°Ρ€Ρ‚Ρ‹ памяти SD ΠΈΠ»ΠΈ MMC, ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ΄ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму FAT16 (c 2018 Π³ΠΎΠ΄Π° Π΅ΡΡ‚ΡŒ вСрсия с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы FAT32 ΠΈ ΠΊΠ°Ρ€Ρ‚ памяти SDHC, ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ Π² ΠΊΠΎΠ½Ρ†Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ). Π’ качСствС ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π·Π²ΡƒΠΊΠΎΠ²Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° WAV. Устройство ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΡΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ большоС количСство ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС простого проигрыватСля WAV Ρ„Π°ΠΉΠ»ΠΎΠ².
Устройство собрано Π½Π° ΡˆΠΈΡ€ΠΎΠΊΠΎ распространСнном ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ PIC16F628A, ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π° Ρ€Π΅ΠΆΠΈΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ SA1. Π’Π΅Ρ€Ρ…Π½Π΅ΠΌΡƒ полоТСнию ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ соотвСтствуСт Ρ€Π΅ΠΆΠΈΠΌ β€œΠŸΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Ρ‚Π΅Π»ΡŒβ€, Π° Π½ΠΈΠΆΠ½Π΅ΠΌΡƒ Ρ€Π΅ΠΆΠΈΠΌ β€œΠ—Π²ΠΎΠ½ΠΎΠΊβ€. ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ провСряСт состояниС ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, послС ΠΏΠΎΠ΄Π°Ρ‡ΠΈ питания. Для смСны Ρ€Π΅ΠΆΠΈΠΌΠ° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅, ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Π² Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈ снова ΠΏΠΎΠ΄Π°Ρ‚ΡŒ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ Π½Π° устройство.

На транзисторС VT1 собран управляСмый стабилизатор напряТСния Π½Π° 3,3Π’, для питания ΠΊΠ°Ρ€Ρ‚Ρ‹ памяти. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ стабилизатором осущСствляСтся ΠΏΠΎ Π»ΠΈΠ½ΠΈΠΈ ΠΏΠΎΡ€Ρ‚Π° RA3, ΠΏΡ€ΠΈ Π½ΠΈΠ·ΠΊΠΎΠΌ логичСском ΡƒΡ€ΠΎΠ²Π½Π΅ Π½Π° этой Π»ΠΈΠ½ΠΈΠΈ транзистор VT1 Π·Π°ΠΊΡ€Ρ‹Ρ‚, напряТСниС Π½Π° Π΅Π³ΠΎ эммитСрС Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠ»ΡŽ. ΠŸΡ€ΠΈ высоком логичСском ΡƒΡ€ΠΎΠ²Π½Π΅ Π½Π° Π»ΠΈΠ½ΠΈΠΈ, транзистор открываСтся, Ρ‚Π΅ΠΌ самым подавая ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ Π½Π° ΠΊΠ°Ρ€Ρ‚Ρƒ памяти. НапряТСниС Π½Π° Π±Π°Π·Π΅ транзистора стабилизируСтся стабилитроном VD1.

Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ β€œΠ—Π²ΠΎΠ½ΠΎΠΊβ€ послС ΠΏΠΎΠ΄Π°Ρ‡ΠΈ питания, ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ настройку Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… рСгистров, послС Ρ‡Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² спящий Ρ€Π΅ΠΆΠΈΠΌ. ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ SB1 (β€œΠ—Π²ΠΎΠ½ΠΎΠΊ/ВоспроизвСдСниС”), ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ β€œΠΏΡ€ΠΎΡΡ‹ΠΏΠ°Π΅Ρ‚ΡΡβ€, ΠΎ Ρ‡Π΅ΠΌ ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ свСтодиода HL1, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΊΠ°Ρ€Ρ‚Ρ‹ памяти, сбрасываСт ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π΅, Π΄Π°Π»Π΅Π΅ ΠΈΡ‰Π΅Ρ‚ Π½Π° Π½Π΅ΠΉ Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ Ρ„Π°ΠΉΠ». Поиск ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ осущСствляСтся ΠΏΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡŽ WAV. Найдя Π½ΡƒΠΆΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ воспроизводит Π΅Π³ΠΎ, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΊΠ°Ρ€Ρ‚Ρ‹ памяти, послС Ρ‡Π΅Π³ΠΎ снова β€œΠ·Π°ΡΡ‹ΠΏΠ°Π΅Ρ‚β€, Π° свСтодиод HL1 гаснСт. ΠŸΡ€ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ SB1 всС повторится, Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ воспроизвСдСн ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ Ρ„Π°ΠΉΠ».

На ΠΊΠ°Ρ€Ρ‚Ρƒ памяти ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄ΠΎ 512-Ρ‚ΠΈ ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ, это максимальноС количСство записСй Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ для Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы FAT16. ПослС воспроизвСдСния всСх ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ, начнСтся ΠΈΡ… ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅. Кнопки SB2, SB3, SB4 Π² этом Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π½Π΅ задСйствованы.

Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ β€œΠŸΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Ρ‚Π΅Π»ΡŒβ€ послС ΠΏΠΎΠ΄Π°Ρ‡ΠΈ питания ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Ρ‚Π°ΠΊΠΆΠ΅ выполняСт настройку Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… рСгистров, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΊΠ°Ρ€Ρ‚Ρ‹ памяти, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Π΅Π΅ сброса ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π² случаС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ выполнСния ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ вспыхиваСт свСтодиод HL1. Π”Π°Π»Π΅Π΅ выполняСтся поиск WAV Ρ„Π°ΠΉΠ»Π°, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΉΠ΄Π΅Π½, ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚ ΠΊ опросу состояния ΠΊΠ½ΠΎΠΏΠΎΠΊ.
ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ SB1 начнСтся Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠ΅ воспроизвСдСниС всСх Π·Π²ΡƒΠΊΠΎΠ²Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ Π½Π° ΠΊΠ°Ρ€Ρ‚Π΅ памяти. Кнопкой SB2 (β€œΠ‘Ρ‚ΠΎΠΏβ€) ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΈ, ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ SB3 (β€œΠ‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉβ€) ΠΈ SB4 (β€œΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉβ€) ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ мСлодиями, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Π½ΠΈΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ послС остановки.

ΠŸΡ€ΠΈ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ сброса ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠ°Ρ€Ρ‚Ρ‹ памяти, ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΡƒ, ΠΈ Ссли ΠΎΠ½Π° Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎΠΉ, ΠΏΡ€ΠΎΠ·Π²ΡƒΡ‡Π°Ρ‚ Π΄Π²Π° ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… сигнала Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ Ρ‚ΠΎΠ½Π°, послС Ρ‡Π΅Π³ΠΎ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΡƒΠΉΠ΄Π΅Ρ‚ Π² ΠΊΡ€ΡƒΠ³ΠΎΠ²ΠΎΠΉ Ρ†ΠΈΠΊΠ», ΠΈ пСрСстанСт ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π’ этом случаС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ соСдинСния с ΠΊΠ°Ρ€Ρ‚ΠΎΠΉ памяти, ΠΈΠ»ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π΅. Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ β€œΠ—Π²ΠΎΠ½ΠΎΠΊβ€, ΠΏΡ€ΠΈ ошибкС сброса ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ·Π²ΡƒΡ‡Π°Ρ‚ Π΄Π²Π° ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… сигнала Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ Ρ‚ΠΎΠ½Π°, послС Ρ‡Π΅Π³ΠΎ, ΠΊΠ°ΠΊ ΠΈ ΠΏΡ€Π΅ΠΆΠ΄Π΅ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚ Π² спящий Ρ€Π΅ΠΆΠΈΠΌ. Если ΠΊΠ°Ρ€Ρ‚Π° памяти пСрСстанСт ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ»ΠΈ просто β€œΠ·Π°Π²ΠΈΡΠ½Π΅Ρ‚β€, Ρ‚ΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ β€œΠŸΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Ρ‚Π΅Π»ΡŒβ€, ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ ΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΊΠ°Ρ€Ρ‚Ρ‹, Π·Π°Ρ‚Π΅ΠΌ Π·Π°Π½ΠΎΠ²ΠΎ сбросит ΠΈ ΠΏΡ€ΠΎΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π΅. Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ β€œΠ—Π²ΠΎΠ½ΠΎΠΊβ€, послС β€œΠ·Π°Π²ΠΈΡΠ°Π½ΠΈΡβ€ ΠΊΠ°Ρ€Ρ‚Ρ‹, ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ просто ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΈ β€œΠ·Π°ΡΡ‹ΠΏΠ°Π΅Ρ‚β€. ΠŸΡ€ΠΈ отсутствии WAV Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° ΠΊΠ°Ρ€Ρ‚Π΅ памяти, ΠΏΡ€ΠΎΠ·Π²ΡƒΡ‡Π°Ρ‚ Ρ‚Ρ€ΠΈ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… сигнала Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ Ρ‚ΠΎΠ½Π°, послС Ρ‡Π΅Π³ΠΎ β€œΠŸΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Ρ‚Π΅Π»ΡŒβ€ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚ ΠΊ опросу ΠΊΠ½ΠΎΠΏΠΎΠΊ, ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ Π·Π²ΡƒΡ‡Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰ΠΈΠΉ сигнал, Π° Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ β€œΠ—Π²ΠΎΠ½ΠΎΠΊβ€, послС сигнала ΠΎΠ± отсутствии Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΊΠ°Ρ€Ρ‚Ρ‹ памяти ΠΈ β€œΠ·Π°ΡΠ½Π΅Ρ‚β€. Если ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ WAV Ρ„Π°ΠΉΠ»Π° Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΌ значСниям, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, нСвСрная частота дискрСтизации, Ρ€Π°Π·Ρ€ΡΠ΄Π½ΠΎΡΡ‚ΡŒ ΠΈ Ρ‚.Π΄., ΠΏΡ€ΠΎΠ·Π²ΡƒΡ‡ΠΈΡ‚ сигнал Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ Ρ‚ΠΎΠ½Π° Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Π² ΠΎΠ΄Π½Ρƒ сСкунду, ΠΈ Π² ΠΎΠ±ΠΎΠΈΡ… Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΈ.

Для согласования логичСских ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΈ ΠΊΠ°Ρ€Ρ‚Ρ‹ памяти, установлСны Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ напряТСния Π½Π° рСзисторах R6-R11.

Π—Π²ΡƒΠΊ выводится с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ вострСнного Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ модуля ШИМ, частота ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ устройствС Ρ€Π°Π²Π½Π° 78,12ΠΊΠ“Ρ†. Π—Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ сигнал сглаТиваСтся Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠΌ R14C9, Π΄Π°Π»Π΅Π΅ поступаСт Π½Π° ΡƒΡΠΈΠ»ΠΈΡ‚Π΅Π»ΡŒ мощности, построСнный Π½Π° микросхСмС DA1 TDA2003. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ рСзистором R18 Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‚ Π³Ρ€ΠΎΠΌΠΊΠΎΡΡ‚ΡŒ Π·Π²ΡƒΠΊΠ°. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ R15, C11 Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ самовозбуТдСнии усилитСля.

Устройство ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π·Π²ΡƒΠΊΠΎΠ²Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° WAV (PCM, 16ΠΊΠ“Ρ†, 8 Π±ΠΈΡ‚, ΠΌΠΎΠ½ΠΎ, нСсТатый), Ρ„Π°ΠΉΠ»Ρ‹ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚, поэтому, Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ Π·Π²ΡƒΠΊΠΎΠ²Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ-ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€ΠΎΠ². ΠŸΡ€ΠΈ записи Π½Π° ΠΊΠ°Ρ€Ρ‚Ρƒ памяти, WAV Ρ„Π°ΠΉΠ»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π°.

Ѐайловая систСма FAT16 Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ носитСли ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ объСм большС 2 Π“Π±, поэтому это ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ объСм для ΠΊΠ°Ρ€Ρ‚Ρ‹ памяти, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² устройствС. Π‘Ρ‹Π»ΠΈ протСстированы 4 ΠΊΠ°Ρ€Ρ‚Ρ‹ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° microSD, Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„ΠΈΡ€ΠΌ ΠΈ объСмов, это Kingston 1GB, Kingmax 512MB, Silicon Power 2GB, Transcend 1GB. MMC ΠΊΠ°Ρ€Ρ‚Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, я Π½Π΅ смог это ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΈΠ·-Π·Π° отсутствия Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°Ρ€Ρ‚Ρ‹.

Π’ устройствС ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹ постоянныС рСзисторы ΠœΠ›Π’. ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ SA1 – ΠŸΠ” 9-2. Кнопки SB1-SB4 Ρ‚Π°ΠΊΡ‚ΠΎΠ²Ρ‹Π΅ TS-A3PS-130. Π‘Ρ‚Π°Π±ΠΈΠ»ΠΈΡ‚Ρ€ΠΎΠ½ КБ139А ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚Π½Ρ‹ΠΉ, с напряТСниСм стабилизации 3,9Π’. Π”ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π³ΠΎΠ»ΠΎΠ²ΠΊΡƒ BA1 ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ, ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒΡŽ 2 – 4 Π’Ρ‚ с сопротивлСниСм ΠΊΠ°Ρ‚ΡƒΡˆΠΊΠΈ 4 ΠΈΠ»ΠΈ 8 Ом. ВмСсто транзистора КВ503Π’ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ КВ3102АМ. ΠœΠΈΠΊΡ€ΠΎΡΡ…Π΅ΠΌΠ° TDA2003 Π·Π°ΠΌΠ΅Π½ΠΈΠΌΠ° Π½Π° TDA2002, TDA2008, К174УН14, Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π° Ρ‚Π΅ΠΏΠ»ΠΎΠΎΡ‚Π²ΠΎΠ΄ ΠΏΠ»ΠΎΡ‰Π°Π΄ΡŒΡŽ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 60 см2.

ВсС Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π½Π° ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Π΅ ΠΈΠ· одностороннС Ρ„ΠΎΠ»ΡŒΠ³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ стСклотСкстолита. На ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Π΅ прСдусмотрСны отвСрстия для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ внСшнСй ΠΊΠ½ΠΎΠΏΠΊΠΈ β€œΠ—Π²ΠΎΠ½ΠΎΠΊβ€, которая Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ SB1. РазъСм для ΠΊΠ°Ρ€Ρ‚Ρ‹ памяти ΡΠ°ΠΌΠΎΠ΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ. Π’ качСствС источника питания ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСстабилизированный сСтСвой Π±Π»ΠΎΠΊ питания с Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ напряТСниСм 9–12Π’ ΠΈ Ρ‚ΠΎΠΊΠΎΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 0,5А. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° написана Π½Π° ассСмблСрС Π² срСдС MPLAB.

Π― Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ», Ρ‡Ρ‚ΠΎ Ρƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… людСй Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΈ устройства, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π·Π²ΡƒΡ‡ΠΈΡ‚ сигнал Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ Ρ‚ΠΎΠ½Π° Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Π² ΠΎΠ΄Π½Ρƒ сСкунду, указывая Π½Π° Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ WAV Ρ„Π°ΠΉΠ»Π°. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ скаТу Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ структурС WAV Ρ„Π°ΠΉΠ»Π°.
Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ WAV Ρ„Π°ΠΉΠ»Π° Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ Π΅ΡΡ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π² Π²ΠΈΠ΄Π΅ слова WAVE, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π² Π²ΠΈΠ΄Π΅ слова data, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠ°ΠΊ: частота дискрСтизации, Ρ€Π°Π·Ρ€ΡΠ΄Π½ΠΎΡΡ‚ΡŒ, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ – сТатый/нСсТатый, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ – ΠΌΠΎΠ½ΠΎ/стСрСо. Π£ Ρ„Π°ΠΉΠ»Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π²Ρ‹ΡˆΠ΅ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅. Если ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ WAVE ΠΈ data, появится сигнал ΠΎΠ± ошибкС. НСкоторыС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ – ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€Ρ‹, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ссли появляСтся ошибка, Π½Π°Π΄ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, я Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, использовал Sound Forge. Π’Π°ΠΊΠΆΠ΅ Π½ΠΈΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ тСстовыС ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹.

Π‘Ρ‚Π°Ρ‚ΡŒΡ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π° Π² ΠΆΡƒΡ€Π½Π°Π»Π΅ β€œΠ Π°Π΄ΠΈΠΎβ€ β„–4 Π·Π° 2012 Π³ΠΎΠ΄ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«ΠœΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π·Π²ΠΎΠ½ΠΎΠΊ Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅Β».

Рисунок ΠΏΠ»Π°Ρ‚Ρ‹ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JPG
ΠŸΠ΅Ρ‡Π°Ρ‚Π½Π°Ρ ΠΏΠ»Π°Ρ‚Π° Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Sprint Layout
Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (MIR&Co), Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Sprint Layout
ΠŸΠ΅Ρ‡Π°Ρ‚Π½Π°Ρ ΠΏΠ»Π°Ρ‚Π° ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (ΠœΠΈΡ…Π°ΠΈΠ»), Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Sprint Layout

ΠŸΡ€ΠΎΡˆΠΈΠ²ΠΊΠ° МК ΠΈ исходник
ВСстовыС WAV Ρ„Π°ΠΉΠ»Ρ‹

НиТС прСдставлСна обновлСнная вСрсия ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ. Π’ этой вСрсии Π² EEPROM ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° сохраняСтся Π½ΠΎΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠΈΠ³Ρ€Π°Π½Π½ΠΎΠΉ ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΈ (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ€Π΅ΠΆΠΈΠΌΠ° Π·Π²ΠΎΠ½ΠΊΠ°). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ послС пропадания питания ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ начнСтся Π½Π΅ с ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΈ ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ, Π° продолТится с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° сохранСния.

ВСрсия ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ с сохранСниСм Π½ΠΎΠΌΠ΅Ρ€Π° ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΈ Π² EEPROM

ОбновлСниС: ΠΌΠ½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° новая ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ° с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΊΠ°Ρ€Ρ‚ памяти SDHC ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы FAT32, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρ‹ Π΅ΠΌΠΊΠΎΡΡ‚ΡŒΡŽ 4-32Π“Π‘, Π·Π° ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ я Π±Π΅Ρ€Ρƒ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρƒ, ΡΠ²ΡΠ·Π°Ρ‚ΡŒΡΡ со ΠΌΠ½ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°ΠΌ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π½Π° страницС Об Π°Π²Ρ‚ΠΎΡ€Π΅

Π—Π²ΠΎΠ½ΠΎΠΊ с замСняСмыми мСлодиями v2.0

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ устройства

  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ самому ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΈ Π·Π²ΠΎΠ½ΠΊΠ°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ (ПК). Для обновлСния ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ Π·Π²ΠΎΠ½ΠΎΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ LPT ΠΏΠΎΡ€Ρ‚Ρƒ ПК ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ кабСля.
  • ВоспроизвСдСниС одноголосых ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ.
    Π€Π°ΠΉΠ» (wave) со Π·Π²ΡƒΡ‡Π°Π½ΠΈΠ΅ΠΌ Π·Π²ΠΎΠ½ΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ здСсь.
  • Для создания ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ ΠΈ записи ΠΈΡ… Π² Π·Π²ΠΎΠ½ΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚Π° «ΠœΠ΅Π»ΠΎΠ΄ΠΈΡ».

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности

  • Π Π°Π·ΠΌΠ΅Ρ€ памяти Π·Π²ΠΎΠ½ΠΊΠ° — 255 Π½ΠΎΡ‚Π½Ρ‹Ρ… Π·Π½Π°ΠΊΠΎΠ² (8 — 10 ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ).
  • Π”Π²Π° Ρ€Π΅ΠΆΠΈΠΌΠ° Π²Ρ‹Π±ΠΎΡ€Π° ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ — ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ Ρ€ΡƒΡ‡Π½ΠΎΠΉ.

ЭлСктричСскиС характСристики

НапряТСниС питанияот 3,0 Π΄ΠΎ 5,5 Π’.
Π’ΠΎΠΊ, потрСбляСмый Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ покоянС Π±ΠΎΠ»Π΅Π΅ 27 мкА.
Π’ΠΎΠΊ, потрСбляСмый Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ воспроизвСдСния ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΈΠ½Π΅ Π±ΠΎΠ»Π΅Π΅ 250 мА.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Π°Ρ схСма Π·Π²ΠΎΠ½ΠΊΠ°

Π‘Ρ…Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π·Π²ΠΎΠ½ΠΊΠ°

ΠŸΠ΅Ρ‡Π°Ρ‚Π½Π°Ρ ΠΏΠ»Π°Ρ‚Π° ΠΈ схСма располоТСния элСмСнтов

Π‘Ρ…Π΅ΠΌΡƒ ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρƒ Π·Π²ΠΎΠ½ΠΊΠ° Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ P-CAD 2000 (ACCEL EDA) ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ здСсь.

Ѐотография ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹

ОписаниС Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π·Π²ΠΎΠ½ΠΊΠ°

Π—Π²ΠΎΠ½ΠΎΠΊ построСн Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° PIC12C509. МСлодии Π·Π²ΠΎΠ½ΠΊΠ° хранятся Π² элСктричСски ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ микросхСмС памяти с I2C шиной Ρ‚ΠΈΠΏΠ° 24Π‘04. ВсС сигналы, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для управлСния Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ Π·Π²ΠΎΠ½ΠΊΠ° ΠΈ чтСния/записи ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ, Π²Ρ‹Π²Π΅Π΄Π΅Π½Ρ‹ Π½Π° ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·ΡŠΠ΅ΠΌ XP1. К этому Ρ€Π°Π·ΡŠΠ΅ΠΌΡƒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π»ΠΈΠ±ΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ° Π·Π²ΠΎΠ½ΠΊΠ°, Π»ΠΈΠ±ΠΎ кабСль для связи с ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ.

Π—Π²ΠΎΠ½ΠΎΠΊ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π° Ρ€Π΅ΠΆΠΈΠΌΠ° Π²Ρ‹Π±ΠΎΡ€Π° ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ: ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ Ρ€ΡƒΡ‡Π½ΠΎΠΉ. ΠŸΡ€ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΈ воспроизводятся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ΄Π½Π° Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎ ΠΊΡ€ΡƒΠ³Ρƒ. Кнопка «Π’Ρ‹Π±ΠΎΡ€ ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΈ» Π² этом Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ. ΠŸΡ€ΠΈ Ρ€ΡƒΡ‡Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ воспроизводится постоянно ΠΎΠ΄Π½Π° ΠΈ Ρ‚Π° ΠΆΠ΅ мСлодия. Π­Ρ‚Π° мСлодия выбираСтся ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ «Π’Ρ‹Π±ΠΎΡ€ ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΈ». Π Π΅ΠΆΠΈΠΌ Π²Ρ‹Π±ΠΎΡ€Π° ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ задаСтся ΠΏΡ€ΠΈ записи ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ Π² Π·Π²ΠΎΠ½ΠΎΠΊ.

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ сборкС

  1. Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ всС элСмСнты Π½Π° ΠΏΠ»Π°Ρ‚Ρƒ Π·Π²ΠΎΠ½ΠΊΠ° Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° DD2.
  2. ΠŸΠΎΠ΄ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π·Π²ΠΎΠ½ΠΎΠΊ ΠΊΠ°Π±Π΅Π»Π΅ΠΌ (схСму см. Π½ΠΈΠΆΠ΅) ΠΊ LPT-ΠΏΠΎΡ€Ρ‚Ρƒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. ΠŸΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΈ Π·Π²ΠΎΠ½ΠΊΠ° ΠΏΡ€ΠΈ этом рСкомСндуСтся Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ.
  3. Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΈ Π·Π²ΠΎΠ½ΠΊΠ°.
  4. Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ «Π—Π²ΠΎΠ½ΠΎΠΊ». ΠŸΠΎΡΠ²ΠΈΡ‚ΡΡ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

    ΠΠ°ΠΆΠ°Ρ‚ΡŒ Π² ΠΎΠΊΠ½Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ «ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ». Если всС собрано ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈ всС элСмСнты исправны, Ρ‚ΠΎ статус Π·Π²ΠΎΠ½ΠΊΠ° ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

    Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ сообщСниС ΠΎΠ± ошибкС:

    Π’ случаС ошибки ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠ½Ρ‚Π°ΠΆΠ° элСмСнтов, распайку кабСля, ΠΈΡΠΏΡ€Π°Π²Π½ΠΎΡΡ‚ΡŒ транзисторов VT1, VT2 ΠΈ EEPROM DD1.

  5. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ² ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ статус Π·Π²ΠΎΠ½ΠΊΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ DD2, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΠ² ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ Π·Π²ΠΎΠ½ΠΊΠ° ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°.

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ записи ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ Π² Π·Π²ΠΎΠ½ΠΎΠΊ

  1. ΠŸΠΎΠ΄ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π·Π²ΠΎΠ½ΠΎΠΊ ΠΊΠ°Π±Π΅Π»Π΅ΠΌ (схСму см. Π½ΠΈΠΆΠ΅) ΠΊ LPT-ΠΏΠΎΡ€Ρ‚Ρƒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. ΠŸΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΈ Π·Π²ΠΎΠ½ΠΊΠ° ΠΏΡ€ΠΈ этом рСкомСндуСтся Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ.
  2. Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΈ Π·Π²ΠΎΠ½ΠΊΠ°.
  3. Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ «Π—Π²ΠΎΠ½ΠΎΠΊ». ΠΠ°ΠΆΠ°Ρ‚ΡŒ Π² ΠΎΠΊΠ½Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊΠ½ΠΎΠΏΠΊΡƒ «ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ» ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ статус Π·Π²ΠΎΠ½ΠΊΠ°.
  4. Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΈ Π² Π·Π²ΠΎΠ½ΠΎΠΊ с помошью ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ «Π—Π²ΠΎΠ½ΠΎΠΊ».
  5. Π’Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ Π·Π²ΠΎΠ½ΠΊΠ° ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, ΠΈ ΠΎΡ‚ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π·Π²ΠΎΠ½ΠΎΠΊ ΠΎΡ‚ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°.

Π‘Ρ…Π΅ΠΌΠ° кабСля для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π·Π²ΠΎΠ½ΠΊΠ° ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ

Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π΅ поддСрТиваСтся.

ΠΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠœΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π·Π²ΠΎΠ½ΠΎΠΊ MAXI.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ:

ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚

CALL Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ ΠΈ стСк Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ AVR

CALL β€” это инструкция ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ управлСния, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²Ρ‹Π·ΠΎΠ²Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° β€” это Π±Π»ΠΎΠΊ инструкций, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ часто.

Π’ AVR Π΅ΡΡ‚ΡŒ 4 инструкции для Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

  1. CALL (Π²Ρ‹Π·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹)
  2. RCALL (ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹)
  3. ICALL (косвСнный Π²Ρ‹Π·ΠΎΠ² Z)
  4. EICALL (Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ нСпрямой Π²Ρ‹Π·ΠΎΠ² Z)

CALL :
Π’ этой 4-Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠΉ инструкции 10 Π±ΠΈΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΊΠΎΠ΄Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ 22 Π±ΠΈΡ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для адрСса Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠ°ΠΊ ΠΈ Π² Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ JMP.

ΠŸΡ€ΠΈ этом адрСсноС пространство 4M ΠΎΡ‚ 000000 Π΄ΠΎ $3FFFFF для AVR ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ адрСсов.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ AVR Π·Π½Π°Π΅Ρ‚, ΠΊΡƒΠ΄Π° Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ послС выполнСния ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ автоматичСски сохраняСт адрСс инструкции сразу послС инструкции CALL Π² стСкС. ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ выполнСния ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ инструкция RET Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ сторонС. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, каТдая ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΠΌΠ΅Π΅Ρ‚ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ RET.

Π‘Ρ‚Π΅ΠΊ :
Π‘Ρ‚Π΅ΠΊ β€” это Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти ЦП для Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ хранСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ процСссору, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ количСство рСгистров ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ. РСгистр, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для доступа ΠΊ стСку, называСтся рСгистром указатСля стСка (SP).

Π’ области памяти Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° Π΅ΡΡ‚ΡŒ 2 рСгистра с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ SPL (младший Π±Π°ΠΉΡ‚ SP) ΠΈ SPH (ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ Π±Π°ΠΉΡ‚
SP). SP рСализуСтся этими двумя рСгистрами.

Π’ AVR с объСмом памяти Π±ΠΎΠ»Π΅Π΅ 256 Π±Π°ΠΉΡ‚ Π΅ΡΡ‚ΡŒ Π΄Π²Π° 8-Π±ΠΈΡ‚Π½Ρ‹Ρ… рСгистра. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Ссли объСм памяти мСньшС 256 Π±Π°ΠΉΡ‚, SP состоит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· SPL, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ 8-Π±ΠΈΡ‚Π½Ρ‹ΠΉ рСгистр ΠΌΠΎΠΆΠ΅Ρ‚ Π°Π΄Ρ€Π΅ΡΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 256 Π±Π°ΠΉΡ‚ памяти.

Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ЦП Π² стСкС называСтся ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ PUSH, Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° содСрТимого стСка ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² ЦП называСтся ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ POP.

Вставка Π² стСк :
Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСка (SP) ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ стСка. Когда ΠΌΡ‹ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ Π² стСк, Π΄Π°Π½Π½Ρ‹Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Ρ‚Π°ΠΌ, Π³Π΄Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ SP, ΠΈ SP ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ рСгистр Π² стСк, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ PUSH.

 PUSH Rr;
Rr ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹ΠΌ рСгистром ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния (R0 - R31).
 

Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· стСка :
Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ содСрТимого стСка ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² рСгистр являСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ, ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ. Когда выполняСтся инструкция POP, SP увСличиваСтся Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ, Π° вСрхняя ячСйка стСка копируСтся ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² рСгистр. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ стСк LIFO (Last In First Out).

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· стСка, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ POP.

 ПОП Π Ρ€;
Rr ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹ΠΌ рСгистром ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния (R0 - R31).
 

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ стСка:
Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ AVR ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹ΠΉ объСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти. Π’ ассСмблСрС AVR RAMEND ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ адрСс послСднСй ячСйки ΠžΠ—Π£. Π˜Ρ‚Π°ΠΊ, Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ SP Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π» Π½Π° послСднюю ячСйку памяти, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ просто Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ RAMEND Π² SP. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ SP состоит ΠΈΠ· Π΄Π²ΡƒΡ… рСгистров, SPH ΠΈ SPL. Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ Π±Π°ΠΉΡ‚ RAMEND Π² SPH, Π° младший Π±Π°ΠΉΡ‚ RAMEND Π² SPL.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ CALL, инструкция RET ΠΈ Ρ€ΠΎΠ»ΡŒ стСка:
ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ инструкции CALL адрСс инструкции, располоТСнной Π½ΠΈΠΆΠ΅ инструкции CALL, помСщаСтся Π² стСк. Когда Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этой ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ ΠΈ выполняСтся RET, адрСс инструкции, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π·Π° инструкциСй CALL, загруТаСтся Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ счСтчик, ΠΈ ΠΎΠ½Π° выполняСтся.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ CALL ΠΈ стСк Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ AVR

ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ β†’ ← прСдыдущая

CALL ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ управлСния. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструкции CALL ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° содСрТит Π±Π»ΠΎΠΊ инструкций. Π­Ρ‚ΠΈ Ρ‚ΠΈΠΏΡ‹ инструкций Π±ΡƒΠ΄ΡƒΡ‚ часто Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Благодаря этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° станСт Π±ΠΎΠ»Π΅Π΅ структурированной, Π° Ρ‚Π°ΠΊΠΆΠ΅ сэкономит ΠΌΠ½ΠΎΠ³ΠΎ мСста Π² памяти. ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ AVR (процСссор RISC ΠΠ»ΡŒΡ„Π° ΠΈ Π’Π΅Π³Π°Ρ€Π΄Π°) содСрТит Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ‚ΠΈΠΏΠ° инструкций для Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚. Π΅. CALL (Π²Ρ‹Π·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹), RCALL (ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹), ICALL (косвСнный Π²Ρ‹Π·ΠΎΠ² Z) ΠΈ EICALL (Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ косвСнный Π²Ρ‹Π·ΠΎΠ²). ΠΊ Π—).

Π’Π«Π—ΠžΠ’ Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ CALL ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ 4 Π±Π°ΠΉΡ‚Π°. Код ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ прСдставлСн с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ 10 Π±ΠΈΡ‚, Π° адрСс Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ прСдставлСн с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ 22 Π±ΠΈΡ‚, ΠΊΠ°ΠΊ ΠΈ инструкция JMP. Для AVR ΠΎΠ½ прСдоставляСт адрСсноС пространство 4M ΠΎΡ‚ 000000 Π΄ΠΎ $3FFFFF. Он ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ адрСсов.

ПослС выполнСния ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ AVR Π·Π½Π°Π» адрСс, ΠΊΡƒΠ΄Π° Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, адрСс инструкции сохраняСтся ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ Π² Π‘Π’Π•ΠšΠ•, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится Ρ‡ΡƒΡ‚ΡŒ Π½ΠΈΠΆΠ΅ инструкции CALL. Когда Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ сторонС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ RET Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡ‚ΠΎΡΡ‚ΡŒ инструкция RET для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π‘Π’Π•ΠšΠ›Πž

STACK β€” Ρ‚ΠΈΠΏ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ области памяти, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ хранСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ рСгистра. Когда ΠΌΡ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΎΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ адрСс. Π­Ρ‚ΠΎ Ρ‡Π°ΡΡ‚ΡŒ ΠžΠ—Π£ (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти) ЦП (Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ процСссора). РСгистров Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ, поэтому процСссору всСгда трСбуСтся это мСсто для хранСния. Когда ΠΌΡ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² этом Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ (стСкС). Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ рСгистра ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ значСния, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ.

БущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ рСгистр указатСля стСка (SP), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для доступа ΠΊ стСку. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСка (SP) Π² пространствС памяти Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π²ΡƒΡ… рСгистров, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ SPH (ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ Π±Π°ΠΉΡ‚ указатСля стСка), SPL (младший Π±Π°ΠΉΡ‚ указатСля стСка). Π‘Ρ‚Π΅ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ LIFO (послСдний ΠΏΡ€ΠΈΡˆΠ΅Π» β€” ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΡƒΡˆΠ΅Π»). Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ послСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΎ ΠΈΠ· стСка ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ. Когда Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ помСщаСтся Π² стСк, этот стСк увСличиваСтся Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ высокого адрСса. Когда Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ выталкиваСтся ΠΈΠ· стСка, ΠΎΠ½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ.

Π‘ΡƒΠ΄Π΅Ρ‚ Π΄Π²Π° 8-Π±ΠΈΡ‚Π½Ρ‹Ρ… рСгистра, Ссли AVR (процСссор RISC Alf ΠΈ Vegard) содСрТит Π±ΠΎΠ»Π΅Π΅ 256 Π±Π°ΠΉΡ‚. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСка Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· SPL, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли AVR содСрТит ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΌΠ΅Π½Π΅Π΅ 256 Π±Π°ΠΉΡ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ рСгистр с 8 Π±ΠΈΡ‚Π°ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π°Π΄Ρ€Π΅ΡΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 256 Π±Π°ΠΉΡ‚ памяти. БущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ опСрация PUSH, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для хранСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ЦП Π² стСкС. БущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ опСрация POP, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ содСрТимого стСка ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² ЦП. Π­Ρ‚ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ PUSH ΠΈ POP ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнным ΠΈ простым способом использования стСка. Π’Π΅ΠΏΠ΅Ρ€ΡŒ опишСм ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Push ΠΈ Pop ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.

Π’Π΄Π°Π²Π»ΠΈΠ²Π°Π½ΠΈΠ΅ Π² Π‘Π’Π•Πš

ΠŸΡ€ΠΎΡ‚Π°Π»ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ «ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ΠΌ Ρ‡Π΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ Π½Π° Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ стСка». Π’Π½Π°Ρ‡Π°Π»Π΅ SP ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ стСка. Π’ основном ΠΎΠ½ Ρ…Ρ€Π°Π½ΠΈΡ‚ 64-Π±ΠΈΡ‚Π½Ρ‹ΠΉ рСгистр ΠΈΠ»ΠΈ константу Π² стСкС. РСгистры Β«raxΒ» ΠΈΠ»ΠΈ Β«r8Β» извСстны ΠΊΠ°ΠΊ 64-Π±ΠΈΡ‚Π½Ρ‹Π΅ рСгистры, Π° Β«eaxΒ» ΠΈΠ»ΠΈ Β«r8dΒ» извСстны ΠΊΠ°ΠΊ 32-Π±ΠΈΡ‚Π½Ρ‹Π΅ рСгистры. Когда ΠΌΡ‹ пытаСмся ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² стСк, ΠΎΠ½ΠΈ всСгда Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ мСстС, ΠΊΡƒΠ΄Π° ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСка. ПослС этого ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСка Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ Π½Π° 1.

НапримСр: Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ PUSH для помСщСния рСгистра Π² стСк. Команда для этого описываСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠΠΠ–ΠœΠ˜Π’Π• Π Ρ€; Rr указываСтся ΠΊΠ°ΠΊ любой рСгистр ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния ΠΎΡ‚ R0 Π΄ΠΎ R31.


Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· Π‘Π’Π•ΠšΠ

Π’Ρ‹Ρ‚Π°Π»ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ «взятиСм Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ Π²Π΅Ρ‰ΠΈ ΠΈΠ· стСка». Ѐункция выталкивания ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ толкания. Π—Π΄Π΅ΡΡŒ содСрТимоС стСка извлСкаСтся ΠΈΠ· стСка ΠΈ помСщаСтся ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² рСгистр. Когда ΠΌΡ‹ пытаСмся ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· стСка, вСрхняя ячСйка стСка копируСтся ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² рСгистр, Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСка увСличиваСтся Π½Π° 1. Когда вызываСтся POP, SP автоматичСски увСличиваСтся Π½Π° 1. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ POP ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ LIFO (послСдний ΠΏΡ€ΠΈΡˆΠ΅Π» – ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΡƒΡˆΠ΅Π»). Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ послСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΎ ΠΈΠ· стСка ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ.

НапримСр: Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ собираСмся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ POP, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ содСрТимоС стСка ΠΈ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² рСгистр. Команда для этого описываСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ПОП Π Ρ€; Rr указываСтся ΠΊΠ°ΠΊ любой рСгистр ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния ΠΎΡ‚ R0 Π΄ΠΎ R31.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ рСгистра Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ стСрто, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ помСстим рСгистр Π² стСк. Π’ этом случаС Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ просто ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Ρ‹ ΠΈΠ»ΠΈ скопированы Π² SRAM. Когда ΠΌΡ‹ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· стСка, содСрТимоС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎ этому адрСсу, Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ стСрто стСком.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ PUSH ΠΈ POP:

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ собираСмся Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ 30 Π² rax, Π° Π·Π°Ρ‚Π΅ΠΌ 45 Π² rex. Команда для этого описываСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠΠΠ–ΠœΠ˜Π’Π• 30 ΠΠΠ–ΠœΠ˜Π’Π• 45 ΠΏΠΎΠΏ ракс POP-ΠΏΡ€ΠΈΠ΅ΠΌ Ρ€Π΅Ρ‚

ПослС выполнСния ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ наТатия стСк Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ€Π°Π²Π½ΠΎΠ΅

.

30

ПослС выполнСния Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ наТатия стСк Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π²Π° значСния, Ρ€Π°Π²Π½Ρ‹Π΅

30, 45

ПослС выполнСния ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ POP ΠΎΠ½ сначала Π²ΠΎΠ·ΡŒΠΌΠ΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 45 ΠΈ помСстит Π΅Π³ΠΎ Π² рСгистр rax. ПослС этого Π² стСкС останСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ β€”

.

17

ПослС выполнСния Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ POP ΠΎΠ½ Π²ΠΎΠ·ΡŒΠΌΠ΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 17 ΠΈ помСстит Π΅Π³ΠΎ Π² рСгистр rcx. ПослС этого ΠΎΠ½ оставит стСк чистым. ПослСдняя инструкция «ret» Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ идСально, Ссли стСк Π½Π΅ ΠΎΡ‡ΠΈΡ‰Π΅Π½. ΠŸΡ€ΠΈ этом всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ инструкции Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ «Ρ€Π΅Ρ‚». Π­Ρ‚Π° инструкция ΠΏΠ΅Ρ€Π΅ΠΏΡ€Ρ‹Π³Π½Π΅Ρ‚ Π½Π° Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ стСка нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ стСк содСрТит Π½Π° Π²Π΅Ρ€ΡˆΠΈΠ½Π΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Если количСство элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π²Ρ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈ, ΠΈ количСство элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΈΠ·Π²Π»Π΅ΠΊΠ»ΠΈ, Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚, наша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ остороТны с нашими Ρ‚ΠΎΠ»Ρ‡ΠΊΠ°ΠΌΠΈ ΠΈ Ρ‰Π΅Π»Ρ‡ΠΊΠ°ΠΌΠΈ.

Когда ΠΌΡ‹ пытаСмся ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² стСк Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ рСзистора, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ POP Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΈ восстановлСны значСния ΠΈΡ… исходных рСгистров, Ρ‡Ρ‚ΠΎ описываСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

НаТмитС r0 НаТмитС r1 НаТмитС r2 ΠΏΠΎΠΏ Ρ€2 Поп r1 Поп Ρ€0

Как ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π²Ρ‹ΡˆΠ΅ пСрвая, вторая ΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΡ инструкции Push ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ содСрТимоС r0, r1 ΠΈ r3 соотвСтствСнно Π² стСк. Π’ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Pop пСрвая опСрация Pop выполняСтся Π½Π° r2, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½Π° вводится послСдним, Π° опСрация Pop основана Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ LIFO. Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹ сначала Π²Ρ‹Ρ‚Π°Π»ΠΊΠΈΠ²Π°Π΅ΠΌ r2, Π° Π·Π°Ρ‚Π΅ΠΌ r1 ΠΈ r0.

Если ΠΌΡ‹ ΠΏΠΎ ошибкС Π²Ρ‹Π·ΠΎΠ²Π΅ΠΌ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ POP Π² Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ порядкС, Π² этом случаС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ восстановлСно Π² Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ рСгистры. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ остороТны ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ POP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ описываСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ldi r20, 0x01 Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ r20 с 0x01 ldi r21, 0x02 Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ r21 с 0x02 Push r20 Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для сохранСния r20 Π² стСк Push r21 Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для сохранСния r21 Π² стСк Pop r20 Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для восстановлСния r20 (Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = 0x02) Pop 21 Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для восстановлСния r21 (Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = 0x01)

Как ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Π²Ρ‹Π·ΠΎΠ² инструкций Pop Π½Π΅ выполняСтся Π² порядкС, ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ Ρ‚ΠΎΠΌΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±Ρ‹Π» Π²Ρ‹Π·Π²Π°Π½ Push. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΄Π°Π½Π½Ρ‹Π΅ r20 ΠΈ r21 Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ мСстами. Но эта функция Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½Π°, Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ мСстами содСрТимоС Π΄Π²ΡƒΡ… рСгистров, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ рСгистр.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. РСгистры Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒΡΡ ΠΈΠ· стСка Π² порядкС, ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядку ΠΈΡ… помСщСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ ΠΌΠΎΠ³Π»ΠΈ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ свои исходныС значСния.

Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСка

Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСка ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ рСгистр Π² памяти Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для указания пространства, Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π² SRAM. SP содСрТит 16-Π±ΠΈΡ‚Π½Ρ‹ΠΉ рСгистр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ SPL ΠΈ SPH. SPH Π½Π΅ потрСбуСтся, Ссли ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ содСрТит ΠΎΡ‡Π΅Π½ΡŒ нСбольшой объСм SRAM. Π’ этом случаС Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ SPL. Π‘ ΠΊΠΎΠ½Ρ†Π° SRAM Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ начинаСтся стСк. Когда ΠΌΡ‹ сохраняСм Π΄Π°Π½Π½Ρ‹Π΅ Π² стСкС, ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ расти ΠΎΡ‚ Π±ΠΎΠ»Π΅Π΅ высоких Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ адрСса ΠΊ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΈΠΌ значСниям адрСса. Π’Π΅Ρ€ΡˆΠΈΠ½Π° стСка всСгда указываСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ указатСля стСка.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ стСка

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΌΡ‹ ΠžΠ—Π£ (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти) для Ρ€Π°Π·Π½Ρ‹Ρ… AVR. АдрСс послСднСго мСста Π² ΠžΠ—Π£ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ RAMEND Π² ассСмблСрС AVR. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, RAMEND ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π² SP, Ссли Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСка, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π» Π½Π° послСднюю ячСйку памяти. Как ΠΌΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ Π²Ρ‹ΡˆΠ΅, ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСка содСрТит Π΄Π²Π° рСгистра: SPH (ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ Π±Π°ΠΉΡ‚ указатСля стСка) ΠΈ SPL (младший Π±Π°ΠΉΡ‚ указатСля стСка). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ Π±Π°ΠΉΡ‚ RAMEND Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ Π² SPH, Π° младший Π±Π°ΠΉΡ‚ RAMEND Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ Π² SPL.

Как ΠΌΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ Π²Ρ‹ΡˆΠ΅, SP находится Π² памяти Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ out для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² Π½Π΅Π΅ значСния. Для Π½ΠΎΠ²Ρ‹Ρ… AVR послСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ SRAM Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚ΠΎΡ‡ΠΊΠΈ стСка ΠΏΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ питания. Для Π±ΠΎΠ»Π΅Π΅ старых AVR Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π²ΠΎ врСмя запуска любой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ этого описываСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ldi r16, LOW (RAMEND) Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этой инструкции младший Π±Π°ΠΉΡ‚ RAMEND Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ Π² рСгистр r16. out SPL, r16 Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этой инструкции рСгистр r16 Π±ΡƒΠ΄Π΅Ρ‚ сохранСн Π² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСка Π½ΠΈΠ·ΠΊΠΈΠΉ ldi r16, High (RAMEND) Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этой инструкции ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ Π±Π°ΠΉΡ‚ RAMEND Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ Π² рСгистр r16. out SPH, r16 Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этой инструкции рСгистр r16 Π±ΡƒΠ΄Π΅Ρ‚ сохранСн Π² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСка высокий

Π’ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΉ Ρ„Π°ΠΉΠ» содСрТит константу RAMEND Π² Ρ„ΠΎΡ€ΠΌΠ΅ послСднСго адрСса Π² SRAM. МногиС ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ содСрТат 16-Π±ΠΈΡ‚Π½Ρ‹ΠΉ адрСс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π½Π° Π΄Π²Π° 8-Π±ΠΈΡ‚Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ LOW ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ HIGH. Π­Ρ‚ΠΈ Π΄Π²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹ Π² Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ рСгистр. ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π° RAMEND ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ мСньшС 16 Π±ΠΈΡ‚ для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ². SPH Π² этом случаС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, ΠΈ ΠΌΡ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ рСгистр SPL.

ldi r16, RAMEND Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ RAMEND Π² r16 out SPL, r16 Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для хранСния r16 Π² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ стСка

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, SP автоматичСски инициализируСтся Π² RAMEND ΠΏΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ питания с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. Если Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСка Π² Π½Π°Ρ‡Π°Π»Π΅ любой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, это Π±ΡƒΠ΄Π΅Ρ‚ для нас ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ. Π’ случаС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ эта ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ SP ΠΎΡ‚ запуска ΠΈΠ· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ мСста.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ CALL, инструкция RET ΠΈ Ρ€ΠΎΠ»ΡŒ стСка

Π’ΠΎ врСмя выполнСния инструкции CALL адрСса инструкций, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Π½ΠΈΠΆΠ΅ инструкции CALL, Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² стСк.

alexxlab

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *