Разработка программной и аппаратной поддержки к методическим указаниям "Программирование микроконтро...

Диссертация - Компьютеры, программирование

Другие диссертации по предмету Компьютеры, программирование

массиве А хранится 8 показаний температуры больных .Проверить, нет ли среди них значений выше 37 и ниже 36 и вывести на индикатор соответственно два числа через пробел.

  • Разработать программу вывода на индикатор отладочного устройства последовательности цифр 1-8,образовав ряд 12345678.
  • Разработать программу вывода на индикатор всех битов регистра состояния процессора SREG в формате: каждому флагу (биту)- один разряд индикатора.
  • Разработать программу для последовательного вывода всех цифр на один семисегментный индикатор с интервалом вывода -1с.
  • Разработать программу мигания одного (или др.) разряда дисплея с интервалом 3сек. (или др.).
  • Разработать программу последовательного гашения всех индикаторов дисплея после его включения.
  • Разработать программу циклического перемещения одного символа, хранимого в ячейке памяти, вдоль индикатора (бегущий символ).
  • Разработать программу для циклического перемещения набора цифр или символов вдоль индикатора в направлении справа налево (или наоборот).
  • Разработать программу "Электронные часы", используя для индикации семи сегментный индикатор. Формат вывода 22.15.30 или 22.15, обеспечив мигание точки с интервалом 1с.
  • Разработать программу, чередующую вывод на индикатор сообщений 1C, 2C и 4C (или др.) удерживаемых соответственно 1сек, 2сек и 4сек.
  • Используя матричную клавиатуру 3х3 и светодиод разработать программу и устройство, которое обеспечивало мигание светодиода такое количество раз равное номеру нажатой клавиши (1 9).
  • Используя матричную клавиатуру 4х4 (или др.) и систему индикации разработать программу и устройство кодового замка из 4 (или др.) цифр кода.
  • Используя матричную клавиатуру 4х4 (или др.) и семи сегментные индикаторы разработать программу и устройство калькулятора, которое обеспечивает сложение, вычитание, умножение и делание 16-ти разрядных чисел.
  • Используя генератор звуковых колебаний и несколько разрядов ССИ разработать программу и устройство измерения частоты в диапазоне 20 Гц 20 КГц.
  • Основные принципы выполнения заданий.

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

    1. уяснить поставленную задачу, понимая, что должно являться результатом;
    2. выбрать соответствующий микроконтроллер, исходя из требования задания;
    3. составить подробное (побитовое) описание необходимых для выполнения задания регистров имея перед собой таблицу всех регистров ввода/вывода (см. ПРИЛОЖЕНИЕ 2);
    4. определить необходимые векторы прерываний и составить алгоритмы соответствующих обработчиков векторов прерываний;
    5. составить алгоритм основной программы, учитывая особенности МК (стек и т.д.);
    6. приступить к написанию программы, выбирая необходимые команды ассемблера.

    На рис. 3.15.1 изображена структурная схема процесса обучения. Она включает:

    1) Написание программы прошивки микроконтроллера, для решения поставленной задачи;

    2) Контроль правильности разработанной программы на симуляторе с помощью компьютера (первая петля обратной связи);

    3) Прошивка микроконтроллера и сопряжение с системой индикации (внешними устройствами) для окончательного контроля правильности выполненной задачи (вторая петля обратной связи).

     

     

     

     

     

     

     

     

     

     

    Рис. 3.15.1 Структурная схема процесса обучения.

    3.2.2. Рассмотрение типовых примеров

    В качестве примера работы с памятью рассмотрим следующее задание: Требуется написать программу копирования таблицы из 20 восьмибитных чисел данных из памяти программ (Program Memory) в оперативную память (SRAM) начиная с адреса 0х80.

    Рассмотрим выполнение данной программы в соответствии с предложенными выше правилами.

    В данном примере нам необходимо работать с оперативной памятью SRAM. Так как в МК AT90S1200 её нет, то выбираем к примеру AT90S8515 (или др). Теперь нам надо позаботиться о правильной инициализации стека, загрузив в указатель стека адрес старшей ячейки оперативной памяти. Данную программу можно полностью реализовать на симуляторе AVR Studio Simulator, где наглядно будет видна вся карта памяти. Ниже приведем программу с некоторыми пояснительными комментариями.

    Программа копирования таблицы данных:

    ;********************************************************************

    .include "8515def.inc"

    .equBLOCK1 =$80;начальный адрес копируемой таблицы данных в SRAM

    ;памяти

    .defflashsize =r16;РОН хранящий размер таблицы

    .deftemp =r16;РОН для промежуточных действий

     

    rjmpRESET;вектор прерывания по включению питания, сбросу

    ;RESET или сбросу от сторожевого таймера

    ;**********************************************************************

    ;* Подпрограмма копирования таблицы данных из памяти программ в SRAM

    flash2ram:

    lpm;загружаем из памяти программ в R0 байт адрес

    ;которого указан в Z

    stY+,r0;сохраняем его в SRAM памяти с постинкрементом

    ;регистра Y

    adiwZL,1;инкремент Z

    decflashsize;декремент flashsize

    brneflash2ram;если предыдущая операция не равна 0 то перейти на

    ;метку

    ret;возврат в основную программу

    ;***********************************************************************

    ;* Основная программа

    RESET:

    lditemp, low(RAMEND); инициализируем указатель стека

    outSPL, temp ;

    lditemp, high(RAMEND) ;

    outSPH, temp ;

    ldiZH, high(F_TABLE*2);загружаем в регистр Z удвоенный адрес

    ldiZL, low(F_TABLE*2) ; начала таблицы данных

    ldiYH, high(BLOCK1) ;загружаем в регистр Y адрес начала

    <