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

ΠœΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… устройств ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°

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

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π²Ρ‹ΡˆΠ΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ «ΡΠΌΡƒΠ»ΡΡ‚ΠΎΡ€Ρ‹», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ устройства Π½Π° ΡΡ‚Π°ΠΏΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ части Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. ВрСбования ΠΊ ΡΡ‚ΠΈΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ-эмуляторам ΠΎΡ‡Π΅Π½ΡŒ просты: ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±Π»ΠΈΠΆΠ΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΊΠΎΠ΄Π° Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ устройствС. Π’ΠΎ Π΅ΡΡ‚ΡŒ эмулятор Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ устройства, Ρ‚Π°ΠΊΠΈΠ΅… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠœΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… устройств ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π—Π°Π΄Π°Ρ‡Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

1) Π’ Ρ…ΠΎΠ΄Π΅ курсового проСктирования Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π°Π½Π°Π»ΠΈΠ·Π° исходных Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄, Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… устройств ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°.

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ:

1) Для доступа ΠΊ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ-доступным ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ рСгистрам ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» atmega128.h.

2) РСализация ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ Π΄ΠΎΠ»ΠΆΠ½Π° Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π² Ρ„Π°ΠΉΠ»Π΅ a13. cpp

3) Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ разрабатываСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ программная функция, имя ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ совпадаСт с ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠΎΠΉ ассСмблСра этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

1. ORI

2. CPI

3. BRPL

4. LD X, R

5. (STX, Rr)

6. MOVW

7. BST

8. SET

4) Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ тСст ΠΏΠΎ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ МодСль внСшнСго устройства:

1) НСобходимо Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ модСль внСшнСго устройства I-8082W

2) НСобходимо Π΄Π°Ρ‚ΡŒ схСму ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ устройства ΠΈ ΡΠ΄Ρ€Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΡ€Ρ‚Ρ‹ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°

3) НСобходимо Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для дСмонстрации совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ внСшнСго устройства Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π’ Π½Π°ΡΡ‚оящСС врСмя для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ Π·Π°Π΄Π°Ρ‡, связанных с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Π½Π΅ΡˆΠ½ΠΈΡ… устройств, ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ свою систСму ΠΊΠΎΠΌΠ°Π½Π΄, ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ памяти, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΠΎΡ€Ρ‚ΠΎΠ² Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°. ΠŸΡ€ΠΎΡ†Π΅ΡΡ рСдактирования-ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ-сборки происходит Π½Π° Π»ΡŽΠ±ΠΎΠΌ доступном ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. Π”Π°Π»Π΅Π΅, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° для дальнСйшСй ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ. Π’ Ρ…ΠΎΠ΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ часто приходится ΠΏΡ€ΠΈΠ±Π΅Π³Π°Ρ‚ΡŒ ΠΊ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ ΠΊΠΎΠ΄Π°, которая ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚: просмотр Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ памяти, просмотр Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ стСка, пошаговоС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, просмотр рСгистров состояния ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Однако Ссли сразу Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ устройства, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ: просмотр Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ€Π΅Π·ΠΊΠΎ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒΡΡ. Π­Ρ‚ΠΎ являСтся ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΈΠ· ΠΏΡ€ΠΈΡ‡ΠΈΠ½ создания эмуляторов ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ являСтся Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΈ/ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… устройств для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’Ρ€Π΅Ρ‚Π΅ΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ являСтся Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ сопряТСнных устройств, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ²Ρ€Π΅Π΄ΠΈΡ‚ΡŒΡΡ вслСдствиС выполнСния Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°.

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π²Ρ‹ΡˆΠ΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ «ΡΠΌΡƒΠ»ΡΡ‚ΠΎΡ€Ρ‹», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ устройства Π½Π° ΡΡ‚Π°ΠΏΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ части Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. ВрСбования ΠΊ ΡΡ‚ΠΈΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ-эмуляторам ΠΎΡ‡Π΅Π½ΡŒ просты: ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±Π»ΠΈΠΆΠ΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΊΠΎΠ΄Π° Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ устройствС. Π’ΠΎ Π΅ΡΡ‚ΡŒ эмулятор Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ устройства, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ рСгистры, ΠΏΠ°ΠΌΡΡ‚ΡŒ, адрСсация, стСк, ΠΏΠΎΡ€Ρ‚Ρ‹ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°, Ρ†ΠΈΠΊΠ» ΠΊΠΎΠΌΠ°Π½Π΄, прСрывания. МоТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ трСбования ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ абстракции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΠΎΡΡ‚Π°Π²Π»Π΅Π½Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ.

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

Π’ Π΄Π°Π½Π½ΠΎΠΉ курсовой запискС Π½Π΅Ρ‚ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ описания Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ сСмСйств эмулируСмых устройств ATMega128, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎΠ»Π½ΠΎΠ΅ руководство ΠΏΠΎ ΡƒΡΡ‚ройству. Π˜Π·Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» касаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅Ρ… ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для выполнСния задания.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ATMega128

ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ сСмСйства Mega (ΠΈ ATVega128 Π² Ρ‡Π°ΡΡ‚ности) ΠΊΠ°ΠΊ ΠΈ Π²ΡΠ΅ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ AVR Ρ„ΠΈΡ€ΠΌΡ‹ «Atmel» ΡΠ²Π»ΡΡŽΡ‚ΡΡ 8-разрядными ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΌΠΈ для встраиваСмых ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Они ΠΈΠ·Π³ΠΎΡ‚Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ΠΌΠ°Π»ΠΎΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡŽΡ‰Π΅ΠΉ КМОП-Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, которая Π² ΡΠΎΡ‡Π΅Ρ‚Π°Π½ΠΈΠΈ с ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½Π½ΠΎΠΉ RISC-Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ позволяСт Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ быстродСйствиС/энСргопотрСблСниС. ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ Π΄Π°Π½Π½ΠΎΠ³ΠΎ сСмСйства ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ€Π°Π·Π²ΠΈΡ‚Ρ‹ΠΌΠΈ прСдставитСлями ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² AVR.

ΠžΡ‚Π»ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ особСнности К Ρ‡ΠΈΡΠ»Ρƒ особСнностСй ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² AVR сСмСйства Mega относятся:

* FLASH-ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ объСмом 8… 128 ΠšΠ±Π°ΠΉΡ‚ (число Ρ†ΠΈΠΊΠ»ΠΎΠ² стирания/записи Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 1000);

* опСративная ΠΏΠ°ΠΌΡΡ‚ΡŒ (статичСскоС ΠžΠ—Π£) объСмом I…4 ΠšΠ±Π°ΠΉΡ‚;

* ΠΏΠ°ΠΌΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π­Π‘ΠŸΠŸΠ—Π£ (EEPROM) объСмом 512 Π±Π°ΠΉΡ‚…4 ΠšΠ±Π°ΠΉΡ‚ (число Ρ†ΠΈΠΊΠ»ΠΎΠ² стирания/записи Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 100 000);

* Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ Ρ‡Ρ‚Сния ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…;

* Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ программирования нСпосрСдствСнно Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ интСрфСйсы SPI ΠΈ JTAG;

* Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ самопрограммирования;

* Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ внутрисхСмной ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π² ΡΠΎΠΎΡ‚вСтствии со ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚ΠΎΠΌ IEEE 1149.1 (JTAG);

* Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ способы синхронизации: встроСнный АБ-Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ с Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ ΠΈΠ»ΠΈ внСшнСй Π²Ρ€Π΅ΠΌΡΠ·Π°Π΄Π°ΡŽΡ‰Π΅ΠΉ Π›Π‘-Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΎΠΉ ΠΈΠ»ΠΈ с Π²Π½Π΅ΡˆΠ½ΠΈΠΌ Ρ€Π΅Π·ΠΎΠ½Π°Ρ‚ΠΎΡ€ΠΎΠΌ (ΠΏΡŒΠ΅Π·ΠΎΠΊΠ΅Ρ€Π°ΠΌΠΈΡ‡Π΅ΡΠΊΠΈΠΌ ΠΈΠ»ΠΈ ΠΊΠ²Π°Ρ€Ρ†Π΅Π²Ρ‹ΠΌ); внСшний сигнал синхронизации;

* Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² ΠΏΠΎΠ½ΠΈΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ энСргопотрСблСния;

* Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π΄Π΅Ρ‚Π΅ΠΊΡ‚ΠΎΡ€Π° сниТСния напряТСния питания (brown-out detector, BOD);

* Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ сниТСния частоты Ρ‚Π°ΠΊΡ‚ΠΎΠ²ΠΎΠ³ΠΎ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°*.

Π₯арактСристики процСссора:

* ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ статичСская Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°; минимальная тактовая частота Ρ€Π°Π²Π½Π° Π½ΡƒΠ»ΡŽ;

* АЛУ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ нСпосрСдствСнно ΠΊ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°ΠΌ ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния;

* Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π»Π° ΠΎΠ΄ΠΈΠ½ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ»;

* многоуровнСвая систСма ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ; ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя процСссор ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Ρ„ΠΎΠ² сСмСйства Mega ΠΈΠΌΠ΅Π΅Ρ‚ ряд характСристик, присущих ΠΈΠΌΠ΅Π½Π½ΠΎ этому сСмСйству:

* наибольшСС число источников ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ (Π΄ΠΎ 27 источников, ΠΈΠ· I Π½ΠΈΡ… Π΄ΠΎ 8 Π²Π½Π΅ΡˆΠ½ΠΈΡ…);

* Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ стСка Π²ΠΎ Π²ΡΠ΅Ρ… модСлях сСмСйства; I * Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ умноТитСля.

ΠŸΠΎΠ΄ΡΠΈΡΡ‚Π΅ΠΌΠ° Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄:

* ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π²Ρ‹Π±ΠΎΡ€ ΠΏΠΎΡ€Ρ‚ΠΎΠ² Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°;

* Π²Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΊΠ°ΠΊ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ нСзависимо Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°;

* Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π±ΡƒΡ„Π΅Ρ€Ρ‹ с Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠΌ Π¨ΠΌΠΈΡ‚Ρ‚Π° Π½Π° Π²ΡΠ΅Ρ… Π²Ρ‹Π²ΠΎΠ΄Π°Ρ…;

* Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎ Π²ΡΠ΅ΠΌ Π²Ρ…ΠΎΠ΄Π°ΠΌ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… рСзисторов (сопротивлСниС рСзисторов составляСт 35…120кОм) АрхитСктура ядра Π―Π΄Ρ€ΠΎ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² AVR сСмСйства Mega Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΏΠΎ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½Π½ΠΎΠΉ RISC-Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ (enhanced RISC). АрифмСтико-логичСскоС устройство (АЛУ), Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅Π΅ всС вычислСния, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ нСпосрСдствСнно ΠΊ 32-ΠΌ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ рСгистрам, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹ΠΌ Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ». Благодаря этому АЛУ выполняСт ΠΎΠ΄Π½Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ (Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ содСрТимого рСгистров, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ Π·Π°ΠΏΠΈΡΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ») Π·Π° ΠΎΠ΄ΠΈΠ½ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ». ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ каТдая ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄ (Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² являСтся 16-разрядный адрСс) Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ ячСйку памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

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

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ, Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΌ Π½Π° ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ быстродСйствия, являСтся использованиС Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠšΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΡ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ исполнСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ производится Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° ΠΈΠ· ΠΏΠ°ΠΌΡΡ‚ΠΈ ΠΈ Π΄Π΅ΡˆΠΈΡ„рация ΠΊΠΎΠ΄Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ машинного Ρ†ΠΈΠΊΠ»Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΡ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² AVR составляСт всСго ΠΎΠ΄ΠΈΠ½ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Ρ‚Π°ΠΊΡ‚ΠΎΠ²ΠΎΠ³ΠΎ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Ρƒ ΠΆΠ΅ 1ΠΏΡŽΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈ RISC-ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΠΈΡ€ΠΌ, Π½ΠΎ ΠΏΡ€ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠΉ Ρ‚Π°ΠΊΡ‚ΠΎΠ²ΠΎΠΉ частотС.

ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ памяти ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ AVR сСмСйства Mega ΡΠ²Π»ΡΡŽΡ‚ΡΡ 8-разрядными ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ с RISC-Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ. Они ΠΈΠΌΠ΅ΡŽΡ‚ элСктричСски ΡΡ‚ΠΈΡ€Π°Π΅ΠΌΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ (FLASH) ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (EEPROM), Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Π΅ устройства. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ сСмСйства Mega ΠΈΠΌΠ΅ΡŽΡ‚ самый Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Ρ… устройств ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… сСмСйств. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, состав этих устройств ΠΎΡ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊ ΠΌΠΎΠ΄Π΅Π»ΠΈ практичСски Π½Π΅ ΠΌΠ΅Π½ΡΠ΅Ρ‚ся (ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности). К ΡƒΡΡ‚Ρ€ΠΎΠΉΡΡ‚Π²Π°ΠΌ, ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Π½Π΅ Π²ΠΎ Π²ΡΠ΅Ρ… модСлях сСмСйства, относятся АЦП, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π΄Π²ΡƒΡ…ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΎΠ³ΠΎ интСрфСйса TWI (Two Wire Interface, Π°Π½Π°Π»ΠΎΠ³ ΡˆΠΈΠ½Ρ‹ 12Π‘), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ интСрфСйса JTAG.

Бтруктурная схСма ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² сСмСйства Mega ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π½Π° Π ΠΈΡ. На ΡΡ‚ΠΎΠΌ рисункС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π° структурная схСма Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΠ³ΠΎ Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡˆΠ½ΠΈΠΉ дСнь прСдставитСля сСмСйства. ATmegal28x. ΠŸΡ€ΠΈ рассмотрСнии Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ присущиС ΠΈΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ‚Π΅Ρ… ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Ρ… устройств ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° этими устройствами.

Π’ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ… AVR сСмСйства Mega Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Гарвардская Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, Π² ΡΠΎΠΎΡ‚вСтствии с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ адрСсныС пространства памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ ΠΏΠ°ΠΌΡΡ‚ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ ΡˆΠΈΠ½Ρ‹ доступа ΠΊ Π½ΠΈΠΌ. Бпособы адрСсации ΠΈ Π΄ΠΎΡΡ‚ΡƒΠΏΠ° ΠΊ ΡΡ‚ΠΈΠΌ областям памяти Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹. Вакая структура позволяСт Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠΌΡƒ процСссору Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΊΠ°ΠΊ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Ρ‚Π°ΠΊ ΠΈ Ρ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ сущСствСнно ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. КаТдая ΠΈΠ· ΠΎΠ±Π»Π°ΡΡ‚Π΅ΠΉ памяти Π΄Π°Π½Π½Ρ‹Ρ… (ΠžΠ—Π£ ΠΈ EEPROM) Ρ‚Π°ΠΊΠΆΠ΅ располоТСна Π² ΡΠ²ΠΎΠ΅ΠΌ адрСсном пространствС.

РСгистры ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния ВсС рСгистры ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» быстрого доступа, структура ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° Π ΠΈΡ. Π’ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ… AVR всС 32 РОН нСпосрСдствСнно доступны АЛУ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΠΈΡ€ΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… имССтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ‚Π°ΠΊΠΎΠΉ рСгистр — Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ рСгистр W (аккумулятор). Благодаря этому любой РОН ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ практичСски Π²ΠΎ Π²ΡΠ΅Ρ… ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… ΠΈ ΠΊΠ°ΠΊ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄-источник ΠΈ ΠΊΠ°ΠΊ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄-ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ. Π’Π°ΠΊΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ (Π² ΡΠΎΡ‡Π΅Ρ‚Π°Π½ΠΈΠΈ с ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ) позволяСт АЛУ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ (ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² ΠΈΠ· Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΎΠ²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ Π·Π°ΠΏΠΈΡΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ») Π·Π° ΠΎΠ΄ΠΈΠ½ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ».

ПослСдниС 6 рСгистров Ρ„Π°ΠΉΠ»Π° (R26-R31) ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒΡΡ Π² Ρ‚Ρ€ΠΈ 16-разрядных рСгистра X, Y, Z, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΏΡ€ΠΈ косвСнной адрСсации памяти Π΄Π°Π½Π½Ρ‹Ρ….

РСгистры Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°.

ВсС рСгистры Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° условно ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Π΄Π²Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ — слуТСбныС рСгистры ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΈ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Ρ‹, относящиСся ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹ΠΌ устройствам (Π² Ρ‚. Ρ‡. рСгистры ΠΏΠΎΡ€Ρ‚ΠΎΠ² Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°).

Π’ΠΎ Π²ΡΠ΅Ρ… ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ… сСмСйства Mega рСгистры Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π² Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΌ пространствС Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 64 Π±Π°ΠΉΡ‚Π°. Π’ ΠΌΠΎΠ΄Π΅Π»ΡΡ… ATmegal62x, ATmega64x ΠΈ ATmegal28x, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, имССтся пространство Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… рСгистров Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 160 Π±Π°ΠΉΡ‚.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π Π’Π’ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ всСх ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Ρ… устройств этих ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… 64-Ρ… Π Π’Π’ нСдостаточно.

К Π Π’Π’, располоТСнным Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ пространствС Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°, ΠΌΠΎΠΆΡ†0 Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ IN ΠΈ OUT, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ… пСрСсылку Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· 32-Ρ… РОН ΠΈ ΠΏΡ€ΠΎΡΡ‚ранством Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°, Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ имССтся Ρ‚Π°ΠΊΠΆΠ΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ поразрядного доступа, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² рСгистры Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°: ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ установки/сброса ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π° (SBI ΠΈ CBI) ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ состояния ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π° (SBIS ΠΈ SBIC). К ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡŽ, эти ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ 1-ΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅ основных рСгистров Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° (адрСса $ 00…$ 1F).

Помимо нСпосрСдствСнной адрСсации (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ IN ΠΈ OUT), ΠΊ Π Π’Π’ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΈ ΠΊΠ°ΠΊ ΠΊ ΡΡ‡Π΅ΠΉΠΊΠ°ΠΌ ΠžΠ—Π£ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ ST/SD/SDD ΠΈ LD/LDS/LDD (для Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π Π’Π’ этот способ являСтся СдинствСнно Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ).

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ адрСса Π Π’Π’, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ основному пространству Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° ($ 00…$ 3F). Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ случаС адрСс Π Π’Π’ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π½Π° $ 20.

РСгистр состояния.

Π‘Ρ€Π΅Π΄ΠΈ всСх Π Π’Π’ Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ рСгистр, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π­Ρ‚ΠΈΠΌ рСгистром являСтся рСгистр состояния SREG. Он Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ся ΠΏΠΎ Π°Π΄Ρ€Π΅ΡΡƒ $3 °F ($ 5F) ΠΈ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ Π½Π°Π±ΠΎΡ€ Ρ„Π»Π°Π³ΠΎΠ², ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ„Π»Π°Π³ΠΎΠ² автоматичСски ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² «1» ΠΈΠ»ΠΈ ΡΠ±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² «0» ΠΏΡ€ΠΈ наступлСнии ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… событий (Π² ΡΠΎΠΎΡ‚вСтствии с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄). ВсС разряды этого рСгистра доступны ΠΊΠ°ΠΊ для чтСния, Ρ‚Π°ΠΊ ΠΈ Π΄Π»Ρ записи; послС сброса ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° всС разряды рСгистра ΡΠ±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² «0». Π€ΠΎΡ€ΠΌΠ°Ρ‚ этого рСгистра ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π° Π ΠΈΡ ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ для эмуляции

Команда ORI — Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ логичСскоС OR с Π½Π΅ΠΏΠΎΡΡ€Π΅Π΄ΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ

ОписаниС:

Команда выполняСт логичСскоС OR ΠΌΠ΅ΠΆΠ΄Ρƒ содСрТимым рСгистра Rd ΠΈ ΠΊΠΎΠ½ΡΡ‚Π°Π½Ρ‚ΠΎΠΉ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π΅ назначСния Rd.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ:

(i)

Rd <— Rd v K

Бинтаксис

ΠžΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹:

Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ:

(i)

ORI Rd, K

16 < d < 31,0 < K <255

PC <- PC + 1

16-разрядный ΠΊΠΎΠ΄ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:

KKKK

dddd

KKKK

Π‘ΡƒΠ»Π΅Π²Ρ‹ выраТСния рСгистра статуса (SREG)

I

T

H

S

V

N

Z

C

;

;

;

;

S:

N?V, Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ со Π·Π½Π°ΠΊΠΎΠΌ

V:

0 ΠžΡ‡ΠΈΡ‰Π΅Π½

N:

R7 УстанавливаСтся Ссли Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ установлСн MSB, Π² ΠΈΠ½ΠΎΠΌ случаС очищаСтся

Z:

Rd7*R6*R5*R4*R3*R2*R1*R0 УстанавливаСтся Ссли Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ $ 00, Π² ΠΈΠ½ΠΎΠΌ случаС очищаСтся

R:

(Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚)соотвСтствуСт Rd ΠΏΠΎΡΠ»Π΅ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

ori r16, $F0; Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ Π½ΠΈΠ±Π±Π» r16

ori r17, 1; Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΡ‚ 0 рСгистра r17

Π‘Π»ΠΎΠ²: 1 (2 Π±Π°ΠΉΡ‚Π°) Π¦ΠΈΠΊΠ»ΠΎΠ²: 1

Команда CPI — cΡ€Π°Π²Π½ΠΈΡ‚ΡŒ c ΠΊΠΎΠ½ΡΡ‚Π°Π½Ρ‚ΠΎΠΉ

ОписаниС:

Команда выполняСт сравнСниС содСрТимого рСгистра Rd Ρ ΠΊΠΎΠ½ΡΡ‚Π°Π½Ρ‚ΠΎΠΉ. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ рСгистра Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ‚ся. ПослС этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ условныС ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ:

(i)

Rd = K

Бинтаксис

ΠžΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹:

Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ:

(i)

CPI Rd, K

16 =< d =< 31, 0 < K <255

PC <- PC + 1

16-разрядный ΠΊΠΎΠ΄ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:

KKKK

dddd

KKKK

Π‘ΡƒΠ»Π΅Π²Ρ‹ выраТСния рСгистра статуса (SREG)

I

T

H

S

V

N

Z

C

;

;

H:

Rd3*K3+K3*R3+R3*Rd3 УстанавливаСтся Ссли Π΅ΡΡ‚ΡŒ Π·Π°Π΅ΠΌ ΠΈΠ· Π±ΠΈΡ‚Π° 3, Π² ΠΈΠ½ΠΎΠΌ случаС очищаСтся

S:

N?V, Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ со Π·Π½Π°ΠΊΠΎΠΌ

V:

Rd7*K7*R7+ Rd7*K7*R7 УстанавливаСтся Ссли Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ образуСтся ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ дополнСния Π΄ΠΎ Π΄Π²ΡƒΡ…, Π² ΠΈΠ½ΠΎΠΌ случаС очищаСтся

N:

R7 УстанавливаСтся Ссли Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ установлСн MSB, Π² ΠΈΠ½ΠΎΠΌ случаС очищаСтся

Z:

R7*R6*R5*R4*R3*R2*R1*R0 УстанавливаСтся Ссли Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ $ 00, Π² ΠΈΠ½ΠΎΠΌ случаС очищаСтся

C:

Rd7*K7+K7*R7+R7*Rd7 УстанавливаСтся Ссли Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ K Π±ΠΎΠ»ΡŒΡˆΠ΅ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ³ΠΎ значСния Rd, Π² ΠΈΠ½ΠΎΠΌ случаС очищаСтся

R:

(Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚) послС выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

cpi r19, 3; Π‘Ρ€Π°Π²Π½ΠΈΡ‚ΡŒ r19 с 3

brne error; ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Ссли r4 <> 3

error: nop; ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΏΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ (пустая опСрация) Π‘Π»ΠΎΠ²: 1 (2 Π±Π°ΠΉΡ‚Π°) Π¦ΠΈΠΊΠ»ΠΎΠ²: 1

Команда BRPL — ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Ссли плюс ОписаниС:

Условный ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄. ВСстируСтся Π±ΠΈΡ‚ Ρ„Π»Π°Π³Π° ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния (N) рСгистра статуса ΠΈ, Ссли Π±ΠΈΡ‚ ΠΎΡ‡ΠΈΡ‰Π΅Π½, выполняСтся ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ состояния счСтчика ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Данная ΠΊΠΎΠΌΠ°Π½Π΄Π° выполняСт ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² Π»ΡŽΠ±ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ состояния счСтчика ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ (PC-64 < Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ < PC+63). ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ k ΡΠ²Π»ΡΠ΅Ρ‚ся смСщСниСм ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ состояния счСтчика ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ Π² Ρ„ΠΎΡ€ΠΌΠ΅ дополнСния Π΄ΠΎ Π΄Π²ΡƒΡ…. (Команда эквивалСнтна BRBC 2, k).

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ:

(i)

If N = 0 then then PC <- PC + k +1, else PC <- PC +1

Бинтаксис

ΠžΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹:

Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ:

(i)

BRPL k

— 64 < k <+63

PC <- PC + k + 1 PC <- PC + 1, Ссли условия Π½Π΅ ΡΠΎΠ±Π»ΡŽΠ΄Π΅Π½Ρ‹

16-разрядный ΠΊΠΎΠ΄ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:

01kk

kkkk

k010

Π‘ΡƒΠ»Π΅Π²Ρ‹ выраТСния рСгистра статуса (SREG)

I

T

H

S

V

N

Z

C

;

;

;

;

;

;

;

;

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

subi r26, $ 50; Π’Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ $ 50 ΠΈΠ· r26

brpl positive; ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Ссли r26 ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»Π΅Π½

positive: nop; ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΏΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ (пустая опСрация) Π‘Π»ΠΎΠ²: 1 (2 Π±Π°ΠΉΡ‚Π°) Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΠ°ΠΌΡΡ‚ΡŒ Устройство I-8082W

Устройство I-8082W прСдставляСт собой 8 ΠΊΠ°Π½Π°Π»ΡŒΠ½Ρ‹ΠΉ частотный счСтчик ΠΈΠ»ΠΈ 8 ΠΊΠ°Π½Π°Π»ΡŒΠ½Ρ‹ΠΉ частотомСр. Π­Ρ‚ΠΎ устройство Π΄Π΅Ρ‚Π΅ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΡ‹, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° сигнала производится Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΈΡ…ΠΎΠ΄Π° спада (ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΈΠ· 1 Π² 0).

ВрСмСнная Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° Π’Π°ΠΊ ΠΊΠ°ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ устройства Π½Π΅ Π±Ρ‹Π»Π° Π½Π°ΠΉΠ΄Π΅Π½Π°, Ρ‚ΠΎ Π·Π° ΠΎΡΠ½ΠΎΠ²Ρƒ Π±Ρ‹Π» взято устройство I-8080. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² ΠΌΠΎΠ΅ΠΌ курсовом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ 8-ΠΊΠ°Π½Π°Π»ΡŒΠ½Ρ‹ΠΉ частотомСр (I-8082W), Ρ‚ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Π±ΡƒΠ΄Π΅Ρ‚ сводится ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ устройства I-8080.

На ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠ°Π½Π°Π»Π΅ стоит свой собствСнный 32 Π±ΠΈΡ‚Π½Ρ‹ΠΉ счСтчик.

Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄ устройства:

ЧастотомСр считаСт количСство ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠΎΠ² ΠΏΠΎΠ΄Π°Π½Π½Ρ‹Ρ… Π·Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° Π²Ρ…ΠΎΠ΄ A ΠΈΠ»ΠΈ B Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ, Ρ‚. Π΅. ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π²Ρ…ΠΎΠ΄ становится ΠΊΠ°Π½Π°Π»ΠΎΠΌ со ΡΠ²ΠΎΠΈΠΌ собствСнным счСтчиком. ВрСмя измСрСния (ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ считаСтся частота) ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π°Π²Π½Π° 0.33 сСкунды. Π­Ρ‚ΠΎ врСмя ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ.

Анализ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ модСлирования Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ взял Π½Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ исходныС тСксты Π²Ρ‹Π΄Π°Π²Π°Π²ΡˆΠΈΠ΅ΡΡ вмСстС с Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ, Π° ΡƒΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ внСсСнноС ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ (ΠœΠΈΡ…Π°ΠΉΠ»ΠΎΠ²) — надстройка графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (GUI). АрхитСктура ΠΆΠ΅ самой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΡΡ‚Π°Π»Π°ΡΡŒ ΠΏΠΎΡ‡Ρ‚ΠΈ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π½Π΅ ΡΡ‡ΠΈΡ‚ая Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… Π·Π°Π³Π»ΡƒΡˆΠ΅ΠΊ Π½Π° Π²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΠΈΡ… Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ с Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² Π»ΠΎΠ³.

ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Π» Π² ΡΠ΅Π±Ρ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Β· BasicDef. h — Маски ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ для ΠΈΡ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ, ΠΊΠΎΠ΄Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ ΠΌΠ°ΠΊΡ€ΠΎΡΡ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π»Π°Π³Π°ΠΌΠΈ SREG

Β· IODef — макросы для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°ΠΌΠΈ Π²Π²ΠΎΠ΄Π° Π²Ρ‹Π²ΠΎΠ΄Π°. АдрСса Π² ΠΌΠ°ΠΊΡ€ΠΎΡΠ°Ρ… ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ пространства Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°

Β· Core. h, Core. cpp — модСль ядра ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°.

Β· Π—Π΄Π΅ΡΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ Ρ‚Π°ΠΊΡ‚ΠΎΠ², ΠŸΠ°ΠΌΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Ρ‚. ΠΏ., ΠΎΠ±Ρ‰ΠΈΠ΅ для всСх Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ². ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π°Π³Π»ΡƒΡˆΠΊΠΈ всСх ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. РСализуСтся инициализация ΠΈ, Π½Π° ΠΌΠΎΠΉ взгляд, Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ умСстная Π² ΡΠ΄Ρ€Π΅ функция записи Π² Π»ΠΎΠ³.

Β· OutsideCore. h, OutsideCore. cpp — основной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» ΠΌΠΎΠ΄Π΅Π»ΠΈ. Запуск ΠΌΠΎΠ΄Π΅Π»ΠΈ, распознаваниС ассСмблСрных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈΠ· HEX ΠΊΠΎΠ΄Π° ΠΈ ΠΈΡ… Π·Π°ΠΏΡƒΡΠΊ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π΄Π°Π½Π½Ρ‹Ρ…, рСгистрами ΠΈ Ρ‚. ΠΏ. Π² Ρ‡Π°ΡΡ‚ности ΠΈΡ… Π²Ρ‹Π²ΠΎΠ΄ (Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ строк Π½Π° Π²Ρ‹Π²ΠΎΠ΄).

Π—Π΄Π΅ΡΡŒ ΠΆΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, содСрТащими исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² HEX Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅.

Β· Form1. h — GUI ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ Windows Forms.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ модСлирования Алгоритмы модСлирования ΠΊΠΎΠΌΠ°Π½Π΄ Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄ Π±Ρ‹Π» создан Ρ„Π°ΠΉΠ» a13. cpp, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±Ρ‹Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ исправныС макросы Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΎΠΌ состояния, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ макросы для выдСлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΊΠΎΠ΄Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (Код ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹) ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ»ΠΈΡΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса OCore:

1. void brpl ();

2. void ori ();

3. void cpi ();

4. void movw ();

5. void bst ();

6. void set ();

7. void ldx1();

8. void stx3();

Π‘Π»ΠΎΠΊ-схСмы Команда ORI

Команда CPI

Команда BRPL

Команда MOVW

Команда LD Rd, X

Команда STX, Rr

Команда BST

Команда SET

РСализация ΠΌΠΎΠ΄Π΅Π»ΠΈ внСшнСго устройства РСализация ΠΌΠΎΠ΄Π΅Π»ΠΈ внСшнСго устройства ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ соотвСтствиС ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌΡƒ повСдСнию устройства.

Π’Π°ΠΊ ΠΊΠ°ΠΊ I-8082W прСдставляСт 8 счСтчиков, Ρ‚ΠΎ Π±Ρ‹Π»ΠΈ смодСлированы всС 8 ΠΊΠ°Π½Π°Π»ΠΎΠ².

