Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Модератор форума: ivan_fd  
Форум Picbasic.ru » Программирование МК » PicBasicPro » PIC16F676 и LCD1602
PIC16F676 и LCD1602
marss70 Дата: Вт, 06.08.2013, 23:28  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Новенький
Сообщений: 17
Репутация: 0   ±
Замечания:   ±
На сайте с 20.04.2013

Статус: Offline

Здравствуйте, подскажите почему дисплей с этим МК ничего не показывает?
Вот код:

DEFINE OSC 20
DEFINE LCD_DREG PORTC
DEFINE LCD_DBIT 0
DEFINE LCD_RSREG PORTA 
DEFINE LCD_RSBIT 0 
DEFINE LCD_EREG PORTA 
DEFINE LCD_EBIT 1
DEFINE LCD_BITS 4 
DEFINE LCD_LINES 2 
DEFINE LCD_COMMANDUS 4000 
DEFINE LCD_DATAUS 250 

A var word
START : 
 A=A+1
lcdout $FE, 1 ' Clear Screen
Lcdout $FE,$16,#A," Test A"
Lcdout $FE,$C0," Test Line2":PAUSE 100
goto START 
END
Прикрепления: LCD_Test.dsn (41.6 Kb)

Сообщение отредактировал marss70 - Вт, 06.08.2013, 23:29
ЯНДЕКС Дата: 06.08.2013
shaman Дата: Ср, 07.08.2013, 02:37  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 178
Репутация: 5   ±
Замечания:   ±
На сайте с 07.11.2011

Статус: Offline

Доброй ночи , я не работаю с PicBasicPro, поэтому прошивку сделал на ProtonBasic. И конкретно опишите проблему , что дисплей не показывает , значение переменной или в принципе не работает. Я подключил Вам дисплей как это должно быть, в папке программа с проектом протеуса просто как тестовая . Как изложите более ясно свою проблему тогда и получите ответ на свой вопрос.
Прикрепления: New.7z (7.5 Kb)

Сообщение отредактировал shaman - Ср, 07.08.2013, 02:50
Matrix252005 Дата: Ср, 07.08.2013, 10:08  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 636
Репутация: 43   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Приятного времени суток!!!

1) Для того, чтобы экран заработал, необходимо для начала настроить вывода МК!!!! У Вас этого я не вижу...
2) Что это за команда такая "Lcdout $FE, $16" что то я такую команду не увидел в хелпах...
3) Сделайте задержку чуть больше, скажем 0,5 сек... Это не обязательно, но будет читабельно что отображается на экране..


THE TRUTH IS OUT THERE.

С уважением, Николай.
marss70 Дата: Ср, 07.08.2013, 16:48  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Новенький
Сообщений: 17
Репутация: 0   ±
Замечания:   ±
На сайте с 20.04.2013

Статус: Offline

Спасибо, вечерком до Prota и Басика доберусь, посмотрю. Дело в том, что с таким кодом сам индикатор работает на 628, а на 676 не хочет. shaman, или ещё кто-нибудь, может дадите ссылочку, где протон надыбать, а то что-то ни-где не могу "нормальную" найти. Я то сам с Bascoma AVR к вам заскочил. Так что особо не пинайте по-началу за вопросы "а что, а где?"
Сообщение отредактировал marss70 - Ср, 07.08.2013, 16:56
Matrix252005 Дата: Ср, 07.08.2013, 17:20  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 636
Репутация: 43   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Цитата marss70Так что особо не пинайте по-началу за вопросы "а что, а где?"
marss70, не кто Вас не пинает!!!!

Вот ссылка на протон: http://www.picbasic.ru/load/proton_development_suite_3_5_2_7/3-1-0-233
Тут же на сайте можно найти протеус 7.10, если не получится найти, скинем ссылку на него....


THE TRUTH IS OUT THERE.

С уважением, Николай.
marss70 Дата: Ср, 07.08.2013, 19:32  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Новенький
Сообщений: 17
Репутация: 0   ±
Замечания:   ±
На сайте с 20.04.2013

Статус: Offline

Matrix252005, Спасибо за ссылочки! Гыыыы, на Басик АВРовский похож!!!
Matrix252005 Дата: Ср, 07.08.2013, 20:05  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 636
Репутация: 43   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Всегда пожалуйста!!! 

Цитата (marss70)
Гыыыы, на Басик АВРовский похож!!!

Он скорей похож на mikroBasic...

Вот еще ссылка по протону:  http://www.terrarus.ucoz.ru/proton_plus_ide/index.html


THE TRUTH IS OUT THERE.

С уважением, Николай.
marss70 Дата: Ср, 07.08.2013, 21:41  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Новенький
Сообщений: 17
Репутация: 0   ±
Замечания:   ±
На сайте с 20.04.2013

Статус: Offline

Что-то как-то с сэмплами плоховато(

Добавлено (07.08.2013, 21:41)
---------------------------------------------
Уважаемый shaman, укажите пожалуйста, ну что не так?
Код
 Device = 16F676
Xtal = 4

LCD_DTPin = PORTC.0
LCD_RSPin = PORTA.0
LCD_ENPin = PORTA.1
LCD_Interface = 4 ' 4-bit Interface
LCD_Lines = 2
LCD_Type = 0
LCD_CommandUs = 2000
LCD_DataUs = 50

Dim X As Word
X =1234
Print At 1, 1,X

Stop

Сообщение отредактировал marss70 - Ср, 07.08.2013, 21:51
shaman Дата: Ср, 07.08.2013, 21:51  |                                                                                                                Сообщение # 9
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 178
Репутация: 5   ±
Замечания:   ±
На сайте с 07.11.2011

Статус: Offline

Доброй ночи, что именно не получается ?
1 . Настройки портов Вы не указали
2 . Вы хотите в цикле производить инкремент переменной Х и выводить ее на дисплей?
3 . Настройки ЖК сделайте правильно
;-----------Настройки подключения ЖКИ--------------------------
Declare LCD_Type ALPHA ' Тип ЖКИ - буквенно-цифровой
Declare LCD_DTPin PORTC.0 ' Порт данных ЖКИ
Declare LCD_ENPin PORTA.1 ' Управление цепью E
Declare LCD_RSPin PORTA.0 ' Управление цепью RS
Declare LCD_Interface 4 ' Использовать 4-х битную шину данных
Declare LCD_CommandUs 2000 ' Задержка перед посылкой команды
Declare LCD_DataUs 50 ' Задержка перед посылкой данных
Declare LCD_Lines 2 ' Количество строк ЖКИ равно двум
'---------------------------Установки портов---------------------------------------
TRISA = %000000
TRISC = %000000
PortA  = %000000
PortC  = %000000

Потом у Вас в программе должно идти
'---------------------Объявления переменных------------------------------------

'----------------------------Установки значения переменных--------------------

'------------------------Главная программа----------------------------------------
Main:
  
GoTo Main
End

Вот как должна выглядеть у Вас программа , научитесь все делать по правильному алгоритму построения программы , если он не правильный программа может выдавать ошибку.

Сообщение отредактировал shaman - Ср, 07.08.2013, 22:04
marss70 Дата: Ср, 07.08.2013, 22:02  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Новенький
Сообщений: 17
Репутация: 0   ±
Замечания:   ±
На сайте с 20.04.2013

Статус: Offline

Я взял за источник 

****************************************************************
' Name    : pproba2.BAS 
' Author  : Анатолий Медведев
' Notice  : Copyright © 2009 [select VIEW...EDITOR OPTIONS]
'         :     
' Date    : 03.03.2009        
' Version : 1.0           
' Notes   : Вывод 31 разрядного числа 31.BAS                              
'****************************************************************
        Device = 16F873A
        Xtal = 4

LCD_DTPin = PORTB.4
LCD_RSPin = PORTB.2
LCD_ENPin = PORTB.3
LCD_Interface = 4 ' 4-bit Interface
LCD_Lines = 4
LCD_Type = 0
LCD_CommandUs = 2000
LCD_DataUs = 50

           Dim WAR1 As Word           
    WAR1 = -1023
Print At 1, 1, ISDec WAR1      ' Вывести десятичное значение переменной с индификатором
Print At 2, 1, ISHex WAR1 ' Вывести шестнадцатеричное значение переменной с индификатором
Print $FE, $90, ISBin WAR1 ' Вывести двоичное значение переменной с индификатором
    Print $FE, $D0, ISHex -$ABCDEF   ' Вывести шестнадцатеричное число -ABCDEF с индификатором 
    

Stop 

эта прога отлично работает. Переложив на 676 и LCD1602 ничего на получается...
shaman Дата: Ср, 07.08.2013, 22:06  |                                                                                                                Сообщение # 11
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 178
Репутация: 5   ±
Замечания:   ±
На сайте с 07.11.2011

Статус: Offline

Проверьте правильность подключения ЖК , Вы его правильно подключили к контроллеру, согласно установок в самой программе ?
И проверяете код программы в протеусе или в железе ?

Сообщение отредактировал shaman - Ср, 07.08.2013, 22:09
ЯНДЕКС Дата: 07.08.2013
marss70 Дата: Ср, 07.08.2013, 22:10  |                                                                                                                Сообщение # 12
Группа: Проверенные
Ранг:  Новенький
Сообщений: 17
Репутация: 0   ±
Замечания:   ±
На сайте с 20.04.2013

Статус: Offline

Вот так

Добавлено (07.08.2013, 22:10)
---------------------------------------------
И такой код

Device = 16F676
Xtal = 4
;-----------Настройки подключения ЖКИ-------------------------- 
Declare LCD_Type ALPHA ' Тип ЖКИ - буквенно-цифровой 
Declare LCD_DTPin PORTC.0 ' Порт данных ЖКИ 
Declare LCD_ENPin PORTA.1 ' Управление цепью E 
Declare LCD_RSPin PORTA.0 ' Управление цепью RS 
Declare LCD_Interface 4 ' Использовать 4-х битную шину данных 
Declare LCD_CommandUs 2000 ' Задержка перед посылкой команды 
Declare LCD_DataUs 50 ' Задержка перед посылкой данных 
Declare LCD_Lines 2 ' Количество строк ЖКИ равно двум 
'---------------------------Установки портов---------------------------------------   
TRISA = %000000 
TRISC = %000000 
PORTA  = %000000 
PORTC  = %000000
           Dim X As Word 
                    
    X = 1234
Print At 1, 1, X      ' Вывести десятичное значение переменной 

Прикрепления: 1602_16f676.dsn (76.5 Kb)
shaman Дата: Ср, 07.08.2013, 22:11  |                                                                                                                Сообщение # 13
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 178
Репутация: 5   ±
Замечания:   ±
На сайте с 07.11.2011

Статус: Offline

Тогда вот код программы скомпилируйте его и проверьте , я Вам HEX вчера скидывал

Device = 16F676 ;Используемый микроконтроллер
Xtal 8           ;Частота осциллятора  8 МГц

;-----------------------Опции компилятора--------------------------                                                                   
;-----------Настройки подключения ЖКИ--------------------------
Declare LCD_Type ALPHA ' Тип ЖКИ - буквенно-цифровой
Declare LCD_DTPin PORTC.0 ' Порт данных ЖКИ
Declare LCD_ENPin PORTA.1 ' Управление цепью E
Declare LCD_RSPin PORTA.0 ' Управление цепью RS
Declare LCD_Interface 4 ' Использовать 4-х битную шину данных
Declare LCD_CommandUs 2000 ' Задержка перед посылкой команды
Declare LCD_DataUs 50 ' Задержка перед посылкой данных
Declare LCD_Lines 2 ' Количество строк ЖКИ равно двум                                                                    
;--------------------------Настройки портов--------------------------
                                                               
'---------------------Объявления переменных------------------------
Dim I    As Byte
Dim VAR1 As Byte
'----------------------------Установки значения--------------------
VAR1 = 0 ': Var = 0
'------------------------Главная программа-------------------------
Main:
 For I = 0 To 255
     Inc VAR1
     Print At 1, 1, #VAR1, "  "
     If VAR1 = 255 Then GoSub Schet : EndIf
     DelayMS 100
 Next I    
GoTo Main

Schet:
   Cls
   Print At 2, 1, " End Schet "
  DelayMS 1000
Return
marss70 Дата: Ср, 07.08.2013, 22:23  |                                                                                                                Сообщение # 14
Группа: Проверенные
Ранг:  Новенький
Сообщений: 17
Репутация: 0   ±
Замечания:   ±
На сайте с 20.04.2013

Статус: Offline

Может, проще покажете свой код, где переменная увеличивается на единичку?

Добавлено (07.08.2013, 22:12)
---------------------------------------------
Уже скинули, пока писал)))

Добавлено (07.08.2013, 22:23)
---------------------------------------------
Блин, ваш hex работает, мой нет...

Matrix252005 Дата: Ср, 07.08.2013, 22:31  |                                                                                                                Сообщение # 15
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 636
Репутация: 43   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Цитата (marss70)
Блин, ваш hex работает, мой нет...

Ваша беда кроется тут:

Цитата marss70Print At 1, 1, X      ' Вывести десятичное значение переменной 
Вы не указывает как именно Вы хотите вывести "Х"... Если напишите

"DEC X" - экран выведет как десятичное число, можно так же "#Х"
"НЕХ Х" - НЕХ
"%Х " - бинарный

Добавлено (07.08.2013, 22:31)
---------------------------------------------
Вот, посмотрите как тут: http://www.terrarus.ucoz.ru/proton_....nt.html


THE TRUTH IS OUT THERE.

С уважением, Николай.
Форум Picbasic.ru » Программирование МК » PicBasicPro » PIC16F676 и LCD1602
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск: