Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

ADuC841. Работа с ЖКИ

Непрочитано 07.02.2016, 19:41  
Maroder666
Частый гость
 
Регистрация: 07.02.2016
Сообщений: 10
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Maroder666 на пути к лучшему
По умолчанию ADuC841. Работа с ЖКИ

Здравствуйте. Есть плата ADuC841 на которой установлен LCD hd44780. Есть программа которая должна с ним работать, но она не работает. Можете посмотреть и подсказать что может быть не так?

Код:
#include ‹stdio.h›
#include ‹ADuC841.h›


#define LCD_HORIZ_SIZE  16
#define LCD_VERT_SIZE   2
#define LCD_BYTES_PER_LINE  (128 / LCD_VERT_SIZE)
#define LCD_CLEAR_CMD 0x01 // очистка
#define LCD_HOME_CMD 0x02  // возврат в самое начало
#define LCD_ON_CMD 0x0C    // курсор отключен, мигание отключено, дисплей вкл
#define LCD_SHIFT_CMD 0x14
#define LCD_CONFIG_CMD 0x38  // 5 на 7 пикселей и 2 строки 8 бит интерфейс



unsigned char xdata lcd_command_wr    _at_ 0xFE00;
unsigned char xdata lcd_status_rd    _at_ 0xFE01;
unsigned char xdata lcd_data_wr    _at_ 0xFE02;
unsigned char xdata lcd_data_rd    _at_ 0xFE03;

void delay16 (unsigned int i);
void lcd_busy(void);
void lcd_command(unsigned char cmd);
void lcd_putchar(char c);
void lcd_init(void);
void lcd_clear(void);
void lcd_home(void);
void lcd_set_xy(unsigned int x,y);


void delay16 (unsigned int i)
{
  do {} while(--i);
}
void lcd_busy(void)
{
   while (lcd_status_rd & 0x80)  ;
}


void lcd_command(unsigned char cmd)
{
   lcd_busy();
   lcd_command_wr = cmd;
}
void lcd_putchar(char c)
{
   lcd_busy();
   lcd_data_wr = c;
}

void lcd_init(void)
{   delay16(400);
   lcd_command(LCD_CONFIG_CMD);
   delay16(30000);
   lcd_command(LCD_ON_CMD);
   delay16(400);
   lcd_command(LCD_SHIFT_CMD);
   delay16(400);
   
}
void lcd_clear(void)
{
   lcd_command(LCD_CLEAR_CMD);
}

void lcd_home(void)
{
   lcd_command(LCD_HOME_CMD);
}
void lcd_set_xy(unsigned int x, y)
{
   
   switch (y) {
    case 0: y=0;    break;
    case 1: y=0x40; break;
 
   }
   
   
   lcd_busy();
   lcd_command_wr = (y * LCD_BYTES_PER_LINE + x) | 0x80;
}


void main()
{char c;

   lcd_init();

while (1) {

      lcd_clear();
      lcd_home();
      lcd_set_xy(0, 0);
      lcd_putchar('H');
      lcd_putchar('e');
      lcd_putchar('l');
      lcd_putchar('l');
      lcd_putchar('0');
      lcd_putchar('!');
}
}
Реклама:
Maroder666 вне форума  
Непрочитано 07.02.2016, 20:46  
ForcePoint
Почётный гражданин KAZUS.RUN
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,459
Сказал спасибо: 3,227
Сказали Спасибо 3,513 раз(а) в 2,394 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: ADuC841. Работа с ЖКИ

Хоть что-то на ЖКИ видно? А если контрастность (напряжение на выв. 3) покрутить?
ForcePoint вне форума  
Непрочитано 07.02.2016, 21:06  
Maroder666
Частый гость
 
Регистрация: 07.02.2016
Сообщений: 10
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Maroder666 на пути к лучшему
По умолчанию Re: ADuC841. Работа с ЖКИ

После включения платы одна строка забита черными прямоугольниками, вторая пустая
Maroder666 вне форума  
Непрочитано 07.02.2016, 21:07  
Maroder666
Частый гость
 
