- •Содержание
- •Введение
- •1 Разработка функциональной схемы системы
- •1.1Описание принципа работы объекта
- •1.2 Функциональная схема микропроцессорной системы
- •2 Разработка аппаратной части системы
- •2.1 Краткое описание микропроцессорного комплекта
- •2.2 Организация памяти микропроцессорной системы Распределение памяти контроллера приведено на рисунке 5.
- •2.3 Расчет и выбор элементов сопряжения
- •2.3.1 Выбор конденсаторов
- •K73-9-10b-0,1 мкФ±10% ожо.461.087 ту
- •2.3.2 Расчет и выбор кнопок
- •2.3.4 Выбор индикатора
- •3 Разработка программного обеспечения системы
- •3.1 Краткое описание системы команд микроконтроллера
- •Арифметические операции:
- •3.2 Описание общего алгоритма работы системы
- •3.3 Разработка текста программы
1 Разработка функциональной схемы системы
1.1Описание принципа работы объекта
В данном курсовом проекте источник импульсов нам не важен. Импульсы будут приходить на вход счетчика таймера Т0. То есть нужно настроить С/Т0 в режим счетчика. В результате число импульсов будет храниться в регистрах TH0 иTL0. Максимальное число импульсов 65025. По заданию необходимо чтобы программа могла рассчитать количество приходящих импульсов в минуту. Для этого необходимо задействовать второй таймерT1, который будет производить непосредственно отсчет времени(минуты). Так же нам необходимо выводить значения на МЖКИ, для этого к контроллеру подключим МЖКИ. Для того чтобы выбрать нужный режим отображения на МЖКИ: количество импульсов или число импульсов в минуту, - введем кнопки, при нажатии которых будет задаваться тот или иной режим.
1.2 Функциональная схема микропроцессорной системы
Функциональная схема системы приведена на рисунке 2 и в графической части проекта.
В данной схеме можно выделить следующие блоки:
блок обработки индикации (БОИ) – служит для подготовки вывода информации на индикатор;
индикатор (ИНД) - служит для визуализации информации ;
таймер (Т) - служит для отсчетов промежутков времени;
блок обработки клавиатуры (БОК) - служит для подготовки ввода информации с клавиатуры;
клавиатура (К) - служит для ввода информации в микропроцессорную систему.
блок счета импульсов (БСИ) - служит для подсчета импульсов
блок счета импульсов в минуту (БСИМ)
импульс (И)
Рисунок 2 – функциональная схема микропроцессорной системы
2 Разработка аппаратной части системы
2.1 Краткое описание микропроцессорного комплекта
Микроконтроллер AT89C51 фирмыATMELпредставляет высокопроизводительный 8-разрядный КМОП микрокомпьютер с Flash ПЗУ.
Основные параметры:
Совместимость с приборами семейства MCS-51TM
Емкость перепрограммируемой Flash памяти: 4 Кбайт, 1000 циклов стирание/запись.
Напряжение питания 5±20% B
Полностью статический прибор - диапазон рабочих частот от 0 Гц до 24 МГц.
Группы по частотам: 12 МГц, 16 МГц, 20 Мгц и 24 Мгц
Трехуровневая блокировка памяти программ
СОЗУ емкостью 128 байтов
32 программируемых линий ввода/вывода
Два 16-разрядных таймера/счетчика событий
Шесть источников сигналов прерывания
Программируемый последовательный канал UART
Пассивний (idle) и стоповый (power down) режимы
Промышленный (-40°С...85°C), коммерческий (0°C...70°C), диапазоны температур
режимы пониженного потребления питания
Условное обозначение приведено на рисунке 3.
Рисунок 3 – Условное обозначение микросхемы AT89C51
Микросхема конструктивно оформлена в 40-контактном пластиковом корпусе типа DIP.
КМОП микроконтроллер АТ89С51, оснащенный Flash программируемым и стираемым ПЗУ , совместим по системе команд и по выводам со стандартными приборами семейства MCS-51TM. Микроконтроллер содержит 4 Кбайта Flash ПЗУ, 128 байтов ОЗУ, 32 программируемых линий ввода/вывода, два 16-разрядных таймера/счетчика событий, полнодуплексный последовательный порт (UART), пять векторных двухуровневых прерывания, встроенный генератор и схему формирования тактовой последовательности.
Существуют два варианта микроконтроллеров АТ89С51: с возможностью внутрисистемного программирования с использованием при программировании напряжения 5 В, и программирование с использованием напряжения 12 В, применяемого в большинстве программаторов. Содержимое Flash памяти программ может быть защищено от несанкционированной записи/считывания. Имеется возможность очистки Flash памяти за одну операцию, возможность считывания встроенного кода индентификации.
Потребление в активном режиме на частоте 12 Мгц не превышает 20 мА и в пассивном режиме, при котором остановлено ЦПУ, но система прерываний, ОЗУ, таймеры/счетчики событий и последовательный порт остаются активными, потребление не превышает 5 мА. В стоповом режиме потребление не превышает 100 мкА и 20 мкА при напряжении питания 6 В и 3 В, соответственно.
Микроконтроллер АТ89С51 ориентирован на использование в качестве встроенного управляющего контроллера.
Назначение выводов приведено в таблице 1.
Таблица 1 – Назначение выводов микросхемы AT89C51
Структурная схема контроллера приведена на рисунке 4.
Рисунок 4 - структурная схема контроллера AT89C51
Рассмотрим таймеры контроллера.
Два программируемых 16-битных таймера/счетчика (T/C0 и T/C1) могут быть использованы в качестве таймеров или счетчиков внешних событий. При работе в качестве таймера содержимое T/C инкрементируется в каждом машинном цикле, т.е. через каждые 12 периодов резонатора. При работе в качестве счетчика содержимое Т/С инкрементируется под воздействием перехода из 1 в 0 внешнего входного сигнал; подаваемого на соответствующий (T0, T1) вывод МК51. Опрос значения внешнего входного сигнала выполняется в момент времени S5P2 каждого машинного цикла. Содержимое счетчика будет увеличено на 1 в том случае, если в предыдущем цикле был считан входной сигнал высокого уровня (1), а в следующем – сигнал низкого уровня (0). Новое (инкрементированное) значение счетчика будет сформировано в момент S3P1 в цикле, следующем за тем, в котором был обнаружен переход сигнала из 1 в 0. Так как на распознавание перехода требуется два машинных цикла, то максимальная частота подсчета входных сигналов равна 1/24 частоты резонатора. На длительность периода входных сигналов ограничений сверху нет. Для гарантированного прочтения входного считаемого сигнала он должен удерживать значение 1 как минимум течение одного машинного цикла МК51.
Для управления режимами работы T/C и для организации взаимодействия таймеров с системой прерывания используются два регистра специальных функций (TCON и TMOD), описание которых приводится в таблице 2 и таблице 3 соответственно. Как следует из описания управляющих бит TCON, для обоих T/C режимы работы 0, 1 и 2 одинаковы. Режимы для T/C0 и T/C1 различны. Рассмотрим кратко работу T/C во всех четырех режимах.
Таблица 2 - Регистр режима работы таймера / счетчика
Таблица 3 - Регистр управления / статуса таймера
Режим 0. Перевод любого Т/С в режим 0 делает его похожим на таймер МК48 (8-битный счетчик), на вход которого подключен 5-битный предделитель частоты на 32. Работу Т/Cв режиме 0 на примере Т/C1 иллюстрирует. В этом режиме таймерный регистр имеет разрядность 13 бит. При переходе из состояния "все единицы" в состояние "все нули" устанавливается флаг прерывания от таймераTF1. Входной синхросигнал таймера 1 разрешен (поступает на входT/C), когда управляющий битTR1 установлен в 1 и либо управляющий битGATE(блокировка) равен 0, либо на внешний вывод запроса прерывания ¬INT1 поступает уровень 1.
Отметим попутно, что установка бита GATEв 1 позволяет использовать таймер для измерения длительности импульсного сигнала, подаваемого на вход запроса прерывания.
Режим 1. Работа любого Т/С в режиме 1 такая же, как и в режиме 0, за исключением того, что таймерный регистр имеет разрядность 16 бит.
Режим 2. В режиме 2 работа организована таким образом, что переполнение (переход из состояния "все единицы" в состояние "все нули") 8-битного счетчика TL1 приводит не только к установке флагаTF1,но и автоматически перезагружает вTL1 содержимое старшего байта (TH1) таймерного регистра, которое предварительно было задано программным путем. Перезагрузка оставляет содержимое ТН1 неизменным. В режиме 2 Т/С0 и Т/С1 работают совершенно одинаково.
Режим 3. В режиме 3 Т/C0 и Т/C1 работают по- разному. Т/C1 сохраняет неизменным свое текущее содержимое. Иными словами, эффект такой же, как и при сбросе управляющего битаTRIв нуль.
Работу T/C0 в режиме 3 иллюстрирует. В режиме 3TL0 и ТН0 функционируют как два независимых 8-битных счетчика. РаботуTL0 определяют управляющие битыT/C0 (C/ ¬T,GATE,TR0), входной сигнал ¬INT0 и флаг переполненияTF0, РаботуTH0, который может выполнять только функции таймера (подсчет машинных циклов МК), определяет управляющий битTR1. При этом ТН0 использует флаг переполненияTF1.
Режим 3 используется в тех случаях применения МК51, когда требуется наличие дополнительного 8-битного таймера или счетчика событий. Можно считать, что в режиме 3 МК51 имеет в своем составе три таймера/счетчика. В том случае, если Т/С0 используется в режиме 3, Т/С1 может быть или включен, или выключен, или переведен в свой собственный режим 3, или может быть использован последовательным портом в качестве генератора частоты передачи, или, наконец, может быть использован в любом применении, не требующем прерывания.