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

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

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

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

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

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


 
Опции темы
Непрочитано 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.RU
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,938
Сказал спасибо: 2,991
Сказали Спасибо 3,167 раз(а) в 2,149 сообщении(ях)
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.RU
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,938
Сказал спасибо: 2,991
Сказали Спасибо 3,167 раз(а) в 2,149 сообщении(ях)
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.RU
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,938
Сказал спасибо: 2,991
Сказали Спасибо 3,167 раз(а) в 2,149 сообщении(ях)
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.RU
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,938
Сказал спасибо: 2,991
Сказали Спасибо 3,167 раз(а) в 2,149 сообщении(ях)
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, время: 23:18.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot