Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Удаленная работа
Помощь проекту

Книгочей

Разработка этого устройства была вызвана желанием читать книги в электронном виде не только дома, с помощью настольного компьютера, но и в прочих местах - там же, где можно прочитать и обычную бумажную книгу.
   Устройство предназначено для прочтения текстовой информации, записанной по COM-порту во flash-память AT49F040, на алфавитно-цифровом индикаторе с контроллером HD44780 фирмы Hitachi и русифицированным знакогенератором. Размер памяти 1 Мбайт, всего возможно записать 8 книг, с возможностью оставить закладку на каждую книгу. Также предусмотрена возможность "пролистывания" книги - на случай, если закладка не была положена, а питание устройства было отключено. Выбор функций и чтение происходит по нажатию трёх клавиш: выбор, вверх и вниз. Размер дисплея 40х2 строчки, что, как показала практика, вполне достаточно для восприятия смысла написанного.
   Схема устройства приведена на рисунке. Щёлкните на нём мышью для того, чтобы посмотреть схему в полном размере. "Сердцем" устройства является микроконтроллер AT90S8515, управляющий шинами адреса-данных, принимающий команды от компьютера и выводящий на индикатор. Для защёлкивания младших 8 бит адреса служит регистр КР1533ИР33 (аналог 74ALS573). Для преобразования уровней RS-232C служит также хорошо известная микросхема ADM202 фирмы Analog Devices.

   Несвязанное с компьютером устройство может только считывать записанную в него книгу. Для стирания памяти либо записи в неё надо выбрать пункт меню: "Связь с ЭВМ", непосредственно затем послать либо число 0x5e, либо 0xe5. В первом случае устройсво перейдёт в командный режим, во втором - в отладочный, когда принимаемый от компьютера символ будет просто отображаться на экране.
   Команды, подаваемые на устройство, таковы:
    10 - стереть первую МС памяти,
    20 - стереть вторую МС памяти,
    30 - записать в память данные,
    40 - считать из памяти начиная с текущего адреса,
    50 - выставить текущий адрес.
   Последние две команды являются также отладочными и не используются в обычном нормальном функционировании устройства. Первые две не требуют никаких дальнейших действий кроме ожидания сообщения на экране устройства, что память стёрта. Команда записи в память потребует сначала ввести заголовок данной книги (то есть автора и название, это нужно для дальнейшей идентификации текста при использовании устройства), завершив его посылкой символа 0x07, а затем передать массив текста. После окончания цикла записи символа в память устройство подтверждает приём, посылая этот же символ в компьютер, что позволяет контролировать скорость передачи данных, и не потерять данные при записи. Передача текста также финишируется посылкой кода 0x07. Этот код был выбран потому, что является управляющим и обозначает звонок, писк на динамике компьютера (bell), то есть принципиально не может встретиться в текстовых файлах.
   Здесь находится файл resource.zip, в котором находятся следующие файлы:
    reader.asm
    rus.inc
    reader.hex
    reader.cpp
    reader.exe
    reader.ini
   Первый файл, reader.asm, содержит собственно код для AT90S8515, следующий файл содержит эквиваленты русских букв (AVR Studio традиционно некорректно работает с неанглийскими символами, причём проблема эта прекрасно известна программистам Atmel), reader.hex - откомпилированный код, прошивка того, что получилось. Далее содержится пример программы для компьютера, написанной на языке Си под DOS, позволяющей записывать текстовые файлы - reader.cpp. reader.exe - это соответственно откомпилированный reader.cpp, а reader.ini - файл настроек для программы. Настроек, собственно, две: это на какой порт подключено устройство (в примере поддерживаются только COM1 и COM2, впрочем, легко добавить в исходник программы и остальные порты) и кодировка записываемого текста (WIN или DOS). Само устройство отображает текст, который записан в него только в кодировке WIN, но поскольку очень много текстов в Интернете, доставшихся в наследство ещё от FIDO, имеют кодировку DOS, то программа позволяет перекодировать при записи, на лету, освобождая пользователя от этой предварительной процедуры. Также программа отфильтровывает "лишние" пробелы, получившиеся при форматировании текста, убирает переносы, оставляя нетонутыми дефисы и тире перед фразами речи. Для программы при запуске существуют два возожных параметра - либо "reader.exe e", означающий стирание памяти, либо "reader.exe w <имя_файла>", позволяющее записать файл. При записи программа попросит ввести имя автора и название книги, причём для удобства выведет первые строчки текста (что, однако, удобно только для DOS-файлов. В случае win-кодировки на экран выведется бессмыслица).
  И напоследок немного о кнопках. Это действительно тяжёлая проблема, посколько когда я поставил "красивые" разноцветные кнопочки, они не выдержали интенисивного нажимания (всё-таки двустрочный дисплей, нажимать где-то раз в секунду приходится), сдав за две недели, поэтому пришлось поставить произведение отечественной "оборонки" - кнопки на основе концевиков - КМ1-1. И в итоге - ни дребезга, ни залипания. Уже полгода успешно работают в довольно интенсивном режиме.

Автор проекта: Александр Корниленко (E-mail: seagull@mail.ru)


C этой схемой также часто просматривают:

Как сделать простой осциллограф двоичного сигнала на AVR
Бегущая строка на PIC контроллере
Передача отладочной информации из PIC-контроллера через COM-порт
Программатор термометра/термостата DS1821

Главные категории

Arduino


Аудио


В Вашу мастерскую


Видео


Для автомобиля


Для дома и быта


Для начинающих


Зарядные устройства


Измерительные приборы


Источники питания


Компьютер


Медицина и здоровье


Микроконтроллеры


Музыкантам


Опасные, но интересные конструкции


Охранные устройства


Программаторы


Радио и связь


Радиоуправление моделями


Световые эффекты


Связь по проводам и не только...


Телевидение


Телефония


Узлы цифровой электроники


Фототехника


Шпионская техника



Реклама на KAZUS.RU




Последние поступления

Подключение энкодера к микроконтроллеру PIC

Счётчик людей в помещении, управляющий освещением

Велокомпьютер на микроконтроллере PIC16F628A

Устройство ввода-вывода на микроконтроллера

Два термометра на PIC16F628A и DS18B20

Светодиодные часы с циферблатом

Двоичные часы

Два вывода микроконтроллера PIC управляют шестью светодиодами

Цифровой программируемый таймер на микроконтроллере PIC16F628A

Устройство рисования в воздухе на ATtiny2313



© 2003—2017 «KAZUS.RU - Электронный портал»