ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
25 ноября
445329 Топик полностью
Mazur (23.09.2013 01:56, просмотров: 145) ответил Ксения на Не обращайте внимания, что у меня такие чудовищно долгие задержки - это я от отчания их так сильно увеличила. На коротких был тот же результат.
Первое же, что заметил, неправильная инициализация (асм и си):  Init_Display: // Инициализация дисплея. rcall Wait_20_ms // ldi LCD_DATA, $30 // Установка 8-разрядного интерфейса. rcall Send_Com_Init rcall Wait_5_ms ldi LCD_DATA, $30 // Установка 8-разрядного интерфейса. rcall Send_Com_Init rcall Wait_5_ms ldi LCD_DATA, $30 // Установка 8-разрядного интерфейса. rcall Send_Com_Init rcall Wait_5_ms ldi LCD_Data, $20 // Установка 4-разрядного интерфейса. rcall Send_Com_Init rcall Wait_50_us ldi LCD_DATA,0x28 // 4-разрядный интерфейс. Двухстрочный режим. rcall Send_Com rcall Wait_50_us ldi LCD_Data, $01 // Команда очистки дисплея. rcall Send_Com rcall Wait_5_ms ldi LCD_Data, $06 // Инкремент счетчика адреса. rcall Send_Com rcall Wait_50_us ldi LCD_Data, $0C // Включение дисплея. rcall Send_Com rcall Wait_50_us ret // У меня сейчас VFD, ему задержки не нужны. Для вашего дисплея задержки в комментариях. void init_char_dsp (void) { setb (EN_DDR, EN); setb (RS_DDR, RS); // delay 100 ms lcd_send_com_nibble(0x30); // delay 5 ms lcd_send_com_nibble(0x30); // delay 5 ms lcd_send_com_nibble(0x30); // delay 5 ms lcd_send_com_nibble(0x20); // delay 50 us lcd_send_com(0x28); // delay 50 us lcd_send_com(0x01); // delay 5 ms lcd_send_com(0x06); // delay 50 us lcd_send_com(0x0C); // delay 50 us }