Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Опрос группы двоичных датчиков




Микроконтроллеры чаще всего имеют дело не с одним датчиком, как в рассмотренных выше примерах, а с группой двоичных датчиков (например, рисунок 4.9).

 

  Рисунок 4.9 – Схема подключения группы двоичных датчиков

 

При этом МК может выполнять процедуру опроса датчиков и передачи управления отдельным подпрограммам в зависимости от кода, формируемого группой датчиков.

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

– ожидание заданного кода (листинг 4.13);

– анализ кода с передачей управления одной из подпрограмм в зависимости от полученного значения (листинг 4.14).

Листинг 4.13 – Программа ожидания заданного кода

; Программа реализована для случая подключения группы из

; восьми взаимосвязанных статических датчиков к входам порта P1

CODE: .EQU 10101010h ; Ожидаемый код
    STOP: .ORG 0000h MOV P1, #FFh MOV A, P1   CJNE A, #CODE, STOP     … ; Адрес начала программы ; Настройка порта P1 на ввод ; Считывание в аккумулятор ; данных из порта P1 ; Переход к следующему опросу, ; если считанное значение не ; совпадает с заданным кодом

 

 

Листинг 4.14 – Программа анализа кода с передачей управления одной из подпрограмм в зависимости от полученного значения

; Программа реализована для случая подключения трех датчиков

; к разрядам 0 – 2 порта P1. В зависимости от принятого кода

; управление передаётся одной из подпрограмм PROG0-PROG7

    TABEL:     PROG1: … PROG8: .ORG 0000h MOV SP, #30h MOV DPTR, #TABEL     MOV P1, #FFh MOV A, P1   ANL A, #00000111b   RL A PUSH A   MOVC A, @A+DPTR   MOV 0, A   POP A   INC A MOVC A, @A+DPTR   MOV DPH, 0 MOV DPL, A     MOV A, #00h   JMP @A+DPTR   .DW PROG1, PROG2 .DW PROG3, PROG4 .DW PROG5, PROG6 .DW PROG7, PROG8   …   … ; Адрес начала программы ; Переопределение дна стека ; В регистр DPTR заносится ; адрес таблицы с адресами ; подпрограмм* ; Настройка порта P1 на ввод ; Чтение в аккумулятор данных; из порта P1 ;Принудительное обнуление не ; значащих разрядов ; Умножение значения на 2** ; Сохранение в стеке ; содержимого аккумулятора ; Чтение из таблицы старшего ; байта адреса подпрограммы ; Сохранение в ячейке 0 ; считанного значения ; Восстановление из стека ; содержимого аккумулятора ; Инкремент аккумулятора ; Чтение из таблицы младшего ; байта адреса подпрограммы ; Помещение в регистровую ; пару DPH:DPL=DPTR ; младшего и старшего байтов ; адреса подпрограммы ; Формирования смещения ; подпрограммы ; Переход к подпрограмме ; Таблица адресов подпрограмм ; ; ; ; Подпрограммы ; PROG1 - PROG8: ;

; * – таблица адресов подпрограмм располагается по адресу,

; которому соответствует метка TABEL. Таблица состоит из

; двухбайтовых адресов подпрограмм. Содержимое таблицы

; представлено следующим образом:

; A A+1 A+2 A+2 A+4 А+5 A+6
; СБA1 МБА1 СБA2 МБА2 СБA МБА3 СБA4

; где, A – адрес таблицы адресов подпрограмм

; СБА1 – старший байт адреса подпрограммы 1

; МБА1 – младший байт адреса подпрограммы 1

; СБА2 – старший байт адреса подпрограммы 2

; МБА2 – младший байт адреса подпрограммы 2

; и т.д.

; ** – команда поразрядного сдвига влево равносильна умножению на 2






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных