Данная программа работает с компьютером по интерфейсу RS232, в полудуплексе на скорости 9600 бод при кварцевом резонаторе 1.843.200 питание 5 Вольт, потребление в режиме ожидания 3.7 ма. Входная часть взята из программатора Атмела avr910.pdf, питание от com-порта через линии RTS и DTR через диоды шотки и стабилизатор 78L05. Алгоритм работы взят Микрочиповский из AN555C, кому интересно, читайте в оригинале, коротко смысл такой.
Для детектирования старт бита таймер счётчик подключается к входной ножке, счёт идёт по спаду, в регистр интервала пишется 1. При появлении старт бита, перепад от 1 к 0, происходит переполнение счётчика и вырабатывается прерывание на процессор. Затем таймер переконфигурируется на счёт от кварца, без предделителя, и в регистр интервала пишется такое значение, чтобы прерывание пришлось на середину старт бита (длина бита на данной скорости делённая пополам). По прерыванию читается приёмная нога и её значение задвигается в буфер данных. Затем в регистр интервала пишется значение, равное длине принимаемого бита (1843200 / 9600 = 192, 0c0h) и по следующим прерываниям считывается весь байт, бит чётности и стоп бит.
Преимущество данного способа в том, что для работы необходимо только одно прерывание таймера. При передаче в таймер загружается длина бита и по прерываниям от таймера, циклически сдвигая регистр с данными, последовательно передается весь байт, со старт и стоп битами. При приёме возможна работа любой другой программы, при передаче нужно ждать пока не уйдёт весь байт.
При инициализации ножек RX и TX, функции остальных ног не меняются. - Это и есть ошибка, а жаль. В данном примере программа принимает байт с компьютера, добавляет к нему 1, и передаёт обратно.
Для теста устройства лучше использовать программу Term95, она идёт в комплекте к нортон-командеру, хотя можно использовать и другие, работающие с com-портами (датаскоп, дос-навигатор).
При этом необходимо, чтобы на линиях RTS и DTR были установлены логические 1 (+12 Вoльт) для питания микроконтроллера. Выставив номер порта и скорость передачи можно наблюдать, как в ответ на посланный байт приходит увеличенный на 1, особенно прикольно, когда посылаешь цифры :-) Вот исходник: uart1.mic - оригинал Корректированный вариант положу попозже, сейчас времени нету. Алгоритм UART: Источник: sanchos-iz.narod.ru
C этой схемой также часто просматривают: |
ИЗМЕРЕНИЕ ЧАСТОТЫ С ПОМОЩЬЮ АВОМЕТРА Программатор внутрисхемный для КР1878ВЕ1 Частотомер от Mars'a на КР1878ВЕ1 Простой программатор для КР1878ВЕ1 Простая схема динамической индикации на КР1878ВЕ1 Частотомер от Mars'a на КР1878ВЕ1 Программатор внутрисхемный для КР1878ВЕ1 Простейшие часы. Чего-либо проще вообще придумать сложно. Простое зарядное устройство на 1878ве1
| |
Подключение энкодера к микроконтроллеру PIC Счётчик людей в помещении, управляющий освещением Велокомпьютер на микроконтроллере PIC16F628A Устройство ввода-вывода на микроконтроллера Два термометра на PIC16F628A и DS18B20 Светодиодные часы с циферблатом Двоичные часы Два вывода микроконтроллера PIC управляют шестью светодиодами Цифровой программируемый таймер на микроконтроллере PIC16F628A Устройство рисования в воздухе на ATtiny2313 |