Автомобильные часы-термометр-вольтметр

Автолюбителю

Данное устройство предназначено для использования в автомобиле. Оно имеет следующие функциональные возможности:

  • индикация текущего времени
  • будильник
  • таймер
  • индикация температуры в четырех точках
  • звуковая сигнализация при повышении температуры
  • индикация напряжения в бортовой сети автомобиля
  • звуковая сигнализация при падении напряжения бортовой сети
  • управление режимами работы устройства с помощью ИК-пульта
Основой устройства является микроконтроллер AT89C2051 фирмы «Atmel» (рис. 1). Для отображения информации используется жидкокристаллический индикатор типа ЖКИ13-8/7-02. Несмотря на то, что в настоящее время доступны ЖКИ с встроенными контроллерами, иногда оказывается целесообразным применение специального ЖКИ. Причин может быть несколько. Распространенные ЖКИ со встроенными контроллерами обладают целым рядом недостатков: отсутствие десятичных точек, плохой угол обзора, недостаточный в некоторых случаях размер символов. В то же время существует доступная и довольно удобная в использовании микросхема драйвера ЖКИ КР1820ВГ1. Она выпускается Минским ПО «Интеграл». Ввиду малой распространенности технической документации на эту микросхему, будет уместным остановится на ней более подробно.

Рисунок 1. Принципиальная схема устройства.

Микросхема КР1820ВГ1 [1] используется для управления 36-сегментным ЖКИ в режиме 3-уровневого мультиплексирования. Микросхема изготавливается по КМОП-технологии и выпускается в 20-выводном пластмассовом DIP-корпусе. Микросхема содержит встроенный тактовый генератор, резистивный делитель напряжения и делители частоты, с помощью которых формируются сигналы управления строками (общими электродами) и столбцами (сегментными электродами) ЖКИ в режиме 3-уровневого мультиплексирования. Одна микросхема имеет три выхода управления строками и 12 выходов управления столбцами. Предусмотрена возможность каскадирования схем, что позволяет использавать их для управления мультиплексным ЖКИ с числом сегментов более 36. Микросхема не требует никаких навесных компонентов и работает в диапазоне напряжения питания от 3 до 6 вольт. Назначение выводов микросхемы КР1820ВГ1 показано в таблице 1.

Таблица 1.
Назначение выводов микросхемы КР1820ВГ1.
 

ВыводОбозначениеТипНазначение1...3 COB1, COC3, COB3ВыходУправление столбцами В1, С3, В34CSВходВыбор кристалла5Ucc-Напряжение источника питания6GND-Общий7DВходДанные8...13COA2, COB4, COB2, COA1, COC2, COC4ВыходУправление столбцами A2, B4, B2, A1, C2, C414CВходТактовый сигнал С15COA/GВыходУправление сторокой А (вход генератора G)16COC/GВыходУправление сторокой С (выход генератора G)17COBВыходУправление строкой В18...20COC1, COA3, COA4ВыходУправление столбцами B1, A3, A4

Микросхема КР1820ВГ1 имеет четыре режима работы: одиночный, старший, младший и тестовый. В одиночном режиме одна микросхема управляет 36-сегментным ЖКИ, обеспечивая полную синхронизацию его работы. Старший и младний режимы предназначены для организации управления ЖКИ с числом сегментов более 36, тестовый режим – для контроля качества микросхем в процессе изготовления.

Данные вводятся в микросхему в последовательном коде по входу D с синхронизацией записи фронтом тактовых импульсов по входу C (рис. 2).

Рисунок 2. Загрузка микросхемы КР1820ВГ1 по последовательной шине.

Код записываемых данных определяется конкретной схемой подключения шин управления строками и столбцами к сегментам ЖКИ, а также  конфигурацией ЖКИ.

Рисунок 3. Конфигурация сегментов ЖКИ.

На рис. 3 показан пример конфигурации ЖКИ, а в таблице 2 показан порядок следования битов в кодовой посылке для этого варианта подключения такого ЖКИ.

Таблица 2.
Порядок следования битов в кодовой посылке.
 

БитВыводСегмент ЖКИ БитВыводСегмент ЖКИD0COA1, COC/GH1 D20COB3, COC/GD3D1COB1, COBG1 D21COA3,COB C3D2COC1,COA/GF1 D22COA3, COA/GB3D3COC1, COBE1 D23COB3, COA/GA3D4COB1, COC/GD1 D24COA4, COC/GH4D5COA1,COBC1 D25COB4, COBG4D6COA1, COA/GB1 D26COC4,COA/GF4D7COB1, COA/GA1 D27COC4, COBE4D8COA2, COC/GH2 D28COB4, COC/GD4D9COB2, COBG2 D29COA4,COBC4D10COC2,COA/GF2 D30COA4, COA/GB4D11COC2, COBE2 D31COB4, COA/GA4D12COB2, COC/GD2 D32COC1, COC/GP1D13COA2,COBC2 D33COC2, COC/GP2D14COA2, COA/GB2 D34COC3, COC/GP3D15COB2, COA/GA2 D35COC4, COC/GP4D16COA3, COC/GH3 D36Не используется-D17COB3, COBG3 D37Q6-D18COC3,COA/GF3 D38Q7-D19COC3, COBE3 D39Q8-

Биты D0..D7 соответствуют сегментам первого разряда, биты D8..D15 – второго и т. д. Биты D32..D35 соответствуют специальным сегментам P1...P4. Бит D36 может принимать любое значение. Биты D37 и D38 (Q6 и Q7) управляют режимом работы схемы согласно таблице 3. Бит D39 (Q8) предназначен для синхронизации работы двух и более микросхем при каскадировании.

Таблица 3.
Назначение битов управления микросхемой.
 

БитРежим
работыВыходD36 (Q7)D37 (Q6)COC/GCOA/G11МладшийВыход управления строкой СВход генератора01ОдиночныйТо жеВыход управления строкой А10Тестовый--00СтаршийВыход внутреннего генератораВыход управления строкой А

Для загрузки микросхемы в одиночном режиме необходимо выполнить следующую последовательность действий:

  • установить на сходе CS уровень логического 0
  • записать восемь битов данных для каждой цифры первого-четвертого разрядов
  • записать четыре бита для специальных сегментов и четыре бита управления: 0|0|1|1|P4|P3|P2|P1
  • установить на входе CS уровень логической 1

После установки микросхемы в нужный режим для последующей смены данных необязательно записывать все 40 бит информации.

Для загрузки микросхемы в старшем и младшем режимах необходимо выполнить следующую последовательность действий:

  • установить на входе CS обеих схем уровень логического 0
  • записать 32 бита данных для «младшей» схемы
  • записать четыре бита для специальных сегментов младшей схемы и четыре бита управления: 1|1|1|1|P4|P3|P2|P1 (при подаче последней единицы обе микросхемы устанавливаются в младший режим, выводы COA/G обеих схем работают как входы генератора. Происходит синхронизация работы микросхем)
  • установить на входах CS обеих схем уровень логической 1
  • установить на входе CS «старшей» схемы уровень логического 0
  • записать 32 бита данных для старшей схемы
  • записать четыре бита для специальных сегментов старшей схемы и четыре бита управления: 0|0|0|0||P4|P3|P2|P1 (после этого вывод COA/G старшей схемы начитает работать как выход управления строкой А, а вывод COC/G – как выход встроенного генератора. Импульсы с выхода генератора старшей схемы поступают на вход генератора COA/G младшей схемы, и оба кристалла начинают работать синхронно от генератора старшей схемы)
  • установить на сходе CS установить уровень логической 1

Чтобы записать во внутренние регистры-защелки новые данные, нет необходимости сбрасывать обе схемы: достаточно записать данные по очереди во внутренние регистры-защелки каждой схемы. При этом в последний бит D39 должен записываться ноль как для старшей, так и для младшей схем.

Нужно сказать, что некоторые типы ЖК индикаторов неудовлетворительно работают при питании микросхем драйверов напряжением 5В. Однако картина резко улучшается при снижении напряжения питания до 3.3 – 4.0В. Это сделать совсем несложно, так как потребляемый драйверами ток очень мал. В цепь питания можно включить параметрический стабилизатор напряжения на основе TL431 или даже простой резистивный делитель. На всех цифровых входах драйверов также понадобятся делители напряжения.

