Главная » Просмотр файлов » Хартов В.Я. Микроконтроллеры AVR. Практикум для начинающих (2007)

Хартов В.Я. Микроконтроллеры AVR. Практикум для начинающих (2007) (1264222), страница 13

Файл №1264222 Хартов В.Я. Микроконтроллеры AVR. Практикум для начинающих (2007) (Хартов В.Я. Микроконтроллеры AVR. Практикум для начинающих (2007)) 13 страницаХартов В.Я. Микроконтроллеры AVR. Практикум для начинающих (2007) (1264222) страница 132021-07-29СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 13)

б, Прогриммироеание арифметическими операций 79 обнуляем частное результат 8-разрядный сдвиг вычитание делителя если остаток < О,переход иначе установка разряда частного в 1 операнда ля вывода переход для загрузки операндов сброс после 1-го входа запись кода операции деление? 01Ч: с1т тев 1с)1 соцпт Ььт,8 Ь4: то1 ор А го1 ор АН делимого 1в1 тев ;сдвиг частного вцЬ ор АН,ор В Ьгсв гесоч 161 Сешр,Ох01 ог гев, тешр гбшр 15 гесоч: ас)с( ор АН,ор В ; и восстановление остатка Ь5с "бес соцпт Ььт Ьгпе ь4 шоч впон1, гев ;выводимые значения — частное шоч впон2,ор АН ; и остаток Ь5:тес ;*** Обмен тетрадами *** тев'с ВИАР: вЬ1с Р1НР,ЯИ ВИАР ;проверка кнопки гзшр чц1С ) ВИАР(ЯИ4) виар оретапс) ;обмен тетрадами сош орегапс( инвертирование д опт РОНТВ,оретапс) ; на светодиоды сош орегапб ;инвертирование гса11 РЕЬАУ ;задержка наьт: вЬьв Р1ХР,ЯИ ЯХАР тЗшр наьт чц1г: пор тес ;*** Подпрограмма ввода байта от кнопки с уменьшением счетчика нажатий после каждой записи тевс ХН: вбфс Р1НР,ЯИ ХН ;проверка кнопки ГЗШР и Чц11 ) ИН(ЯИ5) тса11 РЕЬАУ ;задержка ср1 вешаТот,1 Ьтпе нЗ с1т вешагог шоч сор,оретапс( срь сор,4 Ьтеч н с)1ч 1сь сапог,з ;если нет, счетчик записи = 3 гЗшр с1еаг и с)1ч: 101 соцпт,4 ;иначе счетчик записи = 4 тЗшр с1еаг 80 3.

Арифметическая обработка данных 3.б. Програииирование арифметических операций 81 чз: ср1 сочно,З Ьхое ч2 ;переходы по значению счетчика пот ор Ан,орехаос!;запись первого операнда х)пр с1еах ч2с орь основ,2 Ьхое ч1 пот ор А,орехаод !запись первого операнда хз'пр сТеах ч1с пот ор В,орехаос! ;запись второго операнда с1еах: с!ео оооос с1х ореханс! ;очистка вех хепр ;гашение онх роетв,хепр ; светодиодов ча1Х5: вЬьв Р1НР, ЯН НН хЗпр чахх5 ч Чоьгс оор хех ;*** Задержка *** РЕЬАтс 1си х19, 10 1см х20, 255 1с!1 х21, 255 ддсс!ес х21 Ьхпе с!с! с!ес х20 Ьхое дс! с!ео х19 Ьхое с!о хех Сложение/вычитание двоичных чисел Задание 3.

Выполнить примеры, задавая слагаемые А и В числами без знака, затем со знаком. В последнем случае ввод отрицательных чисел выполнить в дополнительном коде, Последовательность ввода: код операции, слагаемое А, слагаемое В. Нажатие кнопки 8%6 показывает результат операции, кнопки ЯЪ'7 — признаки результата операции, формируемые в регистре БНЕО.

Для отображения признаков результата используют флаги(табл. 3.2). Таблица 3.2. Байт признаков результата № разряда 7 6 5 4 3 2 1 0 Флаг Н 8 Ч М Х С Примечание. С вЂ” перенос прн сложении (заем прн вычитании), Х вЂ” признак нулевого результата, М вЂ” знак результата при операциях с числами со знаком, Ч вЂ” переполнение разрядной сетки, 8 = !!сгЧ— знак результата вне зависимости от переполнения, Н вЂ” межтетралный перенос(заем). Таблица 3.3. Результаты Заполните табл. 3.3 операндов и наблюдаемых результатов в двоичном коде и признаков для десятичных чисел, удовлетворяющих заданным условиям.

Объясните результаты машинной арифметики. Задание 4. Выполнить операцию вычитания чисел при заданных условиях (см. табл. 3.3), выполняя ввод отрицательных чисел в дополнительном коде и соблюдая такую последовательность ввода: код операции вычитания, уменьшаемое А, вычитаемое В. Умножение и деление целых чисел Задание 5. Выполнить ряд примеров умножения 8-разрядных двоичных чисел. Нажатие кнопки ЯЧЧ6 показывает младший байт произведения, 8%7 — старший байт.

Изменить модуль умножения, включив в него формирование нулевого результата, если один из сомножителей равен О. Задание б. Выполнить деление чисел с восстановлением остатка при условии, что делитель больше О и его значение не вызовет переполнения, Последовательность ввода: — код операции деления, — старший байт делимого с нулевым значением в 7-м разряде, — младший байт, — делитель с нулевым значением в 7-м разряде. Нажатие кнопки 8%6 показывает частное, 8%7 — остаток. Выполнить ряд примеров на деление двоичных чисел.

Задание 7. Изменить программу деления, включив в нее проверку делителя на О и на переполнение. Для обоих случаев прекратить деление, индицируя аномальный случай включением-выключением всех светодиодов. Отладить программу с помощью симулятора, предварительно закомментировав ту ее часть, которая осуществляет проверку кнопок, либо скопировав модуль деления в тестовую программу 3.1 и отключив в ней остальные подпрограм- 83 3 7 онерании над чисяаии с ыавающеи "ючкои 3, Арифметическая обработка данных 82 мы. Проверить работу обновленной подпрограммы деления в ЯТК500. Задание 8.

Изменить программу деления, расширив ее для вычисления дополнительных восьми двоичных разрядов частного при делении остатка. Проверить работу программы с помощью симулятора. 3.7. ОПЕРАЦИИ НАД ЧИСЛАМИ С ПЛАВАЮЩЕЙ ТОЧКОЙ Для выполнения арифметических операций над числами с плавающей точкой в микроконтроллерах необходимо разрабатывать довольно сложные подпрограммы. Исходные числа в формате с плавающей точкой представлены знаком„мантиссой и порядком. Мантисса является правильной дробью, разряды которой представляют значащие разряды числа, порядок показывает фактическое положение точки в записи мантиссы. Для представления чисел с плавающей точкой разработан и введен стандарт !ЕЕЕ-754, включающий базовый одинарный, базовый двойной, расширенный одинарный и расширенный двойной форматы, отличающиеся количеством разрядов и способами представления мантиссы и порядка.

На рис. 3.8 приведена структура полей базового 32-разрядного одинарного формата. Формат содержит знаковый разряд 8, 8-разрядное поле для смещенного порядка Е и 23-разрядное поле для мантиссы Р. 7 О 1 23 31 О Рнс. 3.8. Базовый одинарный формат В этом формате при изображении порядка используется смещение, равное 127, скрытый бит целой части мантиссы Гш содержащий 1. Минимальный (Е = О) и максимальный (Е = 255) порядки зарезервированы для представления специальных чисел.

Диапазон е 38 представления чисел в этом формате составляет + 1О, а точность 6 — 7 десятичных разрядов. Приведем несколько примеров кодирования чисел в этом формате: 1024=1,0к2'~ О!000!00 10000000 00000000 00000000 Ох44800000 -бб эх = — 1.00001011к2 11000010 1000010! 10000000 00000000 ОхС2858000 3!1б = 1,1к2 з 00111! 10 01000000 00000000 00000000 Ох3Е400000 В рассмотренных далее алгоритмах для 8-разрядных микроконтроллеров принимается представление истинного нуля нулевым набором !знак, порядок, мантисса). Специальные числовые значения из стандарта (на изображения бесконечности, неопределенности) учитывать не будем.

Во всех приводимых программах арифметических операций ля микроконтроллеров А ч'К принято размещение исходных операндов и результатов во второй половине регистров общего назна(й ...К ). П рвый операнд, символически обозначаемый М А, размещается в четырех регистрах А: рА (порядок), шАН, шА шАЬ (старший, средний и младший байты мантиссы).

Второй операнд, символически обозначаемый В, размещается в регистрах В: В ( ок) шВН, шВМ, 1пВ1. (мантисса). Результат помещается , шАН шАМ, шА1.. перед выходом из процедуры в регистры рА, шА Сложение Процедура сложения чисел с плавающей точкой одного знака включает следующие действия; ° определяется разность порядков слагаемых Ар = (рА — рВ). При неравенстве порядков, если разность порядков больше О, сдвигается мантисса числа В вправо до тех пор, пока порядок меньшего числа В не станет равным большему; если разность порядков меньше О, сдвигается мантисса числа А вправо; ° после выравнивания порядков слагаемых при Ар = 0 производится сложение мантисс.

В качестве порядка суммы принимается рА или рВ; ° проверяется мантисса суммы на возможность нарушения нормализации. ри . П сложении чисел с одинаковыми знаками возможно нарушение нормализации только влево на один разряд. Чтобы получить нормализованную мантиссу, необходимо сдвинуть ее вправо. Порядок увеличивается на единицу, что может привести к переполнению. На рис. 3.9 приведена схема алгоритма сложения чисел А и В с плавающей точкой и одинаковыми знаками. Каждое слагаемое дставлено однобайтовым порядком и трехбайтовой мантиссой в станд артном формате: знак числа, 8-разрядный смещенный порядок, 23-разрядная мантисса со скрытой единицеи (всего р ряда).

Число А перед началом операции размещено в регистрах А птАН, шАМ, шАЬ, число  — в регистрах рВ, рВН, рВМ, рВ!.. Результат операции сохраняется на месте первого опер нд а аА. 85 3. Арифметическая обработка данньак 3.7. Операции над числами с плавающей точкой Рис. 3.9. Схема алгоритма сложения с плавающей точкой Процедура сложения с плавающей точкой АсИг начинается с проверки знаков слагаемых.

Если знаки операндов не совпадают, знак второго операнда изменяется на противоположный и выполняется переход к процедуре вычитания чисел Яиог'. Если исходные операнды имеют один знак, каждый из них проходит проверку на равенство О. Если один из операндов равен О, сложение не проводится, а результат принимается равным другому операнду. При этом в случае равенства О первого операнда регистры А и В обмениваются операндами.

На этом операция заканчивается. Преобразование результата в стандартный формат не проводится. Если оба операнда ненулевые, в однобитовом флаге Т регистра состояния микроконтроллера ЯВЕЙ сохраняется общий знак операндов и выполняется их восстановление из базового формата. Поскольку для этого используется одна и та же процедура гес из библиотеки вспомогательных процедур, настроенная на работу с регистрами А, перед вторым восстановлением проводится обмен операндами. Далее вычитают порядки. При получении отрицательной разности выполняется обмен операндами и вычитание повторяется.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее