Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

AVR+МЭЛТ(SED1520). От МК ничего не выдает :( ... может глаза замылились? (распайка верна.)

Отправлено gsm 07 декабря 2006 г. 12:40


Смотрел, пробовал уже все, что-то не так......
распаял кабель на LPT, проверил с компа - живет.....
может глаза замылились?

#define LCD_PORTDATA PORTC
#define LCD_DDRDATA DDRC
#define LCD_PINDATA PINC

#define LCD_PORTCONTROL PORTA
#define LCD_DDRCONTROL DDRA
#define LCD_wire_A0 PA3
#define LCD_wire_RW PA4
#define LCD_wire_E PA5
#define LCD_RES PA6
#define LCD_wire_CS PA7

LCD_PORTDATA = 0x00;
LCD_DDRDATA = 0xFF;
LCD_PORTCONTROL = 0x00;
LCD_DDRCONTROL = 0xFF;

LCD_PORTCONTROL |= _BV(LCD_wire_E); // LCD.E=1;//Начальное значение сигнала индикатору
LCD_PORTCONTROL &= ~_BV(LCD_RES); // LCD.RES=0;//Выдать сигнал RES=0 индикатору
_delay_us(100); // Задержка на время больше 10 мкс
LCD_PORTCONTROL |= _BV(LCD_RES); // LCD.RES=1;//Снять сигнал RES
_delay_ms(5); // Delay(>1ms);//Задержка на время больше 1 мс
WriteCodeL(0xE2);//Reset
WriteCodeR(0xE2);//Reset
WriteCodeL(0xEE);//ReadModifyWrite off
WriteCodeR(0xEE);//ReadModifyWrite off
WriteCodeL(0xA4);//Включить обычный режим
WriteCodeR(0xA4);//Включить обычный режим
WriteCodeL(0xA9);//Мультиплекс 1/32
WriteCodeR(0xA9);//Мультиплекс 1/32
WriteCodeL(0xC0);//Верхнюю строку на 0
WriteCodeR(0xC0);//Верхнюю строку на 0
WriteCodeL(0xA1);//Invert scan RAM
WriteCodeR(0xA0);//NonInvert scan RAM
WriteCodeL(0xAF);//Display on
WriteCodeR(0xAF);//Display on


for(p=0; p<4; p++) {//Цикл по всем 4-м страницам индикатора
WriteCodeL(p|0xB8);//Установка текущей страницы для левого кристалла индикатора
WriteCodeL(0x13);//Установка текущего адреса для записи данных в левую отображаемую позицию левой половины индикатора
for(c=0; c<61; c++) {//Цикл вывода данных в левую половину индикатора
WriteDataL(Logo122[p][c]);//Вывод очередного байта в индикатор
}
WriteCodeR(p|0xB8);//Установка текущей страницы для правого кристалла индикатора
WriteCodeR(0x00);//Установка текущего адреса для записи данных в левую отображаемую позицию правой половины индикатора
for(c=61; c<122; c++) {//Цикл вывода данных в правую половину индикатора
WriteDataR(Logo122[p][c]);//Вывод очередного байта в индикатор
}
}

// Установка цикла обмена по шине данных
#define LCD_StrCYC() (LCD_PORTCONTROL |= LCD_wire_E) // начало цикла обмена данными
#define LCD_EndCYC() (LCD_PORTCONTROL &= ~LCD_wire_E) // окончание цикла обмена данными

//Процедура выдачи байта в индикатор
void WriteByte(char b, int cd, int lr)
{
//При необходимости настроить здесь шину данных на вывод
// LCD.RW=0; LCD.A0=cd; //Выдача байта в индикатор как данных или команды
LCD_PORTCONTROL &= ~_BV(LCD_wire_RW);
if (cd) LCD_PORTCONTROL |= _BV(LCD_wire_A0); else LCD_PORTCONTROL &= ~_BV(LCD_wire_A0);
// LCD.CS=lr; LCD.D=b; //Выбрать кристалл индикатора и выдать байт на шину данных индикатора
if (lr) LCD_PORTCONTROL |= _BV(LCD_wire_CS); else LCD_PORTCONTROL &= ~_BV(LCD_wire_CS);
LCD_PORTDATA = b;
_delay_us(100); //Это время предустановки адреса (tAW)
LCD_StrCYC(); // начало строба
LCD_EndCYC(); // конец строба
}

void WriteCodeL(char { WriteByte(b,0,1); }//Команду в левый кристалл индикатора
void WriteCodeR(char { WriteByte(b,0,0); }//Команду в правый кристалл индикатора

void WriteDataL(char { WriteByte(b,1,1); }//Данные в левую половину индикатора
void WriteDataR(char { WriteByte(b,1,0); }//Данные в правую половину индикатора



Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа

Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
поделите 4 пополам:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru