Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/16: Рейтинг темы: голосов - 16, средняя оценка - 4.63
Smypir
0 / 0 / 0
Регистрация: 24.01.2010
Сообщений: 127
1

LCD 3310

28.05.2011, 15:17. Просмотров 2881. Ответов 3
Метки нет (Все метки)

Тут в сообществе была статейка про сжатие монохромных изображений на этом дисплее. яж вспомнил что лежит он у меня в загашнике достаточно давно..
Начал подключать, но дошел только до черного экрана.. Самое смешное что он еще и мерцает(как если бы с ЭЛТ телика начали снимать на видеокамеру видео) В общем фото и пример программы: может подкажите в чем может быть косяка?

Команды брал из ДШ
Код
Код
#define F_CPU 4000000
#include <avr/io.h>
#include <util/delay.h>
#include "LCD.h"

void LcdInit(void);
void LcdSendData(char byte);
void LcdSendCom(char byte);

void LcdInit(void)
{
LCD_PORT=0;
LCD_DDR=0xFF;
LCD_PORT|=1<<LCD_R;
_delay_ms(200);

//LcdSendCom(0x20);
//LcdSendCom(0x0C);

//for(int j=0;j<104;j++)
//{

//   LcdSendData(0x08);
//}
}

void LcdSendData(char byte)
{
LCD_PORT &= ~(1<<LCD_SCE);
char i;
for(i=7;i>=0;i--)
{
if(byte&(1<<i)) LCD_PORT |=1<<LCD_SDIN;
else  LCD_PORT &=~(1<<LCD_SDIN);

_delay_us(10);
LCD_PORT |=1<<LCD_SCK;
_delay_us(10);
LCD_PORT &=~(1<<LCD_SCK);
_delay_us(10);
}
LCD_PORT |=1<<LCD_SCE;

}

void LcdSendCom(char byte)
{
LCD_PORT &= ~(1<<LCD_SCE);
LCD_PORT &= ~(1<<LCD_DC);
char i;
for(i=7;i>=0;i--)
{
if(byte&(1<<i)) LCD_PORT |=1<<LCD_SDIN;
else  LCD_PORT &=~(1<<LCD_SDIN);

_delay_us(10);
LCD_PORT |=1<<LCD_SCK;
_delay_us(10);
LCD_PORT &=~(1<<LCD_SCK);
_delay_us(10);
}
LCD_PORT |=1<<LCD_SCE;
LCD_PORT |=1<<LCD_DC;
}

int main(void)
{
LcdInit();

LcdSendCom(0b00100001);//2
LcdSendCom(0b10010000);//3
LcdSendCom(0b00100000);//4
LcdSendCom(0b00001100);//5
LcdSendData(0b00011111);//6
LcdSendData(0b00000101);//7
LcdSendData(0b00000111);//8
LcdSendData(0b00000000);//9
LcdSendData(0b00011111);//10
LcdSendData(0b00000100);//11
LcdSendData(0b00011111);//12

while(1)
{

}

return 0;
}

./styles/iosyitistromyss/imageset/icon_topys_attach.gif" width="14" height="18
[154.66 Кб]

0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2011, 15:17
Ответы с готовыми решениями:

Подключение nokia 3310
Всем привет. Имеется китайский экран от нокии. Использовал библиотеку отсюда. Все хорошо, но вместо...

Не работает дисплей(3310)
Добрый вечер! Подключаю к меге16, жк экран от нокии 3310 - не работает! SDIN-&gt;MOSI и SCLK-&gt;SCK...

Не работает LCD Nokia 3310 от dsPIC33FJ12GP201 по SPI
Я новичок в ПИКах, поэтому столкнулся с проблемой в использовании dsPIC33 и дисплея от нокии 3310,...

MSP430g2231 + SPI + NOKIA 3310
Прошу помощи у знатоков. Приспичило мне подключить экранчик от 3310 (он же 5110) по SPI. Но т.к. в...

MSP430 Launchpad и десплей от Nokia 3310
Привет всезнающий Ott. Есть лаунчпад и несколько дисплеев от нокии 3310 с pcd8544. Есть у кого нить...

3
Smypir
0 / 0 / 0
Регистрация: 24.01.2010
Сообщений: 127
29.05.2011, 00:22 2
В общем я сделал.. Все работает. Тему можно закрывать..
0
Stiit.mi
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
29.05.2011, 00:27 3
Цитата Сообщение от Smypir
В общем я сделал.. Все работает. Тему можно закрывать..
Блин, ну черкани же пару слов, где бок был. А то уже сто раз такое было - в поиске находишь сообщение, симптомы один-в-один как у себя, а ответа нет - "Спасибо, все решил".
0
Smypir
0 / 0 / 0
Регистрация: 24.01.2010
Сообщений: 127
29.05.2011, 00:39 4
Первый косяк в коде посылки команд и текста.
Вот так должно быть:
код
Код
void LcdSendData(char byte)
{
LCD_PORT &= ~(1<<LCD_SCE);
char i;
for(i=0;i<8;i++)
{
if(byte&(1<<(7-i))) LCD_PORT |=1<<LCD_SDIN;
else  LCD_PORT &=~(1<<LCD_SDIN);

_delay_us(10);
LCD_PORT |=1<<LCD_SCK;
_delay_us(10);
LCD_PORT &=~(1<<LCD_SCK);
_delay_us(10);
}
LCD_PORT |=1<<LCD_SCE;

}
Второй косяк в контрасности, ее надо выставлять вот так:
код
Код
LcdSendCom(0b00100001);//расширенные инструкции
LcdSendCom(0b11010000);//установка Vop, находится экспериментально
LcdSendCom(0b00100000);//стандартные инструкции
LcdSendCom(0b00001100);//включить дисплей+горизонтальная адресация
Щас еще буду с температурными коэффициентами баловаться, а вообще доскональное вкуривание ДШ рулит, там реально все описывается, при беглом чтении можно пропустить важную мелочь и убиваться из за того, что оно не работает)

0
29.05.2011, 00:39
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2011, 00:39

LCD 4bit
Всем привет! Я студент скромного технического вуза (бауманка), и мне выпал курсовой проект....

LCD + CVAVR
Доброго времени суток! Написал небольшой код, который по задумке должен опрашивать 4 канала ацп...

Atmega16 + LCD
Здравствуйте! Хочу сделать термометр как тут...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru