Цей пристрій призначений для використання в автомобілі. Воно має наступні функціональні можливості:

  1. індикація поточного часу
  2. будильник
  3. таймер
  4. індикація температури в чотирьох точках
  5. звукова сигналізація при підвищенні температури
  6. індикація напруги в бортовій мережі автомобіля
  7. звукова сигналізація при падінні напруги бортової мережі
  8. управління режимами роботи пристрою за допомогою інфрачервоного пульта

Основою пристрою є мікроконтроллер 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, В3
4 CS

Вхід

Вибір кристала
5 Ucc

Напруга джерела живлення
6 GND

Загальний
7 D

Вхід

Дані
8…13 COA2, COB4, COB2, COA1, COC2, COC4

Вихід

Управління стовпцями A2, B4, B2, A1, C2, C4
14 C

Вхід

Тактовий сигнал З
15 COA/G

Вихід

Управління сторокой А (вхід генератора G)
16 COC/G

Вихід

Управління сторокой С (вихід генератора G)
17 COB

Вихід

Управління рядком У
18…20 COC1, COA3, COA4

Вихід

Управління стовпцями B1, A3, A4

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

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

Завантаження мікросхеми КР1820ВГ1 по послідовній шині

Рисунок 2. Завантаження мікросхеми КР1820ВГ1 по послідовній шині

Код записуваних даних визначається конкретною схемою підключення шин управління рядками і стовпцями до сегментів РКІ, а також конфігурацією РКІ.

Конфігурація сегментів РКІ

Малюнок 3. Конфігурація сегментів РКІ

На рис. 3 показаний приклад конфігурації РКІ, а в таблиці 2 показано порядок проходження бітів в кодової посилці для цього варіанту підключення такого РКІ.

Таблиця 2.
Порядок проходження бітів в кодової посилці.
 

Біт

Висновок

Сегмент РКІ

 

Біт

Висновок

Сегмент РКІ

D0

COA1, COC/G

H1

 

D20

COB3, COC/G

D3

D1

COB1, COB

G1

 

D21

COA3,COB

 C3

D2

COC1,COA/G

F1

 

D22

COA3, COA/G

B3

D3

COC1, COB

E1

 

D23

COB3, COA/G

A3

D4

COB1, COC/G

D1

 

D24

COA4, COC/G

H4

D5

COA1,COB

C1

 

D25

COB4, COB

G4

D6

COA1, COA/G

B1

 

D26

COC4,COA/G

F4

D7

COB1, COA/G

A1

 

D27

COC4, COB

E4

D8

COA2, COC/G

H2

 

D28

COB4, COC/G

D4

D9

COB2, COB

G2

 

D29

COA4,COB

C4

D10

COC2,COA/G

F2

 

D30

COA4, COA/G

B4

D11

COC2, COB

E2

 

D31

COB4, COA/G

A4

D12

COB2, COC/G

D2

 

D32

COC1, COC/G

P1

D13

COA2,COB

C2

 

D33

COC2, COC/G

P2

D14

COA2, COA/G

B2

 

D34

COC3, COC/G

P3

D15

COB2, COA/G

A2

 

D35

COC4, COC/G

P4

D16

COA3, COC/G

H3

 

D36

Не використовується

D17

COB3, COB

G3

 

D37

Q6

D18

COC3,COA/G

F3

 

D38

Q7

D19

COC3, COB

E3

 

D39

Q8

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

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

Біт

Режим
роботи

Вихід

D36 (Q7)

D37 (Q6)

COC/G

COA/G

1

1

Молодший

Вихід управління рядком З

Вхід генератора

0

1

Одиночний

Те ж

Вихід управління рядком А

1

0

Тестовий

0

0

Старший

Вихід внутрішнього генератора

Вихід управління рядком А

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

  • встановити на сході 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.
Коди кнопок управління.
 

Номер команди

Назва команди

Внутрішній код команди
(Після перекодування)

Код ІК ДУ
(До перекодування)

1

TIMER 

0CH

00H

2

CLOCK

0DH 

01H

3

ALARM

0EH 

02H

4

LOCK 

0FH

03H

5

7

08H 

08H

6

09H

09H

7

9  

 0AH

0AH 

8

LIST  

10H 

0BH 

9

4  

05H 

10H 

10

5  

06H 

11H 

11

6  

07H

12H 

12

ESCAPE  

11H 

13H 

13

ALARM DISABLE  

14H 

18H 

14

TIMER CLEAR  

13H 

1AH

15

0  

01H 

20H 

16

BACKSPACE  

12H 

22H 

17

1  

02H 

28H 

18

2  

03H 

29H 

19

3  

04H

2AH 

20

ENTER  

0BH

2BH 

Ось короткий опис команд управління:

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