26.08.2014, 22:49
|
|
Частый гость
Регистрация: 09.12.2008
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
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.
|
|
|
|
28.08.2014, 15:38
|
|
Прописка
Регистрация: 04.09.2009
Сообщений: 167
Сказал спасибо: 1
Сказали Спасибо 35 раз(а) в 25 сообщении(ях)
|
Re: PIC18F242 неправильная работа LCD 16x2
Сообщение от Kpomobm
|
Написал программу для PIC18F242. Режим осциллятора - HSPLL, кварц 10 МГц. В протеусе все работает росто замечательно. На железе на индикатор выводятся только нечетные символы без пробелов, т.е. строка укорачивается в два раза с потерей четных символов. Иногда нарушается рядность - часть символов из первой строки вылазят во вторую. Индикатор исправный, проверял на другой схеме на PIC16F690. Программы пишу на Протоне:
|
Вы сами видели, во что Ваш код превратился, при copy-paste? Или, чукча не читатель? И нет такого ЯП "Протон", есть мусорный Basic, по всей видимости. Но понравилось "написал программу". Почему не "создал"? Или "сваял"?
Последний раз редактировалось realid; 28.08.2014 в 18:14.
|
|
|
Сказали "Спасибо" shindax
|
|
|
28.08.2014, 17:17
|
|
Вид на жительство
Регистрация: 13.09.2009
Адрес: Украина Львовская обл.
Сообщений: 413
Сказал спасибо: 18
Сказали Спасибо 148 раз(а) в 104 сообщении(ях)
|
Re: PIC18F242 неправильная работа LCD 16x2
Лучше задать вопрос здесь http://www.picbasic.ru/
Кроме того выкладывать как файл Протона , так и Протеуса .
Здесь выложена только настройка .
|
|
|
|
28.08.2014, 23:46
|
|
Частый гость
Регистрация: 09.12.2008
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Re: PIC18F242 неправильная работа LCD 16x2
Настройка выложена для знающих людей для того, чобы определить причину. Текст комментариев ни кому не интересен, тем более в настройках. Кому интересно читать содержание регистров специального назначения, для тех существуют даташиты. Тем более, что для проверки правильности настроек туда заглянуть все равно придется.
Вся проблема была в высокой заданной скорости работы процессора, поэтому ЖКИ не успевал правильно обрабатывать команды. Изменение настроек ЖКИ:
Declare LCD_CommandUs = 8000
Declare LCD_DataUs = 150
устранило проблему.
|
|
|
|
29.08.2014, 00:01
|
|
Частый гость
Регистрация: 09.12.2008
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Re: PIC18F242 неправильная работа LCD 16x2
Вопрос решен, тема закрывается.
P.S.
При использовании программатора PicKit2 в режиме внутрисхемного программирования при подключенном ЖКИ проявилась кака в виде вывода из строя выводов портов, подключенных к нему. Причину пока не выяснил, но факт на лицо. Выводы PORTB.4-7 и PORTA.0-1 потеряли свою работоспособность. А именно - сигналы на их выходах носят исключительно потенциальный характер. Т.е. выводы не способны обеспечить выходной ток более 10мкА (по даташиту 25 мА). Без нагрузки по осциллографу они выдают импульсы от 0 до 1, а под нагрузкой с током потребления 100мкА (входной ток входов ЖКИ) они не способны обеспечить логический 0.
|
|
|
|
29.08.2014, 09:42
|
|
Вид на жительство
Регистрация: 13.09.2009
Адрес: Украина Львовская обл.
Сообщений: 413
Сказал спасибо: 18
Сказали Спасибо 148 раз(а) в 104 сообщении(ях)
|
Re: PIC18F242 неправильная работа LCD 16x2
Не поленился и запустил Протон . При HSPLL Вы умножили частоту на 4 и получили 40МГц . Но в результате в 4 раза увеличили задержку для отсылки команд . Никакой мистики .
Для PICKit2 есть рекомендуемые схемы подключений при внутресхемном программировании .
|
|
|
|
29.08.2014, 13:02
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: PIC18F242 неправильная работа LCD 16x2
__________________
Осторожно , злой кот
|
|
|
|
30.08.2014, 09:19
|
|
Почётный гражданин KAZUS.RU
Регистрация: 26.12.2007
Сообщений: 1,198
Сказал спасибо: 70
Сказали Спасибо 80 раз(а) в 69 сообщении(ях)
|
Re: PIC18F242 неправильная работа LCD 16x2
У вас отсутствует конфигурация регистра ADCON1. С помощью этого регистра нужно настроить PORTA.0-1 как цифровые. По умолчанию они настроенные как аналоговые порты.
Совет используйте 4-х битное подключения дисплея и по возможности не включайте на выводы PORTA не надо будет заморачиваться с настройками регистра ADCON.
|
|
|
|
30.08.2014, 09:30
|
|
Почётный гражданин KAZUS.RU
Регистрация: 26.12.2007
Сообщений: 1,198
Сказал спасибо: 70
Сказали Спасибо 80 раз(а) в 69 сообщении(ях)
|
Re: PIC18F242 неправильная работа LCD 16x2
|
|
|
|
30.08.2014, 09:33
|
|
Почётный гражданин KAZUS.RU
Регистрация: 26.12.2007
Сообщений: 1,198
Сказал спасибо: 70
Сказали Спасибо 80 раз(а) в 69 сообщении(ях)
|
Re: PIC18F242 неправильная работа LCD 16x2
Сообщение от Kpomobm
|
Вопрос решен, тема закрывается.
P.S.
При использовании программатора PicKit2 в режиме внутрисхемного программирования при подключенном ЖКИ проявилась кака в виде вывода из строя выводов портов, подключенных к нему. Причину пока не выяснил, но факт на лицо. Выводы PORTB.4-7 и PORTA.0-1 потеряли свою работоспособность. А именно - сигналы на их выходах носят исключительно потенциальный характер. Т.е. выводы не способны обеспечить выходной ток более 10мкА (по даташиту 25 мА). Без нагрузки по осциллографу они выдают импульсы от 0 до 1, а под нагрузкой с током потребления 100мкА (входной ток входов ЖКИ) они не способны обеспечить логический 0.
|
Вы бы схему вашего устройства выложили бы. Как у вас запитан МК?
Попробуйте впаять на резисторы на 2 КОм между минусом и выводами вашего дисплея этим самым проверите МК.
Последний раз редактировалось vavan1983; 30.08.2014 в 09:43.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 15:24.
|
|