Разработка контроллера матричной клавиатуры на микроконтроллере К1816ВЕ48 — страница 4

  • Просмотров 2865
  • Скачиваний 293
  • Размер файла 132
    Кб

выдается байт сканирования (БС), содержащий 0 только в одном бите. Если на пересечении линии сканирования и линии возврата находится нажатая клавиша, то в соответствующем бите байта возврата (БВ), принимаемого в порт 2, будет находиться 0. Последовательность байтов сканирования представляет собой код "бегущий нуль"; формирование очередного байта сканирования осуществляется путем сдвига его предыдущего значения.

Направление сдвига определяет последовательность опроса клавиш. Если при полном цикле сканирования не было обнаружено нажатой клавиши, то процедура сканирования повторяется сначала. Оператор "Есть нажатая клавиша?" реализуется тем, что клавиши, подключенные к каждой линии сканирования, анализируются последовательно. Если после анализа каждой клавиши осуществлять прибавление единицы к счетчику SCANCODE, то процедуру

сканирования можно совместить с процедурой идентификации нажатой клавиши (рис. 4). Изм. Лист № докум. Подпись Дата Лист 9 4. Разработка текста исходной программы R4 - счетчик кода сканирования Изм. Лист № докум. Подпись Дата Лист 10 ORG 300H; переход на 300 страницу РПП DB 7EH,30H, 6DH,79H; коды семисегментного DB 33H,5BH,5FH,70H; индикатора DB 7FH,7BH,76H,1EH; ORG 0; переход в начало программы START: MOV R4,#0; сброс SCANCODE MOV R7,#3; загрузка счетчика сканирования MOV R6,#11111110B;

загрузка исходного байта сканирования LOOP: MOV A,R6 OUTL P1,A; вывод текущего байта сканирования RL A; сдвиг байта сканирования MOV R6,A; сохранение текущего байта сканирования IN A,P2; ввод байта возврата MOV R5,#4; загрузка счетчика опросов LOOK: RRC A ; сдвиг байта возврата JNC NEXT; выход из процедуры при обнаружении первой нажатой клавиши INC R4; инкремент SCANCODE DJNZ R5,LOOK; декремент счетчика опросов и цикл, если не нуль DJNZ R7,LOOP; декремент счетчика сканирования и

цикл, если не 0 JMP START; начать сканирование сначала next: mov a,r4; загрузка в аккумулятор кода символа movp3 a,@a; считывание байта индикации из таблицы outl bus,a; выдача байта индикации на индикатор через порт BUS end выход из программы СОДЕРЖАНИЕ Задание на работу........................................................................................3 Введение.......................................................................................................4 1. Анализ поставленной задачи. Структурная схема МК системы...........6 2.

Разработка принципиальной схемы МК системы..................................7 3.Выбор и описание алгоритма программы...............................................8 3.1 .Разработка общей блок-схемы алгоритма (БСА) работы контроллера……………………………………………………...........9 4. разработка текста исходной программы...............................................10 4.1. Отладка программы с помощью индивидуального задания...........11 5. Таблица «прошивки» РПЗУ…………………………………………….....12