сновок байта команди на РКІ */
void wr_cmd4 (char cmd) {{PORTB, 2; RS - down, пишемо в IRparam00_wr_cmd4_out_nibblePORTB, 3; E - upPORTB, 3; E - down_delayparam00_wr_cmd4, W; міняємо тетради байта_out_nibblePORTB, 3; E - upPORTB, 3; E - down_delay
}
}
/* висновок байта даних на РКІ */
void wr_data4 (char data) {{PORTB, 2; RS - up, пишемо в DRparam00_wr_data4_out_nibblePORTB, 3; E - upPORTB, 3; E - down_delayparam00_wr_data4, W; міняємо тетради байта_out_nibblePORTB, 3; E - upPORTB, 3; E - down_delay
}
}
/* затримка */delay () {_ms (1);
}
.
.
.
/* ------------- закінчення прикладу ------------- */
У наведених прикладах не відстежується прапор зайнятості (busy flag) контролера HD44780, замість цього процедури виведення на РКІ мають затримки; на це слід звернути увагу. Нижче наводиться фрагмент програми на С, що виводить фрагмент знакогенератора на екран РКІ формату 2 рядки по 16 символів. p align="justify">/* ------------- початок прикладу ------------- */
.
.
. i, ch;
/* ініціалізація РКІ у 8-ми бітному режимі
(рекомендується виробником) */_cmd (0x28);
delay_ms (5); _cmd (0x28); (), _cmd (0x28); (),
/* ініціалізація РКІ в 4-х бітному режимі */
wr_cmd4 (0x28); _cmd4 (0x0c);
wr_cmd4 (0x06); = 0x20; _cmd4 (0x80);/* перехід на перший рядок екрану */
for (i = 0; i <16; i + +) {_data4 (ch)/* виводимо символи */
ch + +;
} _cmd4 (0xc0)/* перехід на другий рядок екрану */
for (i = 0; i <16; i + +) {_data4 (ch)/* виводимо символи */
ch + +;
}
.
.
.
/* ------------- закінчення прикладу ------------- */
4 Технічний проект
На даному етапі відбувається опис та моделювання функцій мови програмування, вибір організації проекту і принципів побудови моделей і т.д.
Виконуються наступні роботи:
складання та опис блоків на мові програмування;
визначаються міжблокове зв'язку;
опис констант і змінних;
налагодження проекту (покрокове тестування основних блоків програми в процесі написання та виправлення некоректної роботи);