Проектирование бегущей строки строки на микроконтроллере с использованием программного симмулятора

КУРСОВОЙ ПРОЕКТ

Тема: «Проектирование бегущей строки строки на микроконтроллере с использованием программного симмулятора»


Содержание

Введение. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3

  1. Общая часть. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
    1. Анализ технической задачи и возможные способы реализации поставленной цели . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
    2. Выбор программных и аппаратных средств для реализации поставленной задачи. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
      1. Обзор программы CodeVisionAVR. . . . . . . . . . . . . . . . . . . . . . . . 5
      2. Обзор программы Altium Designer. . . . . . . . . . . . . . . . . . . . . . . . .8
      3. Основные элементы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
      4. Подбор LCD-экрана. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
      5. Стабилизатор напряжения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
      6. Выбор микроконтроллера. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
    3. Исследование рынка. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
  2. Специальная часть. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
    1. Работа частей устройства. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
      1. Общие положения обработки данных. . . . . . . . . . . . . . . . . . . . .17
      2. Реализация передачи данных на LCD –дисплей. . . . . . . . . . . . 19
      3. Главный цикл системы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23
      4. Основные файлы в проекте на CodeVisionAVR. . . . . . . . . . . . .24
    2. Тестирование устройства и условия эксплуатации. . . . . . . . . . . . . 24
    3. Составление эксплуатационной документации. . . . . . . . . . . . . . . . 26

Заключение. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27

Список использованной литературы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28

Введение

В данном курсовом проекте описывается «Проектирование бегущей строки строки на микроконтроллере с использованием программного симмулятора». Особенностью данного устройства является то, что он реализован на общедоступных радиодеталях, которые имеют широкий спектр аналогов на рынке радиоэлементов. С точки зрения поставленной задачи были достигнуты все предъявляемые требования в техническом задании, это: движение многострочной строки, индикация изменения температуры на LCD, повторение при окончании строки. Проект реализован на коммерческом программном продукте CodeVisionAVR, который является компилятором для микроконтроллеров семейства AVR фирмы Atmel, также есть бесплатная его реализация в виде ограничения компилируемого кода, что идеально подходит для таких мелких проектов, как наш проект с бегущей строкой. К проекту прилагаются все основные документы – это исходники, принципиальная схема, чертежи печатных плат, чертежи монтажных плат и спецификация.


  1. Общая часть
    1. Анализ технической задачи и возможные способы реализации поставленной цели

Перед разработчиком ставилась задача реализации обычного устройства, который демонстрирует бегущую строку со следующими характерными ему особенностями:

  • Возможность движения текста в горизонтальном положении;
  • Возможность вывода текста любой дины;
  • Циклическое автоматическое вопроизведение, при конце прохождении текста;
  • Отображение текста на экране LCD;

При проектировании проекта учитывались все основные аспекты для легкой и быстрой реализации бегущей строки, не тратя время на поиск труднодоступных радиодеталей или инструментария. Сделав анализ подобных проектов в сети Интернет , были подобраны основные элементы для построения устройства:

  • Микроконтроллер Atmega8, для управления всем процессом счета;
  • LCD –экран серии LM016L от фирмы SHARP;
  • Стабилизатор напряжения серии 7805;

Все вышеуказанные радиодетали легкодоступны и заменяемы соответствующими аналогами разных фирм.

  1. Выбор программных и аппаратных средств для реализации поставленной задачи

Инструментные средства - это ПО для реализации различных этапов проектирования проекта, так как все делается на ЭВМ. Таким образом, наш проект частично будет программироваться в компиляторе, частично будет чертиться в виде печатных плат, частично будет симулироваться прямо на компьютере и ниже представлен соответствующий набор ПО:

  • Компилятор CodeVisionAVR для программирования нашего микроконтроллера Atmega8 на языке C;
  • Altium Designer для черчения печатной, монтажной плат и принципиальной схемы проекта;
  • Proteus(или Multisim) для симуляции и достоверности работы нашего проекта до того, как мы его материализуем;

  1. Обзор программы CodeVisionAVR

Программа представляет собой интегрированную среду разработки ПО для AVR микроконтроллеров.

Из основных достоинств CodeVisionAVR можно отметить то, что он не слишком сложен для самостоятельного освоения, поддерживает все многочисленное семейство микроконтроллеров AVR (включая чипы с ядром ATxmega), формирует емкий и результативный программный код. Помимо компилирования среда разработки способна записать созданную программу в память микроконтроллера. Модуль прошивки может взаимодействовать со всеми популярными программаторами (AVR910, STK200/300 и многими другими). Редактор позволяет работать с двумя проектами одновременно, размещать закладки, настраивать время автоматического сохранения результатов

Рис. .Окно программы CVAVR

Основными модулями, входящими в состав CodeVisionAVR являются:
 • трансляторы программ, составленных на Си-подобных языках или ассемблере, в машинный код для AVR;
 • элементы для инициализации периферийных устройств;
 • модуль для работы с платой отладки STK-500;
 • компоненты взаимодействия с внешними программаторами;
 • редактор первичного кода;
 • терминальный модуль.

Результат работы в программе CodeVisionAVR может быть представлен в виде HEX, ROM или BIN-файла для прямой прошивки микроконтроллера путем использования стороннего программатора. Кроме этого, программа может быть передана в формате COFF (файл отладчика) или OBJ. Число библиотек CodeVisionAVR растет с каждой новой версией и включает в себя поддержку продукции от таких известных производителей как Philips,National Semiconductor, Maxim-Dallas Semiconductor и многих других.
Компилятор CodeVisionAVR отличается от AVR-GCC, который можно наблюдать в программе WinAVR, синтаксисом, количеством поддерживаемых микроконтроллеров и быстродействием конечного кода. Но больше всего по специфике работы, расположению команд и своим возможностям программа напоминает PonyProg.

При работе важно не забывать, что процедура прошивки самой программы, fuse битов и ПЗУ в CodeVisionAVR являются самостоятельными процедурами. Разработчик рекомендует сначала прописать пользовательский код, затем EEPROM-память, а в конце fuse’ы. Чтобы убедиться, что CodeVisionAVR обнаружил внешний программатор, который подключается к LPT порту рабочей станции, необходимо нажать кнопку «Reset Chip». При этом на программаторе обязаны загореться индикаторы чтения/записи.

Рис. . Инициализация проекта в CVAVR

Разработчик программы – компания HP InfoTech, расположенная в столице Румынии, городе Бухаресте. Работники фирмы постоянно трудятся над своим продуктом, улучшая оптимизатор кода и ускоряя работу компоновщика. Число пользователей, купивших данный софт, составляет более 13000 человек.

Существует две версии программы: CodeVisionAVR Evaluation – бесплатный ознакомительный вариант с ограничением до четырех килобайт размера программного кода и отсутствием ряда ключевых библиотек и CodeVisionAVR – платная коммерческая, защищенная от установки паролем.

Интерфейс CodeVisionAVR английский и русификатора к нему нет.

Требуемая платформа для установки – Windows 95, 98, 2000, XP, Vista и 7. Поддерживаются 32- и 64-разрядные операционные системы.

  1. Обзор программы Altium Designer

Altium Designer предоставляет возможность использования самых передовых технологий в области проектирования плат (в том числе гибко-жестких плат и встраиваемых компонентов).

При создании комплекса компания Altium приняла революционное решение: впервые обеспечить проведение всего процесса проектирования и отладки устройства в единой программной среде. При этом результаты одного этапа проектирования передаются на следующий этап, а вносимые на любом этапе изменения отображаются во всех частях проекта. Разработчик отслеживает и синхронизирует произведенные правки и контролирует целостность проекта. В результате отлаженный, согласованный и полностью предсказуемый прототип устройства создается задолго до его физического воплощения.

В новом поколении Altium Designer разработчик также продолжает развивать упрощенную методологию проектирования электроники с глубоко интегрированной платформой управления данными проекта Altium Vault. Эта методика сосредоточена вокруг концепции проектирования для повторного использования, что все элементы дизайна (модели, компоненты, схемы листов, дизайн модулей и т.д.) уже выпускались, ратифицированы для использования и хорошо управляются в постоянно расширяющемся хранилище, обеспечивают быстрое создание проектов и высокую производительность труда. Методология носит название «Vault-Driven Electronics Design»

Отметим некоторые из возможностей Altium Designer:

  • простой, интуитивно понятный пользовательский интерфейс: возможность его настройки в соответствии с требованиями конкретного пользователя, а также меню с командами на русском языке и множество «горячих» клавиш позволяют научиться эффективно работать с программой менее чем за две недели;
  • возможность коллективной работы над проектом;
  • поддержка совместимости со многими старыми и современными популярными САПР РЭС (ECAD) и механическими САПР (MCAD);
  • возможность переключения в проекте систем измерения (дюймовая/метрическая), а также большое количество других настроек снимают практически все ограничения при оформлении проекта в соответствии с требованиями ГОСТ и ЕСКД;
  • все действия, совершаемые пользователем вручную, могут быть описаны с помощью макросов и выполнены автоматически, что открывает широкие возможности для автоматизации рутинных операций процесса создания принципиальных схем и проектирования печатных плат;
  • к программе прилагается набор документации на русском языке, в том числе — специальные методические указания для начинающих. Базовая программа обучения рассчитана на пять дней и позволяет пользователям выработать правильные навыки работы в системе;
  • Satellite Vaults: интеллектуальная платформа для управления данными проекта, в том числе — жизненным циклом изделия;
  • все настройки пользователя могут храниться в «облаке», а при переносе и открытии проекта на другом ПК система автоматически извлекает их и создает пользователю подобное рабочее место;
  • это программно-аппаратный комплекс для создания большинства современных РЭС при достаточно небольшой стоимости.

В основе системы Altium Designer лежит программная платформа Design Explorer (DXP), объединяющая различные модули для реализации всех функций сквозного автоматизированного проектирования:

  • Редактор схем;
  • Редактор библиотек моделей электронных компонентов;
  • программу моделирования всевозможных схем РЭС;
  • текстовый Редактор списка соединений и описаний на языке VHDL;
  • Редактор синтеза логики для ПЛИС (FPGA);
  • Редактор печатных плат, автотрассировщик;
  • средство Интернет-доступа к хранилищу онлайн-сообщества AltiumLive;
  • интерфейсы импорта и экспорта файлов и проектов;
  • CAM-средства и др.

Рис. . 3 состовляющие Altium Designer

  1. Основные элементы

Основными, центральными, элементами на схеме являются микроконтроллер, который служит вычислительным звеном и событийным обработчиком, LCD – дисплей для индикации информации, а также модуль стабилизации, который может отсутствовать, если питание подается 5V, если больше, то для его понижения и сохранности элементов от сгорания необходимо использовать стабилизатор напряжения. Мы будем считать, что питание подается от адаптера в 9V, а адаптер из общественной сети в 220V

  1. Подбор LCD-экрана

Для индикации информации об изменениях используется LCD дисплей серии LM016L. Основные его характеристики перечислены ниже.

  • Очень низкое потребление порядка 7,5 мВт;
  • Символы дисплея ASCII плюс японские символы Кандзи математики, греческие символы и simpolos.;
  • Смещение символов влево или вправо;
  • Память 40 символов в строке дисплея, 16 символов в строке отображается;
  • Курсор движение и изменять свой внешний вид;
  • Позволяет пользователю запрограммировать восемь символов;
  • Они могут управляться связи шины с 4 или 8 бит;

  1. Стабилизатор напряжения

7805 - cтабилизатор, выполненный в корпусе, похожем на транзистор и имеет три вывода. См. рисунок. (+5V стабилизированного напряжения и ток 1A). Так же в корпусе имеется отверстие для крепления стабилизатора напряжения 7805 к радиатору охлаждения. 7805 является стабилизатором положительного напряжения. Его зеркальное отражение - 7905 - аналог 7805 для отрицательного напряжения. Т.е. на общем выводе у него будтет +, а на вход будет подаваться -. С его выхода, соответственно, будет сниматься стабилизированное напряжение -5 вольт.

Рис . Внешний вид стабилизатора

Так же стоит отметить, что для нормальной работы на вход обоим стабилизаторам необходимо подавать напряжение около 10 вольт.

  1. Выбор микроконтроллера

Для нашего проекта подойдет любой промышленный или бюджетный микроконтроллер. Основными фирмами, которые предлагают, на данный момент, чипами, предназначенными для малогабаритной радиоппаратуры это такие известные фирмы, как Atmel (чипы с архитектурой AVR(8 битная архитектура) и ARM(32 битная архитектура)), Microchip Technology Inc(чипы с архитектурой PIC) и др. Выбор был сделан исходя из технических возможностей, которые возлагалются на наш проект бегущей строки, еще учитывались легкодоступность и взаимозаменяемость внутри архитектуры между разными маркировками. Все эти особенности вполне соответствуют чипам от компании Atmel архитектуры AVR c 8 битной адресацией памяти и был выбран микроконтроллер марки ATMega 8.

Микроконтроллер ATMega8 (мега8, mega8) от компании AVR выбирают благодаря идеальному сочетанию цены, функциональности и простоте применения в проектируемых электронных устройствах. Для прошивки микроконтроллера ATMega8 не требуется сложного специализированного оборудования - программаторы для ATMega8 просты в устройстве и могут быть легко куплены в нашем магазине или изготовлены самостоятельно.

На нашем сайте можно ознакомиться с различной документацией по устройству и программированию микроконтроллера, найти описание ATMega8, посмотреть схемы устройств, основанных на этом микроконтроллере, а также купить ATMega8 и всё необходимое для работы с ним - программаторы, отладочные платы и т.д

Микроконтроллер необходим для обработки сигналов от датчика и прорисовке этих результатов в понятном виде для человека на LCD, так как мы иначе не сможем, просто используя датчик, узнать по его импульсам какова сейчас температура.

Ниже описаны краткие характеристики данного микроконтроллера:

  • 8-разрядный высокопроизводительный AVR микроконтроллер с малым потреблением
  • Прогрессивная RISC архитектура

130 высокопроизводительных команд, большинство команд выполняется за один тактовый цикл;

32 8-разрядных рабочих регистра общего назначения Полностью статическая работа;

Приближающаяся к 16 MIPS (при тактовой частоте 16 МГц) производительность;

Встроенный 2-цикловый перемножитель;

  • Энергонезависимая память программ и данных

8 Кбайт внутрисистемно программируемой Flash памяти (In-System Self-Programmable Flash);

Обеспечивает 1000 циклов стирания/записи;

Дополнительный сектор загрузочных кодов с независимыми битами блокировки;

Обеспечен режим одновременного чтения/записи (Read-While-Write)

512 байт EEPROM;

Обеспечивает 100000 циклов стирания/записи;

1 Кбайт встроенной SRAM;

Программируемая блокировка, обеспечивающая защиту программных средств пользователя;

  • Встроенная периферия

Два 8-разрядных таймера/счетчика с отдельным предварительным делителем, один с режимом сравнения;

Один 16-разрядный таймер/счетчик с отдельным предварительным делителем и режимами захвата и сравнения;

Счетчик реального времени с отдельным генератором;

Три канала PWM;

8-канальный аналого-цифровой преобразователь (в корпусах TQFP и MLF);

6 каналов с 10-разрядной точностью;

2 канала с 8-разрядной точностью;

6-канальный аналого-цифровой преобразователь (в корпусе PDIP);

4 канала с 10-разрядной точностью;

2 канала с 8-разрядной точностью;

Байт-ориентированный 2-проводный последовательный интерфейс;

Программируемый последовательный USART;

Последовательный интерфейс SPI (ведущий/ведомый);

Программируемый сторожевой таймер с отдельным встроенным генератором;

Встроенный аналоговый компаратор;

  • Специальные микроконтроллерные функции

Сброс по подаче питания и программируемый детектор кратковременного снижения напряжения питания;

Встроенный калиброванный RC-генератор;

Внутренние и внешние источники прерываний;

Пять режимов пониженного потребления: Idle, Power-save, Power-down, Standby и снижения шумов ADC;

  • Выводы I/O и корпуса

23 программируемые линии ввода/вывода;

28-выводной корпус PDIP, 32-выводной корпус TQFP и 32-выводной корпус MLF;

  • Рабочие напряжения

2,7 - 5,5 В (ATmega8L);

4,5 - 5,5 В (ATmega8);

  • Рабочая частота

0 - 8 МГц (ATmega8L);

0 - 16 МГц (ATmega8);

Рис .расположение ПИНов

  1. Исследование рынка

В последнее время радиоинженеры в сотрудничестве с программистами создали немалое количество конструкций, устройств и механизмов для изображений, которые создаются светодиодами: глобусы с бегущими строками, изображения часов с секундной стрелкой, также всякие мигающие картинки. В последнее время передовые технологии настолько расширили свой ассортимент, что сейчас можно без особого труда самому сконструировать табло с эффектами бегущих строк. Рынок уже полон компонентами для этих конструкций. Можно заказать готовое, в котором бегущие строки будут спрограммированы для каждого заказчика в индивидуальном порядке.

Конструкция бегущей строки является очень простой для применения в качестве текстового информационного табло. Главной спецификой конструкции является работа в полностью автономном режиме без необходимости подключения к персональному компьютеру, как во время использования, также и во время загрузки текста. А также главной спецификой является то, что оператор может регулировать знаковые символы и во время особой надобности делать свои. Бегущая строка работать может от аккумулятора либо любого источника питания 9-12В переменного либо постоянного тока. Ток потребления 0.5-3А это зависит от наполненности и кол-ва табло, которые установлены. Соединяется строка с ПК 3-х проводным кабелем с разъёмами DB-9. Кабель может быть длиной 100 метров. Чтобы соединить, всегда можно применять удлинитель Сом. Для строк, установленных на большом удалении всегда можно применять спец. Память-FLASH. Вначале с ПК загружается информация на флеш-память, затем из флеш-памяти в строку.

В недавнем прошлом для эффекта бегущих строк использовались исключительно радиоустройства, собранные на светодиодах, которые управлялись релейным генератором переключений. Спустя некоторое время на свет появился транзисторный генератор переключений. А сейчас в широком пользовании есть и компьютерные программы, которые разработаны специально для конструирования эффекта бегущих строк.

  1. Специальная часть
    1. Работа частей устройства

К проекту прилагаются все необходимые чертежи и схемы расположения на плате радиодеталей, а так же , в спецификации, указаны их номиналы и маркировки, что позволит без труда собрать данное устройство.

Принципиальная схема проекта, после сборки, будет таков:

Рис .Принципиальная схема проекта бегущей строки

Далее описывается назначение каждого элемента в системе измерения температуры.

  1. Общие положения обработки данных

Для начала нужно отконфигурировать подключение дисплея в мастере начального кода CVAVR. 

Перечень самых ходовых команд:

Очистка дисплея: lcd_clear();

Размещение надписи на дисплее задается функцией lcd_gotoxy(2,0); где цифра 2 означает что первый слева символ надписи будет выводиться в третью по счету ячейку дисплея слева, имеющую порядковый номер 1, так как счет ячеек идет с цифры 0.

Цифра 0 означает что надпись выводится в первую строчку сверху, 1 соответственно будет значить размещение надписи во второй строке, и.т.д.

Чтобы просто написать что-то на дисплее латиницей, достаточно применить следующий код;

lcd_gotoxy(1,0); // задаем положение первого символа

lcd_putsf("Eto moy text");

В итоге на дисплей будет выведена надпись “Eto moy text”. Вывод содержимого текстовых массивов

Можно создать текстовый массив в оперативной памяти контроллера или в памяти программ. В данном случае массивы, сидящие в разных типах памяти выводятся разными командами.

К примеру создадим текстовый массив в памяти программ:

flash char text_mass[] = "Eto moy text";

Для вывода его содержимого нужно воспользоваться функцией lcd_putsf

пример: lcd_putsf(text_mass);

На дисплей будет выведено: “Eto moy text”

Если же массив вписан в оперативную память контроллера:

char text_mass[] = "Eto moy text";

то его вывод осуществляется аналогично функцией lcd_puts(text_mass);

(без буквы f)

Чтобы просто вывести один символ, достаточно ввести команду:

lcd_putchar('D'); // Будет выведена просто буква D

Можно конечно, поизвращаться как указано строкой выше, а можно пойти более легким путем:

Были предложены разные варианты, такие как специальная функция-перекодировщик, и еще один вариант с прагмами.

Первый – лишнее утяжеление программы.

Второй вариант не работает во второй версии CVAVR.

  1. Реализация передачи данных на LCD –дисплей

Работа с функцией sprintf , позволяющей в частности, отображать значения переменных вперемешку с выводом других символов. Все ниже написанное вытекло из изучения содержимого проектов в папке C:\cvavr\examples. Я объясню основу, то что удалось накопать так же в просторах сети.

Для начала немного описания функции sprintf:

Функция sprintf( ) (прототип содержится в файле stdio.h) обеспечивает форматированный вывод в строку. Ее можно записать в следующем формальном виде:

sрrintf ("управляющая строка", аргумент _1, аргумент _2,...);

Управляющая строка содержит компоненты трех типов: обычные символы, которые просто копируются в стандартный выходной поток (выводятся на экран дисплея); спецификации преобразования, каждая из которых вызывает вывод на экран очередного аргумента из последующего списка; управляющие символьные константы.

Каждая спецификация преобразования начинается со знака % и заканчивается некоторым символом, задающим преобразование. Между знаком % и символом преобразования могут встречаться другие знаки в соответствии со следующим форматом:

% [признаки] [ширина_поля] [точность] [F|N|h|l|L] c_n

Все параметры в квадратных скобках не являются обязательными.

На месте параметра c_n (символ преобразования) могут быть записаны:

с - значением аргумента является символ;

d или i - значением аргумента является десятичное целое число;

е - значением аргумента является вещественное десятичное число в экспоненциальной форме вида 1.23e+2;

Е - значением аргумента является вещественное десятичное число в экспоненциальной форме вида 1.23E+2;

f - значением аргумента является вещественное десятичное число с плавающей точкой;

g (или G) - используется, как е или f, и исключает вывод незначащих нулей;

о - значением аргумента является восьмеричное целое число;

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

u - значением аргумента является беззнаковое целое число;

х - значением аргумента является шестнадцатеричное целое число с цифрами 0,...,

9, а, b, с, d, е, f;

X - значением аргумента является шестнадцатеричное целое число с цифрами 0,...,

9, А, В, С, О, Е, F;

р - значением аргумента является указатель;

n - применяется в операциях форматирования.

Аргумент, соответствующий этому символу спецификации, должен быть указателем на целое. В него возвращается номер позиции строки (отображаемой на экране), в которой записана спецификация %n.

Необязательные параметры в спецификации преобразования:

признак минус (-) указывает, что преобразованный параметр должен быть выровнен влево в своем поле;

признак плюс (+) требует вывода результата со знаком;

строка цифр, задающая минимальный размер поля (ширина поля). Здесь может так же использоваться символ *, который тоже позволяет задать минимальную ширину поля и точность представления выводимого числа;

точка (.), отделяющая размер поля от последующей строки цифр;

строка цифр, задающая максимальное число выводимых символов, или же количество цифр, выводимых справа от десятичной точки в значениях типов float или double (точность);

символ F, определяющий указатель типа far;

символ N, определяющий указатель типа near;

символ h, определяющий аргумент типа short int (используется вместе с символами преобразования d, i, о, u, х, Х);

символ l, указывающий, что соответствующий аргумент имеет тип long (в случае символов преобразования d, i, о, u, х, X) или double (в случае символов преобразования е, Е, f, g, G);

символ L, указывающий, что соответствующий аргумент имеет тип long double (используется вместе с символами преобразований е, Е, f, g, G);

символ #, который может встречаться перед символами преобразования g, f, е и перед символом х. В первом случае всегда будет выводиться десятичная точка, а во втором - префикс 0x перед соответствующим шестнадцатеричным числом.

Если после знака % записан не символ преобразования, то он выводится на экран. Таким образом, строка %% приводит к выводу на экран знака %.

Функция sprintf( ) использует управляющую строку, чтобы определить, сколько всего аргументов и каковы их типы. Аргументами могут быть переменные, константы, выражения, вызовы функций; главное, чтобы их значения соответствовали заданной

спецификации.

При наличии ошибок, например, в числе аргументов или типе преобразования, результаты будут неверными.

Среди управляющих символьных констант наиболее часто используются следующие:

\а - для кратковременной подачи звукового сигнала;

\b - для перевода курсора влево на одну позицию;

\f - для подачи формата;

\n - для перехода на новую строку;

\r - для возврата каретки;

\t - горизонтальная табуляция;

\v - вертикальная табуляция;

\\ - вывод символа \;

\' - вывод символа ' ;

\" - вывод символа ";

\? - вывод символа ?.

Например, в результате вызова функции:

sprintf("\tComputer\n%d\n", i);

сначала выполняется горизонтальная табуляция (\t), т.е. курсор сместится от края экрана, затем на экран будет выведено слово Computer, после этого курсор переместится в начало следующей строки (\n), затем будет выведено целое число i по формату %d (десятичное целое), и,окончательно, курсор перейдет в начало новой строки (\n).

Напечатать строку символов можно и так: sprintf("Это строка символов");

Спецификатор формата Тип данных

%d, %i целое десятичное число

%s текстовая строка

%c один символ

%e, %E число с плавающей точкой в экспоненциальной форме

%f число с плавающей точкой в десятичной записи

%u целое десятичное число без знака

%o целое восьмеричное число без знака

%x, %X целое шестнадцатиричное число без знака

%g, %G либо %e, либо %f в зависимости от того, запись в каком формате короче

%p значение указателя

%n число символов

  1. Главный цикл системы

Главный цикл служит точкой входа в программу для дальнейшего его выполнения, далее приводится код главной функции и главного цикла программы, в комментариях объяснено что за что отвечает.

Далее приведен код основного файла main__.c, который содержит главную функцию и основной цикл программы:

/*****************************************************

This program was produced by the

CodeWizardAVR V1.25.9 Professional

Automatic Program Generator

© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.

http://www.hpinfotech.com

Author : test

Company : test

Chip type : ATmega8

Clock frequency : 4,000000 MHz

External SRAM size : 0

Data Stack size : 256

*****************************************************/

#include <mega8.h>

// Alphanumeric LCD Module functions

#asm

.equ __lcd_port=0x12 ;PORTD

#endasm

#include <lcd.h>

#include <delay.h>

unsigned char i;

int n_sim=1,m_end=500; //m_end - общее количество символов в исходной строке;

char ish_str[] = " Dannaya textovaya stroka operiruyet na microkontrollere AVR Atmega8. Cod scompilirovan na CodeVision AVR. " ;

void beg_str(void)

{

for(i=0;i<15;i++)lcd_write_byte(0xC0+i,lcd_read_byte(0xC1+i));

lcd_gotoxy(15,1); // указали место курсору во второй строке

lcd_putchar(ish_str[n_sim]);

if(++n_sim>m_end)

{n_sim=1;};

delay_ms(100);

}

void main(void)

{

PORTB=0x04;

DDRB=0x00;

PORTC=0x00;

DDRC=0x00;

PORTD=0x00;

DDRD=0x00;

ACSR=0x80;

SFIOR=0x00;

// LCD module initialization

lcd_init(16);

while (1)

{

beg_str();

lcd_gotoxy(0,0,);

lcd_putsf("Stroka Texta");

// Place your code here

};

}

  1. Основные файлы в проекте на CodeVisionAVR

Основной особенностью CVAVR является то, что данный компилятор позволяет автоматически генерировать начальный код с помощью мастера начальной настройки, и мы, конечно же, воспользуемся этой возможностью при реализации начального кода интерфейса передачи по шине кода управления LCD-дисплеем.

В проекте, после генерации всех данных кодов будут автоматически сформированы 1 заголовочный файл –lcd.h.

Вся реализация и вызов процедур осуществляется в исходном файле проекта – main__.с, в этом же файле реализован бесконечный цикл, который каждый раз проверяется наличие обновлений данных от датчика. Выше перечисленные являются основными, кроме них еще стандартные файлы самого микроконтроллера Atmega8 и стандартные файлы языка C, которые не приведены.

  1. Тестирование устройства и условия эксплуатации

Проект был оттестирован и просиммулирован в программном симмуляторе Proteus.

Проект был оттестирован и просиммулирован в программном симмуляторе Proteus. В ходе тестирования были получены следующие рабочие характеристики:

  • Загрузка CPU в пределах 30-40%;
  • Стабильная работа при питании от 4,5 В до 5,5 В;
  • Тактовая частота процессора 8Mhz, при испытаниях был опробован резонатор с частотой 4Mhz, при котором микроконтроллер работал в штатном режиме, такой подход может сыкономить электричество, при использовании портативных источников питания;

Рис. . Скриншот проекта в симмуляторе Proteus

  1. Составление эксплуатационной спецификации

На основе используемых компонентов и их технических маркировок была составлена эксплуатационная спецификация радиодеталей устройства:

Табл 1. Спецификация радиодеталей

Заключение

В заключении можно сказать, что все технические требования, которые изначально предъявлялись к проекту выполнены успешно. Получен рабочий исходный код, который удачно просимулирован в среде Proteus. При запуске проекта сразу инициализируется LCD –экран для дальнейщего движения текста в горизонтальном направлении. Если текст заканчивает свой цикл, то движение начинается заново. Данный проект в перспективе можно доработать, увеличив его функциональность и имеет место его использования в других системах. Как модуль событийной идентификации выполнения какого-либо процесса или же можно использовать как рекламное табло.


Список использованной литературы

  1. Корнеев В.В., Кисилев А.В. Современные микропроцессоры – М.: Нолидж, 2000.
  2. Голубцов М.С. Микроконтроллеры AVR: от простого к сложному – М.: СОЛОН-Пресс, 2003. – (Серия "Библиотека инженера")
  3. Гребнев В.В. Микроконтроллеры семейства AVR фирмы Atmel – М.: ИП.РадиоСофт, 2002.
  4. Евстифеев А.В. МИКРОКОНТРОЛЛЕРЫ AVR СЕМЕЙСТВА CLASSIC ФИРМЫ "ATMEL" – М.: Издательский дом "Додэка-XXI", 2002.
  5. Современные микроконтроллеры: Архитектура, средства проектирования, примеры применения, ресурсы сети Интернет. Под ред. Коршуна И. В.; – М: Издательство «Аким», 1998

PAGE \* MERGEFORMAT27

Проектирование бегущей строки строки на микроконтроллере с использованием программного симмулятора