Электронная записаня книжкa (PIC12F84, С)
Новая элементная база позволяет создавать компактные и экономичные устройства, способные с помощью персонального компьютера записывать в свою память текст, а затем в автономном режиме читать его. В статье описывается своеобразная "записная книжка ", в которой можно хранить до 64 Кбайт текстовой информации.
Принципиальная схема устройства показана на рис. 1. Его основа — PIC-контроллер PIC16F84 (DD1). Текст хранится в микросхеме DS1 энергонезависимой Flash-памяти с последовательным интерфейсом I2С (см. статью А. Долгого "Микросхемы памяти с интерфейсом I2С. Особенности и применение" в "Радио", 2001, № 2, 3). Посредством этого интерфейса, реализованного программно, микроконтроллер DD1 читает информацию из DS1 и передает ее на жидкокристаллический (ЖК) индикатор HG1. Перед чтением или записью каждого байта в ячейку памяти микросхемы DS1 передается адрес этой ячейки. Это несколько замедляет работу, но предотвращает проблемы, связанные с разным размером страницы памяти, которые могут возникать при использовании микросхем разных фирм.
Кроме собственно ЖК индикатора, ITM-1602ATR/R (HG1) имеет в своем составе контроллер HD44780, который организует обмен данными с микроконтроллером DD1, имеет знакогенератор для вывода символов и отвечает за отображение информации на экране. Для сокращения числа используемых портов микроконтроллера DD1 обмен с HG1 ведется по четырехбитному интерфейсу, при котором восьмибитные данные передаются тетрадами в два этапа. При таком режиме работы выводы DB0—DB3 индикатора не используются.
Управляют "записной книжкой" с помощью кнопок SB1—SB3: первые две служат для прокрутки текста и перемещения курсора меню, а третья — для вызова меню и подтверждения выбора его пунктов. Поскольку все линии порта В, являющиеся входными, подключены к источнику питания через резисторы, необходимости во внешних резисторах, "подтягивающих" порты RB5—RB7 к линии питания, нет.
Так как от устройства не требуется высокой точности отсчета временных интервалов, в качестве частотозадающих элементов тактового генератора микроконтроллера DD1 используется RC-цепь (R3C1). Генератор работает только при обращении микроконтроллера к памяти или ЖК индикатору, во время ожидания нажатия кнопки он отключен и микроконтроллер находится в режиме пониженного энергопотребления.
При включении питания на экране индикатора на короткое время появляется заставка, после чего устройство переходит в режим меню. Теперь, перемещая курсор кнопками SB1 ("<-"), SB2 ("->") и подтверждая команду кнопкой SB3 (" "), можно перейти в режим чтения (пункт "R"), в "спящий" режим (пункт "S"), установить курсор в начало текста (пункт "Н") или в его конец (пункт "Е"). В этом режиме на экране отображается также текущая позиция текста в шестнадцатиричной форме. При чтении текст "листают" кнопками SB1 и SB2, возврат в меню осуществляется кнопкой SB3. Подстроечный резистор R5 служит для регулировки контрастности изображения на индикаторе HG1. Из "спящего" режима устройство выводят нажатием любой кнопки.
Для обмена информацией между "записной книжкой" и компьютером служит специальная программа, с помощью которой можно передавать текст как из компьютера в устройство, так и наоборот. Программа представляет собой упрощенный текстовый редактор с возможностью загрузки текста в "записную книжку" и выгрузки из нее. Для загрузки текста в устройство необходимо с помощью меню "Файл—Открыть" открыть текстовый файл в ASCII формате, а затем, возможно, произведя некоторые изменения этого текста в окне редактора, с помощью меню "Е-Book->Закачать" запустить процесс загрузки. Текст для загрузки можно подготовить в любом другом текстовом редакторе, а затем через буфер обмена Windows скопировать его в окно редактора программы. Выгрузка текста из "записной книжки" производится через меню "Е-Book—»Скачать". После этого текст может быть сохранен в ASCII файл или через буфер обмена перенесен в другую программу. Параметры работы программы (номер LPT порта и объем памяти "записной книжки") изменяют через меню "Настройки- Параметры".
Обмен производится через кабель-адаптер, схема которого приведена на рис-2. Вилку ХР1 подключают к параллельному (LPT) порту компьютера. На транзисторах VT1, VT2 реализована функция элемента с открытым коллектором, которая требуется для работы с шиной 12С. Линии SCL и SDA подключены к входным линиям LPT порта (соответственно контакты 13 и 12) для обеспечения контроля состояния первой и приема данных по второй со стороны компьютера.
При работе с компьютером шина I2С функционируете режиме "Multi Master". Для разрешения конфликтов на ней используется следующий алгоритм: перед тем, как любое из master-устройств собирается произвести обмен с памятью, оно в течение некоторого времени следит за уровнем сигнала на линии SCL. Если в течение этого времени на ней не было уровня логического нуля, master-устройство начинает обмен с памятью. В противном случае оно продолжает отслеживать состояние линии SCL Поскольку такой алгоритм не всегда способен устранить конфликты, нажимать кнопки "записной книжки" во время обмена информацией с компьютером не рекомендуется.
Питание на микросхему DS1 и индикатор HG1 поступает через порт RB4 микроконтроллера DD1. Это позволяет переводить устройство в "спящий" режим программным способом. При этом питание подается только на микроконтроллер, который также переходит в "спящий" режим (тактовый генератор выключается), и потребляемый устройством ток уменьшается до значения, не превышающего десятка микроампер. Возврат в режим чтения, как отмечалось, производится нажатием любой кнопки устройства. При этом контроллер выходит из "спящего" режима, подает питание на микросхему памяти и индикатор и проводит процедуру инициализации последнего. После этого можно продолжать читать "книжку" с той позиции, которая была текущей в момент перевода устройства в "спящий" режим.
Большинство деталей устройства смонтировано на печатной плате, изготовленной в соответствии с рис. 3. В устройстве допустимо применение микроконтроллера PIC16F84 или PIC16F84A в любом исполнении. DS1 — любая микросхема с интерфейсом l2C из ряда АТ24С01 —АТ24С512 (обьем памяти от 128 байт до 64 Кбайт) фирмы ATMEL или других производителей. При этом для каждой микросхемы используют свой вариант прошивки контроллера. В принципе, можно применить от одной до восьми микросхем памяти, задавая для каждой в зависимости от их типа уникальный адрес с помощью адресных входов АО—A3, но при этом потребуется корректировка программы контроллера.
ЖК индикатор HG1 — двустрочный (по 16 символов в строке) фирмы Intech с русским знакогенератором. Можно применить и другие одно- и двустрочные индикаторы этой фирмы или им подобные других фирм, контроллер которых совместим с HD44780. При этом в программе микроконтроллера нужно скорректировать значения переменных width и height. В случае использования индикаторов с большим числом строк потребуется более серьезная модификация программы.
Индикаторы с контроллером НТ44780 выпускаются с различными знакогенераторами. Если не удастся приобрести индикатор с русским знакогенератором, при вводе текста допустимо заменять русские буквы похожими по написанию латинскими либо использовать транслитерацию (писать русские слова латинскими буквами). Эта возможность предусмотрена в программе. При передаче текста в "записную книжку" символы автоматически заменяются на указанные пользователем. Таблицу замены символов можно изменить через меню "Настройки-Параметры" программы.
При программировании микроконтроллера DD1 нужно установить следующие значения бит в конфигурационном слове: тип генератора (OSC) — RC, сторожевой таймер (WDT) — выключен, задержка после включения питания (PWRTE) — разрешена.
Для питания устройства требуется напряжение 4...5 В (три гальванических элемента типоразмера AAA или четыре дисковых аккумулятора Д-0,1). Работоспособность сохраняется при снижении напряжения батареи до 3 В, однако считывание информации с ЖК индикатора в этом случае затрудняется.
В качестве розетки XS1 (см. рис. 1) в устройстве применен разъем от стереофонических головных телефонов, используемый в импортной аппаратуре. Вилка ХР1 (см. рис. 2) — компьютерная DB-25M. Транзисторы VT1, VT2 (любые кремниевые маломощные структуры n-p-n) и резисторы R1, R2 смонтированы навесным способом внутри вилки ХР1. Длина соединительного кабеля — не более 2 м.
Скачать исходный код на С, прошивки, управляющую программу (282 Кб). Загрузок: 215
Автор статьи: С. Кулешов, г. Курган.
Источник: Радио 2002 №2
Просмотров: 2903
Компрессор К-250-61-5: . ABC - компрессоры. Где купить?
Splan 7.0.0.9 Rus + Portable + Viewer Fiinal
26.04.2014
sPlan – удобный инструмент для черчения электронных схем. Имеет простой и интуитивно понятный интерфейс. В программе заложены... подробнее...
Очень удобная программа для чтения pdf Foxit Reader
26.04.2014
Foxit Reader - Компактная и шустрая программа для чтения PDF файлов. Может служить альтернативой для популярного просмотрщика PDF - Adobe Reader.... подробнее...
Proteus 7.7 SP2 + Crack v1.0.2 + RUS
22.04.2014
Proteus VSM - программа-симулятор микроконтроллерных устройств. Поддерживает МК: PIC, 8051, AVR, HC11, ARM7/LPC2000 и другие распространенные процессоры.... подробнее...
Новое становление сайта Eldigi.ru
01.04.2014
Проект Eldigi.ru который долгое время находился в застывшем состоянии снова принимается за работу с новымы силами, с новыми статьями и с... подробнее...
Proteus 7.7 SP2 + Crack v1.0.2 + RUS
22.04.2014
Proteus VSM - программа-симулятор микроконтроллерных устройств. Поддерживает МК: PIC, 8051, AVR, HC11, ARM7/LPC2000 и другие распространенные процессоры....
подробнее...
Splan 7.0.0.9 Rus + Portable + Viewer Fiinal
26.04.2014
sPlan – удобный инструмент для черчения электронных схем. Имеет простой и интуитивно понятный интерфейс. В программе заложены...
подробнее...
Цифровая паяльная станция своими руками (ATmega8, C)
27.05.2012
Состав: ATmega8, LM358, IRFZ44, 7805, мост, 13 резисторов, один потенциометр, 2 электролита, 4 конденсатора, трехразрядный светодиодный семисегментный...
подробнее...
Тахометр на AVR микроконтроллере (ATtiny2313, C)
13.01.2010
Данное устройство представляет собой неплохой тахометр, предел его измерений
составляет 100 - 9990 об/мин. Точность измерения - ± 3 об/мин....
подробнее...
Устройство управления яркостью 8 светодиодов (PIC16F628, asm)
11.10.2010
По заданной программе изменяется яркость светодиодов. Изменение яркости осуществляется широтно-импульсной модуляцией (ШИМ). Так как... подробнее...
Релейный регулятор громкости по схеме Никитина с LCD, ПДУ (RC5) и энкодером (ATmega8, C)
16.02.2011
Очередная модификация устрйоства для регулирования громкости, собранно по схеме Никитина. В этой версии присутствует LCD дисплей для... подробнее...
Блок жизнеобеспечения аквариума (AT89C2051, asm)
08.12.2007
Блок жизнеобеспечения аквариума представляет собой функционально законченный блок, который управляет включением компрессора,... подробнее...
Подключение знакосинтезирующего LCD 4x16 к USB (AT90S2313, C)
01.07.2009
Данный проект представляет из себя LCD дисплей 4x16 подключаемый к USB. Проект реализован на довольно дешёвом и доступном МК AT93S2313 формы Atmel.... подробнее...