ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
25 ноября
445347 Топик полностью
Mazur (23.09.2013 08:10 - 10:56, просмотров: 129) ответил Ксения на Мне непонятно, чем ваша функция lcd_send_com_nibble() отличается от lcd_send_com(). Или в ассемблере Send_Com_Init от Send_Com.
Edit. Довел до работоспособности. Подключение по 4-битной шине. То есть дисплей висит на 1 порту. Экономия выводов МК. Чтение Busy нет. Итак. Что такое lcd_send_com_nibble(). Так как передача по 4-битной шине, то тут особый алгоритм. Дисплей по умолчанию на 8-битной шине. Его нужно переключить yf 4-битную шину. Задержка 50-100 мс после включения. Отправка команды 0x30. Старшая тетрада. Управления по 8-битной шине. Задержка 5 мс. Отправка команды 0x30. Старшая тетрада. Управления по 8-битной шине. Задержка 5 мс. Отправка команды 0x30. Старшая тетрада. Управления по 8-битной шине. Задержка 5 мс. Отправка команды 0x20. Старшая тетрада. Управления по 4-битной шине. Задержка 50 мкс. Отправка команды 0x28. Байт. Управления по 4-битной шине. 2-строчный режим. В вашем случае 1 строка. Задержка 50 мкс. Отправка команды 0x01. Байт. Сброс дисплея. И так далее. Задержка 50 мкс. _delay_ms(100); lcd_send_com_nibble(0x30); _delay_ms(5); lcd_send_com_nibble(0x30); _delay_ms(5); lcd_send_com_nibble(0x30); _delay_ms(5); lcd_send_com_nibble(0x20); _delay_us(100); lcd_send_com(0x28); _delay_us(100); lcd_send_com(0x01); _delay_ms(5); lcd_send_com(0x06); _delay_us(100); lcd_send_com(0x0C); _delay_us(100);