В качестве часов реального времени применена микросхема DS1302 фирмы Dallas. Эта микросхема имеет раздельные входы для подключения основного и резервного источников питания, что избавляет от проектирования довольно хитрых схем перехода на резервный источник. Кроме того, имеется встроенная схема «капельной» зарядки резервного источника питания, которая может быть включена программно. Дополнительно микросхема имеет ОЗУ объемом 31 байт, которое может быть использовано для энергонезависимого хранения параметров. Из навесных элементов требуется только кварцевый резонатор. Здесь хочется предостеречь от применения дешевых некачественных резонаторов. Согласно рекомендациям фирмы Dallas, требуется резонатор, рассчитанный на емкость нагрузки  6 пФ. В противном случае точность хода часов будет неудовлетворительной или даже появятся проблемы с запуском кварцевого генератора. Для обмена с микросхемой DS1302 используются общие с драйверами ЖКИ линии данных и тактирования. Разделены только сигналы CS и RST. К сожалению, микросхема DS1302 имеет довольно специфический 3-х проводный интерфейс, который в фирменной документации описан весьма неоднозначно. Это довольно редкий пример плохого фирменного описания. Поэтому в новых разработках лучше применять более современные микросхемы, например DS1307 с интерфейсом I2C.

В качестве датчиков температуры применены микросхемы цифровых термометров DS1821 фирмы Dallas. В цепях данных термометров включены защитные цепочки R11-R14, VD1-VD8, а в цепи питания включен ограничивающий резистор R10 для защиты от короткого замыкания. Несмотря на то, что аппаратно имеется возможность подключить четыре термометра, данная версия программы работает только с тремя. Это вызвано недостаточным объемом памяти программ. Термометры устанавливаются в разных местах автомобиля. В данном случае они были установлены в салоне, на открытом воздухе и в моторном отсеке. Благодаря наличию заданных программно порогов, кроме индикации температуры осуществляется ещё и контроль ее выхода за безопасные пределы. Ввиду недостаточного объема памяти программ, редактирование порогов температур не поддерживается. Пороги в виде констант внесены в текст программы. Для первого термометра +55 градусов, а для второго и третьего термометра +99 градусов.

Для измерения напряжения бортовой сети построен простейший 8-разрядный АЦП на основе встроенного в микроконтроллер компаратора. Для уменьшения влияния помех используется 16-кратное усреднение результатов. Принцип работы АЦП пояснен на рис. 4.

Рисунок 4. Принцип работы АЦП.

На входе AIN1 формируется пилообразное напряжение, которое сравнивается с входным напряжением, которое через делитель R2, R3 поступает на вход компаратора AIN0. Емкость C8 снижает влияние помех на показания вольтметра. Пилообразное напряжение формируется на емкости C9 в результате заряда ее стабильным током от генератора тока, собранного на элементах VT2, VD9, R6. Перед началом измерения конденсатор C9 разряжен с помощью открытого ключа VT3. Когда начинается цикл измерения, на порту P1.5 устанавливается низкий логический уровень, транзистор VT3 закрывается, и напряжение на конденсаторе C9 начинает линейно нарастать. В это время разрешается счет программному счетчику. Счет идет до тех пор, пока напряжение на C9 не станет равным входному (на средней точке делителя R2, R3). При этом переключается встроенный компаратор, и счет запрещается. Значение, накопленное в счетчике, будет пропорционально входному напряжению. Применение генератора тока (а не резистора) позволило получить линейный закон заряда C9, что исключило необходимость программной линеаризации АЦП, которая потребовала бы дополнительных затрат и так дефицитной памяти программ. Необходимо отметить, что конденсатор C9 должен быть термостабильным, например, с пленочным диэлектриком типа К73-17. С помощью резистора R6 подбирают ток генератора таким образом, чтобы показания АЦП совпадали с реальным значением напряжения на входе +B. Кроме индикации напряжения осуществляется контроль его падения ниже порога 10В. В случае такого падения включается звуковая сигнализация.

