
- •Санкт-петербургский государственный технический университет
- •Оглавление
- •Введение
- •1. Арифметические основы вычислительной техники
- •Позиционные системы счисления
- •1.2. Двоичная система счисления
- •1.3. Алгоритмы преобразования десятичных чисел в двоичные
- •В двоичную систему счисления методом вычитания
- •1.4. Восьмеричная и шестнадцатеричная системы счисления
- •Представление чисел в различных системах счисления
- •1.5. Представление символьной информации
- •Представление алфавитно-цифровых и управляющих символов в коде ascii
- •1.6. Представление отрицательных чисел
- •1.7. Сложение и вычитание двоичных чисел
- •Правила сложения двоичных чисел
- •Архитектура микроконтроллеров 80c51
- •Общие сведения о микроконтроллерах 80c51
- •2.2. Особенности архитектуры
- •2.3. Организация памяти
- •2.4. Программная память
- •2.5. Память данных
- •Адресное пространство внутренней памяти данных, доступное для побитовой адресации
- •Регистры специальных функций мк 80с51
- •2.6. Слово состояния программы
- •Формат слова состояния программы
- •2.7. Общая характеристика системы команд
- •Система команд микроконтроллеров семейства mcs-51
- •Команды, модифицирующие флаги psw
- •2.8. Способы адресации
- •2.9. Синхронизация процессора
- •А. Для всех команд, кроме movx; в. Для команды movx
- •2.10. Параллельные порты
- •2.11. Таймеры/счетчики
- •Альтернативные функции портов p0, p2 и p3 мк 80с51
- •Регистр управления режимом таймера/счетчика
- •Регистр управления таймера/счетчика
- •2.12. Последовательный порт
- •Регистр управления последовательного порта
- •Регистр управления мощностью
- •Программирование таймера 1 для обеспечения работы последовательного порта в режимах 1 и 3
- •2.13. Программный Счетчик
- •2.14. Стек
- •2.15. Подпрограммы
- •2.16. Система прерываний
- •Адреса векторов прерываний мк 80с51
- •Регистр разрешения прерываний
- •Регистр приоритетов прерываний
- •2.17. Аппаратный сброс
- •Включении электропитания
- •2.18. Энергосберегающие режимы работы
- •3. Технология программирования микроконтроллеров
- •3.1. Общие положения
- •3.2. Подготовка исходного текста программы
- •3.3. Трансляция программы
- •Трансляции программы
- •Ошибки в программе
- •3.4. Компоновка программы
- •3.5. Отладка программы
- •Литература
- •Система команд мк семейства mcs-51
- •Эмулятор пзу чип32-02
- •1. Назначение
- •2. Технические характеристики
- •3. Инструкция по эксплуатации
- •Англо-русский словарь специальных терминов и сокращений
- •195251, Г. Санкт-Петербург, ул. Политехническая, д. 29
А. Для всех команд, кроме movx; в. Для команды movx
2.10. Параллельные порты
2.10.1. Параллельные порты предназначены для ввода/вывода цифровых данных в параллельном коде. Микроконтроллеры подсемейства 80C51 имеют 4 параллельных порта, альтернативные функции которых приведены в табл. 2.5.
Все четыре порта являются двунаправленными. Отдельные разряды портов может быть использован независимо для ввода и вывода информации.
Каждый портов состоит из регистра-защелки (регистры P0P3), выходного драйвера (управляющего каскада) и входного буфера. Для того, чтобы какая-либо линия порта могла быть использована для ввода данных, в соответствующий разряд регистра-защелки этого порта должна быть записана 1.
2.10.2. Порты Р0 и Р2 используются микроконтроллером при обращении к внешней памяти. Порт Р0 служит для вывода младшего байта адреса, а также для ввода/вывода байта данных в режиме временного мультиплексирования. Порт Р2 служит для вывода старшего байта адреса, если длина адреса равна 16 бит (при выполнении команды MOVXA,@DPTR). В том случае, когда при обращении к внешней памяти данных формируется 8-битный адрес (при выполнении командыMOVXA,@Ri), порт Р2 используется по своему прямому назначению–через него выводится содержимое регистра-защелки Р2.
2.10.3. Порт Р3 является многофункциональным. Каждый разряд этого порта выполняет какую-либо альтернативную функцию (см. табл. 2.6). Разрешение альтернативных функций осуществляется путем записи 1 в соответствующие разряды регистра-защелки порта.
2.10.4. По сигналу RSTв регистры-защелки всех портов записывается числоFFH, разрешая тем самым все альтернативные функции и устанавливая для всех портов режим ввода данных.
2.11. Таймеры/счетчики
2.11.1. В структуре всех микроконтроллеров семейства MCS-51 есть два программируемых 16-битных таймера/счетчика (Т/С0 и Т/С1), каждый из которых может работать или в режиме таймера или в режиме счетчика внешних событий.
Таблица 2.6
Альтернативные функции портов p0, p2 и p3 мк 80с51
Обозначение |
Разряд |
Наименование и назначение |
A0/D0 |
P0.0 |
Разряд 0 шины адреса/данных. |
A1/D1 |
P0.1 |
Разряд 1 шины адреса/данных |
A2/D2 |
P0.2 |
Разряд 2 шины адреса/данных |
A3/D3 |
P0.3 |
Разряд 3 шины адреса/данных |
A4/D4 |
P0.4 |
Разряд 4 шины адреса/данных. |
A5/D5 |
P0.5 |
Разряд 5 шины адреса/данных. |
A6/D6 |
P0.6 |
Разряд 6 шины адреса/данных. |
A7/D7 |
P0.7 |
Разряд 7 шины адреса/данных. |
A8 |
P2.0 |
Разряд 8 шины адреса |
A9 |
P2.1 |
Разряд 9 шины адреса |
A10 |
P2.2 |
Разряд 10 шины адреса |
A11 |
P2.3 |
Разряд 11 шины адреса |
A12 |
P2.4 |
Разряд 12 шины адреса |
A13 |
P2.5 |
Разряд 13 шины адреса |
A14 |
P2.6 |
Разряд 14 шины адреса |
A15 |
P2.7 |
Разряд 15 шины адреса |
RXD |
P3.0 |
Вход приемника последовательного порта в режиме UART. Ввод/вывод данных в синхронном режиме |
TXD |
P3.1 |
Выход передатчика последовательного порта в режиме UART. Выход синхронизации в синхронном режиме |
INT0’ |
P3.2 |
Вход запроса прерывания 0. Активным является сигнал низкого уровня (логический 0) или перепад 1 0 |
INT1’ |
P3.3 |
Вход запроса прерывания 1. Активным является сигнал низкого уровня (логический 0) или перепад 1 0 |
T0 |
P3.4 |
Вход таймера/счетчика 0 |
T1 |
P3.5 |
Вход таймера/счетчика 1 |
WR’ |
P3.6 |
Выход “ЗАПИСЬ”. Активный сигнал низкого уровня формируется при обращении к внешней памяти данных |
RD’ |
P3.7 |
Выход “ЧТЕНИЕ”. Активный сигнал низкого уровня формируется при обращении к внешней памяти данных |
В режиме таймера (т.е. счетчика времени) содержимое счетчика инкрементируется в каждом машинном цикле. В режиме счета внешних событий содержимое счетчика инкрементируется под воздействием перехода из 1 в 0 внешнего логического сигнала, поступающего на соответствующий вход микроконтроллера.
2.11.2. При работе таймера/счетчика в режиме счетчика внешних событий максимальная частота входных импульсов не должна превышать 1/24 тактовой частоты микроконтроллера, поскольку для распознавания перехода внешнего сигнала из 1 в 0 требуется два машинных цикла. Для того, чтобы обеспечить надежное считывание значения внешнего входного сигнала, сигнал не должен изменяться в течение одного полного машинного цикла. Длительность периода входного сигнала сверху не ограничена.
2.11.3. Для управления работой таймеров/счетчиков и организации взаимодействия таймеров/счетчиков с системой прерываний используются два регистра специальных функций –регистр управления режимомTMOD(Timer/Counter Mode Control Register)и регистр управленияTCON(Timer/Counter Control Register), форматы которых приведены в табл. 2.7 и табл. 2.8, соответственно.
2.11.4. Выбор функционального назначения таймера/счетчика (“таймер” или “счетчик внешних событий”) осуществляется программированием бита C/T’ регистраTMOD(см. табл. 2.7).
2.11.5. Каждый таймер/счетчик (в дальнейшем таймер) имеет четыре режима работы, индивидуально программируемых с помощью битов M0 иM1 регистраTMOD(см. табл. 2.7). Выбранный режим определяет не только алгоритм работы таймера, но также и его внутреннюю структуру (рис. 2.11). Режимы 0, 1 и 2 одинаковы для обоих таймеров. В режиме 3 таймеры работают по-разному. Ниже рассмотрены все режимы работы таймеров на примере таймера 0.
2.11.6. В режиме 0таймер 0 представляет собой программно управляемый 13-разрядный двоичный счетчик импульсов, состоящий из 8-разрядного счетчикаTH0, вход которого подключен к выходу 5-разрядного делителя частотыTL0 (рис. 2.11, А). При переполнении счетчика (когда счетчик переходит из состояния “все единицы” в состояние “все нули”) таймер устанавливает флагTF0 (см. табл. 2.8).
Таблица 2.7