товність вихідних даних. RI - індикатор виклику. Каже про прийом модемом сигналу виклику по телефонній мережі. <В
Рис. 9 - Формат даних RS-232C
Додаток 1
Схема пристрою
В
Додаток 2
Лістинг програми
мікроконтролер програма інтерфейс
# include
# include but1 = P3 ^ 4; but2 = P3 ^ 5; but3 = P3 ^ 6; k1 = P1 ^ 4; k2 = P1 ^ 4; k3 = P1 ^ 5; k4 = P1 ^ 6; nasos = P1 ^ 0;
sbit ten = P1 ^ 1; dvig = P1 ^ 2;
sbit electrod1 = P2 ^ 7; electrod2 = P2 ^ 6; electrod3 = P2 ^ 5; electrod4 = P2 ^ 4;
int davlenie; temp [] ;//для зберігання 3-х значень температурj = 0 ;//для організації циклу звернення до термометрів
int nom_urovnya = 0; nomer_texta = 0;
char nachat_process = 0; flag = 1; char rs = 0;
int sec, min, hour, nach_hour, nach_min, konec_hour, konec_min ;//змінні, в яких храняться значення секунд, хвилин і часовkod [] = {0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39} ;//коди цифр 0 .. 9
void timer2 (void) interrupt 5// переривання таймера2 для підрахунку часу
{i; + + ;//по кожному перериванню (переповнення) змінна i нарощується (i == 16)// як тільки i стане рівним 16, значить пройшла 1 секунда (1 машин цикл = 1мкс , тобто за одне переповнення пройде 65536мкс (0.065536сек). неоходімо 15ю.25 переповнення для однієї секунди
{+ + ;//наращеванія секунд = 0; = 0xBD ;//задаємо початкові значення TH2 і TL2. = 0xC6 ;//0,258791 - це 16954 машин циклів. 65536-16954 = 48582. 48582 (10) = BDC6 (16)
} (sec == 60) {min + +; sec = 0;}// якщо кол-во сек = 60, хв збільшивши-ся на 1 (min == 60) {hour + +; min = 0;}// якщо кол-во хв = 60, годинники збільшивши-ся на 1 (hour == 24) hour = 0 ;//якщо кол-во = 24, Обнуляємо.
} timer0 (void) interrupt 1// переривання таймера 0 для підрахунку часу
{i;
i + +; (i == 4800)// 5 хвилин
{TR0 = 0; = 0;
}
} int0 (void) interrupt 0// переривання від зовнішнього джерела int0 (клавіатура)
{(but1 == 1 && but2 == 1 && but3 == 1) start (); (but1 == 1 && but2 == 1 & & but3 == 0)
{_urovnya + +;
k1 = 1;// відкриття клапана 1_texta = 1; _lcd (nomer_texta); _elc (nom_urovnya); _lcd (6) ;//pusto
} (but1 == 1 && but2 == 0 && but3 == 1)
{_urovnya + +;
k2 = 1;// відкриття клапана 2_texta = 2; _lcd (nomer_texta); _elc (nom_urovnya); _...