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

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

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

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

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

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


 
Опции темы
Непрочитано 26.08.2014, 22:49  
Kpomobm
Частый гость
 
Регистрация: 09.12.2008
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
Kpomobm на пути к лучшему
По умолчанию PIC18F242 неправильная работа LCD 16x2

Написал программу для PIC18F242. Режим осциллятора - HSPLL, кварц 10 МГц. В протеусе все работает росто замечательно. На железе на индикатор выводятся только нечетные символы без пробелов, т.е. строка укорачивается в два раза с потерей четных символов. Иногда нарушается рядность - часть символов из первой строки вылазят во вторую. Индикатор исправный, проверял на другой схеме на PIC16F690. Программы пишу на Протоне:
Код:
--------------------------------
device 18F242
xtal 10
 on_hardware_interrupt Save   
 goto main                     
 Declare LCD_Type    alpha      
 Declare LCD_DTpin PORTB.4   
 Declare LCD_ENpin PORTA.0    
 Declare LCD_RSpin PORTA.1    
 Declare LCD_Interface      4      
 Declare LCD_Lines            2     
 Declare LCD_CommandUs = 2000  
 Declare LCD_DataUs        =    50    
'----------------------------------------------------------------
 CONFIG_START
 stvr = on                     
 wdt = off                      
 osc = hspll                   
 CONFIG_END
'------------------------ REGISTERS -----------------------------
 INTCON.7  = 1                   'Ãëîáàëüíîå ðàçðåøåíèå ïðåðûâàíèé - Äà
 INTCON.6  = 0                   'Ïåðèôåðèéíûå ïðåðûâàíèÿ - Íåò
 INTCON.5  = 0                   'Ïåðåïîëíåíèå ÒÌÐ0 = Íåò
 INTCON.4  = 1                   'Ïðåðûâàíèå INT0 - Äà
 INTCON.3  = 0                   'Â4-Â7 - Íåò 
 INTCON.2  = 0                   'Ôëàã ÒÌÐ0 (íå áûëî åãî)
 INTCON.1  = 0                   'Ôëàã INT0 (íå áûëî åãî)- ñáðàñûâàòü!!!
 INTCON.0  = 0                   'Ôëàã Â4-Â7 (íå áûëî åãî)
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 INTCON2.7 = 0                   'Ïîäòÿãèâàþùèå ðåçèñòîðû íà âõÂ - íåò
 INTCON2.6 = 0                   'Àêòèâíûé ôðîíò INT0 - çàäíèé
 INTCON2.5 = 0                   'Àêòèâíûé ôðîíò INT1 - çàäíèé
 INTCON2.4 = 0                   'Àêòèâíûé ôðîíò INT2 - çàäíèé
 INTCON2.2 = 0                   'Ïðèîðèòåò ÒÌÐ0 - íèçêèé
 INTCON2.0 = 0                   'Ïðèîðèòåò Â4-Â7 - íèçêèé
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 INTCON3.7 = 0                   'Ïðèîðèòåò INT2 - íèçêèé
 INTCON3.6 = 0                   'Ïðèîðèòåò INT1 - íèçêèé
 INTCON3.4 = 0                   'Ïðåðûâàíèå INT2 - Íåò
 INTCON3.3 = 0                   'Ïðåðûâàíèå INT1 - Íåò
 INTCON3.1 = 0                   'Ôëàã INT2
 INTCON3.0 = 0                   'Ôëàã INT1
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 T1CON.0   = 0                   'Timer1 Âûêëþ÷àòåëü (0/1 = Âûêë/Âêë)
 T1CON.1   = 0                   'Timer1 îò âíóòðåííé øèíû
 T1CON.2   = 0                   'Èãíîðèðóåòñÿ, ò.ê. T1CON.1 = 0
 T1CON.3   = 0                   'Ãåíåðàòîð Timer1 - Âûêë
 T1CON.4   = 0                   'Ïðåääåëèòåëü 1:1 
 T1CON.5   = 0                   'Ïðåääåëèòåëü 1:1 
 T1CON.7   = 1                   '16-bit Read/Write - Äà
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 PIE1     = 0                   'Ïðåðûâàíèÿ îò ïåðèôåðèè - Íåò
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 PIE2     = 0                   'Ïðåðûâàíèÿ îò ïåðèôåðèè - Íåò
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 RCON     = 0                   'Ïðèðèòåòíàÿ ñèñòåìà îòêëþ÷åíà
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 OSCCON   = 0
'-------------------- ÍÀÑÒÐÎÉÊÀ ÏÎÐÒÎÂ --------------------------
 TRISA    = 0                   'Âñå íà âûõîä
 TRISB    = %00001111           'Â4-7 Âûõîä/Â3-0 Âõîä  
----------------------------------------------------------------
Реклама:

Последний раз редактировалось realid; 28.08.2014 в 18:13.
Kpomobm вне форума  
Непрочитано 28.08.2014, 15:38  
shindax
Прописка
 
Регистрация: 04.09.2009
Сообщений: 167
Сказал спасибо: 1
Сказали Спасибо 34 раз(а) в 25 сообщении(ях)
shindax на пути к лучшему
По умолчанию Re: PIC18F242 неправильная работа LCD 16x2

Сообщение от Kpomobm Посмотреть сообщение
Написал программу для PIC18F242. Режим осциллятора - HSPLL, кварц 10 МГц. В протеусе все работает росто замечательно. На железе на индикатор выводятся только нечетные символы без пробелов, т.е. строка укорачивается в два раза с потерей четных символов. Иногда нарушается рядность - часть символов из первой строки вылазят во вторую. Индикатор исправный, проверял на другой схеме на PIC16F690. Программы пишу на Протоне:
Вы сами видели, во что Ваш код превратился, при copy-paste? Или, чукча не читатель? И нет такого ЯП "Протон", есть мусорный Basic, по всей видимости. Но понравилось "написал программу". Почему не "создал"? Или "сваял"?

Последний раз редактировалось realid; 28.08.2014 в 18:14.
shindax вне форума  
Сказали "Спасибо" shindax
dosikus (29.08.2014)
Непрочитано 28.08.2014, 17:17  
Andriy76
Вид на жительство
 
Регистрация: 13.09.2009
Адрес: Украина Львовская обл.
Сообщений: 413
Сказал спасибо: 18
Сказали Спасибо 148 раз(а) в 104 сообщении(ях)
Andriy76 на пути к лучшему
По умолчанию Re: PIC18F242 неправильная работа LCD 16x2

Лучше задать вопрос здесь http://www.picbasic.ru/
Кроме того выкладывать как файл Протона , так и Протеуса .
Здесь выложена только настройка .
Andriy76 вне форума  
Непрочитано 28.08.2014, 23:46  
Kpomobm
Частый гость
 
Регистрация: 09.12.2008
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
Kpomobm на пути к лучшему
По умолчанию Re: PIC18F242 неправильная работа LCD 16x2

Настройка выложена для знающих людей для того, чобы определить причину. Текст комментариев ни кому не интересен, тем более в настройках. Кому интересно читать содержание регистров специального назначения, для тех существуют даташиты. Тем более, что для проверки правильности настроек туда заглянуть все равно придется.
Вся проблема была в высокой заданной скорости работы процессора, поэтому ЖКИ не успевал правильно обрабатывать команды. Изменение настроек ЖКИ:
Declare LCD_CommandUs = 8000
Declare LCD_DataUs = 150
устранило проблему.
Kpomobm вне форума  
Непрочитано 29.08.2014, 00:01  
Kpomobm
Частый гость
 
Регистрация: 09.12.2008
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
Kpomobm на пути к лучшему
По умолчанию Re: PIC18F242 неправильная работа LCD 16x2

Вопрос решен, тема закрывается.
P.S.
При использовании программатора PicKit2 в режиме внутрисхемного программирования при подключенном ЖКИ проявилась кака в виде вывода из строя выводов портов, подключенных к нему. Причину пока не выяснил, но факт на лицо. Выводы PORTB.4-7 и PORTA.0-1 потеряли свою работоспособность. А именно - сигналы на их выходах носят исключительно потенциальный характер. Т.е. выводы не способны обеспечить выходной ток более 10мкА (по даташиту 25 мА). Без нагрузки по осциллографу они выдают импульсы от 0 до 1, а под нагрузкой с током потребления 100мкА (входной ток входов ЖКИ) они не способны обеспечить логический 0.
Kpomobm вне форума  
Непрочитано 29.08.2014, 09:42  
Andriy76
Вид на жительство
 
Регистрация: 13.09.2009
Адрес: Украина Львовская обл.
Сообщений: 413
Сказал спасибо: 18
Сказали Спасибо 148 раз(а) в 104 сообщении(ях)
Andriy76 на пути к лучшему
По умолчанию Re: PIC18F242 неправильная работа LCD 16x2

Не поленился и запустил Протон . При HSPLL Вы умножили частоту на 4 и получили 40МГц . Но в результате в 4 раза увеличили задержку для отсылки команд . Никакой мистики .
Для PICKit2 есть рекомендуемые схемы подключений при внутресхемном программировании .
Andriy76 вне форума  
Непрочитано 29.08.2014, 13:02  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,018
Сказал спасибо: 936
Сказали Спасибо 2,270 раз(а) в 1,565 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: PIC18F242 неправильная работа LCD 16x2

Сообщение от Kpomobm Посмотреть сообщение
При использовании программатора PicKit2 в режиме внутрисхемного программирования при подключенном ЖКИ проявилась кака в виде вывода из строя выводов портов, подключенных к нему. Причину пока не выяснил, но факт на лицо. Выводы PORTB.4-7 и PORTA.0-1 потеряли свою работоспособность. А именно - сигналы на их выходах носят исключительно потенциальный характер. Т.е. выводы не способны обеспечить выходной ток более 10мкА (по даташиту 25 мА). Без нагрузки по осциллографу они выдают импульсы от 0 до 1, а под нагрузкой с током потребления 100мкА (входной ток входов ЖКИ) они не способны обеспечить логический 0.
Бред...
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 30.08.2014, 09:19  
vavan1983
Почётный гражданин KAZUS.RU
 
Аватар для vavan1983
 
Регистрация: 26.12.2007
Сообщений: 1,198
Сказал спасибо: 70
Сказали Спасибо 80 раз(а) в 69 сообщении(ях)
vavan1983 на пути к лучшему
По умолчанию Re: PIC18F242 неправильная работа LCD 16x2

У вас отсутствует конфигурация регистра ADCON1. С помощью этого регистра нужно настроить PORTA.0-1 как цифровые. По умолчанию они настроенные как аналоговые порты.
Совет используйте 4-х битное подключения дисплея и по возможности не включайте на выводы PORTA не надо будет заморачиваться с настройками регистра ADCON.
vavan1983 вне форума  
Непрочитано 30.08.2014, 09:30  
vavan1983
Почётный гражданин KAZUS.RU
 
Аватар для vavan1983
 
Регистрация: 26.12.2007
Сообщений: 1,198
Сказал спасибо: 70
Сказали Спасибо 80 раз(а) в 69 сообщении(ях)
vavan1983 на пути к лучшему
По умолчанию Re: PIC18F242 неправильная работа LCD 16x2

Сообщение от dosikus Посмотреть сообщение
Бред...
Вполне возможен брак МК. Без схемы можно долго обсуждать что не так.
vavan1983 вне форума  
Непрочитано 30.08.2014, 09:33  
vavan1983
Почётный гражданин KAZUS.RU
 
Аватар для vavan1983
 
Регистрация: 26.12.2007
Сообщений: 1,198
Сказал спасибо: 70
Сказали Спасибо 80 раз(а) в 69 сообщении(ях)
vavan1983 на пути к лучшему
По умолчанию Re: PIC18F242 неправильная работа LCD 16x2

Сообщение от Kpomobm Посмотреть сообщение
Вопрос решен, тема закрывается.
P.S.
При использовании программатора PicKit2 в режиме внутрисхемного программирования при подключенном ЖКИ проявилась кака в виде вывода из строя выводов портов, подключенных к нему. Причину пока не выяснил, но факт на лицо. Выводы PORTB.4-7 и PORTA.0-1 потеряли свою работоспособность. А именно - сигналы на их выходах носят исключительно потенциальный характер. Т.е. выводы не способны обеспечить выходной ток более 10мкА (по даташиту 25 мА). Без нагрузки по осциллографу они выдают импульсы от 0 до 1, а под нагрузкой с током потребления 100мкА (входной ток входов ЖКИ) они не способны обеспечить логический 0.
Вы бы схему вашего устройства выложили бы. Как у вас запитан МК?
Попробуйте впаять на резисторы на 2 КОм между минусом и выводами вашего дисплея этим самым проверите МК.
Миниатюры:
Нажмите на изображение для увеличения
Название: Схема.jpg
Просмотров: 48
Размер:	706.8 Кб
ID:	69084  

Последний раз редактировалось vavan1983; 30.08.2014 в 09:43.
vavan1983 вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как прикрутить LCD 16x2 к pic16f628a? sky132 Микроконтроллеры, АЦП, память и т.д 7 22.08.2012 13:35
ATmega32 и инициализация LCD 16x2 Lekarto Микроконтроллеры, АЦП, память и т.д 5 01.07.2012 19:09
Mega128 PORTF -- LCD 16x2 freonSZ Микроконтроллеры, АЦП, память и т.д 12 13.02.2010 16:32
Помогите подключить к AVR LCD 16x2 sn74hc164 freonSZ Микроконтроллеры, АЦП, память и т.д 9 12.01.2009 20:43
Не могу разобраться с LCD init_sub Информация по радиокомпонентам 6 02.04.2004 04:40


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


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