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

 
 
> Как подключить PIC16F873 к WH1602A
PIC_mk
сообщение Dec 4 2007, 19:50
Сообщение #1





Группа: Новичок
Сообщений: 2
Регистрация: 4-12-07
Пользователь №: 32 972



Подскажите как отобразить какое-нибудь слово на индикаторе WH1602A используя PIC16F873. Если кто сможет напишите программу в блокноте для вывода хотя бы одного символа на дисплей индикатора.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 7)
drovik
сообщение Dec 5 2007, 07:14
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 47
Регистрация: 7-05-07
Пользователь №: 27 573



Скачай MikroC и вопросы отпадут. Там по-моему даже схема включения есть. Как вариант можно еще CCS использовать. В любом случае С.
Go to the top of the page
 
+Quote Post
K_AV
сообщение Dec 5 2007, 08:59
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 492
Регистрация: 19-08-06
Пользователь №: 19 667



Цитата(PIC_mk @ Dec 4 2007, 21:50) *
Подскажите как отобразить какое-нибудь слово на индикаторе WH1602A используя PIC16F873. Если кто сможет напишите программу в блокноте для вывода хотя бы одного символа на дисплей индикатора.
1. Для начала требуется-таки собрать схему из указанного PIC-а и ЖКИ (хотя бы "на бумаге"), чтобы зафиксировать подключение ЖКИ к PIC. Без этого - что ты в программе для PIC описывать будешь?
Учти, что данный класс ЖКИ допускает 2 разных подключения к контроллеру - 8-битное и 4-битное. От этого так же кое-что зависит в схеме и в программе.
2. Определись, на чем программу писать будешь (Asm, C).
3. Как будешь проверять результат того, что напрограммировал (будешь макет паять, или какой-нибудь Протеус привлекать...).
Go to the top of the page
 
+Quote Post
_Alfred_
сообщение Dec 5 2007, 10:40
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 73
Регистрация: 13-07-05
Пользователь №: 6 757



В основе большинства таких индикаторов лежит контроллер HD44780 и Ваш не исключение: Алфавитно-цифровой ЖК-модуль WH1602A фирмы Winstar.

Вывод на индикатор сводится к управлению контроллером. Возьмите datasheet например с МЭЛТа, там на русском достаточно понятно все описано (например ЖК-индикатор MT-16S2R).

