Среди 8-разрядных однокристальных микроконтроллеров (ОМК) ведущие позиции бесспорно занимает семейство MCS-51, родоначальницей которого является фирма INTEL.
Среди фирм, выпускающих микроконтроллеры семейства MCS-51, следует отметить ATMEL.
Фирма ATMEL за счет совершенства технологии сумела обеспечить:
самые низкие цены на свои ОМК;
возможность внутрисхемного программирования памяти программ для некоторых модификаций ОМК.
Лучшие модели ОМК фирмы ATMEL характеризуются емкостью памяти данных до 256 байт и емкостью памяти программ до 20 Кбайт (Flash).
В качестве микроконтроллера был выбран базовый представитель семейства MCS-51, производства ATMEL, AT89C51.
АТ89С51 это:
8-разрядный КМОП микроконтроллер с Flash ПЗУ
Совместимость с приборами семейства MCS-51
Емкость перепрограммируемой 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), диапазоны температур
Существуют два варианта микроконтроллеров АТ89С51: с возможностью внутрисистемного программирования с использованием при программировании напряжения 5 В, и программирование с использованием напряжения 12 В, применяемого в большинстве программаторов. Содержимое Flash памяти программ может быть защищено от несанкционированной записи/считывания. Имеется возможность очистки Flash памяти за одну операцию, возможность считывания встроенного кода идентификации.
Потребление в активном режиме на частоте 12 Мгц не превышает 20 мА и в пассивном режиме, при котором остановлено ЦПУ, но система прерываний, ОЗУ, таймеры/счетчики событий и последовательный порт остаются активными, потребление не превышает 5 мА. В стоповом режиме потребление не превышает 100 мкА и 20 мкА при напряжении питания 6 В и 3 В, соответственно.
Микроконтроллер АТ89С51 ориентирован на использование в качестве встроенного управляющего контроллера.
По заданию микроконтроллер управления объектом должен получать данные по 2-м аналоговым входам (датчик уровня воды и температуры) и от цифровой клавиатуры. Выходными сигналами выступают 8 дискретных и 2 аналоговых.
Подключение АЦП, ЦАП и EEPROM обеспечивается при помощи шины I2C, что требует всего лишь двух линий ввода-вывода. В качестве средства отображения применен ЖКИ-дисплей со встроенным контроллером.
Расчет необходимого числа портов ввода-вывода приведен в таблице 1.
Таблица 1 – Подсчет общего количества выводов микроконтроллера
Подключаемые устройства и линии |
Количество выводов |
АЦП, ЦАП, EEPROM по I2C |
2 для I2C, 1 для прерывания от АЦП) |
ЖКИ дисплей |
8 выводов данных и 2 управления |
Клавиатура |
7 |
Динамик |
1 |
Впускной клапан воды |
1 |
Выпускной клапан воды |
1 |
Управление насосом |
1 |
Выбор диапазона скоростей 0-10 об/с |
1 |
Выбор диапазона скоростей 10-100 об/с |
1 |
Выбор диапазона скоростей 100-1000 об/с |
1 |
Выбор направления вращения |
1 |
Защелка двери |
1 |
Итого |
29 (P0.0-7, P1.0-7, P2.0-7, RD, WR, TXD, RXD, INT0) |
Таким образом, практически все выводы микроконтроллера задействованы.
Использование AT89C51 вкупе с внешними, подключаемыми по шине I2C АЦП, ЦАП и внешней энергонезависимой памятью, позволяет реализовать микроконтроллер управления стиральной машиной, соответствующий заданию.
Цоколевка микроконтроллера AT89C51 приведена на рисунке 1.
Назначение выводов:
RST – сброс микроконтроллера
P0.0 – P0.7 – выводы порта P0
P1.0 – P1.7 – выводы порта P1
P2.0 – P2.7 – выводы порта P1
RXD/TXD – вход и выход UART
INT0, INT1 – входы внешних прерываний
T0, T1 – входы таймеров
RD/WR – строб чтения/записи
X1/X2 – выводы для подключения источника тактового сигнала
Vss – общий вывод
Vcc – питание
EA/VPP – выбор внешней памяти или 12В при программировании
ALE/P – задействование защелки адреса или вход импульсов при программировании FLASH
PSEN – строб чтения внешней памяти программ
Рисунок 1 – Цоколевка микросхемы AT89C51
В качестве аналого-цифрового преобразователя используется микросхема AD7992 фирмы Analog Devices -- 2-канальный 12-битный АЦП с интерфейсом I2C.
Основные характеристики микросхемы:
два аналоговых недифференциальных входа;
напряжение питания от +2,7 В до +5,5 В;
малое потребление энергии;
высокая пропускная способность: 188 тыс. отсчетов в секунду;
интерфейс I2C поддерживает: стандартный, быстрый и высокоскоростной режимы;
выпускается в 10-выводном корпусе TSSOP.
Данная микросхема без затруднений позволяет проводить аналого-цифровое преобразование входных сигналов и передачу результатов преобразований в микроконтроллер.
В качестве ЦАП используются две микросхемы AD5301, производства Analog Devices.
Основные характеристики микросхемы:
малое потребление энергии;
диапазон температур от -40°C до 105°C;
высокая пропускная способность: 400 тыс. преобразований в секунду;
интерфейс I2C;
выпускается в 6-выводном SOT-23 корпусе и 8-выводном MicroSOIC корпусе.
В качестве энергонезависимой памяти используется микросхема PCF8582, производства Phillips.
Основные характеристики микросхемы:
низкое потребление;
энергонезависимое хранение 2 кбит данных, в виде 256 x 8-бит ;
питание от одного источника. Сохранение функциональности при напряжении источника не ниже 2,5 В;
интерфейс I2C;
1000000 циклов чтения/записи;
10 лет хранения информации без потери;
выпускается в корпусах DIP8 и SO8.