Рассмотрим индикатор 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 в качестве входа АЦП.