Jump to content

Recommended Posts

Здравствуйту ФУРОМЧАНЕ!Пишу просто от отчаяния! Который день сижу голову ломаю как на LCD 16X2 высветить хоть какой ни будь символ! Перерыл тучу дукоментации! Примеров внятных и понятных на си для PIC не нашел!

C AVR все как то проще - навалом всего, и код есть и расписано все вроде понятно! Но как то так случилось что с AVR не подружился! Единственное что было в ларьке с электроникой 16f84A - так как то к PICам и пристрастился!

Помогите пожалуйста! Подкиньте понятно расписанный код и инициализацией! Если не жалко то и от библиотек чужих не откажусь!

Спасибо заранее!post-151627-0-22983100-1325784582_thumb.png

Share this post


Link to post
Share on other sites
Который день сижу голову ломаю
А всего-то лишь, R/W надо на землю посадить :)

Share this post


Link to post
Share on other sites
Который день сижу голову ломаю
А всего-то лишь, R/W надо на землю посадить :)

Извините но дело не R/W! Проверял и этот вариант - просто для рисунка почемкто решил использовать - именно эту схему!

Пробывал и 4 битную и 8 битную передачу и с одного порта и на разные разносил! Что то не так! Где то ошибки, а из-за не богатого опыта увидеть сам не могу!

post-151627-0-95508100-1325785972_thumb.png

чёто к кодом какая то фигня наверное?

Edited by AndreyASUNO

Share this post


Link to post
Share on other sites

Вебинар «Каждому ключу — свой драйвер» (13.08.2020)

Компания КОМПЭЛ приглашает вас принять участие в вебинаре, который будет посвящен теме драйверов управления транзисторами компании Infineon. Мы рассмотрим четыре различных технологии изготовления микросхем драйверов, в чём их отличия и особенности.

Подробнее

А зачем кстати такие задержки? у меня индикатор нормально запускался и без них... индикатор у меня 8 строк на 20 символов - состоит физически из 4-х отдельных контроллеров подобных твоему индикатору которые отвечают за свой кусок дисплея. Кстати, сними осциллограмму с выводов индикатора(управляющих выводов) все ли там формируется как надо? особенно сигнал выбора, и направления данных, последовательность установки этих сигналов... сначала надо управляющие, а затем через время сигнал выбора чтобы быть уверенным что индикатор распознает сигнал так как нужно. 100мс - это много, для теста возьми 1мс и используй цифровой осциллограф для захвата состояния всех управляющих выводов.

Edited by Alexeyslav

Учение - изучение правил. Опыт - изучение исключений.

Share this post


Link to post
Share on other sites

Новый ХИТ FANSO CR123A/SN

Параметры новой батарейки показывают прекрасные результаты. Она используется для приложений с повышенными импульсами тока. Широко применяется в охранно-пожарных датчиках, устройствах телеметрии, поисковых маячках, LED-фонарях и других промышленных и бытовых устройствах.

Подробнее

А зачем кстати такие задержки? у меня индикатор нормально запускался и без них... индикатор у меня 8 строк на 20 символов - состоит физически из 4-х отдельных контроллеров подобных твоему индикатору которые отвечают за свой кусок дисплея. Кстати, сними осциллограмму с выводов индикатора(управляющих выводов) все ли там формируется как надо? особенно сигнал выбора, и направления данных, последовательность установки этих сигналов... сначала надо управляющие, а затем через время сигнал выбора чтобы быть уверенным что индикатор распознает сигнал так как нужно. 100мс - это много, для теста возьми 1мс и используй цифровой осциллограф для захвата состояния всех управляющих выводов.

ПРоверил! Да действительно приходит хрень какая то!

Отказался от псевда универсальной последовательности команд иннициализации LCD содранной откуда то неведомо от куда!

Посмотрел в date.... на Winstar, переписал:

#include <pic.h>

#include "C:\4\delay.c"

#define RS RA0

#define EN RA2

void lcd_com(unsigned char p)

{

RS = 0; // RS = 0

EN = 1; // EN = 1

PORTB = p;

DelayMs(10);

EN = 0; // EN = 0

DelayMs(10);

}

void lcd_dat(unsigned char p)

{

RS = 1; // RS = 1

EN = 1; // EN = 1

PORTB = p;

DelayMs(10);

EN = 0; // EN = 0

DelayMs(10);

}

void lcd_init(void)

{

lcd_com(0x08);

lcd_com(0x38);

DelayMs(40);

lcd_com(0x38);

DelayMs(40);

lcd_com(0x38);

lcd_com(0x38);

lcd_com(0x01);

DelayMs(40);

lcd_com(0x06);

lcd_com(0x0D);

}

int main (void)

{

unsigned char znak = 0, b;

TRISA = 0;

TRISB = 0;

lcd_init();

while (1)

{

lcd_com(0x0C);

lcd_com(0x02);

lcd_dat(znak/100 + 0x30);

lcd_dat((znak/10)%10 + 0x30);

lcd_dat(znak%10 + 0x30);

lcd_dat('=');

lcd_dat(znak);

for (b=0; b < 10; b++)

DelayMs(10);

lcd_com(0x02);

for (b=0; b < 5; b++)

lcd_dat(' ');

znak++;

}

}

Всё получилось!

post-151627-0-75793700-1325827410_thumb.png

Edited by AndreyASUNO

Share this post


Link to post
Share on other sites

Сетевой источник питания с расширенным диапазоном входных напряжений на основе VIPER26xK

Питание стационарных устройств чаще осуществляется напряжением 220 В, получаемым от одной фазы трехфазной промышленной сети. Однако существует ряд приложений, которым необходима энергия из всех трех фаз, в т.ч. и в аварийных режимах. Решение этой задачи обычно требует введение в модули питания дополнительных узлов, увеличивающих как их размеры, так и стоимость. Упростить схемы источников питания от трехфазной сети переменного тока либо от других высоковольтных источников, позволяет использование преобразователей с расширенным диапазоном входного напряжения.

Подробнее

В мультисими тоже все собралось!

post-151627-0-81634600-1325830315_thumb.png

Alexeyslav - СПАСИБО!

за наставление!

по 4 битам с разных портов - заработало!

по 4 битам с 1одного порта - заработало!

Если надо кому выложу !

Edited by AndreyASUNO

Share this post


Link to post
Share on other sites

post-151627-0-74053400-1325928533_thumb.png

Добился уменшения пинов до 4 на контроллере!

А еще меньше можно уменьшить?

Edited by AndreyASUNO

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...