- up, пишем в DR movfw param00_wr_data4 call _out_nibble bsf PORTB, 3 ; E - up bcf PORTB, 3 ; E - down call _delay swapf param00_wr_data4, W ; меняем тетрады байта call _out_nibble bsf PORTB, 3 ; E - up bcf PORTB, 3 ; E - down call _delay } } /* задержка */ void delay() { delay_ms(1); } . . . /*-------------окончание примера-------------*/ В приведенных примерах не отслеживается флаг занятости (busy flag) контроллера HD44780, взамен этого процедуры вывода на ЖКИ имеют задержки; на это следует обратить внимание. Ниже приводится фрагмент программы на С, выводящую фрагмент знакогенератора на экран ЖКИ формата 2 строки по 16 символов. /*-------------начало примера-------------*/ . . . char i, ch; /* инициализация ЖКИ в 8-ми битном режиме (рекомендуется производителем) */ wr_cmd(0x28); delay_ms(5); wr_cmd(0x28); delay(); wr_cmd(0x28); delay(); /* инициализация ЖКИ в 4-х битном режиме */ wr_cmd4(0x28); wr_cmd4(0x0c); wr_cmd4(0x06); ch = 0x20; wr_cmd4(0x80); /* переход на первую строку экрана */ for (i=0; i<16; i++) { wr_data4(ch); /* выводим символы */ ch++; } wr_cmd4(0xc0); /* переход на вторую строку экрана */ for (i=0; i<16; i++) { wr_data4(ch); /* выводим символы */ ch++; } . . . /*-------------окончание примера-------------*/ |