Счетчик команд и регистр указателя данных
Счетчик команд (РС) предназначен для формирования текущего 16-разрядного адреса программной памяти и 8/16-разрядного адреса внешней памяти данных (ВПД).
В состав счетчика команд входят:
1. Шестнадцатиразрядный буфер РС;
2. Регистр счетчика команд;
3. Схема инкремента;
4. Регистр адреса памяти.
Буфер РС осуществляет связь между 16-ти разрядной адресной шиной и 8-ми разрядной внутренней шиной данных, обеспечивая запись, хранение и коммутирование информации.
В регистре счетчика команд хранится адрес текущей команды.
Схема инкремента увеличивает текущее значение регистра РС на 1.
Регистр адреса памяти предназначен для записи и хранения исполнительного 16-ти разрядного адреса памяти программ или 8/16-ти разрядного адреса ВПД, а также для передачи данных в порт Р0 при выполнении команд MOVX@RI и MOVX@DPTR, A, обеспечивающих запись данных через порт Р0 во внешние устройства.
Регистр указателя данных (DPTR) предназначен для хранения 16-разрядного адреса ВПД. Состоит из двух 8-разрядных регистров DPH и DPL, входящих в блок регистров специальных функций. Они программно доступны и могут использоваться в качестве двух независимых РОН, если нет необходимости хранения 16-разрядного адреса ВПД.
Регистр указателя стека
Регистр указателя стека SP МК51 восьмиразрядный. Он может адресовать любую область резидентной памяти данных. В отличие от микропроцессора К580ВМ80, в МК51 стек “растет вверх”, т.е. перед выполнением команды PUSH или CALL содержимое SP инкрементируется, после чего производится запись информации в стек. Соответственно при извлечении информации из стека регистр SP декрементируется после извлечения информации. В процессе инициализации микро-ЭВМ после сигнала сброса или при включении питающего напряжения в SP заносится код 07Н. Это означает, что первый элемент стека будет располагаться в ячейке памяти с адресом 08Н.
Таймеры/счетчики
Таймер/счетчик (Т/С) предназначен для подсчета внешних событий, формирования программно-управляемых временных задержек и выполнения времязадающих функций МК51. В состав Т/С входят:
1. Два 16-разрядных регистра T/C0 и T/C1;
2. Восьмиразрядный регистр режимов (TMOD);
3. Восьмиразрядный регистр управления (TCON);
4. Схема инкремента;
5. Схема фиксации , , T0 , T1;
6. Схема управления флагами;
7. Логика управления Т/C .
Регистры T/C0 и T/C1 состоят из пары 8-разрядных регистров. Регистр T/C0 состоит из ТН0 и ТL0, а регистр T/C1 - ТН1 и ТL1. Регистры ТН0 и ТН1 - старшие , а ТL0 и ТL1 - младшие . Каждый 8-разрядный регистр имеет свой адрес и может использоваться как РОН, если Т/С не используются.
Код величины начального счета заносится в Т/C программно. В процессе счета содержимое Т/C инкрементируется. Признаком окончания счета является переполнение регистра, т. е. переход из состояния все 1 в состояние все 0. Все регистры доступны для чтения и, при необходимости, контроль достижения заданной величины счета может выполняться программно.
Регистр режимов Т/C (TMOD) предназначен для приема и хранения кода, который определяет:
- один из 4-х режимов работы Т/C;
- работу в качестве таймера или счетчика;
- управление Т/C от внешнего вывода.
Обозначение разрядов регистра TMOD приведено в табл.1.4, а в табл.1.5 – их назначение.
Таблица 1.4. Обозначение разрядов TMOD
Номер разряда | ||||||||
Обозначение | GATE1 | C/T1 | M1.1 | M0.1 | GATE0 | C/T0 | M1.0 | M0.0 |
Таблица 1.5
Номер разряда | Обозначение | Назначение разрядов | Примечание |
1, 0 5, 4 | M1.0, M0.0 M1.1, M0.1 | Определяют один из 4-х режимов работы, отдельно для Т/С0 и Т/С1 | Все разряды TMOD устанавливаются программно: разряды 0…3 определяют режим работы Т/С0, разряды 4…7 – Т/С1 |
M1 | M0 | Режим | |
С/Т0 С/Т1 | Если разряды С/Т установлены в 0, то соответствующий Т/С работает в качестве таймера. При установке этих битов в 1 – в качестве счетчика внешних событий | ||
GATE0 GATE1 | Разрешает управление Т/С от внешнего вывода ( - для Т/С0, - для Т/С1) GATE = 0 – управление запрещено GATE = 1 – управление разрешено |
При работе в качестве таймера содержимое регистра Т/C инкрементируется в каждом машинном цикле, т. е. Т/C является счетчиком машинных циклов МК51 с частотой .
При работе в качестве счетчика внешних событий содержимое Т/C инкрементируется после перехода из 1 в 0 сигнала на счетном входе Т0 или Т1. Так для распознавания такого перехода требуется два машинных цикла, то максимальная частота счета равна
Чтобы уровень сигнала на счетном входе был гарантированно зафиксирован, он должен оставаться неизменным в течение одного машинного цикла.
Регистр управления (TCON)предназначен для приема и хранения кода управляющего слова. Флаги переполнения TF0 и TF1 устанавливаются при переполнении соответственно Т/C0 и Т/С1. Если при этом разрешено прерывание от соответствующего Т/C, то установка флага вызовет прерывание. Сбрасываются флаги аппаратно при передаче управления программе обработке соответствующего прерывания.
Обозначение разрядов регистра TCON приведено в табл. 1.6, а их назначение – в табл. 1.7.
Таблица 1.6. Обозначение разрядов регистра TCON
Номер разряда | ||||||||
Обозначение | TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0 |
Таблица 1.7. Назначение разрядов регистра TCON
Разряд | Имя | Назначение битов |
TCON.7 TCON.5 | TF1 TF0 | Флаги переполнения Т/С. Устанавливается аппаратно при переполнении Т/С. Сбрасывается при обслуживании прерывания. |
TCON.6 TCON.4 | TR1 TR0 | Биты управления Т/C. Если TR=0, то Т/C блокированы. При установке в единицу разрешен счет. |
TCON.3 TCON.1 | IE1 IE0 | Флаги запроса внешних прерываний. |
TCON.2 TCON.0 | IT1 IT0 | Биты установки фронта/уровня прерываний. Если IT=0 , то прерывание воспринимается по низкому уровню на входе INT. Если же IT=1 , то по срезу (переход из 1 в 0). |
Флаги TF0 и TF1 программно доступны и могут быть установлены/сброшены программой. Используя этот механизм, можно программно вызвать (установить TF) или отменить (сбросить TF) вызов подпрограммы прерываний.
Флаги IE0, IE1 устанавливаются аппаратно от внешних источников прерываний, подключенных к внешним выводам , . Кроме этого их можно установить программно. Установка флагов IE0, IE1 приведет к вызову подпрограммы обработки прерываний, сброс этих флагов выполняется аппаратно при обслуживании прерывания, только в том случае, если прерывание было вызвано срезом сигнала (IT=1). Если прерывание было вызвано уровнем сигнала (IT=0) на входе INT, то сброс флага IE осуществляется источником прерывания под управлением подпрограммы обработки прерываний.
Схема инкремента предназначена для увеличения на 1 содержимого Т/C, для которых разрешена работа в режиме таймера или счетчика внешних событий.
Схема фиксации , , T0, T1 представляет собой 4 триггера, в которые записывается информация с этих выводов МК51.
Схема управления флагами устанавливает или сбрасывает флаги переполнения Т/C и флаги запросов внешних прерываний.
Логика управления Т/C синхронизирует работу регистров Т/C в соответствии с запрограммированным режимом работы .
Дата добавления: 2016-11-26; просмотров: 4184;