Среда, 20.09.2017, 15:48
| RSS
[SEARCH_TITLE]
[SEARCH_FORM]
Важно!!!
Для успешного просмотра
сайта воспользуйтесь
браузером Mozilla Firefox



Мини-Профиль
Гость


Группа:
Гости
Время:15:48

Гость, мы рады вас видеть. Пожалуйста зарегистрируйтесь или авторизуйтесь!

Категории раздела
О программаторах [4]
Не много о том как и с помощью чего программировать.
Программирование в BascomAVR [6]
Учимся благодаря статьям писать программы. Язык Basic
Программирование в CV AVR? [4]
Учимся благодаря статьям писать программы. Язык Си

Поиск

Наш опрос
Ваш компилятор?
Всего ответов: 258

Друзья сайта
roboforum
  • robozone
  • Железный феликс
  • robo.com.ua
  • imobot
  • ASARobotics
  • Grover
  • Электроника
  • Your Device
  • Программирование BASCOM
  • Basic для PIC мк
  • Электроника для всех
  • RassionRobots
  • Newrobots-world

  • Статистика

    Каталог-Молдова - Ranker, Statistics
    RoboRing.Ru
    << | list | ? | >>
    Rambler's Top100
    Рейтинг@Mail.ru
    Рейтинг робо-сайтов


    Помоги сайту
    ЯндексЯндекс. ДеньгиХочу такую же кнопку


    Главная » Статьи » Программирование » Программирование в BascomAVR

    Связь ПК и МК с помощью MAX232 (использование UART ) - Часть 2

    Интерфейс RS-232 (COM-порт)

    Общее описание

    Интерфейс RS-232, совсем официально называемый "EIA/TIA–232–E", но более известный как интерфейс "COM-порта", ранее был одним из самых распространенных интерфейсов в компьютерной технике. Он до сих пор встречается в настольных компьютерах, несмотря на появление более скоростных и "интеллектуальных" интерфейсов, таких как USB и FireWare. К его достоинствам с точки зрения радиолюбителей можно отнести невысокую минимальную скорость и простоту реализации протокола в самодельном устройстве.

    Физический интерфейс реализуется с помощью разъёма DB-9M.

    Назначение выводов 9-контактного разъема



    9-контактная вилка типа DB-9M
    Нумерация контактов со стороны штырьков
    Направление сигналов указано относительно хоста (компьютера)
     КонтактСигнал Направление Описание
     1 CD Вход Обнаружена несущая
     2 RxD Вход Принимаемые данные
     3 TxD Выход Передаваемые данные
     4 DTR Выход Хост готов
     5 GND -  Общий провод
     6 DSR Вход Устройство готово
     7 RTS Выход Хост готов к передаче
     8 CTS Вход Устройство готово к приему
     9 RI Вход Обнаружен вызов

    И так, теперь вернёмся к нашим птичкам. Как вы уже поняли для соединения ПК и робо-контроллера мы будем использовать COM-порт. Есть Конечно ещё один вариант это соединение через USB, но о нём поговори в другой статье.
     
    Частенько бывает так, что нам требуется подключить робо-контроллер к компьютеру с целью отладки программы, считывание данных с подключённых к контроллеру датчиков, управление и контроль по средствам компьютера. COM-порт он же протокол RS-232 является самым распространённым и не дорогим интерфейсом для связи контроллера с ПК. Для любительских проектов это самое оно. Скорости во всяком случаи достаточно, сборка простая да и цена тоже не высокая. Для согласования TTL уровней применена микросхема MAX232CPE.
     
    Ах да чуть не забыл сказать. Дополнительно разведено место под внешний I2C EEPROM серии 24LCxxx (32, 64, 265, 512). Конфигурационные ножки микросхемы EEPROM (A0-A2) заведены на массу и соответственно она имеет фиксированный адрес на шине I2C + 2 разъёма для подключения по шине I2C (TWI) с питанием. Чтобы протестировать I2C на данной плате я взял программу для теста с официального сайта. Скачать её с внесёнными изменениями под наш контроллер  можно в конце статьи. Тестовая прошивка работает совместно с интерфейсом UART. Он используется для вывода данных в терминал компилятора.
     
     В этой статье будет описан самый простой информационный обмен информацией через COM-порт с помощью компилятора BASCOM AVR.

    Ну о теперь о программной части. Распишу только те команды, которые будут применяться в нашей программе. Все остальные команды можно посмотреть на официальном сайте Bascom AVR.

    $BAUD - глобальная установка скорости информационного обмена UART
    INPUT - ввод данных различных форматов.
    PPINT - отправить данные в порт RS-232.

    Команда $BAUD

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


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

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

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

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

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

    Команда INPUT

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

                                         INPUT #ch, var[ , varn ]

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

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

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

    Input "Vvedite chislo " , A  ' ввод переменной с текстовым сообщением

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

    Команда PRINT

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

     

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

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

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

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

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

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

    Ну чтож. Этих команд для простого обмена будет вполне достаточно. Ниже будет приведено два кода. В-первом просто вывод текста в терминал компилятора, во-втором чуть сложней. Будет организован вывод информации, которую вы вводите с клавиатуры. Вообщем два кода. Ну и в принципе на этом всё. Ниже после таблицы с кодами будет архив. В нём находятся: принципиальная схема в формате sPlan 5.0, разводка платы в формате layout 5.0, 2 кода программ с прошивкой + два коротеньких урока по работе с терминалом. А и если после того как прошили программу на терминали ни чего не появилось нажмите кнопку Reset, которая находится на робо-контроллере.

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

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

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

    Print "RoboHome"                                            ' выводим надпись

    Wait 1 : Print                                              ' ждём секунду и пропускаем строку

    Print "Test uart good!"     ' выводим надпись

    End 
                                                            ' конец программы


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

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

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

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

    Do
    Print "Hello! I am Robot."                                  ' вывод сообщения

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

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

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

    End


     Архив - 1, 63 мб

    Test I2C - 10, 3 кб


    Категория: Программирование в BascomAVR | Добавил: Space (23.08.2009)
    Просмотров: 8465 | Комментарии: 2 | Теги: eeprom, связь мк с пк, связь с пк, com-порт, rs-232, i2c | Рейтинг: 4.5/2 |
    Всего комментариев: 2
    2  
    а без 24LCxxx будет всё работать?

    1  
    файл uart.rar не скачивается wacko

    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]