Рассмотрим индикатор LFD2110-XX, имеющий следующие характеристики (согласно [7]):
Число разрядов – 4,
Входное напряжение –1, 5..3 В
Высота цифр – 7 мм;
Данный индикатор не подходит, т.к. входное напряжение не 5 В.
Рассмотрим индикатор LFD3162-XX, имеющий следующие характеристики (согласно [7]):
Число разрядов – 4,
Входное напряжение –1, 5..3 В
Высота цифр – 9,2 мм;
Данный индикатор не подходит, т.к. входное напряжение не 5 В.
Рассмотрим индикатор LFD3164-XX, имеющий следующие характеристики (согласно [7]):
Число разрядов – 4,
Входное напряжение –1, 5..3 В
Высота цифр – 9,2 мм;
Данный индикатор не подходит, т.к. входное напряжение не 5 В.
Индикатор HD44780 не подходит, т.к. он программируемый, в данной работе не нужен весь спектр его возможностей.
Рассмотрим индикатор DE-119, имеющий следующие характеристики (согласно [8]):
Число разрядов – 4,
Входное напряжение –5 В
- Высота цифр – 12,7 мм;
Данный индикатор подходит по всем критериям. Он является жидкокристаллическим, эти индикаторы характеризуются низким энергопотреблением по сравнению со светодиодными, но у них есть и недостатки: плохая видимость пли плохом освещении, плохая работоспособность при низкой температуре. Индикатор DE-119 имеет следующий вид:
Рис. 9. Габаритные размеры индикатора DE-119
Микроконтроллер для электронных весов должен иметь встроенный десятиразрядный АЦП (Аналогово-цифровой преобразователь), четыре восьмиразрядных порта ввода/вывода, напряжение питания 5 В.
Существуют разнообразные виды управляющих микроконтроллеров (согласно [9]). Контроллеры классифицируют по разрядности:
Четырехразрядные – самые простые и дешёвые устройства, предназначенные для замены несложных схем на “жёсткой” логике в системах с невысоким быстродействием. Типичные случаи применения- часы, калькуляторы, игрушки, простые устройства управления.
Восьмиразрядные – наиболее многочисленная группа (оптимальное сочетание цены и возможностей). К этой группе относятся микроконтроллеры серии MCS-51 (Intel) и совместимые с ними: PIC (MicroChip), HC68 (Motorola), Z8 (Zilog) и др.
Шестнадцатиразрядные – MCS-96 (Intel) и др. – более высокопроизводительные, но более дорогостоящие и менее распространённые.
Тридцатидвухразрядные – обычно являющиеся модификациями универсальных микропроцессоров, например i80186 или i386EX.
Для электронных весов будем выбирать восьмиразрядный микроконтроллер семейства MCS-51, т.к. это семейство является несомненным чемпионом по количеству разновидностей и количеству компаний, выпускающих его модификации.
Рассмотрим микроконтроллер AT80C5112, имеющий следующие характеристики (согласно [10]):
ПЗУ - нет,
Напряжение питания - 2,7-5,5 В,
Порты ввода/вывода - 3,
Рабочая частота - 60 МГц,
16-разрядный таймер – 2,
АЦП – нет,
UART – нет;
Данный микроконтроллер не подходит, т.к. не обладает АЦП.
Рассмотрим микроконтроллер AT89LV52, имеющий следующие характеристики (согласно [10]):
ПЗУ – 8 Кб,
Напряжение питания - 2,7-5,5 В,
Порты ввода/вывода - 5,
Рабочая частота - 16 МГц,
16-разрядный таймер – 3
АЦП – нет,
UART – 1;
Данный микроконтроллер не подходит, т.к. не обладает АЦП.
Рассмотрим микроконтроллер 5.0.4.8XC51GB, имеющий следующие характеристики (согласно [9]):
ПЗУ – нет,
Напряжение питания - 5 В,
Порты ввода/вывода - 6,
Рабочая частота - 12 МГц,
16-разрядный таймер – 3
АЦП – 8-разрядов,
UART – 2;
Данный микроконтроллер не подходит, т.к. обладает 8-разрядным АЦП.
Рассмотрим микроконтроллер AT89C5AC2, имеющий следующие характеристики (согласно [11]):
ПЗУ – 32 Кб,
Напряжение питания - 3-5,5 В,
Порты ввода/вывода - 5,
Рабочая частота – 20 либо 40 МГц,
16-разрядный таймер – 3
АЦП – 10 разрядов,
UART – 1;
Рис. 10. Блок-схема микроконтроллера AT89C5AC2
Данный микроконтроллер подходит по всем критериям. Помимо вышеперечисленных характеристик AT89C5AC2 обладает:
ОЗУ 256 байт на кристалле,
PCA – Программируемый массив счётчиков,
Диапазон рабочих температур -40 – 85 °С.
3 Формирование принципиальной электрической схемы
На принципиальной электрической схеме должны быть отражены все электрические связи, т.е. датчика с микроконтроллером, микроконтроллера с индикатором, источника питания с датчиком и микроконтроллером. Также должна быть отражена кнопка “Reset”, сбрасывающая микроконтроллер.
Список выводов датчика давления:
Табл. 1. Распиновка датчика давления
Название | Описание | Номер |
Vcc | К этому выводу подключается напряжение питания (5 В) | 3 |
+Vout | Выходной сигнал | 2 |
-Vout | Выходной сигнал | 4 |
Gnd | Заземление | 1 |
Вывод Vcc подсоединим к источнику питания, +Vout к 7 каналу АЦП, -Vout к контакту VAGND АЦП, Gnd к “земле”.
Список выводов микроконтроллера:
Табл. 2. Распиновка микроконтроллера
Название | Описание | Номер |
Vcc | Напряжение питания | 42 |
VAREF | Опорное напряжение для АЦП | 2 |
AN0..AN7 | Входы АЦП | 3..10 |
XTAL1 | Подключение кварцевого резонатора | 41 |
XTAL2 | Подключение кварцевого резонатора | 40 |
Gnd | Заземление | 43 |
VAGND | Аналоговая земля | 1 |
P0 | Порт ввода/вывода | 30..37 |
P1 | Порт ввода/вывода | 3..10 |
P2 | Порт ввода/вывода | 29..22 |
P3 | Порт ввода/вывода | 12..19 |
P4 | Порт ввода/вывода | 20,21 |
Rst | Вход сброса микроконтроллера | 44 |
К выводу опорного напряжения VAREF (это будет максимальное значение входного напряжения, т.е. “111111111b”) подключим 5 В.
К выводу напряжения питания Vcc подключим также 5 В.
К выводам XTAL1, XTAL2 подключим кварцевый резонатор, частотой 20 МГц.
Вывод Gnd подключим к “земле”.
На схеме присутствует кнопка “Reset”, сбрасывающая микроконтроллер (выполнение программы начинается сначала), это необходимо в случае зацикливания программы или какого-нибудь другого сбоя.
К порту P0 подключим 2-й разряд индикатора (сотни), сегменты с “a” по “g” (см. рис. 5). Если на соответствующем выводе P0 “единица”, то сегмент светится, если “ноль”, то нет.
К порту P1 подключим 1-й разряд индикатора (десятки), сегменты с “a” по “g” (см. рис. 5). Если на соответствующем выводе P1 “единица”, то сегмент светится, если “ноль”, то нет.
К порту P2 подключим 0-й разряд индикатора (единицы), сегменты с “a” по “g” (см. рис. 5). Если на соответствующем выводе P2 “единица”, то сегмент светится, если “ноль”, то нет. К выводу P2.7 вход десятичной точки 0-го разряда.
К порту P3 подключим -1-й разряд индикатора (десятые), сегменты с “a” по “g” (см. рис. 5). Если на соответствующем выводе P0 “единица”, то сегмент светится, если “ноль”, то нет.
Рис. 11. Схема электрическая принципиальная
Теперь рассмотрим индикатор:
Табл. 3. Распиновка индикатора
Описание | Вывод |
4A | 21 |
4B | 20 |
4C | 19 |
4D | 18 |
4E | 17 |
4F | 22 |
4G | 23 |
3A | 25 |
3B | 24 |
3C | 15 |
3D | 14 |
3E | 13 |
3F | 26 |
3G | 27 |
2A | 30 |
2B | 29 |
2C | 11 |
2D | 10 |
2E | 9 |
2F | 31 |
2G | 32 |
DP3 | 16 |
1A | 35 |
1B | 34 |
1C | 7 |
1D | 6 |
1E | 5 |
1F | 36 |
1G | 37 |
Алгоритм работы электронных весов должен быть следующим:
Подготовка АЦП – настройка АЦП (номер канала AN1..AN7, режим работы: стандартный или точный, прерывания), старт преобразования.
Считывание данных с АЦП. Преобразованное число хранится в регистрах ADDH и ADDL (старший и младший байты соответственно)
Преобразование кода младшего разряда в код семисегментного индикатора. Так как по техническому заданию необходимо обеспечить точность 0,5 кг., младший разряд (десятые) будет принимать значения “0” или “5”. Код, который нужно преобразовать находится в двух младших разрядах ADDL.
Вывод младшего разряда. Выводим преобразованное число на порт P3, т.е. на -1-й разряд индикатора.
Преобразование кода остальных разрядов в двоично-десятичный код. То есть преобразование двоичного восьмиразрядного числа в двоично-десятичное (число, в котором каждая десятичная цифра представлена четырьмя битами).
Преобразование кода остальных разрядов в код семисегментного индикатора. Каждая цифра двоично-десятичного должна быть представлена семиразрядным эквивалентом, для последующего вывода на индикатор.
Вывод остальных разрядов. Вывод 2-го, 1-го и 0-го разрядов на индикатор.
Переход на пункт 4.2 и повторение алгоритма.
Блок-схема алгоритма имеет следующий вид:
Рис. 12. Блок-схема алгоритма
Настройка АЦП заключается в записи данных в соответствующие регистры (согласно [11]). Регистр ADCF (конфигурация АЦП):
Табл. 4. Регистр ADCF
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
CH7 | CH6 | CH5 | CH4 | CH3 | CH2 | CH1 | СH0 |
Номер бита | Название бита | Описание | |||||
7-0 | CH 0:7 | При установленном бите P1.x используется в качестве входа АЦП, при сброшенном бите P1.x используется в качестве стандартного порта ввода/вывода. |
В данном регистре установим бит 7, т.к. будем использовать P1.7 в качестве входа АЦП.