= 5; ms, tzK, tzC, t0, t1, t2, t3, t4;
// ПаузаWait (uchar kk)
{(kk-);
}
// Читаємо з індікатораReadInd (void)
{DATA; = 0x0F;// на введення 4 мл біта порту = 1;
E = 1;
DATA = (PORTC && 0x0F) <<4;// зчитуємо 4 ст. біта
E = 0;
E = 1;
DATA = DATA | | (PORTC && 0x0F);// зчитуємо 4 мл біта
E = 0;
RW = 0;
return (DATA);
}
// Записуємо в індикатор код
void WriteInd (uchar Dann)
{stDann, mlDann; = Dann && 0xF0;// старші тетради = Dann && 0x0F;// молодші тетради = 0; = 0; = PORTC && 0xF0;// очищаємо 4 мл біта порту С = PORTC | | stDann;// передаємо 4 ст біта = 1;
E = 0;
PORTC = PORTC && 0xF0;// очищаємо 4 мл біта порту С
PORTC = PORTC | | mlDann;// передаємо 4 мл біта
E = 1;
E = 0;
TRISC = 0x0F;
}
// Перевірка готовності індикатора
void Check (void)
{
uchar DATA;// описали змінну DATA типу uchar
RS = 0;
{= ReadInd (); <<= 1;
}
while (CARRY);// якщо біт перенесення дорівнює 1, то індикатор не готовий
} WriteData (uchar kod)
{(20); ();
RS = 1;
WriteInd (kod);// записати в індикатор код
}
void WriteCommand (uchar kod)
{
Wait (20);// пауза (20 машинних циклів)
Check ();// перевірити стану індикатора
RS = 0;
WriteInd (kod);// записати в індикатор код
RS = 1;
}
// Вивід на дисплей
void Display (void)
{
WriteCommand (0x01);// (00000001) очищення екрана
// перший рядок
WriteData (0x54);// (01010100) T (0x3D);// (00111101) = (0x30 + tzC/1000);// тисячі (0x30 + tzC% 1000/100); // сотні (0x30 + tzC% 100/10);// десятки (0x30 + tzC% 10);// одиниці (0x2F);// (00101111) знак В«/В» (0x30 + t [0]/1000) ;// тисячі (0x30 + t [0]% 1000/100);// сотні (0x30 + t [0]% 100/10);// десятки (0x30 + t [0]% 10);// одиниці (0x2F);// (00101111) знак В«/В» (0x30 + t [1]/1000);// тисячі (0x30 + t [1]% 1000/100);// сотні (0x30 + t [1] % 100/10);// де...