ОБРАБОТКА СИГНАЛОВ НА OCHOBЕ MCS-51


Введение

В данном курсовом проекте рассматриваются практические примеры и их программная реализация на языке ассемблера для микроконтроллера семейства MCS-51 (МК51).

При рассмотрении решения задач, связанных с генерацией временных интервалов и работой последовательного порта предполагается использование МК с частотой задающего генератора равной 12 МГц.


1. Использование команд передачи данных

Пример 1. Передать содержимое буфера последовательного адаптера в резидентную память данных по косвенному адресу в R0:

MOV @R0, SBUF; передача принятого по последовательному каналу; байта в РПД.

Пример 2. Записать в ячейки РПД с адресами 39 и 40 число FA1BH:

LOAD: MOV 39H,#0FAH

MOV 40H,#1BH

Пример З. Загрузить в указатель данных начальный адрес 4300Н массива данных, расположенного во внешней памяти данных:

MOV DPTR,#4300Н ; загрузка начального значения указателя данных.

Пример 4. Загрузить управляющее слово в регистр управления таймером:

MOV TCON,#00000101В; разрешение внешних прерываний по низкому уровню сигнала.

Пример 5. Сбросить все флажки пользователя (биты) в резидентной области памяти от 20Н до 2FH:

MOV R0,#20Н ; заданный начальный адрес области памяти

MOV Rl,#0FH ; загрузить счетчик (длина области памяти)

LOOP: MOV @R0,#0 ; снять один байт (8 флажков)

INC R0 ; переход к следующему байту

DJNZ R1, LOOP ; цикл, если не все флажки сброшены

Пример 6. Передать управление по метке L0, если счетчик 0 достиг значения 128:

MOV A, TL0 ; передача содержимого счетчика в аккумулятор

JB А.7, L0 ; перейти на L0, если А.7=1

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

Пример Запомнить во внешней памяти данных содержимое регистров
банка 0. Начальный адрес ВПД – 2000Н:

MOV PSW,#00010000B; выбор банка регистров 1

MOV R0,#8 ; счетчик ¬ 8

MOV DPTR, #2000H; определение начального адреса ВПД

MOV Rl,#0 ; определение начального адреса РПД

LOOP: MOV A,@R1 ; (А) ¬ (регистр)

MOVX @DPTR, A; передача из аккумулятора в ВПД

INC Rl ; переход к следующему регистру

INC DPTR ; приращение указателя адреса

DJNZ R0, LOOP ; R0=R0–1, если R0>0 то повторить цикл

Пример 8. Обращение к памяти программ, где сохраняется готовая таблица значений. Для этого используется специальная команда MOVC. Например: программа для выбора значений функции синуса из таблицы с точностью 0,4% и дискретом 1°. Начальный параметр для подпрограммы есть значения угла х, которое находится в аккумуляторе. Данная программа работает без указателя данных DPTR. Инкремент аккумулятора перед обращением к таблице необходим в связи с использованием однобайтной команды возврата. Таблица синусов занимает в памяти 90 байтов.

; вычисление sin(x) по таблице значений: вход (А)¬(х), хÎ(0,89°);

; выход (А) ¬ дробная часть значения синуса

SIN: INC A ; инкремент аккумулятора

MOVC А,@А+РС ; загрузка значения синуса из таблицы

RET ; возвращение

; таблица синусов

SINUS: DB 00000000В; SIN (0)=0

DB 00000100В ; SIN (1)=0,017 DB 00001001В; SIN (2)=0,035

………………………

DB 11111111В ; SIN (89)=0,999

Пример 9. Операции со стеком и организация прерываний. Механизм доступа к стеку MCS-51: перед записью в стек содержимое регистра-указателя стека SP инкрементируется, а после чтения данных из стека декрементируется.

После начальной установки ОМЭВМ в SP заносится начальное значение 07Н. Для переопределения начального значения SP можно использовать команду MOV SP, #data16.

Таким образом, стек может быть расположен в любом месте РПД. Стек используется для организации обращения к подпрограммам и при обработке прерываний. Кроме того, может использоваться для временного хранения значений регистров специальных функций.

Подпрограмма обработки прерываний.

ORG 3 ; задание адреса вектора прерываний

SJMP SUBINO ; переход на подпрограмму обработки

ORG 30Н

SUBINO: PUSH PSW ; сохранение в стеке PSW

PUSH A ; сохранение в стеке аккумулятора А

PUSH В ; сохранение в стеке дополнения-аккумулятора В

PUSH DPL ; сохранение в стеке DPTR

PUSH DPH ; сохранение в стеке DPTR

MOV PSW,#00001000B; выбор другого банка регистров (1)

.

обработка прерываний

.

POP DPH ; восстановление DPTR

POP DPL ; восстановление DPTR

POP В ; восстановление В

POP A ; восстановление аккумулятора

POP PSW ; восстановление PSW и банка регистров 0

RETI ; возвращение в основную программу

Если SP=1FH, размещение регистров в стеке после входа в подпрограмму обработки будет таким, как показано на рис. 1.

7FH
26H DPH ¬(SP)
25H DPL
24H В
23H А
22H PSW
21H РСН

Указатель

¬(счетчик)

команд PC

20H PCL
1FH
00H

Рисунок 1 – Распределение памяти при вызове подпрограммы

Пример 10. Передать управление одной из восьми подпрограмм при появлении нулевого уровня на соответствующем входе порта 1. Высший приоритет входа Р1.3.

ORL P1,#FFH ; настройка Р1 на ввод

L1: MOV А, Р1 ; ввод данных из порта

CPL А ; инверсия аккумулятора

JZ L1 ; ожидание появления первого нуля

JNB Р1.3, SUBR1; переход на первую подпрограмму

JNB P1.4, SUBR2; переход на вторую подпрограмму

…………………………………………

JNB P1.2, SUBR8; переход на восьмую подпрограмму

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

 



Информация о работе «Обработка сигналов на основе MCS-51»
Раздел: Коммуникации и связь
Количество знаков с пробелами: 35873
Количество таблиц: 2
Количество изображений: 3

Похожие работы

Скачать
46876
3
11

... информации из ПК в программно-доступные узлы МК; чтение содержимого программно-доступных узлов и индикация их на мониторе ПК. 1.2 Анализ предыдущей работыВопрос об организации обмена информацией между персональным компьютером и микроконтроллером семейства Intel MCS-51 был уже рассмотрен в бакалаврской работе [3]. В этой работе были рассмотрены проблемы аппаратного и программного сопряжения МК с ...

Скачать
23140
0
2

... объёмом до 16 Мбайт Встроенный интерфейс I2C (не во всех моделях) 2. МИКРОКОНТРОЛЛЕРЫ INTEL 296   2.1 Общая характеристика и применение   В семейство MCS-196 фирмы Intel (иногда используется и название 80C196) входит более 30 разновидностей микроконтроллеров. Это 16-разрядные, быстродействующие ИС высокой степени интеграции, ориентированные на решение задач управления процессами в реальном ...

Скачать
37477
8
8

... байт в регистре A, старший – в регистре B. В случае выполнения операции деления целое от деления помещается в аккумулятор А, остаток от деления – в регистр В. Логические команды с байтовыми переменными. Система команд ОМЭВМ позволяет реализовать логические операции: "И", "ИЛИ", "ИСКЛЮЧАЮЩЕЕ ИЛИ" на регистре-аккумуляторе (А) и байте-источнике. Вторым операндом (байтом-источником) при этом может ...

Скачать
85017
10
29

... Подробные сравнительные характеристики датчиков приведены в [7] и [8]/ В отличии от остальных комплектующих прибора, при выборе газового датчика следует принимать во внимание соображения доступности тех или иных приборов( цена, возможность приобретения в России ). При выборе сенсора RS 286-620 во внимание принимались и эти соображения. Как показали эксперименты, данный тип сенсора не обладает ...

0 комментариев


Наверх