Анализ методики реализации разработки программного обеспечения
3.2.1. Классификация вариантов заданий Цель заданий – практическое освоение методики программирования на ассемблере микроконтроллеров ATMEL семейства AVR, отладка программы на симуляторе AVR Studio и программирование кристалла с помощью программатора расположенного в системе макета. Примеры заданий могут использоваться не только как для проверки знаний и навыков по программированию, но и для наглядного объяснения архитектуры при чтении теоретического материала. После изучения теоретического материала, а именно: архитектуры МК, аппаратных и программных средств, основных типов интерфейсов, системы команд и симулятора МК, можно приступить к практической реализации различных задач на основе МК. Именно написание программ и умение их объяснить является критерием понимания архитектуры МК, а также критерием способности использовать данную архитектуру в сочетании с программированием (ассемблером). Конкретных примеров заданий может быть очень много. Мы разделим эти примеры на несколько общих классов. Сначала перечислим достаточно простые классы задач. 1. Работа с памятью. К этому классу задач можно отнести любые операции с различными областями памяти, такие как чтение или запись. К примеру, можно считывать или записывать данные из/в EEPROM, SRAM или даже памяти программ (Program Memory). Меняя начальный адрес и размер данных, а также тип (область) памяти можно создавать различные примеры задач. 2. Индикация. Подключая к выводам портов различные системы индикации, будь то простые светодиоды, ССИ или ЖКИ можно создать широкий класс задач. Различные варианты примеров можно создать, изменяя очередность или длительность световой индикации. Можно сделать несколько примеров заданий с движущимися символами или «бегущей строкой», задавая различные символы и строки. Реализация различной длительности индикации может осуществляться либо с помощью таймера, либо с помощью циклов задержки, либо другими способами, что увеличивает разнообразие вариантов заданий.
3. Вычисления и обработка данных Существует много примеров с арифметическими вычислениями. К примеру, можно производить сложение, вычитание, умножение, деление или сравнение 8- или 16-разрядных чисел. Также существуют математические или базисные логические функции, из которых можно строить более сложные произвольные функции. Еще к этому классу задач относятся преобразование 8-, 16-разрядных чисел в упакованные (или нет) двоично-десятичные (Binary Coded Decimal – BCD) и обратно, сортировка чисел различными способами и фильтрация. 4. Измерение внешних параметров и устройства управления: Сюда входят задачи по измерению напряжения, тока, частоты, давления, скорости вращения и других параметров. Создание часов реального времени, калькулятора, кодового замка, управление двигателем, регулировка температуры. Это достаточно сложный класс задач, так как он может включать в себя и некоторые вышеперечисленные классы (1-3). Варианты заданий Префикс 0x – обозначает шестнадцатеричное число, 0b – двоичное, без префикса пишется десятичное число. Во всех вариантах необходимо составить и отладить программу с помощью симулятора и если необходимо запрограммировать микроконтроллер с помощью программатора в системе макета. 1. Дан массив А из 8 (или др.) однобайтовых чисел распложенных в Program Memory или EEPROM начинающийся с адреса 0x0A (или др.). Переписать из массива А в массив В все числа, большие 0x05 (или др.) и меньшие 0x2С. Массив В может находиться либо в EEPROM, либо в SRAM. 2. Написать программу перекодировки восьмиразрядного или шестнадцатиразрядного двоичного числа в упакованное двоично-десятичное число.
3. Написать программу перекодировки двухразрядного или пятиразрядного двоично-десятичного числа в двоичное. 4. Написать программу сложения или вычитания двух двухразрядных десятичных чисел 5. Дан массив А из 8 (или др.) однобайтовых или двухбайтовых кодов. Определить, содержит ли он код 0хАС или 0хАFВС. Если "да", то в регистр Rn занести число таких кодов. 6. Дан массив А из 10 однобайтовых (или др.) чисел. Переписать его в массив В, упорядочив числа по возрастанию (или по убыванию). 7. Дан массив А из 10 однобайтовых чисел. Переписать в массив В только числа, содержащие четное (или нечетное) количество единиц (или нулей). 8. Зашифровать содержащиеся в массиве А коды 10 букв или цифр по следующему правилу: а) циклический сдвиг влево на 5 (или др.) разрядов и побитовая инверсия; б) прибавить константу 2 (или др.) и циклический сдвиг вправо на 3 разряда. 9. Дан массив А из 5 однобайтовых чисел. Определить, содержит ли он число 0х1F (или др.). Если да, то выполнить операцию "логическое И" (или др.) над всеми числами массива А. 10. Переписать в стек, расположенный в памяти с адреса С, массив А из 10 восьмиразрядных (или др.) чисел. Выполнить операцию суммирования (или др.) над ними. 11. Дан массив А из 10 однобайтовых чисел, содержащий число 0хАА. Выполнить операцию "логическое И" (или др.) над всеми числами до 0xАА и операцию "логическое ИЛИ" (или др.) над всеми числами после него. 12. Написать программу вычисления логической функции V=X*(NOT.Y*Z+NOT.W) (или др.),где + - знак операции ИЛИ,* - знак операции И, X,Y,Z,W-логические переменные, хранимые в разрядах 3-0 ячейки памяти EEPROM по адресу 0x00. 13. Написать программу сложения или вычитания двух 8 разрядных (или др.) двоичных чисел со знаком (или без). 14. Дан массив А из 10 однобайтовых чисел. Переписать в массив В все числа, большие (или меньшие) 0х20, и записать в регистр Rn (или вывести на индикатор) число таких чисел. 15. Определить четное или нечетное число единиц (или нулей) в 8 двоичных кодах, записанных в массиве А, и вывести на индикатор сообщение «Ч» или «Н» (или число единиц). 16. Дан массив А из 10 однобайтовых чисел. Переписать в массив В все числа, лежащие в диапазоне 0х0F – 0хF0 (или др.). Вывести на индикатор число таких чисел.
17. Дан массив А из 8 однобайтовых чисел, содержащий число 0хА1. Необходимо найти сумму всех чисел массива А, находящихся до этого числа. Результат вывести на индикатор. 18. В массиве А хранится 8 показаний температуры больных.Проверить, нет ли среди них значений выше 37 и ниже 36 и вывести на индикатор соответственно два числа через пробел. 19. Разработать программу вывода на индикатор отладочного устройства последовательности цифр 1-8,образовав ряд 12345678. 20. Разработать программу вывода на индикатор всех битов регистра состояния процессора SREG в формате: каждому флагу (биту)- один разряд индикатора. 21. Разработать программу для последовательного вывода всех цифр на один семисегментный индикатор с интервалом вывода -1с. 22. Разработать программу мигания одного (или др.) разряда дисплея с интервалом 3сек. (или др.). 23. Разработать программу последовательного гашения всех индикаторов дисплея после его включения. 24. Разработать программу циклического перемещения одного символа, хранимого в ячейке памяти, вдоль индикатора (бегущий символ). 25. Разработать программу для циклического перемещения набора цифр или символов вдоль индикатора в направлении справа налево (или наоборот). 26. Разработать программу "Электронные часы", используя для индикации семи сегментный индикатор. Формат вывода «22.15.30» или «22.15», обеспечив мигание точки с интервалом 1с. 27. Разработать программу, чередующую вывод на индикатор сообщений «1C», «2C» и «4C» (или др.) удерживаемых соответственно 1сек, 2сек и 4сек. 28. Используя матричную клавиатуру 3х3 и светодиод разработать программу и устройство, которое обеспечивало мигание светодиода такое количество раз равное номеру нажатой клавиши (1 – 9). 29. Используя матричную клавиатуру 4х4 (или др.) и систему индикации разработать программу и устройство кодового замка из 4 (или др.) цифр кода. 30. Используя матричную клавиатуру 4х4 (или др.) и семи сегментные индикаторы разработать программу и устройство калькулятора, которое обеспечивает сложение, вычитание, умножение и делание 16-ти разрядных чисел. 31. Используя генератор звуковых колебаний и несколько разрядов ССИ разработать программу и устройство измерения частоты в диапазоне 20 Гц – 20 КГц.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|