Перейти к содержанию

Как вывести данные UART на LCD дисплей? BASCOM


Адвансед

Рекомендуемые сообщения

Ребята, хочу понять как выводить данные, принятые по UART на ЖК индикатор 1602, принимают данные от GSM модуля на процессор мега 32, как считать данные и выводить их на экран? не пойму.

вот кусок кода, при нажатии на кнопку совершает вызов

Цитата

 

Do
Print "AT+CMGF=1"                                           'включаем текстовый формат сообщений
Waitms 50


If Pinc.0 = 1 Then
Waitms 100
Print "ATD+79199999991;"
Locate 1 , 2
Lcd "Call"
Else
Waitms 500
Cls
End If

Debounce Pinb.0 , 0 , Kn1 , Sub


Loop

 

Как вывести информация которую выдает модуль GSM на дисплей?

Изменено пользователем Адвансед
Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Если бы знать начинающему как это делается, по подсказкам попробовал как то так, в итоге никак((

$regfile = "m32def.dat"
$crystal = 14745600 (ставил 1600000 - и так и так в железе все работает)
$baud = 9600
$hwstack = 64
$swstack = 64
$framesize = 100

Config Lcdpin = Pin , Rs = Portb.3 , E = Portb.2 , Db4 = Portb.6 , Db5 = Portb.4 , Db6 = Portb.7 , Db7 = Portb.5
Config Lcd = 16 * 2
Cursor Off Noblink

Config Portc.0 = Output : Set Portb.0
Config Debounce = 50
Cursor Off Noblink
Dim Cmd As String * 15

Cls
Do

Waitms 50
Print "AT+CMGF=1"                                       
Waitms 50

Locate 2 , 2
Lcd Cmd                                                    
Waitms 500
Cls

If Pinc.0 = 1 Then
Waitms 100
Print "ATD+791999999991;"
Locate 1 , 2
Lcd "Call"
Else
Waitms 500
Cls
End If

Debounce Pinb.0 , 0 , Kn1 , Sub


Loop
End


Kn1:
Toggle Portc.0
Return

End

 

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Пробую вот так, ничего ен выходит, если переменную В вместое S то выходят цифры 311010 на любое сообщение. В чем ошибка? подскажите плз..

почему то коментарии разворотило на нерусский....


 

$regfile = "m32def.dat"
$crystal = 14745600
$baud = 9600
$hwstack = 64
$swstack = 64
$framesize = 100

Config Lcdpin = Pin , Rs = Portb.3 , E = Portb.2 , Db4 = Portb.6 , Db5 = Portb.4 , Db6 = Portb.7 , Db7 = Portb.5
Config Lcd = 16 * 2
Cursor Off Noblink

Config Portc.0 = Output : Set Portb.0
Config Debounce = 50
Cursor Off Noblink


Declare Sub Getline(s As String)                            '÷òåíèå äàííûõ èç áóôåðà
Declare Sub Del_buffer()                                    'î÷èñòêà áóôåðà

Dim R As Byte
Dim S As String * 10
Dim B As Byte


Cls

' ðàçáèðàåì ñîîáùåíèÿ uart
Sub Getline(s As String)
S = ""

Do
 B = Inkey()                                                'áåðåì ñèìâîë èç áóôåðà â ôîðìàòå ASCII
 Select Case B
  Case 0 : Exit Do                                          'åñëè äàëüøå áóôåð ïóñòîé òî âûõîäèì èç öèêëà
  Case 10 : If S <> "" Then Exit Do                         'êîíåö ñòðîêè - çíà÷èò âûõîäèì èç êèêëà
  Case Else : If B > 31 Then S = S + Chr(b)                 'ñîñòàâëÿåì ñòðîêó
 End Select

 Lcd S
 Waitms 500
Loop
End Sub


'î÷èñòêà áóôåðà UART
'===================
'Sub Del_buffer()
 'Do
 'B = Inkey()               'êëàäåì â ïåðåìåííóþ "Â" äàííûå èç áóôåðà
 'Loop Until B = 0          'âûõîäèì èç öèêëà êîãäà â ïåðåìåííóþ ïîïàäåò 0 (áóôåð ïóñò)
'End Sub

 

Ссылка на комментарий
Поделиться на другие сайты

Создай байтовый массив(буфер). Со "дна" массива выводи, в основном цикле, на индикатор. По прерыванию от уарт записывай новое значение в верхушку массива. Следи за указателем на актуальную глубину массива, чтобы не выводить пустышки, ну и за его переполнением.
 

Errare humanum est. Коли людЯм позволено, что же о нас то говорить!
 

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...