ЖК Индикатор HT1613 / HT1611 (KO-4B)

Жидкокристаллический индикатор HT1613 / HT1611 (КО-4В) представляет собой десятиразрядный модуль, предназначенный для использования в домашних телефонах.Индикаторный модуль состоит из ЖКИ десяти разрядного индикатора и микроконтроллера управления. Микросхема и индикатор размещены на одной плате размерами 67Ч36 мм. Видимая область индикатора 35Ч12мм. Высота символа 10 мм. Индикаторный модуль предназначен для использования в телефонных аппаратах в качестве индикатора времени и набора.

Самостоятельно, при питании от источника 1,5V индикаторный модуль может работать как электронные часы — секундомер. На рисунке приводится схема такого варианта. В режиме часов индицируются часы и минуты, при переходе на «секундомер» измеряется интервал времени от 1 секунды до 59 минут 59 сек. связь с внешним устройством происходит по простому двухпроводному последовательному интерфейсу. Дисплей может отображать 16 символов. Это десятичные цифры плюс пробел и несколько знаков.

Перевести модуль в режим индикатора можно, установив на выводе 5 логический ноль. В режиме цифрового индикатора запись данных происходит по отрицательному фронту CLK (синхроимпульсы) при установленном DI (данные). Заполнение индикатора происходит последовательно от первого знакоместа (от правого) к десятому. Для формирования цифры в одном знакоместе нужно последовательно побитно записать 4-разрядный код, начиная со старшего разряда.
Для полной очистки индикатора нужно установить логический ноль на DI и выдать 40 импульсов CLK. Для того чтобы на индикаторе постоянно индицировались данные их необходимо обновлять не реже, чем один раз в 8 секунд. Иначе индикатор автоматически переключится в режим секундомера.

Пример C кода программы для работы с этим индикатором:

Файл main.c:
——————————————

#include <AT89X52.H>
#include «HT1611.h»
unsigned char i1,a,t;
void InitSystem(void);
void DelaySec(unsigned char);

void main(void)
{
InitSystem();
while(1){

for(i1=0;i1<=0xff;i1++){
a=i1;
t=a/100;
PutCharLCD(t|0x30,3);
a-=(t*100);
t=a/10;
PutCharLCD(t|0x30,4);
a-=(t*10);
PutCharLCD(a|0x30,5);
DelaySec(1);
}

ClearLCD();

}
}

void InitSystem(void)
{
CLK=1; DTL=1;
ClearLCD();
}

//—————————
// Delay Sec procedure
//—————————
void DelaySec(unsigned char inSec)
{unsigned char de1=0xff,de2=0xff;
while(inSec—)while(de1—)while(de2—);}

File ht1611.c
——————————————

#include <AT89X52.H>
#include «HT1611.h»

unsigned char i1,a,t;

void InitSystem(void);
void DelaySec(unsigned char);

void main(void)
{
InitSystem();
while(1){

for(i1=0;i1<=0xff;i1++){
a=i1;
t=a/100;
PutCharLCD(t|0x30,3);
a-=(t*100);
t=a/10;
PutCharLCD(t|0x30,4);
a-=(t*10);
PutCharLCD(a|0x30,5);
DelaySec(1);
}

ClearLCD();

}
}

void InitSystem(void)
{
CLK=1; DTL=1;
ClearLCD();
}

Файл ht1611.h:
——————————————

sbit CLK = P1^0;
sbit DTL = P1^1;

void ClearLCD(void);
void StringLCD(void);
void PutCharLCD(unsigned char, unsigned char);
unsigned char Ascii2HT(unsigned char);

Посмотреть и скачать datasheet на HT1613



Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *