- •1.Организация микроконтроллера мк1816
- •1.1.Общие сведения о семействе микроконтролеров к1816.
- •2.Арифметическо-логическое устройство (алу) микроконтроллера мк1816
- •3.Память микроконтроллера мк1816
- •3.1.Память программ (или - память команд, пк)
- •3.2.Память данных (или - оперативная память, озу)
- •4.Организация ввода – вывода в микроконтроллере мк1816
- •4.1.Порты (или каналы) ввода - вывода р1 и р2.
- •4.2.Порт ввода - вывода bus (или db).
- •5.Управление работой микроконтроллера мк1816
- •5.1.Синхронизация микроконтроллера.
- •5.2.Системный сброс.
- •5.3.Пошаговый режим работы.
- •6.Варианты структур микроконтроллерных систем(мкс) на основе мк1816
- •6.1.Мк-система с расширенной памятью программ.
- •6.2.Мк-система с расширенной памятью данных.
- •6.3.Мк-система с расширенным вводом-выводом.
- •7.Система команд микроконтроллера мк1816
- •7.1.Команды пересылки и обмена
- •7.2.Команды арифметических и логических операций (в том числе и операций над признаками)
- •7.2.1.Общие сведения.
- •7.2.2.Команды группы арифметических операций
- •7.2.3.Команды группы логических операций:
- •Xrl a,Rr - Исключающее или аккумулятора с маской в регистре
- •Xrl a,#d - Исключающее или аккумулятора с непосредственным операндом
- •Xrl a,@Rr - Исключающее или аккумулятора и маской в ячейке памяти
- •7.3.Команды ввода – вывода
- •7.4.Команды передачи управления (в том числе и операций с подпрограммами)
- •7.5.Команды операций с таймером
- •7.6.Команды управления режимом работы мк
7.5.Команды операций с таймером
Кроме рассмотренных ранее команд обмена между таймером и аккумулятором ("MOV А,Т" и "MOV Т,А"), по которым содержимое таймера может быть прочитано или изменено (перезагружено) во время остановки счета или во время подсчета ("на лету"), в МК выполняются специальные команды управления режимом работы таймера. Таймер может быть (в зависимости от команды) использован как счетчик тактов или событий от внутреннего или внешнего источника сигналов. Выполняемая команда определяет источник тактирования таймера. Система команд МК 1816 располагает средствами разрешения или запрета прерывания от таймера,
STRT Т - Запуск таймера
"0101'0101", "55"
Команда разрешает работу таймера от сигналов синхронизации. Содержимое инкрементируется через каждые 32 цикла тактирования.
STRT CNT - Запуск счетчика событий
"0100'0101", "45"
Таймер работает в качестве счетчика событий от сигналов на входе Т1. Инкремент счетчика событий выполняется по спаду сигнала на входе Т1.
STOP TCNT - Останов таймера/счетчика событий
"0110'0101", "65"
Пример: запретить прерывания от таймера, но разрешить прерывание после восьми сигналов переполнения таймера. При переходе к процедуре обработки прерывания остановить таймер. Сигналы переполнения подсчитывать в регистре 5.
START: |
DIS |
TCNTI |
; запрет прерываний от таймера |
|
CLR |
А |
; очистка аккумулятора |
|
MOV |
Т,А |
; очистка таймера |
|
MOV |
R5,А |
; очистка регистра 5 |
|
STRT |
Т |
; запуск таймера |
MI: |
JTF |
COUNT |
; если TF = 1, то переход к COUNT |
|
|
|
; и установка TF в нуль |
|
JMP |
MI |
; цикл |
COUNT: |
INC |
R5 |
; инкремент регистра R5 |
|
MOV |
A,R5 |
; переслать R5 в аккумулятор |
|
JB3 |
INT |
; переход к подпрограмме обслуживания |
|
|
|
; прерывания INT, если бит 3 аккумулятора |
|
|
|
; имеет значение 1 |
|
JMP |
Ml |
; переход, если В3 != 1 |
|
. . . |
|
|
INT: |
STOP |
TCNT |
; останов таймера |
|
JMP |
07H |
; перейти к ячейке 7 (вектор |
|
|
|
; прерывания от счетчика событий) |
EN TCNTI - Разрешение перывания от таймера
"0010'0101", "25"
Сигнал переполнения таймера-счетчика событий вызовет подпрограмму обслуживания прерывания.
DIS TCNTI - Запрет прерывания от таймера
"0011'0101", "35"
Запрос прерывания по сигналу переполнения таймера не обслуживается, но сохраняется. Таймер-счетчик событий продолжает свою работу.