Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
bilety_12.docx
Скачиваний:
12
Добавлен:
01.03.2025
Размер:
433.8 Кб
Скачать

23 Билет

1 При проектуванні мікроконтролерів доводиться дотримувати баланс між розмірами і вартістю з одного боку і гнучкістю і продуктивністю з іншою. Для різних застосувань оптимальне співвідношення цих і інших параметрів може розрізнятися дуже сильно. Тому існує величезна кількість типів мікроконтролерів, що відрізняються архітектурою процесорного модуля, розміром і типом вбудованої пам'яті, набором периферійних пристроїв, типом корпусу.

В той час, як 8-розрядні процесори загального призначення повністю витиснені продуктивнішими моделями, 8-розрядні мікроконтролери продовжують широко використовуватися. Це пояснюється тим, що існує велика кількість застосувань, в яких не потрібна висока продуктивність, але важлива низька вартість. В той же час, є мікроконтролери, з більшими обчислювальними можливостями, наприклад цифрові сигнальні процесори.

Обмеження за ціною і енергоспоживанням стримують також зростання тактової частоти контроллерів. Хоча виробники прагнуть забезпечити роботу своїх виробів на високих частотах, вони, в той же час, надають замовникам вибір, випускаючи модифікації, розраховані на різні частоти і напругу живлення. У багатьох моделях мікроконтролерів використовується статична пам'ять для ОЗП і внутрішніх регістрів. Це дає контролеру можливість працювати на менших частотах і навіть не втрачати дані при повній зупинці тактового генератора. Часто передбачені різні режими енергозбереження, в яких відключається частина периферійних пристроїв і обчислювальний модуль.

Окрім ОЗП, мікроконтролер може мати вбудовану незалежну пам'ять для зберігання програми і даних. У багатьох контролерах взагалі немає шин для підключення зовнішньої пам'яті. Найбільш дешеві типи пам'яті допускають лише одноразовий запис. Такі пристрої підходять для масового виробництва в тих випадках, коли програма контролера не оновлюватиметься. Інші модифікації контролерів мають можливість багатократного перезапису незалежної пам'яті. На відміну від процесорів загального призначення, в мікроконтролерах часто використовується гарвардська архітектура.

  1. Визначення макровизначення. Команди препроцесора пов’язані з макровизначеннями.

Одно из самых мощных языковых средств ассемблера — макроопределения. Макроопределением (или макросом) называется участок программы, которому присвоено имя и который ассемблируется всякий раз, когда ассемблер встречает это имя в тексте программы. Макрос начинается директивой MACRO и заканчивается ENDM. Например: пусть описано макроопределение hex2ascii, переводящее шестнадцатеричное число, находящееся в регистре AL, в ASCII-код соответствующей шестнадцатеричной цифры:

hex2ascii macro

cmp al,10

sbb al,69h

das

endm

Теперь в программе можно использовать слово hex2ascii, как если бы это было имя команды, и ассемблер заменит каждое такое слово на три команды, содержащиеся в макроопределении. Разумеется, можно оформить этот же участок кода в виде процедуры и вызывать его командой CALL — если процедура вызывается больше одного раза, этот вариант программы займет меньше места, но вариант с макроопределением станет выполняться быстрее, так как в нем не будет лишних команд CALL и RET. Однако скорость выполнения — не главное преимущество макросов. В отличие от процедур макроопределения могут вызываться с параметрами, следовательно, в зависимости от ситуации, включаемый код будет немного различаться, например:

s_mov macro register1,register2

push register1

pop register2

endm

Теперь можно использовать S_MOV вместо команды MOV для того, чтобы скопировать значение из одного сегментного регистра в другой.

Следующее важное средство, использующееся в макроопределениях, — директивы условного ассемблирования. Например: напишем макрос, выполняющий умножение регистра AX на число, причем, если множитель — степень двойки, то умножение будет выполняться более быстрой командой сдвига влево.

fast_mul macro number

if number eq 2

shl ax,1 ; Умножение на 2

elseif number eq 4

shl ax,2 ; Умножение на 4

elseif number eq 8

shl ax,3 ; Умножение на 8

... ; Аналогично вплоть до:

elseif number eq 32768

shl ax,15 ; Умножение на 32768

else

mov dx,number ; Умножение на число, не являющееся

mul dx ; степенью двойки.

endif

endm

  1. Режими 0 і 1 таймера МК-51.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]