реклама на сайте
подробности

 
 
> Не работает UG-5664, не получается инициализировать дисплей
Lockdog
сообщение Jul 20 2011, 07:32
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 27-10-08
Пользователь №: 41 231



Добрый день!
Подключаю дисплей UG-5664 к ATmega128.
Но он почему-то не работает. Пытаюсь хотя бы проинициализировать, чтобы выводился "мусор", но экран молчит. Контроллер нормальный, схема включения дисплея тоже вроде верна, сам дисплей живой.
Смотрел исходники самого производителя - там мудрёный код, но принцип инициализации от моего не отличается.
Помогите, пожалуйста.
Код
#include "ioavr.h"
#include "intrinsics.h"

#define SetBit(x,y) (x|=(1<<y))
#define ClrBit(x,y) (x&=~(1<<y))

#define XTAL_MHz 7.3728
#define delay_us(us) __delay_cycles((unsigned long int)us*XTAL_MHz)
#define delay_ns(ns) delay_us(ns/1000)
#define delay_ms(ms) delay_us(ms*1000)

#define DATA_PORT PORTC
#define DATA_DDR DDRC
#define CONFIG_PORT PORTA
#define CONFIG_DDR DDRA
#define CS 5
#define RES 3
#define WR 1
#define RS 2
#define RD 0
#define BS0 6
#define BS1 7

void LCD_WriteCommand(unsigned char data)
  {
     ClrBit(CONFIG_PORT, RS);
     ClrBit(CONFIG_PORT, CS);
     ClrBit(CONFIG_PORT, WR);
     DATA_PORT = data;
     SetBit(CONFIG_PORT, WR);
     SetBit(CONFIG_PORT, CS);
     SetBit(CONFIG_PORT, RS);
  }

void LCD_WriteData(unsigned char data)
  {
     SetBit(CONFIG_PORT, RS);
     ClrBit(CONFIG_PORT, CS);
     ClrBit(CONFIG_PORT, WR);
     DATA_PORT = data;
     SetBit(CONFIG_PORT, WR);
     SetBit(CONFIG_PORT, CS);
     SetBit(CONFIG_PORT, RS);
  }



void LCD_Init(void)
  {
    ClrBit(CONFIG_PORT, RES);
    delay_ms(40);
    SetBit(CONFIG_PORT, RES);
    
  LCD_WriteCommand(0xFD);
  LCD_WriteData(0x12);

  LCD_WriteCommand(0xAE);  
  
  LCD_WriteCommand(0xB3);
  LCD_WriteData(0x91);
  
  LCD_WriteCommand(0xCA);
  LCD_WriteData(0x3F);
  
  LCD_WriteCommand(0xA2);
  LCD_WriteData(0x00);
  
  LCD_WriteCommand(0xA1);
  LCD_WriteData(0x00);
  
  LCD_WriteCommand(0xA0);
  LCD_WriteData(0x14);
  LCD_WriteData(0x11);
  
  LCD_WriteCommand(0xB5);
  LCD_WriteData(0x00);
  
  LCD_WriteCommand(0xAB);
  LCD_WriteData(0x00);
  
  LCD_WriteCommand(0xB4);
  LCD_WriteData(0xA0);
  LCD_WriteData(0xFD);
  
  LCD_WriteCommand(0xC1);
  LCD_WriteData(0x9F);
  
  LCD_WriteCommand(0xC7);
  LCD_WriteData(0x0F);
  
  LCD_WriteCommand(0xB9);
  
  LCD_WriteCommand(0xB1);
  LCD_WriteData(0xE2);
  
  LCD_WriteCommand(0xD1);
  LCD_WriteData(0x82);
  LCD_WriteData(0x20);
  
  LCD_WriteCommand(0xBB);
  LCD_WriteData(0x1F);
  
  LCD_WriteCommand(0xB6);
  LCD_WriteData(0x08);
  
  LCD_WriteCommand(0xBE);
  LCD_WriteData(0x07);
  
  LCD_WriteCommand(0xA5);

  LCD_WriteCommand(0xAF);  

  }

int main( void )
{
  DATA_DDR = 0xFF;
    DATA_PORT = 0x00;
    CONFIG_DDR = 0xFF;
    CONFIG_PORT = 0x00;
    SetBit(CONFIG_PORT, RD);
  

  LCD_Init();
  while(1)
  {};
}


Схема включения
Прикрепленное изображение
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 1)
Lockdog
сообщение Aug 15 2011, 05:49
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 27-10-08
Пользователь №: 41 231



Проблема решена, был плохо припаян разъём дисплея
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 12:15
Рейтинг@Mail.ru


Страница сгенерированна за 0.01356 секунд с 7
ELECTRONIX ©2004-2016