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

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Picbasic.ru » Программирование на ПК » Программирование на C » PIC + ПК через С++
PIC + ПК через С++
Vupver Дата: Вс, 25.03.2012, 12:14  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Новенький
Сообщений: 12
Репутация: 0   ±
Замечания:   ±
На сайте с 11.05.2011

Статус: Offline

Привет всем!
Задумал сделать управление несколькими реле по схеме: COM-port <-> МК (PIC16F876) -> реле.
В Протеусе через Virtual Terminal схема работает корректно, так что думаю при сборе железа агрегат должен исправно работать через стандартный HyperTerminal.
Проблема в следующем - есть желание написать программу для более приветливого интерфейса, но опыта программирования COM-портов нет.
Что необходимо реализовать в этой программе? думаю следующие настройки обязательны:
1) открытие самого порта по номеру;
2) установка скорости обмена,проверка чет\нечет, стоп бит;
3) ну и, например, кнопка для каждого реле, при нажатии которой на PIC посылается команда(сообщение) для включения\выключения соответствующего реле.

Какие еще функции обязательны для такой программы?
ЯНДЕКС Дата: 25.03.2012
retas Дата: Вс, 25.03.2012, 12:48  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 447
Репутация: 11   ±
Замечания:   ±
На сайте с 10.09.2007

Статус: Offline

1. ПМ, для такой задачи можно брать LPT порт и обойтись без МК.
2. По COM порту могу только дать конкретные слова для поиска
"Delphi: работа с COM-портом" "Обмен данными через COM-порт в Windows" "Работа с СОМ-портом в Windows (W9x, W2k)"
http://vovka.sv19.com/index.p....opy.exe

Как говорится, чем мог.
Vupver Дата: Пн, 16.07.2012, 22:59  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Новенький
Сообщений: 12
Репутация: 0   ±
Замечания:   ±
На сайте с 11.05.2011

Статус: Offline

Всем привет!
Нужна помощь!!!
Наконец то добрался до "железного" воплощения идеи подключения МК к компу. Схема и bas-программа для 16А876А в Протеусе работают, но при подключении в железе в терминальной программе (HyperTerminal или HIT) не отображается первоначальное меню ( то есть от МК нет реакции) или появляются непонятные символы при нажатии на клавиатуре. Может спалил Rx\Tx порты на МК? как их проверить? настройки на терминальных программах, СОМ порта одинаковые, но может еще есть какие то особенные настройки?
Прикрепления: BasicProg.bas (1.3 Kb) · HEX.hex (3.6 Kb) · __.dsn (102.6 Kb)
passer_by Дата: Сб, 21.07.2012, 17:10  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Новенький
Сообщений: 17
Репутация: 0   ±
Замечания:   ±
На сайте с 23.10.2011

Статус: Offline

Примерно с этим же вопросом мучаюсь.
Самописная программа прекрасно передает команды на PIC, а вот обратно данные не идут cry Хотя в Proteus_e все идет на ура. Ищу ошибку...
По вашей программе. Если код приведен полностью, то она и не должна работать. Нужны настройки USART, что то типа такого:
Code
'-------------------------Настройка USART----------------------------------

  RCSTA = %10010000      ; Регистр приемника USART.  
                    ;7 бит=1 (SPEN) разрешение работы последовательного порта  
                    ; 4 бит=1 (CREN) Разрешен асинхронный прием
                          
  TXSTA = %01100101      ; 2 бит=1 - BRGH -высокая скорость, 4 бит=0 (SYNC) - асинхронный режм
                    ; 5 бит=1 (TXEN) - передача разрешена
  SPBRG = 25                   ; 25 скорость при 9600 бодах
                    ; 6 бит (TX9) - разрешение передачи 9 бит
                    ; 0 бит (TX9D) - установка значения девятого бита
,----------------------------------------------------------------------------------------------------------------

И, похоже, в Proteus_e, при моделировании, существуют упрощение, которое обходит эти настройки.
По этому поводу и у меня вопрос к знатокам: При передаче 8 бит, с одним стоповым битом, нужно ли ставить разрешение на передачу 9 бит и устанавливать этот бит в 1? При моделировании проходит и тот и другой вариант. А вот в реальном железе пока не удается проверить.
Vupver Дата: Пн, 30.07.2012, 16:29  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Новенький
Сообщений: 12
Репутация: 0   ±
Замечания:   ±
На сайте с 11.05.2011

Статус: Offline

passer_by,

настройки UART в программе указаны следующим образом:

DEFINE HSER_RCSTA 90h
DEFINE HSER_TXSTA 24h
DEFINE HSER_SPBRG 12

указанная программа заработала и в железе, я просто затупил и напрямую подключил COM-порт к Tx, Rx выводам PIC и видимо спалил их. Прошил другой МК (16F627) этой же прошивкой (изменив соответствующие пукты) - и терминальная программа нормально подключилась, считала всю необходимую инфу и мк реагировал на команды из вне.
retas Дата: Пн, 06.08.2012, 18:50  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 447
Репутация: 11   ±
Замечания:   ±
На сайте с 10.09.2007

Статус: Offline

LPT + HD44780 - мож кому пригодится
http://www.delphikingdom.com/asp....e=print
Форум Picbasic.ru » Программирование на ПК » Программирование на C » PIC + ПК через С++
  • Страница 1 из 1
  • 1
Поиск: