ик. br/>
void menu (void)
// ------------------ VOLT MEASUREMENT -------------------- -------- (1) {_pos = 0; _char_1 (); _pos = 4; _char_2 (); (scroll == 1) {if (select == 0) {voltmeter (); break;} }; (select == 0) {}; while (scroll == 0) {};
..........
};}
(). Функція реалізує роботу вольтметра вимірює напругу на контактах потенціометра. Задаючи необхідні значення регістрів управління модуля USART, отримує значення з виходу АЦП в цифровому поданні. Перетворює числове значення температури в рядок виводимо на LCD. Повторюється в циклі поки не натиснута S3. br/>
void voltmeter (void)
{
....
bits.ADON = 1; = 0b00001110; = 0x01;
_pos = 10; _char_1 ();
{bits.GO = 1; (ADCON0bits.GO == 0) {}; = ADRESH; * = 2; (temph, tempv_char); (temph <10) {temph_char [0] = zero [0]; temph_char [2] = zero [0]; temph_char [3] = tempv_char [0];}
..... _2 (); (i = 0; i
{_char = temph_char [i]; _wr = temp_char; _write ();
}// for i
} while (select == 1);
}
buzzer (). Функція реалізує роботу звуко-випромінювач за допомогою модуля широтно-імпульсної модуляції. Натискання S2 призводить до збільшення тривалості імпульсу, відповідно значення зберігається в CCPR1L. Натискання S3 призводить до збільшення періоду виникнення імпульсів, відповідно значення зберігається в PR2. Повторюється в циклі поки водночас не натиснуті S2 і S3. br/>
void buzzer (void)
{
.... = 0x80; L = 0x80;
.... CON = 0x0f;// включення (1) {= 0; (select == 0)
{+ = 1; = 5; = PR2; (scroll == 0) goto end;
}// if select (scroll == 0)
{//inc dcL + = 1; = CCPR1L; = 12; (select == 0) goto end;
} (n! = 0) {(temph, tempv_char); (temph <10) {tempb_char [n] = zero [0]; tempb_char [n +1] = zero [0]; tempb_char [n +2 ] = tempv_char [0];}
.... _1 (); (i = 0; i
{.... _write ();
}// for i
}// if n! = 0
} ;//while: CCP1CON = 0;// вимикання}
(). Функція реалізує роботу термометра за допомогою модуля SSP і термодатчика TC74. Спершу инициализируем MSSP після чого вносимо послідовність змін в керуючі регістри модуля SSP, ч то у свою чергу потік команд від MSSP до TC74 і назад. У результаті ми отримуємо поточне значення температури, яке і виводимо на LCD. Функція виконується поки не натиснута S3. br/>
void temp (void)
{....
TRISCbits.TRISC3 = 1;// initialize MSSP module
TRISCbits.TRISC4 = 1;
SSPCON1 = 0b00101000;
SSPSTATbits.SMP = 1;
SSPADD = 0x05; {_temp: cmd_byte = 0x01;// config register command byte_now: SSPSTATbits.CKE = 1;// SMBUS spec for TC74bits.SEN = 1 ;/...