Гребнев В.В. - Микроконтроллеры семейства AVR фирмы Atmel (1044208), страница 5
Текст из файла (страница 5)
Функция счета реального времени (Яеа1 Т~те йос1) реализуется в таймере-счетчике при использовании дополнительного внутреннего генератора с внешним кварцевым резонатором с частотой 32768 Гц ("часовой" кварц). При этом параметры процессов в таймере-счетчике с высокой точностью привязаны к единице измерения реального времени — секунде. В зависимости от разрядности счетчика и выполняемых дополнительных функций могут быть выделены пять типов таймеров-счетчиков общего назначения, входящих в группу периферийных устройств микроконтроллеров семейства АЧК.
Тип А. Восьмиразрядный таймер-счетчик без дополнительных функций. Тип В. Восьмиразрядный таймер-счетчик с функцией сравнения/РЧ~М. Тип С. Восьмиразрядный таймер-счетчик с функцией сравнения/РЪЧМ и функцией счета реального времени. Тип Р. Шестнадцатиразрядный таймер-счетчик с функциями захвата и сравнения/РЮМ, Тип Е.
Шестнадцатиразрядный таймер-счетчик с функцией захвата и двумя каналами для выполнения функций сравнения/РттМ. В табл. 1.1, в колонках Т/СО, Т/С1 и Т/С2 указаны типы таймеров- счетчиков, входящих в группу периферийных устройств под этими именами у микроконтроллеров разных типов. Таймер-счетчик одного типа в микроконтроллерах разных типов может иметь разные имена. Сторожевой таймер (иагсЬаод Т~тег, 'иЗТ) предназначен для ликвидации последствий сбоя в ходе программы путем перезапуска микроконтроллера при обнаружении сбоя. Сторожевой таймер имеется у микроконтроллеров всех типов. Структура микроконтроллера Аналого-цифровой преобразователь (Лпа(од-го-0(фга( Сот~еггег) формирует десятиразрядный двоичный код числа, пропорционального величине напряжения аналогового сигнала на входе микроконтроллера. В микроконтроллерах АЧВ.
к преобразователю могут подключаться от четырех до восьми входов микроконтроллера. Аналого-цифровой преобразователь входит в состав периферийных устройств микроконтроллеров типа г15, 4433, 8535, т163 и гп103. Число подключаемых входов у микроконтроллеров названных типов указано в табл.
1.1, в колонке А1)С. Аналого-цифровой компаратор (Лпа(о(т Сотрагагоп АС) сравнивает по величине аналоговые сигналы, поступающие на два входа микроконтроллера, и формирует запрос прерывания АХА СОМР когда разность их значений меняет знак. При этом также может быть выдан сигнал для выполнения функции захвата в таймере-счстчикс общего назначения. Аналоговый компаратор входит в состав перифершшых устройств микроконтроллеров всех типов, кроме 2323 и 2343 (табл. 1.1, колонка АС).
Программируемый аппаратный модулятор (Рто8гаттаЫе Нап(гаге Моди(агог, РНМ) предназначен для формирования импульсного сигнала на выводе РА2 для питания светодиодных индикаторов. Длительность импульса и скважность сигнала задаются программными средствами. Ток нагрузки может иметь величину до 25 мА при напряжении питания 1,8 В.
Программируемый аппаратный модулятор имеется у микроконтроллеров типа 128. Блок прерываний (1пгеп.ирг ~'п(г, 111) организует переход к выполнению прерывающей программы при поступлении запроса прерывания, если прерывание по данному запросу разрешено и он имеет более высокий приоритет, чем другие запросы, поступившие одновременно с ним. Прерывание разрешено, если разряд 1 регистра ЖЕС находится в единичном состоянии и в единичном состоянии находится разряд, разрешающий/запрещающий прерывание по данному запросу, расположенный в одном из регистров ввода-вывода. Приоритетность запросов задана аппаратно.
При переходе к выполнению прерывающей программы разряд 1 регистра ЯЕЕС сбрасывается в нулевое состояние и сохраняется в этом состоянии до завершения прерывающей программы. Разряд 1 может быть переведен в единичное состояние по команде в прерывающей программе. Запросы в блок прерываний поступают из внешних источников и источников, расположенных во внутрсшгнх устройствах микроконтроллера, Общее число запросов прерывания у микроконтроллеров разных типов указано в табл.
1.1, в колонке Ш. Глава 2 Система команд 2. 1. Общие сведения о системе команд В семействе АЧК система команд у микроконтроллеров разных типов содержат от 89 до 130 команд (табл. В1, колонка ХК). У микроконтроллеров типа 2323, 2343, 2313, 4433, 8515 и 8535 в систему команд входят 118 команд. Эту систему команд будем называть базовой. В табл. 2.1 — 2.13 описаны операции, выполняемые по командам базовой системы, и приведены мнемокоды команд, используемые при разработке программы на языке АЧК Ассемблера.
В таблицах дана сквозная нумерация команд, используемая далее в тексте, Базовая система команд содержит: ° 33 команды регистровых операций, при выполнении которых используются только регистры общего назначения (команды ХоМо 1 — 33); ° 26 команд с обращением по адресу в адресном пространстве ЖАМ (команды ХеХо 34 — 59); ° 2 команды с обращением к регистрам ввода-вывода (команды ХеХе 60 и 61); ° 1 команда с обращением к НазЬКОМ (команда Хе 62); ° 22 команды операций с битами в разрядах регистров общего назначения и регистров ввода-вывода (команды ХоХо 63 — 84); ° 34 команды управления ходом программы (команды ХеХе 85 — 118).
Система команд В систему команд микроконтроллеров типа г11, т.12, т15, 1200 и т28, которых нет ЖАМ, не входят команды с обращением по адресу в тдресном пространстве ЖАМ за исключением команд с мнемокодами 1Р В,,~, Х (№ 40) и ЯТ Х, К„(№ 41), по которым производится юращение к регистрам общего назначения и регистрам ввода-вывода использованием косвенной адресации. В систему команд у зтпх микроконтроллеров не входят также 2 команды регистровых операций ~№№ 32 и 33) и две команды управления ходом программы (№№ 86 ~ 88). У микроконтроллеров типа 1200 в систему команд не входит также команда с обращением к НазЬКОМ (№ 62). В систему команд микроконтроллеров типа гп163 и гв103 входят дополнительные команды.
Появление некоторых из них связано с увеличенным объемом Г1азЬКОМ, а у микроконтроллера типа гп163, кроме того, с наличием аппаратного умножптеля. Дополнительные команды рассматриваются в п. 2.8. При разработке программы работы микроконтроллера кроме мнемокодов команд используются директивы ассемблера и другие средства ассемблера. Особенности разработки программы на языке АЪ'К Ассемблера фирмы Агте/ рассмотрены в приложении П8. грабли ца 2. 1 Система команд Таблица 2.4 27 Мнемокод команды Мнемокод команды Операция Операция ВТВ 1с, й, (й) ЯчК (ЯчК) Нв 108 йв, К б, г - 0 — 31; к — адрес из адресного пространства ЯНАМ Таблица 2.5 Мнемокод команды Мнемокод команды Операция 37 (Н ) Яч(Х) 39 (й,)- Яч(У) 36 38 40 43 42 ВТ У+, й„ 1.0 Н~, У+ 44 ВТЕ+, й, 1.0 Н„, Е+ 47 1.
(Х)-1 Х 2. (Н,) Яч(Х) ВТ вЂ” Х, й, 1-0 НФ -Х 49 48 1. (У)-1 У 2. (Н,) Яч(У) 1. (У)-1 У 2.(Яч(У)) Н ЯТ вЂ” У, й, 1-0 йв 50 1. (Л)-1- Е 2. (Н,) Яч(2) 1. (Е)-1- Е 2. (Яч(Е))- йв 53 52 (й,) Яч(У)+ц (й,) Яч(2)+ц (Яч(У)+ц) йд (Яч(Е)+ц)- йб 55 54 57 56 1. (Н,) СТЕК 2. (ВР)-1 ВР 1. (ЯР)+1 ВР 2, (СТЕК) йв г1,г 0 — 31 ц Π— 63 Таблица 2.б Мнемокод команды Мнемокод команды Ме Операция Операция 00Т Р, й, (Р,) Ргр 1МН,,Р (РГР) йб 60 д, г = 0 — 31; Р 0 — 63 - $00 — ЗЗЕ Операция (Яч(Х)) йс (Яч(У)) й (Яч(Е)) Нв 1.
(Яч(Х)) й 2. (Х)+1 Х 1. (Яч(У)) йв 2. (У)+1- У 1. (Яч(Е)) й, 2. (с)+1 2 1. (Х)-1- Х 2. (Яч(Х))-й, 1.0Н,,Х 10Н,,У 1.0 й,, Е 10Н,, Х+ 10 Н~, -7 1.00 й,, У+ц 100 йв, Е+ц РОР й, ! (Н„) Яч(Е) 1. (Н„) Яч(Х) 2. (Х)+1 Х 1. (Н,) Яч(У) 2. (У)+1- У 1. (Н,) Яч(2) 2. (Е)+1 2 ЯТХ, й, ВТУ, й, ВТЕ, й, ЯТХ+, й, ВТ вЂ” Е, й, ВТ0 У+ц, й, ВТ0 Е+ц, й, РОВН Н, Глава 2 28 Табли ца 2.7 Операция (Яч(Е)) ЯО 62 (.РМ Табли ца 2.8 Табли ца 2.9 К -2048 — +2047 б, г = 0 — 31; Р - 0 — 31 (!); Ь = 0 — 7 Таблица 2, ) О Мнемокод команды (Е.16-1) — адрес в Р!авЬВОМ Е.О - Π— мл. байт; Е.О - 1 — ст.
байт Систвма команд Табли ца 2. 11 К -64 — +63; Ь 0-7 Табли ца 2. 12 с1, г-0-31; Р-0 — 31 (!); Ь 0 — 7 Таблица 2. 13 2.2. Команды регистровых операций В группу регистровых операций входят пересылочные, арифметические и логические операции. Команды регистровых операций описаны в табл. 2.1, 2.2 и 2.3.
Машинные коды всех команд регистровых операций имеют формат "слово", команды №№ 1 — 31 выполняются за один такт, а команды №№ 32 и 33 — за два такта. При описании операций в табл. 2,1 — 2.3 используются следующие обозначения: Глава 2 ° К~, ʄ— регистры общего назначения с номерами с1 и г соответственно; ° (К~), (К,) — байты в регистрах К~ и К,. соответственно; ° К~.Ь вЂ” разряд Ь (Ь = 0 — 7) регистра К~, бит в разряде К4.Ь; ° 3 — указатель шестнадцатеричного кода; ° л, ч, О+ — знаки логических операций И, ИЛИ, исключающее ИЛИ соответственно; ° ( ),( ),( ) — знаки операций НЕ, сдвиг кода вправо, сдвиг кода влево соответственно, Арифметические операции — сложение и вычитание — могут вы- полняться с числами без знака в двоичном коде и с числами со знаком в дополнительном двоичном коде.
В отличие от микроконтроллеров многих других семейств, в которых вычитание сводится к сложеншо с числом с измененным знаком (Х вЂ” 1' = Х + (-У )), в микроконтроллерах семейства АЧК вычитание выполнястся с помощью аппаратного дво- ичного вычитателя. Работа двоичного вычитателя рассмотрена в приложении П?. Прп выполнении арифметических и логических операций кроме кода результата формируются значения признаков результата.
При выпол- нении операций сравнения (команды Хоев 18, 19 и 27) формируются только значения признаков результата. Значения признаков результата представлены состоянием разрядов регистра состояния КУКЕС (М~ 33Г). Используются шесть признаков результата, которым присвоены имена С (ЖЕС.О), Х (ЯКЕС.1) Х (КУКЕС.2), Ъ' (ЖЕС.З), Я (ЖЕС.4) и Н (КУКЕС.5). В табл.
2.1 — 2.3 признаки, значения которых формируются ири выполнении команд, отмечены знаком "+" или указано их значение. При выполнении разных операций значение признаков формируются по разным правилам. Признак С принимает единичное значение: ° при появлении единицы переноса пз старшего разряда при выполнении операции сложения (команды %Хо 14, 15 и 32); ° при появлении единицы займа в старший разряд при выполнении операции вычитания (команды ММ 4, 16, 17, 18, 19, 25, 26, 27 и 33); ° при выходе единицы за пределы разрядной сетки при выполнении операции сдвига (команды МХе 7, 8, 9, 10 и 11). Единичное значение признака С при выполнении операций сложения и вычитания с числами без знака свидетельствует о получении непра- вильного результата операции вследствие переполнения разрядной сетки.