Регистрация: 07.02.2016
Сообщений: 10
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Maroder666 на пути к лучшему
По умолчанию Re: ADuC841. Работа с ЖКИ

Может быть неправильно заданы адреса 0xFE00, 0xFE01 и тд
Maroder666 вне форума  
Непрочитано 07.02.2016, 22:33  
ForcePoint
Почётный гражданин KAZUS.RUN
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,459
Сказал спасибо: 3,227
Сказали Спасибо 3,513 раз(а) в 2,394 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: ADuC841. Работа с ЖКИ

Судя по указанию xdata - ЖКИ отображён на адресное пространство внешнего ОЗУ МК. А программа, судя по всему, из интернета (не от этого железа)?

Какова текущая схема подключения? Такая?
ForcePoint вне форума  
Непрочитано 07.02.2016, 22:54  
Maroder666
Частый гость
 
Регистрация: 07.02.2016
Сообщений: 10
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Maroder666 на пути к лучшему
По умолчанию Re: ADuC841. Работа с ЖКИ

На счет схемы подключения ответить затрудняюсь, т.к. доступа к плате сейчас нет.
Код был взят с интернета, но для этого железа (по крайне мере так было указано)
Maroder666 вне форума  
Непрочитано 07.02.2016, 23:54  
ForcePoint
Почётный гражданин KAZUS.RUN
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,459
Сказал спасибо: 3,227
Сказали Спасибо 3,513 раз(а) в 2,394 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: ADuC841. Работа с ЖКИ

Ждём схему.
ForcePoint вне форума  
Непрочитано 08.02.2016, 09:36  
SMACK
Временная регистрация
 
Регистрация: 23.05.2006
Сообщений: 60
Сказал спасибо: 8
Сказали Спасибо 1 раз в 1 сообщении
SMACK на пути к лучшему
По умолчанию Re: ADuC841. Работа с ЖКИ

Разберись сначала с подключением шины - 8 или 4 бита?
Затем проверить используется ли вывод RW дисплея, заведен ли он на мк или сидит на общем?
Исходников под данные дисплеи в инете навалом.
SMACK вне форума  
Непрочитано 13.02.2016, 13:53  
Maroder666
Частый гость
 
Регистрация: 07.02.2016
Сообщений: 10
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Maroder666 на пути к лучшему
По умолчанию Re: ADuC841. Работа с ЖКИ

Схема подключения.
Миниатюры:
Нажмите на изображение для увеличения
Название: Scan10077.jpg
Просмотров: 82
Размер:	1.09 Мб
ID:	88010  
Maroder666 вне форума  
Непрочитано 13.02.2016, 14:47  
ForcePoint
Почётный гражданин KAZUS.RUN
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,459
Сказал спасибо: 3,227
Сказали Спасибо 3,513 раз(а) в 2,394 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: ADuC841. Работа с ЖКИ

Сообщение от Maroder666 Посмотреть сообщение
Схема подключения.
1. Не нравится мне эта схема, но это не важно.

2. Попробуйте, например, так:
Код:
unsigned char xdata lcd_command_wr    _at_ 0xC000;  // xx00 xxxx xxxx xxxx
unsigned char xdata lcd_status_rd    _at_ 0xE000;  // xx10 xxxx xxxx xxxx
unsigned char xdata lcd_data_wr    _at_ 0xD000;  // xx01 xxxx xxxx xxxx
unsigned char xdata lcd_data_rd    _at_ 0xF000;  // xx11 xxxx xxxx xxxx
ForcePoint вне форума  
Сказали "Спасибо" ForcePoint
Maroder666 (25.02.2016)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема подключения ЖКИ 16х4 к ATtmega8515 orionSSV Микроконтроллеры, АЦП, память и т.д 58 31.10.2011 04:17
Напряжённая работа Roshens Отвлекитесь, эмбеддеры! 8 01.09.2010 23:08
Управление жки на основе HD44780 CERGEI1982 Микроконтроллеры, АЦП, память и т.д 15 08.03.2007 08:44


Часовой пояс GMT +4, время: 09:01.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.