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

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: ivan_fd  
Форум Picbasic.ru » Программирование МК » PicBasicPro » Передача даных по RS 485
Передача даных по RS 485
deskjet Дата: Вт, 19.10.2010, 12:35  |                                                                                                                Сообщение # 16
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 143
Репутация: 5   ±
Замечания:   ±
На сайте с 20.06.2009

Статус: Offline

Как видно из описания топикстартер планирует сделать так:
контакты>PIC1>>>>>линия_связи>>>>>PIC2>LCD

Quote (DAlexV)
Lcd еще могут работать на пониженных частотах, а некоторые элементы нет

Какие элементы, развязывающие конденсаторы что-ли, зачем они там?
Quote (DAlexV)
выполнение программы увеличится в 50 !!!

Естественно увеличится. Но и обновлять картинку на LCD 100 раз в секунду не нужно.


За 20 8 дней ни одного сгоревшего микроконтроллера.
PIC12, PIC16, PIC18, ATtiny, ATmega, STM8, STM32, MSP430

Сообщение отредактировал deskjet - Вт, 19.10.2010, 12:39
Broka Дата: Вт, 19.10.2010, 13:02  |                                                                                                                Сообщение # 17
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 253
Репутация: 9   ±
Замечания:   ±
На сайте с 30.09.2009

Статус: Offline

deskjet, Как видно из описания топикстартер планирует сделать так:
контакты>PIC1>>>>>линия_связи>>>>>PIC2>LCD
Да, совершено правильно ,именно так мне и надо, да вот что то только у меня не получается ни как,
Читаю,читаю, но ни чего ни хрена не понимаю, Передать по USART, принять по USART немного хоть понятно, а затем
как вывести на LCD cool ? Да.........., не всё так просто как хотелось бы. В примерах РВР есть только описание передатчика. Вроде как просто,но видно не дотянул я до этого уровня biggrin


Наладчик КИП и А
DAlexV Дата: Вт, 19.10.2010, 15:15  |                                                                                                                Сообщение # 18
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Quote (Broka)
Читаю,читаю, но ни чего ни хрена не понимаю, Передать по USART, принять по USART немного хоть понятно, а затем

Для того что бы передать данные от одного камня к другому. Если камней 2, то все просто. 1-й ПИК(с датчиками) опрашивает датчики и записывает это в какую то переменную, далее эту переменную отправляет через USART 2-му ПИКУ на котором стоит индикатор. После этого 1-й выдерживает паузу и все повторяется. 2-ой принимает эту переменную и выводит на LCD и ждет следующей посылки.
Если пиков более чем 2, тут посложнее.

Схему предоставил demanik. Лежит тут: http://www.picbasic.ru/_fr/0/5626601.jpg
RO к RX PICa
DI к TX PICa

P/s Выложил недобитую статью про 485. Это все уже обсуждалось, но видимо потерялось среди флуда. Лежит тут: http://www.picbasic.ru/forum/28-386-6013-16-1287485750


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
Сообщение отредактировал DAlexV - Вт, 19.10.2010, 16:36
Broka Дата: Ср, 20.10.2010, 19:31  |                                                                                                                Сообщение # 19
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 253
Репутация: 9   ±
Замечания:   ±
На сайте с 30.09.2009

Статус: Offline

Мне бы конкректный пример в ПБП, я бы хотел поискперементировать в протеусе 7.5 по началу, может так лучше дойдёт, схему в протеусе нарисовал ,а написать прогу не получается cool с USARTом у меня тормоза, хотя вроде как ничего сложного нет. У кого будет время, просьба посмотреть файл в протеусе, вот под такую схему мне и нужны примеры.
Если получится всё ,выложу на всеобщее обозрение,( а вдруг в серийное производство пойдёт? smile .
Прикрепления: _WinRAR.rar (12.0 Kb)


Наладчик КИП и А
Сообщение отредактировал Broka - Ср, 20.10.2010, 19:31
DAlexV Дата: Ср, 20.10.2010, 23:20  |                                                                                                                Сообщение # 20
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Quote (Broka)
схему в протеусе нарисовал

Схемотехнику подправил
Quote (Broka)
Мне бы конкректный пример в ПБП

а вот это не смогу, так как ну не пишу в нем, извиняйте. wink
Прикрепления: USART.dsn (70.4 Kb)


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
Broka Дата: Чт, 21.10.2010, 13:13  |                                                                                                                Сообщение # 21
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 253
Репутация: 9   ±
Замечания:   ±
На сайте с 30.09.2009

Статус: Offline

Как мне полученое значение ( например 2305 записать в переменную?) Наверно так , J var byte, J = 2305?
При приёме по команде HSERIN 1000,Loop1,[BIN(J)], Как значение переменой J вывести на Экран (LCDOUT $fe,1, а дальше?) Что то совсем запутался! surprised


Наладчик КИП и А
ЯНДЕКС Дата: 21.10.2010
MiXaS Дата: Чт, 21.10.2010, 14:34  |                                                                                                                Сообщение # 22
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 550
Репутация: 27   ±
Замечания:   ±
На сайте с 02.10.2010

Статус: Offline

Попробуйте так: LCDOUT $fe,1, dec4 J
По крайнер мере я делал так
DAlexV Дата: Чт, 21.10.2010, 20:46  |                                                                                                                Сообщение # 23
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Quote (Broka)
Как мне полученое значение ( например 2305 записать в переменную?) Наверно так , J var byte, J = 2305?

Ну наверное не J var byte, а J var word. Байт это значение от 0 до 255(8 бит). А Word уже от 0 до 65535(16 бит). Не знаю как PBP, но Рыба на это сразу ругается.
Хотя если кнопок 8 (и все сидят на одном порту) то получиться 8 битное значение. Тогда откуда такое большое число ????


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
Сообщение отредактировал DAlexV - Чт, 21.10.2010, 21:04
Broka Дата: Сб, 23.10.2010, 21:12  |                                                                                                                Сообщение # 24
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 253
Репутация: 9   ±
Замечания:   ±
На сайте с 30.09.2009

Статус: Offline

Спасибо всем !.......... Разобрался, ничего сложного нет wine
Прикрепления: _WinRAR-2-.rar (15.0 Kb)


Наладчик КИП и А
Сообщение отредактировал Broka - Вс, 24.10.2010, 16:56
mikhail09p Дата: Ср, 03.11.2010, 21:37  |                                                                                                                Сообщение # 25
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 481
Репутация: 14   ±
Замечания:   ±
На сайте с 04.05.2010

Статус: Offline

Quote (Broka)
Спасибо всем !.......... Разобрался, ничего сложного нет

Хорошо Вам! Так хоть программку выложите, чтоб и мы разобрались! wink
Broka Дата: Чт, 04.11.2010, 21:25  |                                                                                                                Сообщение # 26
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 253
Репутация: 9   ±
Замечания:   ±
На сайте с 30.09.2009

Статус: Offline

mikhail09p Это просто ознакомление с передачей по RS - 485, ни чего интересного там по моему нет, да и смеятся наверно многие будут. слишком всё просто написано cool
Приёмник!
@ device pic16f628a, MCLR_ON, WDT_ON, PWRT_ON
DEFINE OSC 4 ; Частота осциллятора 4 МГц
define BUTTON_PAUSE 20
OUTPUT PORTB.6
OUTPUT PORTB.7
PORTB.6 = 0
PORTB.7 = 0
;-------------------------- Настройки USART --------------------------
DEFINE HSERIAL_BAUD 9600 ; Скорость передачи данных, бод
DEFINE HSERIAL_TXSTA = %00000000 ; Выключить передатчик USART
DEFINE HSERIAL_RCSTA = %10010000 ; Включить приемник USART
DEFINE HSERIAL_SPBRG 6 ; Значение регистра SPBRG для выбранной скорости
DEFINE HSERIAL_CLEAR = ON ; Автоматическая очистка бита ошибки переполнения
define HSER_CLROERR
;-----------Настройки подключения ЖКИ--------------------------

DEFINE LCD_TYPE ALPHA ;Тип ЖКИ - буквенно -цифровой
DEFINE LCD_DPORT PORTA ;Порт данных ЖКИ
DEFINE LCD_DBIT 0 ; Бит данных ЖКИ
DEFINE LCD_EPORT PORTB ; Управление линией E
DEFINE LCD_EBIT 3 ; Управление линией E
DEFINE LCD_RSPORT PORTA ; Управление линией RS
DEFINE LCD_RSBIT 4 ; Управление линией RS
DEFINE LCD_BITS 4 ;Разрядность шины данных
DEFINE LCD_COMMANDUS 2000 ; Задержка перед посылкой команды
DEFINE LCD_DATAUS 50 ; Задержка перед посылкой данных
DEFINE LCD_LINES 2 ; Количество строк ЖКИ
;----------------------------------------------------------------
J var byte
main:
clear
hserin 1000,loop1,[J]
loop1:
if J = 135 then Norma
if J = 110 then Pojar
if J = 120 then Pvod
if J = 130 then Temp
if J = 140 then Metan
if J = 145 then CO2
if J = 150 then Cirkle
if J = 000 then Svyz
goto main
Norma:
LCDOUT $FE, 1 ,$20,$42,$43,$45,$20,$A8,$41,$50,$41,$4D,$45,$54,$50,$AE
LCDOUT $FE, $C0 ,$20,$20,$20,$20,$42,$20,$48,$4F,$50,$4D,$45
PAUSE 500
high PORTB.6
pause 500
low PORTB.6
pause 500
goto main
Pojar:
LCDOUT $FE, 1 ,$20,$A8,$50,$4F,$48,$A5,$4B,$48,$4F,$42,$45,$48,$A5,$45,$21
LCDOUT $FE, $C0 ,$20,$42,$20,$A8,$4F,$4D,$45,$E2,$45,$48,$A5,$45,$21
PAUSE 500
dtmfout PORTB.7,[2,4,2,4,8,0]:low PORTB.7
lcdout $FE,1
pause 100
goto main
Pvod:
LCDOUT $FE, 1 ,$E0,$41,$42,$A7,$45,$48,$A5,$45,$20,$42,$4F,$E0,$AE
LCDOUT $FE, $C0 ,$20,$20,$20,$48,$45,$20,$42,$20,$48,$4F,$50,$4D,$45,$21
PAUSE 500
dtmfout PORTB.7,[2,4,2,4,8,0]:low PORTB.7
lcdout $FE,1
pause 100
goto main
Temp:
LCDOUT $FE, 1 ,$54,$45,$4D,$A8,$45,$50,$41,$54,$A9,$50,$41,$20,$42,$4F,$E0,$AE
LCDOUT $FE, $C0 ,$20,$20,$20,$42,$AE,$43,$4F,$4B,$41,$B1,$21
PAUSE 500
dtmfout PORTB.7,[2,4,2,4,8,0]:low PORTB.7
lcdout $FE,1
pause 100
goto main
Svyz:
LCDOUT $FE, 1 ,$20,$43,$42,$B1,$A4,$62,$20,$43,$20,$A0,$A7,$4F,$4B,$4F,$4D
LCDOUT $FE, $C0 ,$20,$20,$20,$48,$41,$50,$A9,$AC,$45,$48,$41,$21
PAUSE 500
dtmfout PORTB.7,[0,9,0,9]
low PORTB.7
goto main
Metan:
LCDOUT $FE, 1 ,$A4,$41,$A1,$41,$A4,$4F,$42,$41,$48,$4F,$43,$54,$62
LCDOUT $FE, $C0 ,$20,$20,$20,$20,$4D,$45,$54,$41,$48,$21
PAUSE 500
dtmfout PORTB.7,[2,4,2,4,8,0]:low PORTB.7
lcdout $FE,1
pause 100
goto main
CO2:
LCDOUT $FE, 1 ,$43,$4F,$E0,$45,$50,$A3,$41,$48,$A5,$45,$20,$43,$4F
LCDOUT $FE, $C0 ,$20,$20,$20,$A8,$4F,$42,$AE,$AC,$45,$48,$4F,$45,$21
PAUSE 500
dtmfout PORTB.7,[2,4,2,4,8,0]:low PORTB.7
lcdout $FE,1
pause 100
goto main
Cirkle:
LCDOUT $FE, 1 ,$20,$E1,$A5,$50,$4B,$A9,$A7,$B1,$E1,$A5,$B1
LCDOUT $FE, $C0 ,$4F,$54,$43,$A9,$54,$43,$54,$42,$A9,$45,$54,$21
PAUSE 500
dtmfout PORTB.7,[2,4,2,4,8,0]:low PORTB.7
lcdout $FE,1
pause 100
goto main
Передатчик!
DEFINE OSC 4 ; Частота осциллятора 4 МГц

;-------------------------- Настройки USART --------------------------

DEFINE HSERIAL_BAUD 9600 ; Скорость передачи данных, бод
DEFINE HSERIAL_TXSTA = %00100000 ; Включить передатчик USART
DEFINE HSERIAL_RCSTA = %10000000 ; Выключить приемник USART
DEFINE HSERIAL_SPBRG 6 ; Значение регистра SPBRG для выбранной скорости
DEFINE HSERIAL_CLEAR = ON ; Автоматическая очистка бита ошибки переполнения
;------------------Конфигурация------------------------------------
TRISA = %11110000
PORTA.0 = 0
;------------------------ Главная программа -----------------------
OPTION_REG.7 = 0
J var byte
loop:
PORTA.0 = 1
clear
pause 100
J = 135
if PORTB.0 = 0 then J = 110
if PORTB.3 = 0 then J = 120
if PORTB.4 = 0 then J = 130
if PORTB.5 = 0 then J = 140
if PORTB.6 = 0 then J = 145
if PORTB.7 = 0 then J = 150
Hserout [J]
Goto loop ' Do it all over again
End
Прикрепления: 1658349.dsn (86.8 Kb)


Наладчик КИП и А
Сообщение отредактировал Broka - Чт, 04.11.2010, 21:29
mikhail09p Дата: Пт, 05.11.2010, 08:22  |                                                                                                                Сообщение # 27
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 481
Репутация: 14   ±
Замечания:   ±
На сайте с 04.05.2010

Статус: Offline

Спасибочки! Будем разбиратся! wink
Форум Picbasic.ru » Программирование МК » PicBasicPro » Передача даных по RS 485
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск: