Студопедия

КАТЕГОРИИ:

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

Указания к выполнению работы




 

Микроконтроллеры серии МК51 имеют два встроенных программируемых 16-разрядных таймера-счетчика. При работе в режиме таймера счетчики подсчитывают импульсы, поступающие от тактового генератора с периодом машинного цикла. При тактовой частоте 12 МГц этот период равен 1 мкс, то есть инкремент таймера производится каждую микросекунду и максимальное время счета равно 216 мкс. При работе в режиме счетчика подсчитываются импульсы, поступающие на вход T0 (P3.4 – вывод 14 микросхемы) 0-го таймера и на вход T1 (P3.5 – вывод 15 микросхемы) 1-го таймера. Внешний импульс распознается за два машинных цикла, поэтому максимальная частота сигнала счетчика равна половине частоты, соответствующей машинному циклу (500 кГц при тактовой частоте 12 МГц).

16-разрядные регистры таймеров доступны по чтению и записи побайтно и расположены в области регистров специальных функций. При использовании Ассемблера к ним можно обращаться по именам TH0 и TL0 – для старшего и младшего байтов таймера 0, TH1 и TL1 – для таймера 1.

Таймеры управляются двумя регистрами специальных функций: TMOD и TCON. 

Первый регистр - TMOD имеет следующую структуру:

 

Биты 7 6 5 4 3 2 1 0
Обозн. GATE1 C/T1 M1.1 M0.1 GATE0 C/T0 M1.0 M0.0

 

Биты M0-M1 определяют один из 4-х режимов работы.

Бит C/T определяет работу в режиме таймера (0) или счетчика (1).

Бит GATE разрешает управление таймером от внешнего управляющего сигнала INT (INT0 – вывод 12, INT1 – вывод 13).

Режим работы 0 используется для совместимости с МК48. При этом в таймере для счета используется регистр TH и 5 младших разрядов регистра TL – всего 13 разрядов.

Режим работы 1 – наиболее употребительный. При этом используются все 16 разрядов счетчика.

 В режиме работы 2 для счета используются только 8 младших разрядов (TL). При переполнении происходит их автоматическая перезагрузка содержимым регистров TH.

Режим работы 3 используется в основном при управлении скоростью передачи данных по последовательному каналу и в данной работе не рассматривается.

Побитный доступ к регистру TMOD отсутствует. Запись в него возможна любой командой с прямой адресацией, например, команда MOV TMOD,#00000001b определяет режим 1 нулевого таймера.

Второй регистр – TCON имеет следующую структуру:

 

Биты 7 6 5 4 3 2 1 0
Обозн. TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

 

Здесь биты TR включают - 1 и отключают - 0 работу таймеров.

Биты TF – флаги переполнения таймеров. Они устанавливаются аппаратно, когда к содержимому таймеров 0FFFFh прибавляется 1, и должны быть программно сброшены после опроса.

К данным битам возможна побитовая адресации и в Ассемблере предусмотрено обращение по именам. Например, таймер 1 запускается командой SETB TR1.

Для загрузки таймера необходимо двойное слово загрузить раздельно в два байта. Для этого удобно использовать функции Ассемблера получения младшего байта (Low()) и старшего байта (High()). Так, для получения временной задержки 200 мкс в таймер нужно загрузить константу 65536-200=65336. Это можно сделать следующей последовательностью команд:

 

       
Delay: equ   -200  
  mov  TH0,#low(Delay)  
  mov  TL0,#high(Delay)  

 

Окончание счета можно проверить командой проверки бита TF. При этом команда JBC bit,Address позволяет проверять бит с его автоматическим сбросом.

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

 

     
Delay: EQU

-200

;Определяем длительность

  MOV

TMOD,#1

;Задаем режим таймера

  Mov

TH0,# high(Delay)

;Задаем длительность
  Mov

TL0,# low(Delay)

;
  Setb

TR0

; Запускаем таймер
Wait: Jbc

TF0,Okay

; Ждем конца счета
  Sjmp

Wait

 
Okay: clr TR0

;Останавливаем таймер

           

Отладка программы с помощью логического анализатора среды разработки mVision позволяет графически отобразить состояние портов ввода-вывода микроконтроллера. Для этого в режиме отладки вызовите отображение окна логического анализатора (пункт меню View>Logic Analyzer Window). Затем в пункте меню логического анализатора Setup выберите отображаемый сигнал, например состояние порта P0.

Пример программы формирования сигнала произвольной формы

; Период повторения сигнала - 8 Гц

; Количество уровней на периоде - 250

; Шаг квантования - 1/(8 * 250) = 0.0005 с = 500 мкс

; Форма сигнала задана таблицей в ПЗУ

; =======================================

; Константы

Tic EQU -(500-20) ; 500 мкс с поправкой

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

call InitTimer ; Нстройка таймера

 

MainLoop:

call Vawe ; Вывод сигнала

jmp MainLoop ; Зациклить на выводе

 

; Подпрограммы

; Подпрограмма настройки таймера

InitTimer:

mov TMOD,#00000001b

Ret

 

; Подпрограмма временной задержки 500 мкс

Delay:

mov TH0,#high(Tic) ; Загрузка таймера

mov TL0,#low(Tic)

setb TR0     ; Запуск таймера

jnb TF0,$   ; Ожидание переполнения

clr TF0     ; Сброс флага переполнения

clr TR0     ; Останов таймера

Ret

; Подпрограмма формирования сигнала

Vawe:

mov DPTR,#VaweTbl ; Загрузка адреса таблицы

mov R7,#0   ; Обнулить счетчик точек кривой

mov R6,#250     ; Загрузка счетчика цикла

Next:

mov A,R7    ; Номер очередной точки

movc A,@A+DPTR ; Очередная точка кривой

mov P0,A ; Вывести точку в порт (на ЦАП)

inc R7

call Delay

djnz R6,Next

Ret

 

VaweTbl:

db 1,2,3,4,5,6,7,8,8,8

db 8,8,8,8,8,8,8,8,8,8

db 9,9,9,9,9,9,9,9,9,9

db 10,10,10,10,10,10,10,10,10,10

db 10,10,10,10,10,10,10,10,10,10

 

db 50,60,70,80,90,100,100,100,100,100

db 100,100,100,100,100,100,100,100,100,100

db 150,150,150,150,150,150,150,150,150,150

db 150,150,100,100,100,100,100,100,100,100

db 100,100,100,100,100,100,100,100,100,100

 

db 100,100,100,100,100,100,100,100,100,100

db 100,100,100,100,100,100,100,100,100,100

db 100,100,100,100,100,100,100,100,100,100

db 90,90,90,90,90,90,90,90,90,90

db 90,90,90,90,90,90,90,90,90,90

 

db 90,90,90,90,90,90,90,90,90,90

db 90,90,90,90,90,90,90,90,90,90

db 90,90,90,90,90,90,90,90,90,90

db 90,90,90,90,90,90,90,90,90,90

db 90,90,90,90,90,90,90,90,90,90

 

db 90,90,90,90,90,90,90,90,90,90

db 90,90,90,90,90,90,90,90,90,90

db 90,90,90,90,90,90,90,90,90,90

db 90,90,90,90,90,90,90,90,90,90

db 90,90,90,80,70,30,10,5,2,1

 

END

ЛАБОРАТОРНАЯ РАБОТА № 4

ИСПОЛЬЗОВАНИЕ ПРЕРЫВАНИЙ ПРИ ФОРМИРОВАНИИ СИГНАЛОВ

 

Цель работы

Целью данной работы является изучение системы прерываний микроконтроллера серии МК51.

Рабочее задание

1. Разработать программу в соответствии с вариантом рабочего задания.

2. Добиться безошибочной трансляции программы в среде mVision.

3. В режиме отладки осуществить пошаговое выполнение программы. При проверке работоспособности программы воспользуйтесь логическим анализатором среды mVision.

4. Ответить на контрольные вопросы.

Контрольные вопросы

1. Какую функцию выполняет система прерывания в микропроцессорных системах?

2. В какой последовательности микропроцессор обрабатывает прерывание?

3. Что такое приоритет прерывания?

4. Что такое векторные и радиальные прерывания?

5. В чем различие вызова подпрограмм обработки прерываний и обычных подпрограмм?

6. Как обрабатываются прерывания в микроконтроллерах серии МК51?

7. В чем различия команд RET и RETI микроконтроллера серии МК51?

8. В чем различие в обработке внешних прерываний при их формировании по фронту и по уровню?

9. Какими средствами можно вызвать подпрограмму обработки внешнего прерывания?

Варианты заданий

1. Программа формирования ШИМ сигнала с коэффициентом заполнения 0,4 и 0,6, задаваемым по внешнему прерыванию от двух сигналов, и с периодом 5 кГц. ШИМ сигнал формируется по прерыванию от таймеров.

2. Программа измерения длительности одиночного импульса. Диапазон измерения 100... 200000 мкс. Для измерения использовать внешний запуск таймера и внешнее прерывание от измеряемого импульса. Результат измерения хранится в переменной.

3. Программа формирования прерывистого звукового сигнала частотой 1 кГц с длительностью звучания 200 мс и паузой 100 мс. Сигнал запускается от внешнего прерывания.

4. Программа формирования ШИМ сигнала с пилообразным изменением коэффициента заполнения. Формирователь запускается по внешнему прерыванию. Частота сигнала 1 кГц.










Последнее изменение этой страницы: 2018-04-12; просмотров: 502.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...