В интернете есть много примеров, посмотрите например:
Иcпользование ЖКИ индикаторов на базе контроллера HD44780 и его аналогов совместно с PIC-микроконтроллерами
Трехдиапазонный частотомер - цифровая шкала на PIC16F84A c ЖКИ индикатором (на основе м/контроллера HD44780) и функцией памяти настроек (по материалам "Самоучителя...).
LC-meter FREE project

Смотрите в интернете - там все есть (http://www.google.com/search?hl=ru&cli...&lr=lang_ru) да и на этом форуме тожеsmile.gif

Сообщение отредактировал _Alfred_ - Dec 5 2007, 10:44
Go to the top of the page
 
+Quote Post
kolisnichenko_r
сообщение Dec 6 2007, 06:41
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 435
Регистрация: 12-09-07
Пользователь №: 30 482



Цитата(PIC_mk @ Dec 4 2007, 23:50) *
Подскажите как отобразить какое-нибудь слово на индикаторе WH1602A используя PIC16F873. Если кто сможет напишите программу в блокноте для вывода хотя бы одного символа на дисплей индикатора.


Первый шаг: инициализация индикатора, загрузка символов созданых пользователем(если такие есть/нужны):
Код
void lcd_init(void)//initcializatciya lcd
{LCD_RS=0;
  Delayms(15);//15ms
  PORTD=0x3  ;
  LCD_STROBE ;
  Delayms(5) ;//5ms
  LCD_STROBE ;
  Delaymks(100);//100mks
  LCD_STROBE ;
  Delayms(5) ;
  PORTD=0x2  ;
  LCD_STROBE ;
  Delaymks(40);//40mks
  lcd_cmd(0x28);
  lcd_cmd(0x08);
  lcd_cmd(0x0c);
  lcd_cmd(0x06);
    }

#define LCD_STROBE ((LCD_EN=1),(LCD_EN=1),(CD_EN=0))
  static bit LCD_RS @(unsigned)&PORTC*8+0;
  static bit LCD_EN @(unsigned)&PORTC*8+1;

  void lcd_cmd (unsigned char c)//komanda dlya lcd
{LCD_RS=0 ;
  PORTD=(PORTD&0xf0)|(c>>4);
  LCD_STROBE;
  PORTD=(PORTD&0xf0)|(c&0x0f);
  LCD_STROBE;
  Delaymks(40);//40mks
}

void lcd_char(char c)//bukva dlya lcd
{LCD_RS=1 ;
  PORTD=(PORTD&0xf0)|(c>>4);
  LCD_STROBE;
  PORTD=(PORTD&0xf0)|(c&0x0f);
  LCD_STROBE;
  Delaymks(40);//40mks
}

void lcd_write(void)//загрузка символов созданых пользователем
{char j;
  lcd_cmd(0x40); /* komanda dlya lcd */     
  for(j=0;j<16;j++)
   {lcd_char(Zn[j]);} /* bukva dlya lcd */
}


Второй шаг: вывод букв на индикатор
Код
  //lcd_cmd (0x01);//очистка индикатора
  //Delayms(3);
  lcd_char(0x20);//" "
  lcd_char(0x20);//" "
  lcd_char(0x20);//" "
  lcd_char(0x42);//"В "    
  lcd_char(0xbd);//"н"
  lcd_char(0xb8);//"и"
  lcd_char(0xbc);//"м"
  lcd_char(0x61);//"а"
  lcd_char(0xbd);//"н"
  lcd_char(0xb8);//"и"
  lcd_char(0x65);//"е"
  lcd_char(0x21);//"!"
  lcd_cmd(0xc0);//perevоd na 2-ruu strochku
  //lcd_char(0x20);//" "
  lcd_char(0xa5);//"И"
  lcd_char(0xe3);//"д"
  lcd_char(0x65);//"е"
  lcd_char(0xbf);//"т"
  lcd_char(0x20);//" "
  lcd_char(0xb8);//"и"
  lcd_char(0xb7);//"з"
  lcd_char(0xbc);//"м"
  lcd_char(0x65);//"е"
  lcd_char(0x70);//"р"
  lcd_char(0x65);//"е"
  lcd_char(0xbd);//"н"
  lcd_char(0xb8);//"и"
  lcd_char(0x65);//"е"
  lcd_char(0x21);//"! "
Go to the top of the page
 
+Quote Post
PIC_mk
сообщение Dec 6 2007, 21:08
Сообщение #6





Группа: Новичок
Сообщений: 2
Регистрация: 4-12-07
Пользователь №: 32 972



Помогите написать программу для вывода какого-недь слова для вот этой схемы. Например,
PLEASE WAIT... . Если можно, то напишите исходный текст программы для последующей его
компиляции в MPASMWIN.exe. Спасибо за инфо о MT-16S2, LC-meter, трехдиапазонный частотомер.
Прикрепленное изображение
Go to the top of the page
 
+Quote Post
ogurets
сообщение Dec 6 2007, 21:53
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 220
Регистрация: 21-06-04
Пользователь №: 77



пример из Mikrobasic for PIC, качаете демо, читаете хелп и через 5-50-500 минут имеете желаемое wink.gif
'(*
' * Project name:
' lcd_demo
' * Copyright:
' © mikroElektronika, 2005 - 2006
' * Revision History:
' 20050312:
' - initial release.
' * Description:
' This code demonstrates displaying text on LCD (4 bit interface)
' and use of LCD library procedures and functions.
' * Test configuration:
' MCU: PIC16F877A
' Dev.Board: EasyPIC3
' Oscillator: HS, 8.000 MHz
' Ext. Modules: None
' SW: mikroBasic v5.0 or higher
' * NOTES:
' None
' *)
program Lcd_demo

main:
Lcd_Init(PORTB) ' Initialize LCD connected to PORTB
Lcd_Cmd(LCD_CLEAR) ' Send command to LCD "clear display"
Lcd_Cmd(LCD_CURSOR_OFF) ' Send command cursor off
Lcd_Out(2,1,"PLEASE WAIT") ' Print txt to LCD, 2nd row, 1st column
end.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Dec 7 2007, 10:10
Сообщение #8


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(ogurets @ Dec 6 2007, 23:53) *
пример из Mikrobasic for PIC
Не подойдет - куровая должна быть на асме. PIC_mk - да чего мелочиться, в блокноте писать - публикуйте счет, куда сразу деньги посылать.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 09:30
Рейтинг@Mail.ru


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