Светодиодная бегущая строка
Бегущая строка на микропроцессоре и особенность бегущей строки на матричных светодиодных индикаторах. Выбор и описание прототипов разрабатываемого устройства. Разработка структурной и принципиальной схемы, специфика разработки программного обеспечения.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 10.11.2014 |
Размер файла | 1,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство образования Республики Беларусь
БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
Кафедра
Пояснительная записка
к курсовой работе
на тему: «Бегущая строка»
Выполнил:
Ст. гр. 083122
Кетова Е.А.
Руководитель работы:
Дерюшев А.А.
Минск 2012 г.
Содержание
- Введение
- 1. Обзор литературных источников
- 1.1 Бегущая строка на микропроцессоре Pic16f628
- 1.2 «Бегущая строка» на матричных светодиодных индикаторах
- 1.3 Бегущая строка с графическим выводом информации
- 2. Выбор и описание прототипов разрабатываемого устройства
- 3. Разработка структурной схемы устройства
- 4. Разработка принципиальной схемы устройства
- 5. Разработка программного обеспечения
- 6. Моделирование устройства
- Заключение
- Список использованных источников
- Введение
- Бегущая строка -- эффективное и недорогое информационное средство: яркая, динамично изменяющаяся картина привлекает внимание и позволяет донести до потребителя максимальный объем текстовой и псевдографической информации, используя минимум пространства. Бегущая строка может иметь любой корпус, цвет свечения, размер и тип шрифта, выводить сообщения на любом языке и перемещать изображение с разной скоростью. Возможна реализация таких визуальных эффектов, как остановка текста на некоторое время, инверсия символов, уход изображения вверх или вниз. микропроцессор матричный светодиодный индикатор
- Основные технические данные
- Тип индикаторов - матричный светодиодный; Размер знакоместа - 10х7 точек; Число хранимых в памяти символов - не менее 2048; Число отображаемых знакомест - 10;Интерфейс связи с компьютером - RS-232;
- Источник питания - сеть 220В 50 Гц.
- 1. Обзор литературных источников
- Рассмотрим несколько схем реализации устройств “Бегущая строка” на контроллере. Первый вариант реализован на микропроцессоре Pic16f628 [2].
- 1.1 Бегущая строка на микропроцессоре Pic16f628
- Данное устройство воспроизводит текст на светодиодной матрице 8x 80 светодиодов, имеет память текста 128 символов, которые загружаются с компьютерной клавиатуры PS/2, подключенной прямо к бегущей строке.
- Устройство имеет все русские буквы заглавные и маленькие, а также цифры и прочие знаки, английских букв нет.
- Рисунок 1: схема “Бегущей строки” на микропроцессоре Pic16f628
- Микроконтроллер работает на частоте 20 мГц и управляет сдвиговыми регистрами 74HC595D, которые логическим уровнем 1 зажигает светодиодные матрицы строк, а дешифратор К555ИД7 или его полный аналог 74LS138 управляет через усилительные транзисторы 8-мю столбцами всех матриц.
- Матрицы подключаются к сдвиговым регистрам 74HC595D через резисторы, которые защищают от перегорания светодиодов, ограничивая ток. Микросхемы 74HC595D имеют 8 триггеров фиксации данных на выходах, соединенных с матрицей светодиодов и 8 сдвиговых триггеров, в которые через 14 вход загружают данные и с 9 выхода продолжают сдвиг дальше на следующие регистры цепочки из 10 штук. Для этого сдвига необходим такт, идущий от процессора на все входы 11- 74HC595D после каждого 80-того такта цепочка регистров продвигается до 80 триггера всех 74HC595D, после этого как загружена вся строка из 80 триггеров, подается еще один тип такта, уже на входы 12 всех 74HC595D, после чего загружаются за один такт 8 дополнительных триггеров фиксации данных на выходах, соединенных с матрицей светодиодов от сдвиговых триггеров, на всех 74HC595D за один такт, матрица при этом засвечивает одну полосу из 80 светодиодов и засветка эта происходит без изменений логических уровней даже тогда, когда загружаются сдвиговые регистры. Так перебираются по очереди 8 строк из 80 светодиодов с помощью дешифратора К555ИД7 с большой скоростью, что совершенно не видно глазу.
- Такой метод очень удобный и не снижает яркости бегущей строки по причине ухода программы процессора на выполнение других операций, не связанных с отображением. При включении с пустой памятью букв, отображает внизу полосу говорящую, что память не заполнена, после ввода хотя бы одной буквы, строка начинает свою работу перебирая строки матриц. Советую сильно не нагружать током матрицы низким сопротивлением, так как при включении с пустой памятью букв, матрицы непрерывно светится нижняя строка.
- Управление и ввод данных
- Когда нужно ввести заглавную букву, нужно нажать и отпустить левый Shift на клавиатуре, потом нажать нужную букву и на дисплее появится эта заглавная буква, с добавлением очередных букв табло будет передвигаться на один знак.После набора текста, нужно нажать клавишу левый Ctrl на клавиатуре, это будет говорить о законченном тексте, после которого строка пойдет на следующий круг.
- Если во время набора текста вы сделали ошибку, ввели не нужную букву, то нужно нажать клавишу BackSpace столько раз, сколько ввели не нужных букв, после этого нужно ввести правильные буквы, при этом на дисплее старые буквы не пропадают, они пропадут когда вы запустите строку и на следующем круге отображения их уже не будет.
- Для запуска работы устройства отображения бегущих букв нажать Enter. После команды Enter- запуска строки текст уже не изменяется для ввода новой информации, устройство нужно выключить и снова включить, тогда можно вести текст на место старого. Для ввода знаков (!@#$%:?) нужно нажать левый Shift и отпустить потом клавиши с цифрами 1234567 над буквами там они нарисованы - это чтобы вам не искать.Знак тире (-) просто нажав клавишу рядом с нулем. Для ввода точки или запятой нажимать клавишу рядом с буквой Ю, если запятая, то вначале Shift.
- 1.2 «Бегущая строка» на матричных светодиодных индикаторах
- Характеристики светодиодного матричного дисплея [3]:
- Формат матрицы 40Ч7 точек;
- Отображение времени, даты, внутренней и наружной температуры, текстовых сообщений;
- Автоматический переход с зимнего на летнее время и наоборот;
- Часы реального времени работают без внешнего питания более одной недели;
- Измерение температуры внутри помещения (0…+75) °С, точность ±0.5 °С;
- Измерение уличной температуры (-40…+75) °С, точность ±0.5 °С;
- Поддержка статических и динамических сообщений с различными эффектами;
- Полный набор символов кириллицы и специальных символов;
- Память для 10 сообщений, до 250 символов в каждом;
- Автоматическая регулировка яркости;
- ИК-пульт дистанционного управления для настройки сообщений;
- Напряжение питания: 12…24 В постоянного тока;
- Размер передней панели 305 Ч 69 мм.
- Устройство состоит из двух частей: блока управления и блока отображения. Две печатных платы соединяются друг с другом с помощью пары двухрядных разъемов и разделяются четырьмя втулками. Один из разъемов служит для передачи электрических сигналов, другой используется только как механический соединительный элемент.
- Основным компонентом устройства является микроконтроллер PIC18F252 (U9). Он управляет всеми функциями и осуществляет алгоритм управления светодиодной матрицей.
- Светодиоды соединены матрицей 40Ч7. Соединенные вместе катоды образуют столбцы матрицы, а аноды - строки. Матрица управляется динамически - строка за строкой. Светодиоды матриц переключаются специализированными микросхемами драйверов STP16CP05 (U101…U103) производства фирмы ST Microelectronics.
- Рисунок 2: «Бегущая строка» на матричных светодиодных индикаторах схема электрическая принципиальная
- Каждая из этих микросхем содержит 16-битный регистр сдвига с последовательным входом и параллельным выходом, и регистр-защелку с 16 выходами. Выходы этого регистра с открытым стоком позволяют подключать нагрузку с напряжением питания до 20 В. Постоянный ток выходов варьируется от 5 до 100 мА и регулируется внешним резистором (R115…R117). Три светодиодных драйвера соединены каскадно (один за другим) и управляются микроконтроллером по интерфейсу SPI. Микроконтроллер посылает 48-разрядное слово, загружая одну строку. 40 младших разрядов представляют собой состояние светодиодов строки (1-вкл., 0-выкл.). 7 старших разрядов служат для управления анодами через 7 транзисторных ключей (VT101…VT107). 40-й бит остается неиспользованным. Микроконтроллер посылает 48-битовое слово через каждую миллисекунду.
- За 7 циклов отображаются строки с первой по седьмую, затем идет 8-й дополнительный цикл, используемый для измерения температуры. Таким образом, частота обновления дисплея равна 125 Гц. Для регулировки яркости дисплея используются управляющие входы микросхем «разрешение выходов» (ОЕ). Каждый строчный цикл начинается с установки «лог. 0» на выводе OE (выходы разрешены). Длительность этого сигнала, который генерируется ШИМ модулем микроконтроллера, изменяется, в зависимости от желаемой яркости.
- Необходимо отметить, что номера столбцов и строк матрицы не соотносятся с соответствующими выводами микросхем (U101…U103). Это сделано для упрощения разводки печатных плат. Биты, соответствующие определенным светодиодам, формируются на программном уровне.
- Рисунок 3: «Бегущая строка» на матричных светодиодных индикаторах - блок отображения
- 1.3 Бегущая строка с графическим выводом информации
- Предлагаемая конструкция "бегущей строки" [4] может служить для рекламно-информационных, развлекательных и других целей. При разработке конструкции одной из задач ставилась максимальная универсальность: возможность применения табло с различным количеством сегментов, а также избавление от генератора стандартных символов (знакогенератора).
- Реализуемые функции:
- Возможность полной автономной работы без подключения к ПК
- Поддержка трехцветного табло
- Возможность коррекции выводимой информации при помощи компьютерной мыши, т.е. возможность рисовать изображения непосредственно.
- Загрузка графики и управление параметрами строки через COM порт RS232.
- Эффекты: 10 определяемых пользователем мест временного останова бегущей строки.
- Технические характеристики:
- Номинальный объем светодиодной матрицы (высота/длина):8х64
- Минимальный объем светодиодной матрицы: 1х1
- Максимальный объем светодиодной матрицы: 8х96
- Объем графического ЭСППЗУ, Кбайт:4 - 64
- Объем графических изображений, точек: 8х4096 - 8х65536
- Напряжение питания, вольт: 5
- Принципиальная схема блока контроллера (Рис. 4). Кварцевый резонатор ZQ1 подключен ко встроенному тактовому генератору контроллера DD1. Конденсаторы кварцевого генератора C1 и C2 могут незначительно, на +5 пФ, отличаться от указанных на схеме. Вход сброса MCLR (выв.1) подключен непосредственно на +5В, устойчивый сброс обеспечивает активизированный встроенный таймер сброса при включении питания контроллера. Кнопки управления SA1-SA4 подключены к порту_B контроллера и нагружены на встроенные "подтягивающие" резисторы. Мышь подключается к устройству посредством разъема XS1 PS/2 (MiniDIN-6) и обслуживается посредством управляющей программы контроллера. Если мышь использоваться не будет необходимо замкнуть контакты джампера J1. Для включения работы трехцветного табло (сдвиг строки будет осуществляться по два ряда одновременно) необходимо замкнуть контакты джампера J2. К выводам порта_C PC3 и PC4 подключена ЭСППЗУ графики DD2 с последовательным обменом по интерфейсу I2C посредством встроенного в контроллер модуля MSSP. Сигналы COM порта поступающие через разъем XS2 преобразуются в уровни ТТЛ формирователем на транзисторе VT1. ЖКИ дисплей через делители напряжения R6-R9 подключен к порту_A контроллера.
- Рисунок 4: блока контроллера схема принципиальная
- Принципиальная схема блока индикатора. На рис. 5 приведена схема управления светодиодной матрицей при помощи регистров сдвига. На микросхеме К555АП3 выполнен буферный усилитель-инвертор. Регистры КР1533ИР24 удобны тем, что имеют отдельный выход переноса со старшего разряда и широко распространены. Также возможно использование регистров К555ИР8. Микросхемы ТТЛ или особенно их вариант 74HC вполне способны в состоянии лог. 0 на выходе отдавать необходимый для одного светодиода ток в 20 мА, однако для повышения надежности схемы каждый выход регистров можно дополнить транзисторным ключом.
- Рисунок 5: блок индикатора схема принципиальная
- 2. Выбор и описание прототипов разрабатываемого устройства
- Предлагаемая конструкция "бегущей строки" (БС) [5] предназначена для рекламно-информационных, развлекательных и других подобных целей. Одним из требований, поставленных при ее разработке, была максимальная простота использования: текст сообщения готовится на компьютере, а затем быстро передается для отображения на табло БС.
- Основные технические данные
- Число столбцов(колонок) светодиодов .................96
- Число светодиодов в столбце(число рядов)................8
- Ширина символа, столбцов.........8
- Промежуток между символами, столбцов...................4
- Полная длина выводимой строки, символов, не более ......................59 000
- Направление перемещения текста......................справа налево
- Объем знакогенератора, символов..................2048
- Интерфейс.................RS-232
- Гальваническая развязка........есть
- Интервал рабочей температуры. °С ................-40...+50
- Рисунок 6: Внешний вид одного модуля БС
- Внешний вид одного модуля БС (всего их три), содержащего 32 столбца по восемь светодиодов в каждом, показан на фотоснимке рис.6. В зависимости от влагозащитных свойств корпуса и яркости примененных светодиодов БС можно устанавливать как в помещении, так и вне его, а также в транспортных средствах. Цвет и яркость свечения табло зависят от типа светодиодов.
- БС может работать от автомобильной аккумуляторной батареи или другого источника постоянного или переменного напряжения 9. .15 В. Потребляемый ток 0.5..3 А в зависимости от среднего тока светодиодов и выводимой надписи. Подготовка и загрузка в БС знакогенератора и выводимого текста производятся с помощью компьютера Разработанная для этого программе Stroka29 работает под управлением операционной системы Windows. О возможностях и особенностях этой программы можно узнать, выбрав в ее главном меню пункт "Справка-->Помощь".
- БС соединяют с СОМ-портом компьютера кабелем длиной до 100 м с разъемами DB-9M (к БС) и DB-9F (к ком-пькнеру). В кабеле достаточно двух проводов, соединяющих между собой соответственно выводы 3 и 5 разъемов. Можно использовать и стандартный модемный кабель (без перекрестных связей) Обмен информацией односторонний только от компьютера к БС со скоростью 1200 Бод, восемью информационными разрядами без контроля четности и одним стоповым разрядом. Столь низкая скорость передачи выбрана для того чтобы контроллер БС успевал записывать каждый принятый от компьютера байт в обладающую невысоким быстродействием энергонезависимую память.
- При первом включении БС память хранящая знакогенератор, заполнена кодами OxFF, что соответствует включению всех светодиодов во всех столбцах. Поэтому все табло светится. Чтобы начать работу, необходимо найти готовый файл знакогенератора или с помощью программы Stroka29 подготовить новый. Эта программа позволяет и переписать коды знакогенератора из файла в энергонезависимую память БС. Для этого достаточно при подключенной к компьютеру БС нажать в окне программы на кнопку "Передать во внешнее устройство". Тем же способом можно в любой момент заменить знакогенератор.
- В окне программы Stroka29 готовят и подлежащий выводу на табло текст. Эту операцию завершают нажатием на экранную кнопку "Загрузить". О приеме текста свидетельствует специфическое мигание табло. По завершении приема начнется его циклический вывод на табло.
- Передаваемый компьютером в БС блок информации всегда начинается последовательностью из 250 кодов 0xFF, за которой следует код типа информации (0xF1 -- текст, 0xF8 -- знакогенератор). Далее передаются от 1 до 60000 информационных байтов. Передача завершается кодовой последовательностью 0x08, OxFF, 0xF0. OxFF.
- Рисунок 7: Схема Табло “бегущей строки”
- Схема БС представлена на рис. 7. Она состоит из блока управления, трех модулей матрицы по 32x8=256 светодиодов в каждой и трех модулей 32-разрядных сдвиговых регистров. Если в полноразмерном табло на 96x8 светодиодов нет необходимости, число светодиодных матриц и сдвиговых регистров можно уменьшить.
- С помощью трансформатора Т1 и диодного моста VD1, установленного на теплоотводе с эффективной поверхностью 50 см2 получают необходимое для питания БС постоянное напряжение 12 В, сглаживающий конденсатор находится внутри блока управления. Сигналами, формируемыми этим блоком, поочередно включаются и выключаются ряды светодиодов. В каждом столбце матрицы катоды восьми светодиодов соединены вместе и через ограничительный резистор подключены к соответствующему выходу сдвигового регистра.
- Здесь были применены светодиоды L-05R2G531CH1-01, однако подойдут и другие. Следует лишь с учетом их максимального допустимого тока подобрать резисторы R1 -- R32 (и аналогичные в других модулях светодиодных матриц). При выборе светодиодов необходимо помнить о таком их параметре, как угол обзора. Желательно, чтобы он был не менее 90 град., а корпус светодиода -- матовым (диффузным), иначе текст будет трудно прочитать сбоку. Прозрачный корпус и малый угол обзора (15...30 град.) создают впечатление, что символы в строке при перемещении "подпрыгивают". Это результат неточной юстировки кристалла светодиода относительно его линзы на заводе-изготовителе.
- Сформировав последовательный код, определяющий состояние светодиодов первого ряда, блок управления загружает его, сопровождая импульсами синхронизации, в сдвиговый регистр По окончании загрузки аноды светодиодов первого ряда с помощью расположенного в блоке управления электронною ключа на некоторое время соединяются с источником питания -- ряд светится в соответствии с загруженным в регистры кодом. Этот процесс повторяется для каждого ряда.
- Хотя изображение формируется построчно, при частоте "развертки" около 50 Гц зритель не ощущает мигания. Недостаток состоит лишь в том, что любой светодиод матрицы не может оставаться включенным более 1/8 общего времени, поэтому средняя яркость табло в восемь раз меньше возможной при статическом управлении светодиодами.
- Для подключения рядов и столбцов светодиодов к блоку управления и сдвиговому регистру на плате установлены 12 четырехконтактных штыревых разъемов. Кроме того, по периферии платы имеются дублирующие эти разъемы контактные площадки: слева и справа -- соединенные с рядами светодиодов. сверху и снизу -- с их столбцами. Это дает возможность удобно соединять между собой несколько светодиодных матриц.
- Схема блока управления показана на рис. 8. Его основной элемент -- микроконтроллер DD1 (PIC16F628A-I/P), тактовая частота которого задана кварцевым резонатором ZQ1. Емкость конденсаторов С2 и С6 может незначительно отличаться от указанной на схеме. Конфигурация микроконтроллера выбрана такой, что внешний сигнал начальной установки (MCLR) ему не требуется. При включении питания она производится внутренними средствами микроконтроллера, а сторожевой таймер (WDT) перезапускает программу в случае "зависания".
- В памяти микроконтроллера организован образ табло -- массив из 96 восьмиразрядных ячеек памяти (это максимальное число светодиодных столбцов). Начиная вывод очередного кадра информации, программа устанавливает высокий логический уровень на входе Е (выводе 6) демультиплексора DD2 (рис. 9), закрывая таким образом транзисторы VJ1 --\ГГ8 и гася все табло. Далее она извлекает из первого байта образа табло нулевой (младший) разряд, выдает его значение на линию порта RB0 и формирует синхронизирующий импульс на линии порта RB3. Эта операция повторяется с нулевыми разрядами всех 96 байтов образа табло. Затем на выходах RAO--RA2 формируется код, соответствующий соединению входа IN микросхемы DD2 с выходом 5. При установке низкого уровня на ее входе 6 уровень напряжения на выходе 5 станет высоким, что откроет соответствующий составной транзистор в микросхеме DD3 и полевой транзистор VT1. Этим будет подано напряжение питания на аноды первого ряда светодиодов.
- Рисунок 8: Блока управления “бегущей строки” схема электрическая принципиальная
- После необходимой выдержки операция повторяется с первыми разрядами байтов образа табло и вторым рядом его светодиодов, а затем с остальными разрядами (до старшего седьмого) и рядами (до восьмого).
- Завершив вывод всего кадра, программа сдвигает образ памяти на один байт, а на освободившееся место записывает информацию о состоянии светодиодов столбца, который должен появиться в правой части табло в следующем кадре. Она будет взята из массива знакогенератора. Исходными данными послужат код выводимого символа и номер очередного столбца его изображения. Этот номер с каждым кадром программа увеличивает на единицу. Достигнув последнего столбца изображения символа, счетчик столбцов обнуляется. Начинается вывод следующего символа сообщения.
- Описанную процедуру программа повторяет, пока не будет достигнут конец загруженной из компьютера текстовой строки. После этого ее вывод начинается с начала.
- Формирователь на оптроне U1 преобразует уровни сигналов СОМ-порта, поступающих из компьютера через разъем XS1, в ТТЛ-уровни, необходимые для микроконтроллера. Если нет необходимости в гальванической развязке БС и компьютера, от оптрона можно отказаться, заменив его фототранзистор обычным транзистором (например, серии КТ315). В этом случае контакт 5 разъема XS1 соединяют с эмиттером транзистора, а контакт 3 через резистор R1 -- с его базой. Этот резистор заменяют другим сопротивлением до 30 кОм.
- Микросхема энергонезависимой памяти DSI связана с микроконтроллером по интерфейсу 1С. Микросхему АТ24С512 информационной емкостью 64 Кбайт можно заменить на АТ24С64 в восемь раз меньшей емкости. Поскольку в этом случае максимальная длина выводимой строки уменьшится до 6140 символов, при ее загрузке с помощью программы Stroka29 необходимо в меню "Опции" отметить соответствующий пункт.
- По командам микроконтроллера селектор-мультиплексор DD2 (микросхема К561КП2, которую можно заменить на CD4051) и набор транзисторных переключателей с открытым коллектором DD3 (TD62083 или ULN2803AP) формируют на затворах полевых транзисторов VT1--VT8 импульсы, поочередно открывающие эти транзисторы и включающие таким образом ряды светодиодов на табло.
- С помощью стабилизатора DA1 получают напряжение 5 В для питания микросхем не только блока управления, но и сдвиговых регистров, построенных по схеме на рис. 9. Микросхемы К561ИР2 в модуле регистров можно заменить на CD4015, а TD62083. как и в блоке управления, на ULN2803AP В крайнем случае вместо микросхем TD62083 подойдут и ULN2004, но их потребуется больше, так как содержат они не по восемь, а только по семь транзисторных переключателей в корпусе.
- Рисунок 9: Схема подключения регистров сдвига
- Недостатками приведенного прототипа являются высокое энергопотребление, отсутствие возможности подключения к сети 220В 50Гц, так же к ним можно отнести размер одиночного символа 8x8. За счет использования в разрабатываемом устройстве готовых диодных матриц, с номинальным токопотреблением до 40 мА, общее потребление тока табло составит не более 400 мА, в сравнении с прототипам 3 А. В разрабатываемом устройстве также предусмотрена возможность питания от сети 220В 50Гц, а размер одиночного символа составляет 10x7.
- 3. Разработка структурной схемы устройства
- Для реализации устройства бегущая строка требуется прежде всего отображение информации для визуального восприятия, что будет производиться с помощью блока индикации (БИ), в нем в качестве устройства вывода информации будет использован набор индикаторов с размерам знакоместа 10x7 и числом отображаемых знакомест 10, как предусмотрено заданием к курсовому проектированию. Способ индикации текста на табло динамический, т.е. в определенные моменты времени будет индицироваться один из 10-ти рядов светодиодов, позиции зажженных столбцов светодиодов будут определяться регистрами сдвига, подключенными по одному каждому из знакомест. Между собой регистры сдвига подключаются последовательно, выход предыдущего на вход последующего, ко входу первого подключен управляющий вывод микропроцессора, к каждому из регистров параллельно подключен тактовый сигнал заведенный от второго управляющего вывода микропроцессора.
- Контроль над формированием текста на табло блока индикации производится управляющим устройством (УУ), основной частью которого является микропроцессор. Блок УУ будет попеременно зажигать каждый из 10-ти рядов и в то же время заносить нужную информацию в регистры сдвига, таким образом формируя картинку, в частном случае заданный текст. Текст будет храниться в оперативной памяти (ОЗУ) микропроцессора в виде кода символов в кодировке ASCII, по прочтении символа из ОЗУ вектор выполнения программы будет смещаться на соответствующую строку таблицы символов записанной в памяти программ, и по данным этой строки сформируется символ на табло. Для реализации эффекта бегущей строки указатель на начало строки в ОЗУ, будет увеличиваться на 1 (инкрементироваться) каждые 0,5 с, таким образом будет осуществляться посимвольный сдвиг читаемого текста из памяти, а на табло будет заметен его бег. Для создания эффекта цикличного бега текста вводится метка конца текста, по обнаружении которой микропроцессор будет обнулять указатель на начало строки.
- Связь с компьютером осуществляется по интерфейсу rs232, для корректного преобразования уровней сигнала с порта USART микропроцессор на COM-порт ПК предусмотрен блок связи (БС). Данные в виде символов в кодировке ASCII поступают с ПК и генерируют прерывания по приему USART, в подпрограмме обработки прерывания принятые данные записываются в ОЗУ, по окончании их записи формируется метка конца текста.
- Для питания схемы используется блок питания (БП), который понижает входное напряжение с 220В до 5В,а так же преобразует переменное напряжение 50 Гц в постоянное.
- В состав проектируемого устройства войдут следующие блоки:
- 1. УУ - устройство управления
- 2. БИ - блок индикации
- 3. БС - блок связи
- 4. БП - блок питания
- 5. - блок хранения данных в памяти EEPROM
- 4. Разработка принципиальной схемы устройства
- В соответствии со структурной схемой разработаем принципиальную схему, выберем компоненты для каждого из введенного блока. В качестве устройства управления выберем микропроцессор фирмы AVR удовлетворяющий следующим требованиям: количество портов ввода/вывода должно позволять 10 рядов табло (блок индикации), 2 вывода DATA и CLK для записи данных в регистры сдвига, 2 вывода RX и TX для связи с компьютером по интерфейсу USART (rs232) - всего 14 выводов. В архитектуре микропроцессора должен присутствовать интерфейс USART (rs232) для связи с компьютером. Объём памяти программ должен позволять хранить картинки 256 символов в соответствии с кодировкой ASCII, для прорисовки каждого символа размерностью 10x7 отводиться 10 байт памяти, итого под хранение всей таблицы требуется 2560 байт, с учетом программы общий объём памяти программ должен быть не менее 3882 байта. Для хранения 2048 байт текста в кодировке ASCII нужно 2048 байт памяти ОЗУ.
- Выдвинутым требованием соответствует микропроцессор ATmega32 [6].
- Рисунок 10: Микропроцессор ATmega32
- Технические параметры микропроцессора ATMega32[7]:
- - 131 исполняемых команд, большинство за один машинный такт
- - 32 рабочих регистра общего назначения
- - полностью статический режим работы
- - производительность до 16 MIPS при 16 МГц
- - встроенный 2-х тактовый умножитель
- Энергонезависимая память программ и данных
- - 32К байт внутрисистемно самопрограммируемой FLASH памяти с количеством циклов перепрограммирования до 10 000.
- - Опционно загрузочная область памяти с независимыми ключевыми битами, внутрисистемное программирование встроенной загрузочной программой, правильное чтение в процессе записи.
- - 1024 байт EEPROM с допустимым количеством циклов стирания записи до 100 000.
- - 2К байт внутренней SRAM
- - программируемый ключ защиты программ
- JTAG (IEEE1149.1 совместимый) интерфейс
- - Сканирование памяти в соответствии с JTAG стандартом
- - Встроенная поддержка отладчика
- - Программирование FLASH, EEPROM, охранных и ключевых бит через JTAG интерфейс
- Периферийные функции
- - два 8-битных таймера/счётчика с программируемым предделителем и режимом сравнения
- - один 16-битный таймер/счётчик с программируемым предделителем, режимом сравнения и захвата
- - счётчик реального времени с программируемым генератором
- - четыре ШИМ генератора
- - 8-и канальный, 10-и битный АЦП
- - байт- ориентированный, двухпроводный интерфейс
- - программируемый USART
- - Master/Slave SPI последовательный интерфейс
- - Шесть экономичных режимов: Idle, подавления шумов АЦП, экономичный, режим Выкл. , режим ожидания и режим расширенного ожидания.
- 32 программируемых вывода вход-выход и 1 вход
- 40 выводной корпус PDIP, 44 выводной корпус TQFP, и 44 контактный MLF
- Напряжение питания:
- 4.5 В до 5.5 В для Atmega32
- Тактовая частота:
- 0-16 МГц Atmega32
- Для изначального функционирования микропроцессора DD1 к его выводам VCC,AVCC,GND нужно подключить питание, кварцевый резонатор ZQ1 нужно подключить к выводам XTAL1,XTAL2 и через конденсаторы С1,С2 (15 пФ) на землю, так же вывод RESET должен быть подтянут к питанию. Так как максимальное потребление тока одной светодиодной матрицы 60 мА [8], а в устройстве используется 10 таких матриц HG1-HG10, то общее потребление составит около 600 мА, а для управления включением одного ряда потребуется не менее 60 мА, максимальный ток через один вывод микропроцессора составляет 15 мА, следовательно, для управления включения рядов табло нужно подключить 10 транзисторных ключей VT1-VT10. Резисторы R1-R10 служат для ограничения напряжения подаваемого на базу транзисторных ключей с выводов микропроцессора. Для включения нужных рядов светодиодных матриц используются сдвиговые регистры DD3-DD13 (74LS164[8]).
- Рисунок 11: Регистр сдвига 74LS164
- 74LS164 - 8-ми разрядный сдвиговый регистр с последовательным входом и параллельным выходом. Последовательные данные вводятся через элемент И с двумя входами. В микросхеме предусмотрен вывод сброса (MR), если установить его в низкий уровень, регистр обнулится, работа вывода сброса не зависит от тактового сигнала.
- Характеристики:
- Частота тактового сигнала до 35 МГц;
- Асинхронный сброс;
- Последовательная шина входных данных;
- Полная синхронизация передаваемых данных;
- Напряжение питания от 3,5В до 5,5В;
- Максимальный ток 100 мА
- Для связи разработанной схемы с компьютером по интерфейсу rs232 требуется подключить выводам микропроцессора RX, TX преобразователь MAX232 [9].
- MAX232 -- интегральная схема, преобразующая сигналы последовательного порта RS-232 в сигналы, пригодные для использования в цифровых схемах на базе ТТЛ или КМОП технологий. MAX232 работает приемопередатчиком и преобразует сигналы RX, TX, CTS и RTS.
- Функциональность и цоколевка микросхемы стала стандартом де-факто и ее аналоги (с другой маркировкой) выпускаются множеством производителей полупроводников.
- Схема обеспечивает уровень выходного напряжения, используемый в RS-232 (приблизительно ± 7.5 В), преобразуя входное напряжение + 5 В при помощи внутреннего зарядового насоса на внешних конденсаторах (С3-С6 ). Это упрощает реализацию RS-232 в устройствах, работающих на напряжениях от 0 до + 5 В, так как не требуется усложнять источник питания только для того, чтобы использовать RS-232.
- Входное напряжение от RS-232, которое может достигать ± 25 В, понижается до стандартных 5 В, используемых в транзисторно-транзисторной логике. Входы имеют средний порог 1.3 В и средний гистерезис 0.5 В.
- Модификация MAX232A обратно совместима с MAX232, но может работать на более высоких скоростях (см. Бод), и использовать внешние конденсаторы меньшей емкости -- 0.1 мF вместо конденсаторов на 1.0 мF, используемых с оригинальной схемой.
- Последняя модификация -- MAX3232 -- также обратно совместима с предыдущими, но работает в диапазоне напряжений от 3 до 5.5В.
- По техническому заданию источник питания имеет переменное напряжение 220В с частотой 50Гц, все блоки устройства запитываются постоянным напряжением 5В. Для уменьшения и выравнивания напряжения служит блок питания (БП). Блок питания состоит из понижающего трансформатора (T1), который уменьшает входное напряжения до 12В, диодного моста (набор диодов собранных по мостовой схеме VD1-VD4), преобразователя напряжения L7805CV [10]. Для фильтрации низкочастотных гармоник служат конденсаторы C7,C9(47мкФ), конденсатор C8(0,1 мкФ) отфильтровывает высокочастотные гармоники.
- L7805CV -- линейный стабилизатор c фиксированным напряжением положительной полярности 5V и выходным током 1A. На вход линейного стабилизатора подаётся не стабилизированное напряжение 0 до 36V. Внешние радиокомпоненты используются для ускорения переходных процессов. L7805CV выпускается в прочном корпусе TO-220. Данные микросхемы нашли широкое применение в источниках питания логических систем, в радиоэлектронных устройствах, и измерительной технике.
- Особенности:
- Максимальный выходной ток: 1.5A;
- Не требуются внешние компоненты;
- Внутренняя термозащита, ограничение тока;
- Защита выходного транзистора от КЗ;
- Номинальный выходной: 1A
- Максимальное входное напряжение: 40V;
- Выходное напряжение: 5V;
- Корпус: TO220.
- Рисунок 12: Линейный стабилизатор напряжения L7805CV
- 5. Разработка программного обеспечения
- .include "m32def.inc"//подключить библиотеку
- .defTemp=R16//присвоить имя регистру r16
- .org 0
- rjmp reset//перейти к началу программы
- //++++++++++ таблица вектаров прерывания ++++++++++++++++++++++++++++++++++++++++++
- .org 2nop//rjmp EXT_INT0;
- .org 4nop//rjmp EXT_INT1;
- .org 6nop//rjmp EXT_INT2;
- .org 8nop//rjmp TIM2_COMP;
- .org 10nop//rjmp TIM2_OVF;
- .org 12nop//rjmp TIM1_CAPT;
- .org 14nop//rjmp TIM1_COMPA;
- .org 16nop//rjmp TIM1_COMPB
- .org 18nop//rjmp TIM1_OVF
- .org 20nop//rjmp TIM0_COMP;
- .org 22nop//rjmp TIM0_OVF;
- .org 24nop//rjmp SPI_STC;
- .org 26rjmp USART_RXC
- .org 28nop//rjmp USART_UDRE;
- .org 30nop//rjmp USART_TXC;
- .org 32nop//rjmp ADC;
- .org 34nop//rjmp EE_RDY;
- .org 36nop//rjmp ANA_COMP;
- .org 38nop//rjmp TWI;
- .org 40nop//rjmp SPM_RDY;
- //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- reset:
- ldi r19,high(RAMEND)//определить верхний адрес стека
- out sph,r19//установить верхний адрес стека
- ldi r19,low(RAMEND)//определить нижний адрес стека
- out spl,r19//установить нижний адрес стека
- ldi r16,0b11111111
- out ddrb,r16//установить выводы порта В как цифровые выходы
- ldi r16,0b11111111
- out ddrc,r16//установить выводы порта В как цифровые выходы
- ldi r16,0b11111100
- out ddrd,r16//установить все выводы порта D как цифровые выходы
- ///////////////////////////////////////////////////////////////////////////////////
- ldi xl,0x0a//установить младший разряд для чтения из блока памяти текста
- ldi xh,0x01//установить старший разряд для чтения из блока памяти текста
- ldir16,V//запистать символ V в память данных
- stx+,r16//записать и инкрементировать байт в память данных
- ldir16,V//запистать символ V в память данных
- stx+,r16//записать и инкрементировать байт в память данных
- ldir16,E//запистать символ E в память данных
- stx+,r16//записать и инкрементировать байт в память данных
- ldir16,D//запистать символ D в память данных
- stx+,r16//записать и инкрементировать байт в память данных
- ldir16,I//запистать символ I в память данных
- stx+,r16//записать и инкрементировать байт в память данных
- ldir16,T//запистать символ T в память данных
- stx+,r16//записать и инкрементировать байт в память данных
- ldir16,E//запистать символ T в память данных
- stx+,r16//записать и инкрементировать байт в память данных
- ldir16,0xff//запистать символ " " в память данных
- stx+,r16//записать и инкрементировать байт в память данных
- ldir16,S//запистать символ S в память данных
- stx+,r16//записать и инкрементировать байт в память данных
- ldir16,T//запистать символ T в память данных
- stx+,r16//записать и инкрементировать байт в память данных
- ldir16,R//запистать символ R в память данных
- stx+,r16//записать и инкрементировать байт в память данных
- ldir16,O//запистать символ O в память данных
- stx+,r16//записать и инкрементировать байт в память данных
- ldir16,K//запистать символ K в память данных
- stx+,r16//записать и инкрементировать байт в память данных
- ldir16,U//запистать символ U в память данных
- stx+,r16//записать и инкрементировать байт в память данных
- ldir16,0X2e//записать знак окончания строки в память данных
- stx+,r16//записать и инкрементировать байт в память данных
- rcall USART_Init//иниациализация USART
- ldi r24,0//сбросить указатель на читаемый адрес в памяти данных
- ldi r23,0//сбросить указатель на читаемую строку
- ldi r21,0//сбросить
- rjmpcyklle_2//отображение текущей стороки с заданой задержкой
- cyklle:
- inc r23//инкриментировать указателя на читаемую строку
- ldi xl,0x00//установить младший разряд для чтения из блока памяти текста
- ldi xh,0x01//установить старший разряд для чтения из блока памяти текста
- add xl,r23
- ldr0,x+//прочитать первый символ из блока памяти текста
- mov r16,r0//занести в буфер первый символ
- subi r16,0x2e//проверка конца текста
- brneprodolj_2//проверка конца текста
- ldi r23,0//сброс указателя на читаемую строку
- prodolj_2:
- ldr1,x+//прочитать 2-ой символ из блока памяти текста
- ldr2,x+//прочитать 3-й символ из блока памяти текста
- ldr3,x+//прочитать 4-ый символ из блока памяти текста
- ldr4,x+//прочитать 5-ый символ из блока памяти текста
- ldr5,x+//прочитать 6-ой символ из блока памяти текста
- ldr6,x+//прочитать 7-ой символ из блока памяти текста
- ldr7,x+//прочитать 8-ой символ из блока памяти текста
- ldr8,x+//прочитать 9-ый символ из блока памяти текста
- ldr9,x+//прочитать 10-ый символ из блока памяти текста
- ldi r21,0//сбросить счетчик количества загрузак символов
- rjmpcyklle_2
- rjmp cyklle//перейти к началу цикла
- cyklle_2:
- inc r21//инкриментировать счетчик количества загрузак символов
- mov r22,r21//передать в буфер счетчик количества загрузак символов
- subi r22,0x05//сравнить с константой счетчик количества загрузак символов
- BRCScyklle_21//переход если нет переноса
- rjmp cyklle//перейти в в основной цикл
- cyklle_21:
- rcall Form_string//вызвать подкпрограмму формирования строки
- rjmp cyklle_2
- USART_Init:
- // инициализации аппаратного UART, Baud rate 9600 F_CPU 16МГц
- ldi r17, 0//задать старший регистор скорости USART
- ldi r16, 6//задать младший регистор скорости USART 9600
- out UBRRH, r17//задать старший регистор скорости USART
- out UBRRL, r16//задать младший регистор скорости USART 9600
- ldi r16, (1<<RXCIE)|(1<<RXEN)|(1<<TXEN)//разрешить прием, передачу, прерывание по приему USART
- out UCSRB, r16//разрешить прием, передачу, прерывание по приему USART
- ldi r16, (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0) //длина байта 8 бит, 1 стоповый бит
- out UCSRC, r16 //длина байта 8 бит, 1 стоповый бит
- sei//разрешить все немаскированые прерывания
- ret
- ;--------------------------------------------------------------
- USART_Transmit:
- sbisUCSRA, UDRE//ожидание передачи байта данных
- rjmpUSART_Transmit//перейти на начало подпрограммы
- outUDR, r16//запись в буфер USART
- ret
- ;--------------------------------------------------------------
- USART_Receive:
- sbis UCSRA, RXC//ожидание приема байта данных
- rjmp USART_Receive//перейти на начало подпрограммы
- in r16, UDR//чтение из буфера приема USART в регистр r16
- ret
- USART_RXC:
- rcall USART_Receive//перейти на подпрограмму приема USART
- inc r24//инкриментировать указатель на читаемую строку
- ldi xl,0x18//установить младший разряд для чтения из блока памяти текста
- ldi xh,0x01//установить старший разряд для чтения из блока памяти текста
- add xl,r24//увелить адрес памяти данных на величену указателя
- stx+,r16//записать принятый по USART символ по адресу x в память программ
- mov r17,r16//копировать принятый символ в буфер
- subi r17,0X08//проверка принятия кода delete
- brneprodolj_1//перейти на строку prodolj_1 если код delete не принят
- dec r24//декрементировать указатель на текущий символ в памяти данных
- dec r24//декрементировать указатель на текущий символ в памяти данных
- prodolj_1:
- ldi r16,0x2e//записать знак окончания строки в регистр r16
- stx+,r16//записать знак окончания строки по адресу x в память программ
- reti
- /////////////////////////////////////////////////////////////////////////////////////////////////////////
- indic_simvola:
- ldi r19,0//сбросить счетчик сдвинутого бита
- shift_sing:
- sbi portb,1//установить вывод 1 порта B в логическую 1
- sbrs r18,0//пропустить след операцию, если 0-ой бит рег r18 равен 1
- cbi portb,1//сбросить вывод 1 порта B в лог 0
- nop//нет операции
- sbi portb,0//установить вывод 0 порта B в логическую 1
- nop//нет операции
- nop//нет операции
- cbi portb,0//сбросить вывод 0 порта B в лог 0
- lsr r18//сдвинуть содержимое рег r18 в право
- inc r19//инкриментировать счетчик сдвинутого бита
- cpi r19,7//сравнить счетчик
- brlo shift_sing//переход по меньше
- ret
- ////////////////////////////////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////////////////////
- Form_string:
- ldi r20,0//строка 1
- mov Temp,r9//символ 10
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,0//строка 1
- mov Temp,r8//символ 9
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,0//строка 1
- mov Temp,r7//символ 8
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,0//строка 1
- mov Temp,r6//символ 7
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,0//строка 1
- mov Temp,r5//символ 6
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,0//строка 1
- mov Temp,r4//символ 5
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,0//строка 1
- mov Temp,r3//символ 4
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,0//строка 1
- mov Temp,r2//символ 3
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,0//строка 1
- mov Temp,r1//символ 2
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,0//строка 1
- mov Temp,r0//символ 1
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r16,0b00000001//включить первую строку светодиодного табло
- out portc,r16//включить первую строку светодиодного табло
- rcall delay_1ms//перейти на подпрограмму задержки на 1 мс
- ldi r16,0b00000000//выключить все строки
- out portc,r16//выключить все строки
- ldi r20,1//строка 2
- mov Temp,r9//символ 10
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,1//строка 2
- mov Temp,r8//символ 9
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,1//строка 2
- mov Temp,r7//символ 8
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,1//строка 2
- mov Temp,r6//символ 7
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,1//строка 2
- mov Temp,r5//символ 6
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,1//строка 2
- mov Temp,r4//символ 5
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,1//строка 2
- mov Temp,r3//символ 4
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,1//строка 2
- mov Temp,r2//символ 3
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,1//строка 2
- mov Temp,r1//символ 2
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,1//строка 2
- mov Temp,r0//символ 1
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r16,0b00000010//включить 2 строку светодиодного табло
- out portc,r16//включить 2 строку светодиодного табло
- rcall delay_1ms//перейти на подпрограмму задержки на 1 мс
- ldi r16,0b00000000//выключить все строки
- out portc,r16//выключить все строки
- ldi r20,2//строка 3
- mov Temp,r9//символ 10
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,2//строка 3
- mov Temp,r8//символ 9
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,2//строка 3
- mov Temp,r7//символ 8
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,2//строка 3
- mov Temp,r6//символ 7
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,2//строка 3
- mov Temp,r5//символ 6
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,2//строка 3
- mov Temp,r4//символ 5
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,2//строка 3
- mov Temp,r3//символ 4
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,2//строка 3
- mov Temp,r2//символ 3
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,2//строка 3
- mov Temp,r1//символ 2
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,2//строка 3
- mov Temp,r0//символ 1
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r16,0b00000100//включить 3 строку светодиодного табло
- out portc,r16//включить 3 строку светодиодного табло
- rcall delay_1ms//перейти на подпрограмму задержки на 1 мс
- ldi r16,0b00000000//выключить все строки
- out portc,r16//выключить все строки
- ldi r20,3//строка 4
- mov Temp,r9//символ 10
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,3//строка 4
- mov Temp,r8//символ 9
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,3//строка 4
- mov Temp,r7//символ 8
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,3//строка 4
- mov Temp,r6//символ 7
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,3//строка 4
- mov Temp,r5//символ 6
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,3//строка 4
- mov Temp,r4//символ 5
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,3//строка 4
- mov Temp,r3//символ 4
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,3//строка 4
- mov Temp,r2//символ 3
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,3//строка 4
- mov Temp,r1//символ 2
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,3//строка 4
- mov Temp,r0//символ 1
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r16,0b00001000//включить 4 строку светодиодного табло
- out portc,r16//включить 4 строку светодиодного табло
- rcall delay_1ms//перейти на подпрограмму задержки на 1 мс
- ldi r16,0b00000000//выключить все строки
- out portc,r16//выключить все строки
- ldi r20,4//строка 5
- mov Temp,r9//символ 10
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,4//строка 5
- mov Temp,r8//символ 9
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,4//строка 5
- mov Temp,r7//символ 8
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,4//строка 5
- mov Temp,r6//символ 7
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,4//строка 5
- mov Temp,r5//символ 6
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,4//строка 5
- mov Temp,r4//символ 5
- rcall read_TABL_symbol
- rcall indic_simvola
- ldi r20,4//строка 5
- mov Temp,r3//символ 4
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,4//строка 5
- mov Temp,r2//символ 3
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,4//строка 5
- mov Temp,r1//символ 2
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r20,4//строка 5
- mov Temp,r0//символ 1
- rcall read_TABL_symbol//перейти на подпрограмму чтения символа из таблицы
- rcall indic_simvola//перейти на подпрограмму индикации символа
- ldi r16,0b00010000//включить 5 строку светодиодного табло
- out portc,r16//включить 5 строку светодиодного табло
- rcall delay_1ms//перейти на подпрограмму задержки на 1 мс ...
Подобные документы
Основные типы микроконтроллеров. Разработка структурной схемы прибора. Работа матричного индикатора HCMS-2000. Разработка принципиальной схемы. Расчет режимов элементов. Разработка алгоритма программы. Последовательный интерфейс обмена данными.
курсовая работа [650,6 K], добавлен 12.01.2016Устройство и принцип работы лампы бегущей волны (ЛБВ). Расчет ее электрических и геометрических параметров по схеме. Общий принцип работы ЛБВ, описание технологических процессов и алгоритм проведения расчетов при изготовлении коллекторного узла лампы.
курсовая работа [1,9 M], добавлен 05.06.2011Расчет характеристик антенны бегущей волны (антенны Бевереджа), используемой в КВ диапазоне. Работа антенны бегущей волны, ее зависимость от качества заземления. Схема подключения "земляных" проводов. Конструктивное выполнение антенны, ее нагрузка.
реферат [183,5 K], добавлен 17.04.2011Разработка структурной схемы устройства. Изучение принципиальной электрической схемы устройства с описанием назначения каждого элемента. Характеристика программного обеспечения: секции деклараций, инициализации микропроцессора и основного цикла.
курсовая работа [260,3 K], добавлен 14.11.2017Понятие и классификация, типы широкополосных приемных устройств, их структура и функциональные особенности. Разработка и описание, элементы структурной, функциональной и принципиальной схемы устройства, особенности его конструктивного исполнения.
дипломная работа [2,8 M], добавлен 11.02.2013Выбор методов проектирования устройства обработки и передачи информации. Разработка алгоритма операций для обработки информации, структурной схемы устройства. Временная диаграмма управляющих сигналов. Элементная база для разработки принципиальной схемы.
курсовая работа [1,8 M], добавлен 16.08.2012Разработка структурной функциональной схемы устройства, его аппаратного обеспечения: выбор микроконтроллера, внешней памяти программ, устройства индикации, IGBT транзистора и драйвера IGBT, стабилизатора напряжения. Разработка программного обеспечения.
курсовая работа [495,1 K], добавлен 23.09.2011Разработка системы считывания данных с пяти четырехбитных датчиков. Проектирование структурной схемы микроконтроллера, схемы электрической принципиальной, блок-схемы работы программного обеспечения устройства. Разработка алгоритма основной программы.
контрольная работа [275,4 K], добавлен 08.01.2014Разработка структурной схемы электронного устройства "баскетбольный таймер" с диапазоном 10 минут. Составление варианта реализации электрической принципиальной схемы устройства на интегральных микросхемах. Описание схемы работы таймера, его спецификация.
курсовая работа [1,7 M], добавлен 22.12.2015Изучение устройства автомата уличного освещения и его технических параметров. Разработка структурной схемы выключателя, описание принципиальной схемы устройства. Обзор методов настройки и регулировки устройства с целью его максимальной работоспособности.
курсовая работа [752,7 K], добавлен 28.01.2021Классификация цифровых измерительных приборов, разработка структурной схемы устройства измерения временных величин сигналов. Описание базового микроконтроллера и программного обеспечения. Аппаратно-программные средства контроля и диагностики устройства.
дипломная работа [647,7 K], добавлен 20.10.2010Технология сквозного проектирования. Разработка принципиальной электронной схемы устройства. Обоснование выбора цифровых электронных компонентов. Трёхмерное моделирование: разработка модели корпуса, 3D-печать. Разработка программы микроконтроллера.
дипломная работа [1,2 M], добавлен 22.08.2017Развитие и применение микропроцессоров как одно из направлений научно-технического прогресса. Разработка структурной и принципиальной схемы разрабатываемого устройства, анализ функциональности. Алгоритм работы управляющей программы: работа и требования.
курсовая работа [459,4 K], добавлен 11.12.2015Особенности профиля Smart Energy стека протоколов ZigBee. Обзор современных IPS дисплеев. Технология разработки программного обеспечения системы. Создание функциональной и электрической принципиальной схем устройства, описание микроконтроллера и блоков.
дипломная работа [3,4 M], добавлен 10.01.2013Особенности проектирования микропроцессорного устройства "Цифровой осциллограф". Выбор микроконтроллера, описание периферийных устройств. Разработка принципиальной схемы устройства и программы для микроконтроллера, осуществляющей все функции устройства.
курсовая работа [923,5 K], добавлен 24.12.2012Описание функциональной схемы цифрового устройства для реализации микроопераций. Выбор элементной базы для построения принципиальной электрической схемы цифрового устройства. Разработка и описание алгоритма умножения, сложения, логической операции.
курсовая работа [684,0 K], добавлен 28.05.2013Методика и основные этапы разработки схемы усилителя низкой частоты с заданными в техническом задании параметрами. Формирование и синтез структурной схемы. Разработка и расчет принципиальной схемы. Анализ данного спроектированного устройства на ЭВМ.
контрольная работа [122,8 K], добавлен 09.10.2010Обзор аналогов изделия. Описание структурной схемы. Описание схемы электрической принципиальной. Разработка и расчет узлов схемы электрической принципиальной. Обоснование выбора элементов схемы. Расчет печатной платы. Тепловой расчет.
дипломная работа [622,7 K], добавлен 14.06.2006Значение анемометра как метеорологического устройства, применение его для измерения и определения скорости ветра. Разработка функциональной схемы устройства. Выбор элементов и их статический расчет. Разработка принципиальной схемы. Описание конструкции.
контрольная работа [670,6 K], добавлен 16.09.2017Разработка и расчет структурной схемы радиоприемного устройства. Расчет принципиальной схемы приемника, Y-параметров МС 174ПС1, входной цепи и колебательной системы. Метод обеспечения перестройки по частоте. Конструктивная разработка УРЧ и смесителя.
курсовая работа [508,4 K], добавлен 04.03.2011