» » BASCOM AVR – подключаем контроллер к ПК через COM порт (RS-232)
Информация к новости
  • Просмотров: 75806
  • Автор: 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

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

3 марта 2009 22:32

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

Ты издевешься? Ты на двух форумах кроме этого сайта задаешь подобные вопросы, тебе отвечают, советуют почитать конкретную литературу, дают ссылки... ОТУДА и узнаешь... какого?

короч... хватит офф-топа - буду банить беспощадно...задрало angry
<
chinga

5 марта 2009 20:37

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

но у него 8 ножек
<
administrator

5 марта 2009 22:40

Информация к комментарию
  • Группа: Администраторы
  • ICQ: {icq}
  • Регистрация: 26.02.2008
  • Статус: Пользователь offline
  • Публикаций: 66
  • Комментариев: 747
chinga, епрст.... при чем тут ножки... ты понятие "даташит" вообще имеешь? тебе ПОСЛЕДНЕЕ предупреждение...ЭТО не пойдет в данном случае.
чесс слово... короч...
если нет у вас в городе, это еще не значит, что нет вообще в мире, существуют интернет-магазины, там можно купить хоть слона розового, было бы желание и есть еще ПОИСКОВЫЕ системы, ну скока можно тебе уже об этом говорить? ЧИТАЙ! ИЗУЧАЙ! ВСЕ ЕСТЬ В ИНТЕРНЕТЕ!
<
kilgur

21 июня 2009 00:06

Информация к комментарию
  • Группа: Гости
  • ICQ: {icq}
  • Регистрация: --
  • Статус:
  • Публикаций: 0
  • Комментариев: 0
Всё работает.Прикольно.Спасибо за науку.
Назад Вперед
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.