сятки (0x30 + t [1]% 10);// одиниці
// другий рядок
WriteData (0x27);// (00100111) знак В«'В» (градуси)
WriteData (0x43);// (01000011) C (0x30 + t [2]/1000);// тисячі (0x30 + t [2]% 1000/100);// сотні ( 0x30 + t [2]% 100/10);// десятки (0x30 + t [2]% 10);// одиниці (0x2F);// (00101111) знак В«/В» (0x30 + t [3]/ 1000);// тисячі (0x30 + t [3]% 1000/100);// сотні (0x30 + t [3]% 100/10);// десятки (0x30 + t [3]% 10);//одиниці (0x2F);// (00101111) знак В«/В» (0x30 + t [4]/1000);// тисячі (0x30 + t [4]% 1000/100);// сотні (0x30 + t [ 4]% 100/10);// десятки (0x30 + t [4]% 10);// одиниці (s == 0) WriteCommand (0x8A);// (10001010) на 1 ю стор 11 поз. (s == 1) WriteCommand (0x8F);// (10001111) на 1 ю стор. 16 поз. (s == 2) WriteCommand (0xC5);// (11000101) на 2ю стор 6 поз. (s == 3) WriteCommand (0xCA);// (11001010) на 2ю стор 11 поз. (s == 4) WriteCommand (0xCF);// (11001111) на 2ю стор. 16 поз. (s == 5) WriteCommand (0x0C) ;// (00001100) курсор виключенWriteCommand (0x0E);// курсор включений
}
// Збільшення заданої температури
void Up (void)
{+ +; (tzK> 5000) tzK = 5000; = tzK-273;
}
// Зменшення заданої температури
void Down (void)
{-; (tzK <300) tzK = 300; = tzK-273;
}
// Обробка переривань
interrupt INTR ()
{
if (T0IF)// запит переривання від таймера
{
TMR0 = 0x84;// (10000100) завантаження в таймер початкового значення
ms + +;// відлік мілісекунд
if (ms> 1000)// якщо мілісекунд більше 1000
{ms = 0;// обнулення
if (on [0])// якщо дозволено управління першим нагрівачем
{
CHS0 = 0; CHS1 = 0; CHS2 = 0;// вибираємо 1-й канал АЦП
ADGO = 1;// запускаємо АЦП
while (ADGO);// чекаємо поки АЦП закінчить перетворення
t [0] = (ADRESL + ADRESH * 256) * 5000/1023;// обчислюємо температуру
if (t [0]> tzK) RB0 = 0;
else RB0 = 1;
}
if (on [1])// якщо дозволена робота другим нагрівачем
{= 1; CHS1 = 0; CHS2 = 0; = 1; (ADGO); [1] = (ADRESL + ADRESH * 256) * 5000/1023; (t [1]> tzK) RB1 = 0; else RB1 = 1;
}
if (on [2])// якщо дозволена робота третім нагрівачем
{= 0; CHS1 = 1; CHS2 = 0; = 1; (ADGO); [2] = (ADRESL + ADRESH * 256) * 5000/1023; (t [2]> tzK) RB2 = 0; else RB2 = 1;
}