Intel MCS-51: відмінності між версіями

[неперевірена версія][неперевірена версія]
Вилучено вміст Додано вміст
Danbst (обговорення | внесок)
Рядок 61:
{{Section stub}}
== Таблиця регістрів спеціальних функцій ==
[[Зображення:MFrey_SFR_MCS-51.svg|Розміщення регістрів спеціальних функцій у віртуальній пам'яті мікроконтролера|thumb]]
{| border="10" cellpadding="2"
!Позначення||Найменування||Адреса||Поч. значення||Примітка
|-
|bgcolor=#FF6620|'''ACC'''||Акумулятор||E0H||00H||Даний регістр означає те саме, що і A при програмуванні на асемблері, проте позначення А вказує на роботу з акумулятором, а позначення ACC вказує на роботу з байтом пам'яті. Відповідно, використання мнемоніки A дозволяє скоротити довжину інструкції.
|ACC||Акумулятор||0E0H
|-
|bgcolor=#FF6620|'''B'''||Регістр B||F0H||00H||Регістр використовується мікроконтролером тільки в операціях множення/ділення. В усіх інших операціях його можна використовувати як загальний регістр
|B||Регістр B||0F0H
|-
|bgcolor=#FF6620|'''PSW'''||Регістр станастану програми||0D0HD0H||00H||Його аналог у х86 — регістр прапорців FLAGS
|-
|'''SP'''||Покажчик стеку||81H||bgcolor=#DDDDDD|07H||
|-
|'''DPL'''||Молодший байт покажчика даних||82H||00H||rowspan=2| Дані регістри формують один 16-бітний віртуальний регістр DPTR.
|DPTR||Покажчик даних. 2 байти:
|-
|'''DPH'''||Старший байт покажчика даних||83Н||00H
|DPL||Молодший байт||82H
|-
|bgcolor=#FF6620|'''P0'''||Порт 0||80H||bgcolor=#DDDDDD|FFH||rowspan=4|Регістри-защіпки портів вводу-виводу
|DPH||Старший байт||83Н
|-
|P0bgcolor=#FF6620|'''P1'''||Порт 01||90H||bgcolor=#DDDDDD|80HFFH
|-
|P1bgcolor=#FF6620|'''P2'''||Порт 12||A0H||bgcolor=#DDDDDD|90HFFH
|-
|P2bgcolor=#FF6620|'''P3'''||Порт 23||B0H||bgcolor=#DDDDDD|0A0HFFH
|-
|bgcolor=#FF6620|'''IP'''||Регістр пріоритетів переривань||B8H||bgcolor=#DDDDDD|XXX00000b
|P3||Порт 3||0B0H
|-
|IPbgcolor=#FF6620|'''IE'''||Регістр пріоритетівдозволу переривань||0B8HA8H||bgcolor=#DDDDDD|0XX00000b
|-
|IE'''TMOD'''||Регістр дозволурежимів перериваньтаймера/лічильника||0A8H89H||00H
|-
|TMODbgcolor=#FF6620|'''TCON'''||Регістр режимівкерування таймера/лічильника||89H88H||00H
|-
|TL1'''TH0'''||Таймер/лічильник 10 (молодшийстарший байт)||8BH8CH||00H
|TCON||Регістр керування таймера/лічильника||88H
|-
|TH0'''TL0'''||Таймер/лічильник 0 (старшиймолодший байт)||8CH8AH||00H
|-
|TL0'''TH1'''||Таймер/лічильник 01 (молодшийстарший байт)||8AH8DH||00H
|-
|TH1'''TL1'''||Таймер/лічильник 1 (старшиймолодший байт)||8DH8BH||00H
|-
|bgcolor=#FF6620|'''SCON'''||Керування послідовним портом||98H||00H
|TL1||Таймер/лічильник 1 (молодший байт)||8BH
|-
|'''SBUF'''||Буфер послідовного порту||99H||bgcolor=#DDDDDD|Невизначено||Даний регістр, як і DPTR, є також віртуальним. При читанні замість даного регістру підставляється буфер приймача, при записі - буфер передавача. Дані буфери програмно недоступні (щоб програміст не зміг записати у буфер приймача і читати з буфера передавача), проте SBUF — доступний.
|SCON||Керування послідовним портом||98H
|-
|'''PCON'''||Керування енергоспоживанням||87H||bgcolor=#DDDDDD|[[n-МОН]] 0XXXXXXX
|SBUF||Буфер послідовного порту||99H
[[КМОН]] 0XXX0000
|-
|PCON||Керування енергоспоживанням||87H
|}
{{Section stub}}
 
== Система команд ==
{{Section stub}}