рефераты рефераты
Главная страница > Курсовая работа: Обработка сигналов на основе MCS-51  
Курсовая работа: Обработка сигналов на основе MCS-51
Главная страница
Банковское дело
Безопасность жизнедеятельности
Биология
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
География экономическая география
Геодезия
Геология
Госслужба
Гражданский процесс
Гражданское право
Иностранные языки лингвистика
Искусство
Историческая личность
История
История государства и права
История отечественного государства и права
История политичиских учений
История техники
История экономических учений
Биографии
Биология и химия
Издательское дело и полиграфия
Исторические личности
Краткое содержание произведений
Новейшая история политология
Остальные рефераты
Промышленность производство
психология педагогика
Коммуникации связь цифровые приборы и радиоэлектроника
Краеведение и этнография
Кулинария и продукты питания
Культура и искусство
Литература
Маркетинг реклама и торговля
Математика
Медицина
Реклама
Физика
Финансы
Химия
Экономическая теория
Юриспруденция
Юридическая наука
Компьютерные науки
Финансовые науки
Управленческие науки
Информатика программирование
Экономика
Архитектура
Банковское дело
Биржевое дело
Бухгалтерский учет и аудит
Валютные отношения
География
Кредитование
Инвестиции
Информатика
Кибернетика
Косметология
Наука и техника
Маркетинг
Культура и искусство
Менеджмент
Металлургия
Налогообложение
Предпринимательство
Радиоэлектроника
Страхование
Строительство
Схемотехника
Таможенная система
Сочинения по литературе и русскому языку
Теория организация
Теплотехника
Туризм
Управление
Форма поиска
Авторизация




 
Статистика
рефераты
Последние новости

Курсовая работа: Обработка сигналов на основе MCS-51

Исходные данные программы: начальный адрес массива – (R0), длина массива – (R1).

ORL    P1, #00100000В; настройка

; Р1.5 на ввод

LOOP: MOV        A, @R0; загрузка байта

; в аккумулятор

ANL    P1,#11100000В; сброс данных

; и строба

ORL    P1, A        ; выдача данных

ORL    P1,#00010000В; выдача строба

WAIT: JNB          Р1.5, WAIT; ожидание ответа

INC     R0            ; продвижение указателя адреса

JNZ     Rl, LOOP ; цикл, если не все данные переданные

4. Битовые операции в MCS-51

Пример 31. Операция Исключающее ИЛИ используется очень часто для сравнения бит, или их сброса. В кодах битового процессора такой операции нет, но легко осуществляется наложение логической операции Исключающее ИЛИ на флажок переноса:

JNB    bit, LZ      ; исключительное ИЛИ для флажка переноса

CPL    С              ; инверсия флажка

LZ:                                ; продолжение программы

Пример 32. Преобразовать байт в последовательный код и передать его через Р1.0, не воздействуя при этом на остальные разряды порта. Передачу вести, начиная с младшего бита:

MOV  R7,#8D     ; инициализация счетчика циклов

LOOP: RRC         А      ; присвоение переноса значение бита А.0

MOV  Р1.0, С     ; передача бита

DJNZ  R7, LOOP          ; цикл, если не все биты переданы

Время выполнения программы 41 мкс, время передачи – 5 мкс (скорость передачи – 200 кбит/с).

Пример 33. Вычислить булеву функцию 3-х переменных Y=(X×)+W (X+V). Переменные X, V, W поступают на линии 2, 1, 0 порта 1; результат Y необходимо вывести на линию 3 порта 1. Для сохранения промежуточных значений использовать бит F0H.

Y         BIT           P1.3  ; спецификация бит порта 1

Х         BIT           P1.2

V         BIT           Р1.1

W        BIT           Р1.0

MOV  С, X          ; ввод Х

ANL    С,/V          ; X×

MOV  F0, С        ; запоминание результата в F0

MOV  С, Х          ; ввод Х

ORL    С, V          ; X+V

ANL    С, W         ; W (X+V)

ORL    С, F0        ; (W (X+V))+(X×)

MOV  Y, С          ; вывод результата

Время выполнения программы 14 мкс.

Пример 34. Организовать последовательную передачу данных из аккумулятора на 0 вывод порта 2. Пересылку вести манчестерским кодом (каждый бит кодируется двумя интервалами: первый интервал имеет инверсию бита, второй – его прямое значение):

MOV  R0,#8D     ; инициализация счетчика бит

LOOP: RRC         А      ; (С)¬(сдвиг мл. бита из акк-ра в перенос)

CPL    С              ; инверсия бита

MOV  Р2.0, С     ; передача инверсии бита

CPL    С              ; восстановление бита

NOP;

NOP                     ; выравнивание длины интервалов

NOP;

MOV  P2.0, С     ; передача прямого значения бита

DJNZ R0, LOOP ; цикл, если счетчик не нулевой

Передача начинается с младших битов. Продолжительность одного интервала 6 машинных циклов (6 мкс), время передачи одного бита – 12 мкс, время передачи байта – 96 мкс (скорость передачи 83 кбит/с, или 10,4 кбайт/с).

Пример 35. Пошаговый режим работы. Для его реализации необходимо:

-  запрограммировать одно из внешних прерываний (к примеру INT0) на активизацию по уровню;

-  в подпрограмме обработки прерывания ожидать последовательность «1» – «0» на входе INT0 (вывод P3.2), задаваемую, например, с помощью кнопки.

В основной программе необходимо дописать следующее:

SETB  ІЕ.0          ; разрешение прерывания уровня 0

CLR    TCON.0   ; прерывания разрешены по нулевому уровню

…; продолжение основной программы

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

…; подпрограмма обработки

L1:      JNB          P3.2, L1     ; ожидание уровня 1

L2:      JB             P3.2, L2     ; ожидание уровня 0

RETI                    ; возвращение и выполнение одной; команды основной программы; после чего снова происходит ; возвращение в подпрограмму.

Пример 36. Обращение к медленным микросхемам внешней памяти. Программным путем можно задать необходимую длительность импульсов WR и RD. Например, если сигнал  должен длиться 50 мкс, то это осуществляется так:

CLR    P3.7          ; =0

MOV  R3,#24D   ; инициализация счетчика (2 мкс)

L0:      DJNZ        R3, L0        ; цикл (24*2 мкс)

SETB  P3.7          ; =1

5. Взаимодействие МК с объектом управления

Пример 3 Опрашивание двоичного датчика, например, конечного выключателя.

Ключ подключен к входу MCS-51: порт 1, разряд 3.

WAIT0: JNB       P1.С, WAIT0; ожидание размыкания датчика

WAITC: JB          P1.3, WAITC; ожидание замыкания датчика

Пример 38. Опрашивание группы двоичных датчиков (аналогично нахождению заданного кода или комбинации датчиков).

WTCODE: MOV A,#10D      ; загрузка в А эталонного кода 00001010В

WAIT: CJNE        A, P1, WAIT; если кодовая комбинация не совпала с заданной, то ждать

EXIT:                            ; вывод

Пример 39. При достижении значения параметра равного 135, передать управление на подпрограмму с меткой LABEL А, иначе LABEL В.

MOV  A,#135D  ; загрузка значения параметра

CJNE  A, P1, LABEL В; сравнение и передача управления

LABEL А:

LABEL В:

Пример 40. Зафиксировать импульс, поступающий на вход ОМЭВМ (P1.3) и его окончание.

WAITC: JB          P1.3, WAITC; ожидание Р1.3=0

WAIT0: JNB       P1.3, WAIT0; ожидание Р1.3=1

Зафиксированный импульс имеет вид .

Для импульса обратного вида  нужно поменять WAIT0 и WAITC местами.

Таблица 1 – Минимальная продолжительность сигнала, которую определяет МК

Подключение датчика к выводам Минимальная длительность импульса, мкс
(отрицательного) (положительного)
P1, P2, BUS/P0 10/2 12,5/2
T0, Т1 5/2 5/2
ЗПР 10/2 5/2

Пример 41. Передать управление на метку TEST и установить Р3.7, если на Т0 поступит 30 импульсов.

MOV  R1,#30D   ; загрузка числа импульсов

L1:      JB             P3.4, L1     ; ожидание нуля

L0:      JNB          P3.4, L2     ; ожидание единицы

JMP    L0

L2:      DJNZ        R1, L1        ; повторить 30 раз

JMP    TEST

TEST: SETB       Р3.7  ; установление бита

Пример 42. Схема для фиксации короткого импульса: D-триггер устанавливается коротким импульсом, а сбрасывается программно, после определения наличия сигнала на входе Т0.

Страницы: 1, 2, 3, 4, 5, 6

рефераты
Новости