Методические указания к решению задачи 1
При разработке программы важным этапом является разработка алгоритма решения задачи. При этом рекомендуется пользоваться правилами структурного (модульного) программирования, которые предполагают проектирование программ сверху вниз с разделением программ на отдельные модули. Каждый модуль содержит одну точку входа и одну точку выхода и представляет собой композицию основных управляющих структур, представленных на рисунке. а) последовательность б) разветвление в) выбор г) цикл "пока" д) цикл "до"
Пусть необходимо реализовать логические функции: __ Y0 = X1 + X2·X5; Y1 = X3·X7. При этом в байтовом регистре Х внутреннего ОЗУ микроконтроллера находятся текущие значения 8 битовых входных переменных, считанные процессором из порта ввода Х. Необходимо вычислить значения битовых управляющих воздействий Y1, Y0 и записать результаты в байтовый регистр Y.
Будем считать, что модули вычисления Y0 и Y1 оформлены в виде подпрограмм, которые вызываются командами CАLL CALC_Y0 CАLL CALC_Y1 Для реализации представленного алгоритма можно использовать работу битового процессора (если такой имеется) или специальные команды анализа битов. Ниже приведена программа для микроконтроллера INTEL MCS – 196 [1,2]. В его составе команд имеются команды тестирования битовых переменных: BBC и BBS (branch bit clear- переход ,если бит очищен и branch bit set-переход, если бит установлен), осуществляющие переход на заданную метку ( трехоперандная команда ) в зависимости от того установлен или сброшен анализируемый бит. Формат команды: BBC breg, bitno, cadd где breg – анализируемый регистр; bitno – номер анализируемого бита; cadd – точка перехода по условию.
;подпрограмма вычисления Y0 CALC_Y0: BBS X, 1, SET_Y0 ;анализ младшего бита 1 регистра X BBC X, 2, CLR_Y0 ;анализ бита 2 BBC X, 5, CLR_Y0 ;анализ бита 5 SET_Y0: ORB Y, #00000001B ;установка в 1 бита Y0 RET CLR_Y0: ANDB Y, #11111110B ;очистка бита Y0 RET ;подпрограмма вычисления битовой переменной Y1 CALC_Y1: BBC X, 3, CLR_Y1 BBS X, 7, CLR_Y1 SET_Y1: ORB Y, #00000010B ;установка в 1 бита Y1 RET CLR_Y1: ANDB Y, #11111101B RET При решении задачи язык программирования может быть выбран любым.
Задача 2. Составить алгоритм и программу обслуживания аналого-цифрового преобразователя (АЦП), осуществляющего прием и обработку данных (М – число отсчетов) по N-каналу (данные сведены в таблицу 5), если АЦП имеет 16 входных каналов. Выбор конкретного канала осуществляется записью в разряды (от 0 до 3) регистра выбора канала DAR (Data Address Register) соответствующего двоичного кода. После выбора номера канала 7 разряд DAR устанавливается в "1". Управление запуском АЦП и проверка готовности данных после преобразования осуществляется с использованием регистра управления и статуса CSR (Control and Status Register). При этом пуск АЦП осуществляется записью "1" в нулевой разряд, готовность проверяется по наличию "1" в 10 разряде CSR. Результат преобразования в виде выходного кода АЦП поступает в регистр данных АЦП DR (Data Register).
Таблица 5
Популярное: Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние... Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (233)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |