» » BASCOM AVR – подключаем контроллер к ПК через COM порт (RS-232)
Информация к новости
  • Просмотров: 78949
  • Автор: administrator
  • Дата: 16 июля 2008
  • 0
16 июля 2008

BASCOM AVR – подключаем контроллер к ПК через COM порт (RS-232)

Категория: BASCOM AVR

Необходимость подключения контроллера к персональному компьютеру возникает при различных обстоятельствах - отладка программы (мониторинг состояния портов, результаты вычислений и тп.) ,управление и контроль посредством ПК, считывание данных с подключенных к контроллеру сенсоров и датчиков. Соединение с ПК возможно посредством различных интерфейсов – LPT-порт, COM-порты (протокол RS-232), USB и тп. Все они обладают набором, как достоинств, так и недостатков. Самым распространенным интерфейсом, в любительской практике, является соединение с помощью COM-порта. Подобное соединение довольно простое в схемотехническом плане, недорогое и обладает достаточной скоростью обмена информацией для большинства любительских проектов.  В данном материале опишем самый простой способ организации информационного обмена через COM-порт с помощью компилятора BASCOM AVR.

 

Непосредственно на самом протоколе обмена RS-232 заострять внимание не будем, он достаточно подробно описан в статье - Интерфейс RS-232 (COM-порт). Схема подключения довольно проста - для согласования TTL уровней применена микросхема MAX232CPE. Данное решение применено в обоих наших робо-контроллерах – MRC-28 и MRC-40.
 

 

BASCOM AVR – подключаем контроллер к ПК через COM порт (RS-232)
 

 

Перечислим основные команды компилятора BASCOM AVR примененных в нашем примере (используем аппаратный UART микроконтроллера):

 

-         $BAUD – глобальная установка скорости информационного обмена UART.

-         INPUT – ввод данных различных форматов.

-         PRINT – отправить данные в порт RS-232.
 

 

Опишем подробнее использование данных команд:
 

 

Команда $BAUD

Синтаксис команды -  $BAUD = var

                                      

Var – скорость порта, которую вы хотите использовать для информационного обмена (числовое значение)

 

 
Примечание:
Скорость обмена, установленная в программе микроконтроллера, должна совпадать с настройками COM-порта компьютера. В противном случае устойчивого соединения не будет.

 

Пример:

$regfile = "m32def.dat" ' используем ATmega32

$crystal = 16000000 ' частота установленного кварца 16 mHz

$baud = 19200 ' скорость порта 19200 бит/с.
 

 

Команда INPUT

Синтаксис команды - INPUT [" prompt" ] , var[ , varn ]

                                     INPUT #ch, var[ , varn ]

Promt – текстовая информация (опционально)

Var,varn – вводимые значения

Сh – номер канала (в многоканальном режиме) в который осуществляется ввод информации
 

Пример:

Input "Введите значение " , V  ' ввод переменной с текстовым сообщением

Input V1                                      'ввод переменной
 

Команда PRINT

Синтаксис команды - PRINT [#channel , ] var ; " constant"

 

 

Channel – выбор канала для вывода информации в многоканальном режиме

Var – переменные, константы различных форматов, для вывода

constant– вывод какой либо текстовой информации
 
Пример:

Print "выводим переменную А " ; A         ' вывод текста и переменной

Print                                                            'вывод пустой строки                     

Print "Выводим текст”                              'вывод текстовой информации     
 

 

Для простого информационного обмена этих команд будет вполне достаточно.
 

Естественно BASCOM AVR обладает более широкими возможностями в данном плане – организация программного UART на несколько каналов, буферизация и тд и тп. Со всеми командами вы можете ознакомится на официальном сайте компилятора.

Используем вышеперечисленные команды для написания простой программы, которая продемонстрирует простой обмен информацией через COM-порт. Задачей программы будет вывод введенного с клавиатуры текста на терминал.

 

'ввод и вывод информации через COM-порт
'RoboZone.SU

$regfile = "m32def.dat"       ' используем ATmega32

$crystal = 16000000 ' частота установленного кварца 16 mHz

$baud = 19200       ' скорость порта 19200 бит/с.

Dim A As String * 15       'объявляем переменную – строка не более 15 символов

Do

Input "What is your name? " , A       'ввод текста с клавиатуры

Print "Hello! " ; A ' вывод сообщения вместе с ранее введенным текстом

Print               ' вывод пустой строки

Wait 1              ' задержка 1 секунда

Loop

End

 
Собственно вот и все… Очень просто и прекрасно работает =)
 
BASCOM AVR – подключаем контроллер к ПК через COM порт (RS-232)
 

 

Не забываем, что в настройках компьютера, скорость порта должны быть выставлена идентично скорости в программе. В BASCOM AVR есть встроенный терминал COM-порта, его настройки для данного примера должны быть выставлены подобным образом:

 

BASCOM AVR – подключаем контроллер к ПК через COM порт (RS-232)

 

 

Исходник можно скачать ниже. Успехов!
Вы не можете скачивать файлы с нашего сервера

Метки к статье: BASCOM AVR, начинающим, rs232, UART, COM-port

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

23 февраля 2009 20:29

Информация к комментарию
  • Группа: Гости
  • ICQ: {icq}
  • Регистрация: --
  • Статус:
  • Публикаций: 0
  • Комментариев: 0
МК отвечает на вопросы ?

какое отношение имеет этот пример с мк7
<
administrator

23 февраля 2009 22:39

Информация к комментарию
  • Группа: Администраторы
  • ICQ: {icq}
  • Регистрация: 26.02.2008
  • Статус: Пользователь offline
  • Публикаций: 66
  • Комментариев: 747
chinga, да отвечает, это работа прошивки.... второй вопрос не понял
<
chinga

27 февраля 2009 16:59

Информация к комментарию
  • Группа: Гости
  • ICQ: {icq}
  • Регистрация: --
  • Статус:
  • Публикаций: 0
  • Комментариев: 0
а есть примеры управление моторами?
<
administrator

27 февраля 2009 18:09

Информация к комментарию
  • Группа: Администраторы
  • ICQ: {icq}
  • Регистрация: 26.02.2008
  • Статус: Пользователь offline
  • Публикаций: 66
  • Комментариев: 747
chinga, пока нет
<
chinga

1 марта 2009 17:01

Информация к комментарию
  • Группа: Гости
  • ICQ: {icq}
  • Регистрация: --
  • Статус:
  • Публикаций: 0
  • Комментариев: 0
а если я запрограммирую(для примера) то можно его перепрограммировать?
<
administrator

1 марта 2009 18:01

Информация к комментарию
  • Группа: Администраторы
  • ICQ: {icq}
  • Регистрация: 26.02.2008
  • Статус: Пользователь offline
  • Публикаций: 66
  • Комментариев: 747
chinga, конечно
<
chinga

2 марта 2009 13:32

Информация к комментарию
  • Группа: Гости
  • ICQ: {icq}
  • Регистрация: --
  • Статус:
  • Публикаций: 0
  • Комментариев: 0
как? для этого не требуеться программатор?
<
administrator

2 марта 2009 17:17

Информация к комментарию
  • Группа: Администраторы
  • ICQ: {icq}
  • Регистрация: 26.02.2008
  • Статус: Пользователь offline
  • Публикаций: 66
  • Комментариев: 747
chinga, требуется
еще один вопрос, который относится к самым азам электроники или программирования микроконтроллеров, будешь забанен angry
Прежде чем браться за что то серьезное изучи сперва теорию по интересующему вопросу, все доступно в интернете - пользуйся поиском!
<
chinga

3 марта 2009 13:40

Информация к комментарию
  • Группа: Гости
  • ICQ: {icq}
  • Регистрация: --
  • Статус:
  • Публикаций: 0
  • Комментариев: 0
если везде и все так ответят как я узнаю!
<
Sergey_r

3 марта 2009 15:48

Информация к комментарию
  • Группа: Журналисты
  • ICQ: {icq}
  • Регистрация: 13.07.2008
  • Статус: Пользователь offline
  • Публикаций: 10
  • Комментариев: 181
chinga,
К примеру за руль автомобиля не пускают до тех пор пока на права не сдашь... Ну так вот, здесь на сайте, вроде не школа для обучения. Кругом, и в интернете в том числе, полно литературы, читаем... вникаем...
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.