LCD дисплей под управлением ST7565 нужна помощь.

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить
aleksandr88
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Ср июн 08, 2011 11:32:49

LCD дисплей под управлением ST7565 нужна помощь.

Сообщение aleksandr88 »

Добрый день :beer: .
С неделю назад пришли мне с Китая аш 10 дисплеев JLX12864G-109 ver-2 на контроллере ST7565.
Думал будет просто запустить но нет уже вожусь пять дней но эффекта ноль.
Все делаю по даташу там есть пример кода, но не фига не работает :o .
По пунктам мои действие.
1 Напряжение питания 3.3 в
2 Шина данных 5 в(прямо с порта мк serial).
3 Пробовал подключать регулятор контрастности внешний делитель на V0(не какого эффекта).

Код: Выделить всё

#define L_PORT PORTA
#define L_DDR DDRA
#define L_PIN PINA
#define L_CS 4
#define L_RESET 3
#define L_RS 2
#define L_SCL 1
#define L_SID 0



void TransferCom(uint8_t com)
{
   uint8_t i;
   L_PORT&=~(1<<L_CS);
   L_PORT&=~(1<<L_RS);
   
   for(i=0;i<8;i++)
   {
      
      //L_PORT&=~(1<<L_SCL);
      if(com & 0x80)
         L_PORT|=(1<<L_SID);
      else
         L_PORT&=~(1<<L_SID);
         
      L_PORT&=~(1<<L_SCL);   
      delay_us(1);
      L_PORT|=(1<<L_SCL);
      delay_us(1);
      com=com<<=1;
   }
   L_PORT=(1<<L_CS);
}
void TransferData(uint8_t data)
{
   uint8_t i;
   L_PORT&=~(1<<L_CS);
   L_PORT|=(1<<L_RS);
   for(i=0;i<8;i++)
   {
      //L_PORT&=~(1<<L_SCL);
      if(data&0x80)
         L_PORT|=(1<<L_SID);
      else
         L_PORT&=~(1<<L_SID);
         
      L_PORT&=~(1<<L_SCL);   
      delay_us(1);            
      L_PORT|=(1<<L_SCL);
      delay_us(1);
      data=data<<=1;
   }
   L_PORT|=(1<<L_CS);
}
void LCD_Init()
{
   L_DDR|=(1<<L_CS)|(1<<L_RS)|(1<<L_SCL)|(1<<L_SID)|(1<<L_RESET);
   // L_PORT&=~(1<<L_CS)|(1<<L_RS)|(1<<L_SCL)|(1<<L_SID)|(1<<L_RESET);
   
   L_PORT&=~(1<<L_CS)|(1<<L_RESET);
   delay_ms(50);
   L_PORT|=(1<<L_RESET);
   
    TransferCom(0xe2); /*(14)Reset*/
   delay_us(100);
   TransferCom(0x2c); /*(19)static indicator  on/off static indicator rehister set*/
   delay_us(100);
   TransferCom(0x2e); /*(13)End*/
   delay_us(100);
   TransferCom(0x2f); /*???*/
   delay_us(100);
   TransferCom(0x23);
   TransferCom(0x81); /*Точная настойка контрасности*/
   TransferCom(0x1f); /*Точная настройка контрастности значение может быть установлено в диапазоне 0x00 ~ 0x3f*/
   TransferCom(0xa2); /*1/9 отношение сдвига (смещения)*/
   TransferCom(0xc8); /*Линия сканирования последовательности: сверху вниз*/
   TransferCom(0xa0); /*Колонка сканирования порядке: слева направо*/
   TransferCom(0x60); /*Линия старта: начало первой строки*/
   TransferCom(0xaf); /*Отображение дисплея*/
       

}
void LCD_Wtite(char* c)
{
   int i,j;
   for(i=0;i<8;i++)
   {
      
      TransferCom(0xb0+i); //set page address,
      TransferCom(0x10);
      TransferCom(0x00);
      for(j=0;j<128;j++)
      {
         TransferData(*c);
         c++;
      }
   }
}
void LCD_Clear()
{
   unsigned char i,j;
   for(i=0;i<9;i++)
   {
      L_PORT&=~(1<<L_CS);
      TransferCom(0xb0+i);
      TransferCom(0x10);
      TransferCom(0x00);
      for(j=0;j<132;j++)
      {
         TransferData(0x00);
      }
   }
}

Вложения
222.jpg
(34.16 КБ) 777 скачиваний
111.jpg
(57.1 КБ) 889 скачиваний
aleksandr88
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Ср июн 08, 2011 11:32:49

Re: LCD дисплей под управлением ST7565 нужна помощь.

Сообщение aleksandr88 »

Не ужели не кто с ним не сталкивался ?
Подскажите хотя бы он мог сгореть из за того что по сигнальным проводам я на него подавал вольт хотя сама жека питается от 3 вольт.
Аватара пользователя
BigallS
Опытный кот
Сообщения: 752
Зарегистрирован: Пт апр 15, 2011 21:11:22
Откуда: Россия

Re: LCD дисплей под управлением ST7565 нужна помощь.

Сообщение BigallS »

Сгореть вряд ли мог, а пример работы с китайского сайта завалялся, лови может поможет.
Вложения
52743891ST7565_12864.rar
(1.74 КБ) 880 скачиваний
Ответить

Вернуться в «Периферия»