Устройство управления на микроконтроллере PIC16F84.
Этот проект был задуман и реализован еще до того как в продаже появились новые недорогие микроконтроллеры PIC16F628 , имеющие встроенный последовательный интерфейс. Может быть сегодня этот проект уже не актуален, но, все же, думаю предложенная здесь информация кому то будет интересна.
Введение.
То, что представлено здесь, это не совсем проект. Это скорее заготовка для возможного проекта. Здесь рассматривается вопрос создания на базе микроконтроллера PIC16F84 устройства управления / контроля, которое в процессе работы обменивается информацией с ПК. Напомню, что PIC16F64 не имеет встроенного последовательного порта, поэтому основная задача проекта - реализация интерфейса RS-232. Проект полностью базируется на информации и программах, предложенных в статье " Asynchronus Serial I/O Using PIC16Cxx " ( перевод смотрите здесь ).
Назначение и работа устройства.
Прибор состоит из исполнительного УСТРОЙСТВА, связанного с ПК через Com порт и программы управления 'rs232tst.exe' которая работает под Windows 95/98. Исполнительное УСТРОЙСТВО имеет три светодиода, включать и выключать которые Вы можете нажатием кнопки мыши. При этом программа посылает УСТРОЙСТВУ команду управления. Микроконтроллер обрабатывает принятую команду, включает или выключает требуемый светодиод, посылает компьютеру подтверждение выполненого действия. Разумеется светодиоды можно заменить чем то другим, например ключем на семисторе, который будет включать и выключать свет в комнате и т. п. .
Реализация последовательной ассинхронной передачи данных, применяемая в этом проекте имеет один существенный недостаток. Исполнительное УСТРОЙСТВО не имеет на входе приемного буфера, такого, какой есть у стандартных устройств, работающих по протоколу RS-232 ( например UART16550). Микроконтроллеру требуется определенное время для обработки принятой команды. Это время включает в себя идентификацию команды и выполнение связанной с ней действий. Если до истечения этого времени компьютер передаст УСТРОЙСТВУ новую команду, она будит потеряна.
Для решения этой проблемы, в программе 'rs232tst.exe' предусмотрен режим работы, при котором используется программный передающий буфер, который заменяет отсутствующий приемный буфер УСТОРЙСТВА. Более подробное описание работы программы 'rs232tst.exe' смотрите в файле помощи программы.
Технические характеристики:
- напряжение питания – 2 .. 5 В;
- тактовая частота – 4 МГц;
- потребляемый ток – 10 .. 40 мА;
- максимальная скорость обмена данными с ПК – 1200 Бод.
Схема.
УСТРОЙСТВО выполнено на микроконтроллере PIC16F84. Микросхема MAX232 обеспечивает совместимость ТТЛ уровней напряжения с уровнями RS-232.
Прграмма.
Программа для микроконтроллера состоит из нескольких файлов. Основной из них - файл 'pj_rs232.asm', в нем реализована вся логика работы устройства. Два вспомогательных файла 'Txmtr.asm' и 'Rcvr.asm' реализуют функции передачи и приема байта. Эти файлы целиком без изменений взяты из " Asynchronus Serial I/O Using PIC16Cxx ". В файле 'pj_rs232.asm' есть подробные комментарии выполняемых действий, поэтому нет необходимости разбирать работу программы здесь.
Изготовление.
Скачать архив проекта ( схема + '.asm' файлы + .'hex' файл + файл программы 'rs232tst.exe' = 179 кБайт ) можно здесь. В файле 'pj_rs232.asm' заложены следующие настройки:
- тактовая частота 4 МГц;
- скорость передачи 1200 бит в секунду;
- 8 бит данных;
- 1 стоп бит;
- проверка четности не выполняется;
- аппаратный контроль не используется.
Эти настройки соответствуют настройкам по умолчанию параметров Com порта в программе 'rs232tst.exe'.
НА ГЛАВНУЮ | | ЧТО ТАКОЕ PIC ? | | ПРОГРАММАТОР | | ПРОЕКТЫ | | СТАТЬИ | | ССЫЛКИ |
#bn { DISPLAY: block } #bt { DISPLAY: block }