Для модСлирования ΠΏΠΎΡ‚ΠΎΠΊΠ° входящих Π² ΡƒΡΡ‚ройство Π΄Π°Π½Π½Ρ‹Ρ… — ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠΎΠ² напряТСния — принято Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ 1 ΠΈ 0 ΠΊΠ°ΠΊ сигнал высокого ΠΈ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня соотвСтствСнно. Π”Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ΄Π°ΡŽΡ‚ΡΡ строкой символов Ρ‡Π΅Ρ€Π΅Π· тСкстовоС ΠΏΠΎΠ»Π΅ GUI. НапримСр, модСль ΠΏΠΎΠ΄Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° Π²Ρ…ΠΎΠ΄ напряТСния высокого уровня с 2 ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ°ΠΌΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ:

Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ Π΄Π°Π½Π½ΠΎΠ³ΠΎ устройства 32 Π±ΠΈΡ‚Π½Ρ‹ΠΉ, Π° ΠΏΠΎΡ€Ρ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… Π² avr — 8 Π±ΠΈΡ‚Π½Ρ‹Π΅. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ сигналы, Π»ΠΈΠ±ΠΎ Π·Π°Π±ΠΈΠ²Π°Ρ‚ΡŒ всС 4 ΠΏΠΎΡ€Ρ‚Π° ΠœΠš. Π’ ΠΈΡ‚ΠΎΠ³Π΅ использовался ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ 32 Π±ΠΈΡ‚Π° это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ°Π½Π°Π»Π΅, Π° Π΅ΡΠ»ΠΈ понадобится ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠ°Π½Π°Π»Ρ‹, Ρ‚ΠΎ Π½Π° Π½ΠΈΡ… Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΈ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΌΠ΅Ρ‚ΡŒ это Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ. Π’ ΠΈΡ‚ΠΎΠ³Π΅ 1 ΠΏΠΎΡ€Ρ‚ (PORTA) Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Ρ‡Π΅Ρ€Π΅Π· Π½Π΅Π³ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ сигнала, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΡ€Ρ‚ (PORTB) ΠΊΠ°ΠΊ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… сигналов Π½Π° ΡƒΡΡ‚ройство сопряТСния.

МодСль устройства прСдставлСна Π² Ρ„Π°ΠΉΠ»Π°Ρ… I_8082W.h ΠΈ I_8082W.cpp ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом Π² Ρ„Π°ΠΉΠ»Π΅ I_8082W_Form.h

Π‘Π°ΠΉΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎΡ€Ρ‚Π° Π±Ρ‹Π» использован ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠŸΠ΅Ρ€Π²Ρ‹Π΅ 3 Π±ΠΈΡ‚Π° Π±Ρ‹Π»ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½Ρ‹ ΠΏΠΎΠ΄ ΠΊΠ°Π½Π°Π».

БоотвСтствСнно:

1 ΠΊΠ°Π½Π°Π»

2 ΠΊΠ°Π½Π°Π»

3 ΠΊΠ°Π½Π°Π»

4 ΠΊΠ°Π½Π°Π»

5 ΠΊΠ°Π½Π°Π»

6 ΠΊΠ°Π½Π°Π»

7 ΠΊΠ°Π½Π°Π»

8 ΠΊΠ°Π½Π°Π»

Если 4-ΠΉ Π±ΠΈΡ‚ установлСн Π² «1», Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ запись Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π°, ΠΈΠ½Π°Ρ‡Π΅ Ссли «0», Ρ‚ΠΎ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Π½ΠΈΠ΅.

5 ΠΈ 6 Π±ΠΈΡ‚Ρ‹: ΠŸΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΉ Π², А Π±Π°ΠΉΡ‚ счСтчика

7-ΠΉ Π±ΠΈΡ‚: Бброс Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΡ€Ρ‚Π°ΠΌΠΈ Π±Ρ‹Π»ΠΈ написаны ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ макросы:

#define CHANNEL (v) (v & 0×07)

#define READ_WRITE (v) ((v & 0×08) >> 3)

#define BYTE (v) ((v & 0×30) >> 4)

#define RESET (v) ((v & 0×40) >> 6)

Класс I_8082W содСрТит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‡Π»Π΅Π½Ρ‹:

//Бсылка Π½Π° ΡΠ΄Ρ€ΠΎ МК

OCore *_avr;

//ΠšΠ°Π½Π°Π»Ρ‹ устройства. Π’ Π΄Π°Π½Π½ΠΎΠΌ устройствС ΠΈΡ… 8.

channel *channels;

Класс channel содСрТит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‡Π»Π΅Π½Ρ‹:

//Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉ символ Π½Π° Π²Ρ…ΠΎΠ΄Π΅

char _curA;

//ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΏΠΎΠ΄Π°Π½Π½Ρ‹ΠΉ Π½Π° Π²Ρ…ΠΎΠ΄ символ

char _prevA;

//ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ Π² ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Π΅ ΠΏΠΎΠ΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… символов, Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ считаСтся частота

unsigned long _period;

//счСтчики ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠΎΠ² для частотомСра

unsigned int _impulseCount0;

//сколько Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ длятся Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ измСрСния частоты

unsigned int _stepsCount;

//Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ ΠΊΠ°Π½Π°Π»Π°

signed long _count0;

Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄ GUI

МодСль Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π¨Π°Π³» производится ΠΎΠ΄ΠΈΠ½ Ρ‚Π°ΠΊΡ‚ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, ΠΎΠ½ ΡΠΎΠΎΡ‚вСтствСнно выполняСт свою ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π° Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ I-8082W Π»Π΅Π²Ρ‹ΠΉ символ «ΡΡŠΠ΅Π΄Π°Π΅Ρ‚ΡΡ» модСлью ΠΈ ΠΏΠΎΠ΄Π°Π΅Ρ‚ся Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ I_8082W:step ().

Π’ ΡΡ‚ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅: Π—Π΄Π΅ΡΡŒ обрабатываСтся ΠΎΠ΄ΠΈΠ½ шаг ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚Π°ΠΊΡ‚ подсчитываСтся ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΡ‚ 1 ΠΊ 0(ΠΏΠΎΡ‚ΠΎΠΌ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ отобраТаСтся Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅). ПослС достиТСния Π½Π° ΡΡ‡Π΅Ρ‚Ρ‡ΠΈΠΊΠ΅ значСния _period — посчитанныС ΠΈΠΌΠΏΡƒΠ»ΡŒΡΡ‹ заносятся Π² ΡΡ‡Π΅Ρ‚Ρ‡ΠΈΠΊ. И ΠΏΠΎΠ΄ΡΡ‡Π΅Ρ‚ начинаСтся сначала.

ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ «ΠΠ²Ρ‚ΠΎΠΌΠ°Ρ‚» Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° file. txt, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ располоТСн Π² ΠΊΠΎΡ€Π½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Π”Π°Π½Π½Ρ‹Π΅ Π² Ρ„Π°ΠΉΠ»Π΅ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π’. Π΅ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ сигнал ΠΈ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π° находятся Π½Π° ΠΎΠ΄Π½ΠΎΠΉ строкС, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠΌ. НаТмСм Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ «ΠΠ²Ρ‚ΠΎΠΌΠ°Ρ‚» ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ Ρƒ Π½Π°Ρ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ»ΠΈΡΡŒ Π’Π°ΠΊ ΠΆΠ΅ прСдусмотрСн Ρ€ΡƒΡ‡Π½ΠΎΠΉ Ρ€Π΅ΠΆΠΈΠΌ заполнСния Π΄Π°Π½Π½Ρ‹Ρ…! ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ввСсти Π½ΡƒΠΆΠ½Ρ‹Π΅ Π΅ΠΌΡƒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ устройства. Для этого Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π³Π°Π»ΠΎΡ‡ΠΊΡƒ «Π ΡƒΡ‡Π½ΠΎΠΉ».

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» TEST. asm:

ori r17,2

cpi r18,$E7

brpl plus

ori r19,3

plus:

movw r16, r0

ld r4, x

stx, r3

bst r1,2

set

Π˜ΡΡ…ΠΎΠ΄Π½ΠΎΠ΅ состояниС памяти Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ„Π»Π°Π³ΠΎΠ²:

Π€Π»Π°Π³ΠΈ:

C

Z

N

V

S

H

T

I

ΠŸΠ°ΠΌΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…

1)ΠŸΠ΅Ρ€Π²Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°, которая Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° — ΠΊΠΎΠΌΠ°Π½Π΄Π° ORI (логичСскоС Π˜Π›Π˜ ΠΌΠ΅ΠΆΠ΄Ρƒ рСгистром ΠΈ ΠΊΠΎΠ½ΡΡ‚Π°Π½Ρ‚ΠΎΠΉ):

ori r17, 2

РСгистр: r17 = 0xC0

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π°: 2

Rez = r17 | 2 = 0xC0 | 2 = 0xC2

ВычислСнный Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ r17.

БостояниС памяти Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ„Π»Π°Π³ΠΎΠ² послС выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

Π€Π»Π°Π³ΠΈ:

C

Z

N

V

S

H

T

I

Π€Π»Π°Π³ N ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ Π² Π΅Π΄ΠΈΠ½ΠΈΡ‡ΠΊΡƒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ рСгистр Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 1 Π±Π°ΠΉΡ‚ ΠΈ Π² ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΌ разрядС Π±ΡƒΠ΄Π΅Ρ‚ Π΅Π΄ΠΈΠ½ΠΈΡ†Π°. ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π»Π°Π³ΠΈ останутся Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌΠΈ ΠΊΠ°ΠΊ Π² ΠΈΡΡ…ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

ΠŸΠ°ΠΌΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… Π’ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π΅ r17 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ измСнилось ΠΈ Ρ€Π°Π²Π½ΠΎ 0xΠ‘2

2) 2 ΠΊΠΎΠΌΠ°Π½Π΄Π° cpi r18,$E7.

ПослС выполнСния этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ содСрТимоС рСгистра Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ся, Π° Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ лишь Ρ„Π»Π°Π³ΠΈ.

r18 = 0×13; K = $E7;

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ сравнСния: Rez = 0×13 -0xE7 = 0x2C = 44 = 0010 1100

Π€Π»Π°Π³ΠΈ:

C

Z

N

V

H

T

Π’Π°ΠΊ ΠΊΠ°ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ получится ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠΉ, Ρ„Π»Π°Π³ N = 0 ΠΈ Z = 0. Π’Π°ΠΊ ΠΊΠ°ΠΊ получится ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Ρ‚ΠΎ Π‘ ΡƒΡΡ‚ановится Π² «1». Π€Π»Π°Π³ «Π’» Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ‚ся.

3) brpl plus

ori r19,3

plus:

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ ΠΌΠ΅Ρ‚ΠΊΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ осущСствлСн Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ рСгистра «N» Ρ€Π°Π²Π½ΠΎ «0». Π’Π°ΠΊ ΠΊΠ°ΠΊ сСйчас Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ рСгистра N = 0, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ ΠΌΠ΅Ρ‚ΠΊΠ΅ «plus» Π±ΡƒΠ΄Π΅Ρ‚ осущСствлСн ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° ori r19,3 Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ся.

Π€Π»Π°Π³ΠΈ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ся!

4) movw r16, r0.

ΠšΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ содСрТимоС рСгистровой ΠΏΠ°Ρ€Ρ‹ r0: r1 Π² r16:17.

ЗначСния рСгистров Π΄ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ:

r0

r1

r16

r17

0xC

0xC0

0x14

0xC2

ЗначСния рСгистров послС выполнСния:

r0

r1

r16

r17

0xC

0xC0

0xC

0xC0

5) ld r4, x — КосвСнноС считываниС ΠΈΠ· ΠΏΠ°ΠΌΡΡ‚ΠΈ Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ Π˜Π½Π΄Π΅ΠΊΡΠ½Ρ‹ΠΉ рСгистр «Π₯» располагаСтся Π² 26 ΠΈ 27 рСгистрС, Π½ΠΎ Ρ‚Π°ΠΌ ΡΡ‚Π°Ρ€ΡˆΠ°Ρ ΠΈ ΠΌΠ»Π°Π΄ΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ

Младшая Ρ‡Π°ΡΡ‚ΡŒ

Π‘Ρ‚Π°Ρ€ΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡ… ΡΠ½Π°Ρ‡Π°Π»Π° ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ мСстами. Для этого ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ :

short X = ((short)reg[27] << 8) | reg[26];

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π₯ = 0×2411. И ΠΏΠΎΡ‚ΠΎΠΌ записываСм Π² r4 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ dmem[11].

Π€Π»Π°Π³ΠΈ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ся!

6)stx, r3 — КосвСнная запись Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΡ€Π΅Π΄Π΄Π΅ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠΌ Π₯ = 0×2411;

r3 = 0xC0;

//Π’ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΠΎ Π°Π΄Ρ€Π΅ΡΡƒ Π₯ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Π΅ΠΌ рСгистр Rr

dmem[X] = Rr;

Π€Π»Π°Π³ΠΈ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ся!

7)bst r1, 2

УстанавливаСм 2 Π±ΠΈΡ‚ рСгистра r1 Π²ΠΎ Ρ„Π»Π°Π³ Π’.

r1 = 0xc0 = 1 100 000 => r1[2] = 0. ΠžΡ‚ΡΡŽΠ΄Π° слСдуСт Ρ‡Ρ‚ΠΎ Π²ΠΎ Ρ„Π»Π°Π³ Π’ Π±ΡƒΠ΄Π΅Ρ‚ записан ноль.

8)set

УстанавливаСм Ρ„Π»Π°Π³ Π’ Π² Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ.

SET_T (1);

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄

#include «OutsideCore.h»

////——————————————————————————————-;

//// Код ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ORI: 0110 kkkk dddd kkkk

////——————————————————————————————-;

#define REG_D_ORI ((cmd & 0×00F0) >> 4)

#define K_ORI ((cmd & 0×000F) + ((cmd & 0x0F00) >> 4))

////——————————————————————————————-;

//// Код ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ CPI: 0011 kkkk dddd kkkk

////——————————————————————————————-;

#define REG_D_CPI ((cmd & 0×00F0) >> 4)

#define K_CPI ((cmd & 0×000F) + ((cmd & 0x0F00) >> 4))

////——————————————————————————————-;

//// Код ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ BRPL: 1111 01kk kkkk k010

////——————————————————————————————-;

#define K_BRPL (((cmd & 0×03F8) >> 3))

////——————————————————————————————-;

//// Код ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ LDX1: 1001 000d dddd 1100

////——————————————————————————————-;

#define REG_D_LDX1 ((cmd & 0×01F0) >> 4)

////——————————————————————————————-;

//// Код ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ STX3: 1001 001r rrrr 1110

////——————————————————————————————-;

#define REG_R_STX3 ((cmd & 0×01F0) >> 4)

////——————————————————————————————-;

//// Код ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ MOVW: 0000 0001 dddd rrrr

////——————————————————————————————-;

#define REG_D_MOVW ((cmd & 0×00F0) >> 4)

#define REG_R_MOVW (cmd & 0×000F)

////——————————————————————————————-;

//// Код ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ BST: 1111 101d dddd 0bbb

////——————————————————————————————-;

#define REG_D_BST ((cmd & 0×01F0) >> 4)

#define B_BST (cmd & 0×0007)

//————————————————————————;

//—- ЛогичСскоС Π˜Π›Π˜ ΠΌΠ΅ΠΆΠ΄Ρƒ рСгистром ΠΈ ΠΊΠΎΠ½ΡΡ‚Π°Π½Ρ‚ΠΎΠΉ ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ назначСния Rd

//—- Команда: ORI Rd, K

//—- Π€Π»Π°Π³ΠΈ: Z, N, V

//—- Π¦ΠΈΠΊΠ»ΠΎΠ²: 1

//————————————————————————;

void OCore: ori ()

//Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅ΠΌ Rd

USC Rd = reg[REG_D_ORI + 16];

//Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅ΠΌ константу К

signed short K = K_ORI;

USC Rez = Rd

//————————————————————————;

//—- Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ рСгистра с ΠΊΠΎΠ½ΡΡ‚Π°Π½Ρ‚ΠΎΠΉ

//—- Команда: CPI Rd, K

//—- Π€Π»Π°Π³ΠΈ: Z, N, V, C, H

//—- Π¦ΠΈΠΊΠ»ΠΎΠ²: 1

//————————————————————————;

void OCore: cpi ()

//————————————————————————;

//—- ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄, Ссли плюс

//—- Команда: BRPL K

//—- Π€Π»Π°Π³ΠΈ: НСт

//—- Π¦ΠΈΠΊΠ»ΠΎΠ²: 1 / 2

//————————————————————————;

void OCore: brpl (){

signed short k = K_BRPL;

if (SREG_N == 0) {

pc += k;

clock += 2;

}

else

{

clock++;

}

outLog («brpl»);

}

//————————————————————————;

//—- ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ слова ΠΌΠ΅ΠΆΠ΄Ρƒ рСгистрами

//—- Команда: MOVW Rd, Rr

//—- Π€Π»Π°Π³ΠΈ: НСт

//—- Π¦ΠΈΠΊΠ»ΠΎΠ²: 1

//————————————————————————;

void OCore: movw (){

USC Rr0 = reg[REG_R_MOVW];

USC Rr1 = reg[REG_R_MOVW + 1];

reg[REG_D_MOVW << 1] = Rr0;

reg[(REG_D_MOVW << 1)+ 1] = Rr1;

clock += 1;

outLog («movw»);

}

//————————————————————————;

//—- КосвСнноС считываниС ΠΈΠ· ΠΏΠ°ΠΌΡΡ‚ΠΈ Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€

//—- Команда: LD Rd, X

//—- Π€Π»Π°Π³ΠΈ: НСт

//—- Π¦ΠΈΠΊΠ»ΠΎΠ²: 2

//————————————————————————;

void OCore: ldx1() reg[26];

reg[REG_D_LDX1] = dmem[X];

clock += 2;

outLog («ldx1»);

//————————————————————————;

//—- ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π΄Π΅ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ ΠΈ ΠΊΠΎΡΠ²Π΅Π½Π½Π°Ρ запись

//—- Команда: STX, Rr

//—- Π€Π»Π°Π³ΠΈ: НСт

//—- Π¦ΠΈΠΊΠ»ΠΎΠ²: 2

//————————————————————————;

void OCore: stx3()

short X = ((short)reg[27] << 8)

//————————————————————————;

//—- Π—Π°ΠΏΠΈΡΡŒ Π±ΠΈΡ‚Π° рСгистра Π² T

//—- Команда: BST Rr, b

//—- Π€Π»Π°Π³ΠΈ: Π’

//—- Π¦ΠΈΠΊΠ»ΠΎΠ²: 1

//————————————————————————;

void OCore: bst (){

USC Rr = reg[REG_D_BST];

USC B = B_BST;

SET_T ((Rr >> B) & 0×0001);

clock++;

outLog («bst»);

}

//————————————————————————;

//—- Установка Ρ„Π»Π°Π³Π° T Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π΅ SREG

//—- Команда: SET

//—- Π€Π»Π°Π³ΠΈ: Π’

//—- Π¦ΠΈΠΊΠ»ΠΎΠ²: 1

//————————————————————————;

void OCore: set (){

SET_T (1);

clock++;

outLog («set»);

}

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