реміщення курсору), конфігурація портів на введення і на висновок. br/>
3.2 Лістинг програми
start: do;
$ include (reg51. dcl) word,/* N read trek */_egekt (6) word constant (1,0,2,0,0,0),/* open CD */ _Close (6) word constant (1,0,3,0,0,0), _play (6) word constant (47,0,0, -1,255,0), _pause (6) word constant (4Bh, 0, 0,0,0,0), _stop (6) word constant (4E, 0,0,0,0,0), _nextTr (6) word constant (243,0,0,1,0,0), _predTr (6) word constant (245,0,0,1,0,0),
str_sm byte,/* smehen str */
str_gdite (10) byte constant (0a8h, 6fh, 0e3h, 6fh, 0b6h, 0e3h, 0b8h, 0bfh, 65h, 20h), _plaiTr (11) byte (0b8h, 0b4h, 61h, 65h, 0bfh, 20h, 0bfh, 70h, 65h, 0bah, 20h), _pause (5) byte (0a8h, 079h, 0c5h, 061h, 20h),
str_stop (5) byte (043h, 0bfh, 06fh, 0beh, 20h),
LCD_Ini (*) byte constant (08h, 02h, 0fh, 01h),/* команди ініціалізації РКІ */(30) bute,/* вміст індикатора */
(i, ip, jp, per, s, np, st, ks, k, pl) byte,/* змінні для роботи */
(flag, fl_play, fl_key, fl_ind) byte,/* прапори визначення режиму роботи */
(key, keyold byte,/* номер натиснутоюклавіші */
(sek, min) word;/* секунди, хвилини та години */
/* пеpеіменованіе pазpядов поpта */
declare rs literally 'P0.4',/* RS лінія зв'язку з LCD */
rw literally 'P0.5',/* RW лінія зв'язку з LCD */
e literally P0.6 ;
timer_int: procedure interrupt 1;/* --- Обробник переривання таймера ------------- */
/* перевірка натискання клавіш */(p3.3 = 0b) and (keyold <> 0) then do; fl_key = 1; key = 1; end;/* play previv */( p3.4 = 0b) and (keyold <> 2) then do; fl_key = 2; key = 2; _play = not (fl_play); keyold = key; end;/* play/stop */(p3.5 = 0b) and (keyold <> 3) then do; fl_key = 3; key = 3; end;/* pause */(p3.6 = 0b) and (keyold <> 4) then do; fl_key = 4; key = 4; end;/* play next trek */
per = 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; min = 0; end;
/* прапор необхідності відновлення зображення індикатора */
end; fl_ind = 1; = 0;/* sbros flaga perepolneniya */
end timer_int; _ind: procedure;/* висновок заданої рядки */
i = 0; j = 0; whi...