додаються паролів */(75) byte,/* масив останніх 10 введ паролів */_Ini (*) byte constant (08h, 02h, 0fh, 01h),/* команди ініціалізації РКІ */(56) bute,/* вміст індикатора */
(i, ip, jp, per, s, np, st, timN, nreg, pl) byte,/* змінні для роботи */
(flag, fl_p, flH, fl_key, fl_pasv, fl_ok, fl_ind) byte,/* прапори визначення режиму роботи */_key byte,/* номер натиснутоюклавіші */
(k1_old) byte,/* номер останньої натиснутоюклавіші */
(sek, min, chas) word ;/ * секунди, хвилини та години */
/* пеpеіменованіе pазpядов поpта */rs literally 'P3.0',/* RS лінія зв'язку з LCD */
rw literally 'P3.1',/* RW лінія зв'язку з LCD */literally P3.2 ; _int: procedure interrupt 1;/* --- Обробник переривання таймера --------------- */
if st = 0 then P2 = 10111111;/* установка сканируемого стовпця */
if st = 1 then P2 = 11011111; st = 2 then P2 = 11101111; st = 3 then P2 = 11110111; st = 4 then do;/* якщо немає натиснутий клавіш скидання прапора натискання інакше утанавлівается */n_key = 0 then do; fl_key = 0; key_old = 0; end
else key_old = n_key ;/ * предшеств кл */= 0; n_key = 0;; st = st +1;
/* блок перевірки натискання клавіш */(p2.0 = 0b) then do n_key = st * 3 +1; fl_key = 1; end; (p2.1 = 0b) then do n_key = st * 3 +2; fl_key = 1; end; (p2.2 = 0b) then do n_key = st * 3 +3; fl_key = 1; end;
if fl_key = 1 then do/* обробка натискань на определеннике клавіші */
if (n_key = 11) and (n_key <> key_old) then fl_pasv = 1 ;/ * прапор введення пароля на вхід */(n_key = 12) and (n_key <> key_old) then fl_ok = 1 ;/ * прапор установки підтвердження */
end; = per +1;/* збільшуємо лічильник переповнень */
if per> = 15 then do;/* відлік часу */
per = 0; sek = sek +1 ;/ * відлік секунд */
if sek> = 60 then do; min = min +1; sek = 0 ;/ * хвилин */min = 60 then do; chas = chas +1; if chas = 24 then chas = 0; end; end ;/ * годин */
flag = 1 ;/ * прапор необхідності відновлення зображення індикатора * /; = 0;/* скидання прапора переповнення */
end timer_int; _ind: procedure;/* висновок Введіть */= 0; j = 1; do while str_vvedite (i) <> 20h; ind (j) = str_vvedite (i); = i +1; j = j +1; end; ind (j) = 20h; j = j +1; vvod_ind; _ind: procedure;/* висновок новий */= 0; do while str_nov (i) <> ; 20h; ind (j) = str_nov (i); = i +1; j = j +1; end; ind (j) = 20h; j = j +1; nov_ind; _ind: procedure;/* висновок пароль * /= 0; do while str_parol (i) <> 20h; ind (j) = str_parol (i); = i +1; j = j +1; end; ind (j) = 20h; j = j + 1; parol_ind; _ind: procedure;/* висновок Помилка *...