Для управления устройством применяется ИК-пульт дистанционого управления. Конструктивно он выполнен на базе дешевого малогабаритного калькулятора. Использованы только его корпус и клавиатура. В пульту применена микросхема INA3010D в корпусе SOIC. Для питания используются два элемента СЦ-30. Используемый номер системы кода RC-5 - 1EH. Схема пульта не приводится, так как практически повторяет типовую схему включения микросхемы INA3010 (SAA3010) и зависит от конфигурации конкретной клавиатуры. Коды, соответствующие кнопкам, также могут отличаться от заданных. Для восстановления соответствия необходимо правильно заполнить перекодировочную таблицу в программе. Сделать это можно даже не перетранслируя программы с помощью шестнадцатиричного редактора прямо в .bin – файле. Таблица расположена по адресам 7B8H - 7E3H . Соответствие функций управления, их внутренних кодов (после перекодировки) и кодов ИК ДУ (до перекодировки) приведено в таблице 4.

Таблица 4.
Коды кнопок управления.
 

Номер командыНазвание командыВнутренний код команды
(после перекодировки)Код ИК ДУ
(до перекодировки)1TIMER 0CH00H2CLOCK0DH 01H3ALARM0EH 02H4LOCK 0FH03H5708H 08H68 09H09H79   0AH0AH 8LIST  10H 0BH 94  05H 10H 105  06H 11H 116  07H12H 12ESCAPE  11H 13H 13ALARM DISABLE  14H 18H 14TIMER CLEAR  13H 1AH150  01H 20H 16BACKSPACE  12H 22H 171  02H 28H 182  03H 29H 193  04H2AH 20ENTER  0BH2BH 

Вот краткое описание команд управления:

  • CLOCK – вход в режим установки текущего времени
  • ALARM – вход в режим установки времени будильника
  • ALARM DISABLE – выключение будильника
  • TIMER – включение индикации значения таймера
  • TIMER CLEAR – очистка таймера
  • LIST – включение циклической смены параметров
  • LOCK – запрещение смены параметров
  • 0..9 – кнопки для ввода числовых значений параметров
  • ENTER – ввод отредактированного параметра
  • ESCAPE – отказ от редактирования параметра
  • BACKSPACE – возврат на один символ при редактировании

В качестве ИК приемника использована интегральная микросхема SFH-506 фирмы Siemens. Эта микросхема весьма чувствительна к помехам по цепи питания, поэтому применен RC фильтр R15 C7.

В случае срабатывания будильника, превышения температурой установленного порога или понижения напряжения в бортовой сети формируется звуковой сигнал. Для его формирования использована малогабаритная динамическая головка HA1, которая подключена через транзисторный ключ VT1. Звуковые сигналы также формируются при нажатиях на кнопки управления.

Для питания устройства используется интегральный стабилизатор U5 типа 7805. Потребляемый устройством ток очень небольшой, поэтому радиатор для этой микросхемы не нужен.

Поскольку микросхемы контроллера ЖКИ требуют небольшого количества сигналов для связи с микроконтроллером, индикатор можно выполнить конструктивно в отдельном корпусе минимального размера и расположить его в удобном для обозрения месте. Провода датчиков температуры могут иметь длину несколько метров. При этом обязательно должен присутствовать земляной провод. Использовать в качестве земли кузов автомобиля нежелательно. Удобно для термометров использовать аудио кабель, который имеет два провода в общем экране, изолированном снаружи.

Полную версию этой статьи можно найти в журнале "Схемотехника", №3 за 2001 год.

Литература:

Е. А. Иванюта, Н. И. Климович, В. А. Кособрюхов. Микросхема КР1820ВГ1 для управления мультиплексным ЖК-индикатором. «Микропроцессорные средства и системы», №3, 1990, стр. 4 – 7.

 

Скачать исходный текст программы (его можно оттранслировать с помощью TASM 2.76.) и уже оттранслированный файл -  auto.rar [8,85 Kb]







Рекомендуемый контент




Copyright © 2010-2017 housea.ru. Контакты: info@housea.ru При использовании материалов веб-сайта Домашнее Радио, гиперссылка на источник обязательна.