|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Меню:
Главная
Форум
Литература: Программирование и ремонт Импульсные блоки питания Неисправности и замена Радиоэлектронная аппаратура Микросхема в ТА Рубрикатор ТА Кабельные линии Обмотки и изоляция Радиоаппаратура Гибкие диски часть 2 часть 3 часть 4 часть 5 Ремонт компьютера часть 2 Аналитика: Монтаж Справочник Электроника Мощные высокочастотные транзисторы 200 микросхем Полупроводники ч.1 Часть 2 Алгоритмические проблемы 500 микросхем 500 микросхем Сортировка и поиск Монады Передача сигнала Электроника Прием сигнала Телевидиние Проектирование Эвм Оптимизация Автомобильная электроника Поляковтрансиверы Форт Тензодатчик Силовые полевые транзисторы Распределение частот Резисторные и термопарные Оберон Открытые системы шифрования Удк |
[8] DD1 ATmega8-16PI RP2, T2, BA2 RP3, ТЗТВАЗ" RP4, Т4, ВА4 RP5, Т5, ВА5" RP6, Т6, ВАб" RP7, Т7, ВА7~ RP8,T8TbA8"
Листинг 3 "Вращающийся звук" =AVR, ступень 5=, РА, №5, 2005 =1 Make: Name=avr53, MCU=atmega8, Level=2, Debug=VMLab =2 Фьюзы: SUT0=CKSEL3=CKSEL2=CKSELl="rano4KM" (1 МГц) =3 #include <avr/io.h> Библиотека ввода-вывода =4 #include <avr/delay.h> Библиотека задержек =5 #define F CPU 1000000UL Тактовая частота 1 МГц =6 #define LR РВО Условное имя для кнопки ВЛЕВО-ВПРАВО =7 #define PLUS РВ1 Условное имя для кнопки "+" =8 #define MINUS РВ2 Условное имя для кнопки "-" =9 #define NOTA 83 Константа для частоты звука 2 кГц =10 unsigned int а; Счетчик для длительности звука =11 unsigned char b, к; Номер канала звучания =12 unsigned char temp=50; Начальная длительность звука =13 ---------Функция проверки нажатия кнопки-----------=14 unsigned char key (unsigned char s) "s-линия порта=15 { if (bit is clear(PINB,s)) Если кнопка нажата, то =16 { delay loop 2(12500); Пауза 50 мс, антидребеэг =17 if (bit is clear(PINB,s)) Повторная проверка =18 { return (0); Возврат с "0" при нажатии кнопки =19 } Окончание повторной проверки =20 } Окончание процедуры обработки нажатия кнопки =21 return (1); Возврат с "1" при отсутствии нажатия =22 } Окончание функции "key" =23 -------Функция свечения индикатора HG1-------------=24 void ind (unsigned char number) пшпЬег=код символа =25 { switch (number) Индикация цифр 1-9 и буквы F =26 { case 0: PORTC=0xCE; PORTB &= BV(PB6); break; F =27 PORTC=0xF9; PORTB = BV(PB6); break; 1 =28 PORTC=0xE4; PORTB &=~ BV(PB6); break; 2 =29 PORTC=0xF0; PORTB &=~ BV(PB6); break; 3 =30 PORTC=0xD9; PORTB &=~ BV(PB6); PORTC=0xD2; PORTB &=~ BV(PB6); PORTC=0xC2; PORTB &=~ BV(PB6); PORTC=0xF8; PORTB = BV(PB6); PORTC=0xC0; PORTB &=- BV(PB6) ; PORTC=0xD0; PORTB &=- BV(PB6) ; } Ha HG1 индицируется выбранный символ =37 return; Возврат обратно в программу =38 } Окончание функции "ind" =39 / /========осНОВНАЯ ПРОГРАММА===========4 0 int main(void) Начало основной программы =41 { PORTB=0xFF; DDRB=0xD0; MOSI,РВ6,РВ7- выходы с "1" =42 PORTC=0xFF; DDRC=0x3F; РС0-РС5 - выходы с "1" =43 PORTD=DDRD=0xFF; Все линии порта D - выходы с "1" =44 ind (О); Индикация буквы F - тестовый режим =45 while (1) Бесконечный цикл =46 { for (b=0; b < 8; b++) Смена 8 каналов звучания =47 { if (bit is clear (PINB,LR) ) Если включен SAl =48 { k=b; PORTB &= -v BV(PB7) ; Горит точка на HG1 =49 } Установлено направление звука справа-налево =50 else Если отключен SA1, то направление вправо =51 { k=7-b; PORTB = BV(PB7); Точка HG1 погашена=52 } Установлено направление звука слева-направо =53 for (a=temp * 50; а > 0; а--) Длительн. звука =54 { PORTD А= BV(k); Генерация 0-1-0-1... =55 delay loop l(NOTA); Пауза (частота звука) =56 } Окончание генерации звука в одном канале =57 if ((key(MINUS)) == 0) Если нажата кнопка "-" =58 { if (++temp > 9) temp=9; Проверка на максимум=59 ind (temp); Индикация нового значения на HG1=60 delay loop 2(62500); Пауза на 250 мс =61 } Окончание действий при нажатии кнопки "-" =62 if ((key(PLUS)) == 0) Если нажата кнопка "+" =63 { if (temp == 50) temp = 10; Начальн. нажатие =64 if (--temp < 1) temp=l; Проверка на минимум =65 ind (temp); Индикация нового значения на HG1=66 delay loop 2(62500); Пауза на 250 мс =67 } Окончание действий при нажатии кнопки "+" =68 } Переход к следующему каналу звучания =69 } Переход к началу бесконечного цикла "while" =70 } WinAVR-20050214, длина программы 496 байтов =71 case 1 case 2 case 3 case 4 case 5 case 6 case 7 case 8 case 9 break; 4 =31 break; 5 =32 break; 6 =33 break; 7 =34 break; 8 =35 9 =36 HG1 АЛ324Б1 ->+5B C1 0,1 мк стота 10 1,1 Гц). Индикацию периода вывести на семисегментный индикатор. Электрическая схема прибора для тестирования инерционности слуха показана на рис.8. Динамики BA1-BA8 вместе с трансформаторами Т1-Т8 и регуляторами RP1-RP8 используются от радиотрансляционных точек. Их прямое подключение к линиям порта D является допустимым, поскольку система рассчитана на импульсный характер работы в каналах. Индикация выводится на светодиодный индикатор HG1, ток через сегменты которого ограничивают резисторы R1-R8 200 360 Ом. Кнопками SB2, SB3 задают скорость "вращения звука" соответственно больше и меньше. Переключатель SA1 служит для смены направления вращения "слева направо" или "справа налево". Индикатором этого момента является светящаяся или погашенная десятичная точка на табло HG1. Если между цепью +5 В и выводами 2-6, 11-13 МК подключить цепочки, состоящие из последовательно включенных резисторов 360 Ом и светодиодов АЛ307Б (анодом к +5 В), то получится оригинальная линейная шкала с пробегающей по циклу световой точкой. Кнопка SB1 сбрасывает МК, устанавливая начальный тестовый режим с низким периодом вращения 5 с, чтобы испытуемый мог адаптировать свой слуховой аппарат и психологически настроиться на измерения. Си-программа тестера "вращения звука" приведена в листинге 3. Строки 7-9. Полезный для практики прием, когда входным или выходным линиям портов присваиваются логически понятные имена. Текст Си-программы становится легче читаемым, но увеличивается число строк. Строки 16-20. Проверка отсутствия неконтролируемого "дребезга" контактов кнопок. Длится он обычно 20 40 мс, поэтому проводятся две проверки состояния с разницей в 50 мс (строка 17). Если повторная проверка "не прошла", то считается, что было ложное срабатывание и кнопка не нажата. Строки27-36. Пример прямого управления портом С, при этом его старшие неиспользуемые в схеме разряды всегда установлены в "1", чтобы, например, вход PC6 не "висел в воздухе" при коммутации. Строка54. Переменная "a" определяет число циклов генерации звука. Расчет длительности. В строке 13 начальное значение temp=50, следовательно, a=temp*50=50*50=2500. Длительность задержки в строке 56 составляет t=250 мкс, число каналов N=8, суммарное время TH=a*N*tH=2500*8*0,00025=5 с. Именно с таким периодом будет проходить один цикл вращения в тестовом режиме. Строка 64. Проверка переменной "temp" с тем, чтобы после первого нажатия кнопки SB2 произошел переход сразу в режим 900 мс. Для кнопки SB3 такая проверка не нужна, поскольку она производится автоматически в строке 59. Эксперименты с "вращающимся звуком" Испытуемого усаживают в центре комнаты, вокруг него расставляют 8 динамиков по рис.7. Расстояние и высоту подбирают экспериментально. Включают прибор, переключателем SA1 устанавливают требуемое направление вращения звука. В начале (или после нажатия кнопки сброса SB1) проверяют слышимость сигналов в тестовом режиме. Резисторами RP1-RP8 подстраивают громкость так, чтобы звуки с разных направлений были примерно равными по уровню. Затем кнопкой "+" постепенно увеличивают частоту вращения до тех пор, пока испытуемый не скажет, что эффект вращения стал размытым или вовсе прекратился. Показание индикатора HG1, умноженное на 100 мс, и будет означать критический для данного человека показатель. Теперь переключателем SA1 меняют направление вращения, нажимают сброс и вновь повторяют измерения. Как правило, показания будут отличаться. Связано это с разными функциями левого и правого полушарий головного мозга. Если будут зафиксированы значительные отклонения от среднестатистических показаний, то это может свидетельствовать о начинающихся нарушениях не только слухового аппарата, но и мозговой деятельности человека (предвестник болезни). Практическое задание. Промоделировать работу электрических схем, показанных на рис.2, 5, 8, с помощью программы VMLab. Проверить результаты моделирования на реально собранных макетах устройств. Выслать разработчикам WinAVR по электронной почте свои предложению по улучшению интерфейса и расширению возможностей инструментов MFile, PN, AVRDUDE. Микроконтроллеры AVR. Ступень 6 С.М. Рюмик, г. Чернигов Мы редко понимаем, чего в действительности хотим Франсуа де Ларошфуко Начиная изучение микроконтроллеров (МК), человек ставит перед собой определенные цели и задачи. Вполне может быть, что для кого-то мечтой является разработка прибора с применением многострочного жидкокристаллического индикатора (ЖКИ). О том, как управлять им с помощью МК семейства AVR, пойдет речь дальше. Приводимые в статье сведения будут полезны для сопряжения ЖКИ и с другими разновидностями МК. Иногда плавное течение событий надо на время изменить. Чтобы заглянуть в будущее, чтобы увидеть перспективу, чтобы уже в начале пути почувствовать свои силы. Применительно к радиолюбительским конструкциям, их товарный вид во многом зависит от применяемого типа индикатора. Одно дело светодиоды или семисегментные матрицы и совсем другое - многострочные символьные ЖКИ. По своим функциональным возможностям они настолько поражают воображение, что их автоматически причисляют в разряд сложных изделий и изучают на завершающем этапе учебы. Так ли это оправдано и необходимо? Предлагается провести альтернативный эксперимент и уже сейчас собрать пару конструкций на двухстрочном ЖКИ. Выбор ЖКИ Следует различать обычные многопозиционные ЖКИ серии ИЖКЦ, модули на их основе с микросхемой HT1611 и алфавитно-символьные ЖКИ с встроенным контроллером (рис.1). Именно последние и относят к наиболее перспективным изделиям. В подтверждение тому множество фирм в мире, специализирующихся на выпуске подобной продукции. Крупнейшие из них находятся в Тайване, Китае, Японии, США (табл.1). Среди параметров, отличающих одни ЖКИ от других, выделяется марка внутреннего контроллера. В дальнейшем будут рассматриваться только модели, совместимые с контроллером HD44780 (фирма Hitachi) и его аналогами, например, KS0066 (фирма Samsung), SED1278 (фирма Epson), ST7066 (фирма Sitronix). Таких изделий на отечественном рынке подавляющее большинство, да и в любительских конструкциях они стали стандартом "де-факто". При покупке ЖКИ надо поинтересоваться следующими моментами: поддерживается ли система команд HD44780 ("Да"); имеется ли русификация знакогенератора с выводом больших и малых букв ("Да"); однополярное или двухполярное требуется питание ("Однопо-лярное +5 В"); имеется ли подсветка (если "Да", то нужна светодиодная, а не электролюминесцентная); сколько символов и строк отображается на экране ЖКИ ("8x1", "8x2", "16x1", "16x2", "20x2", "20x4" и т.д.). На последний вопрос однозначного ответа нет. Все зависит от эргономических требований к разрабатываемому устройству. Если ограничиться экспериментальными работами, то приемлемым выбором по критерию "цена + возможности" является двухрядный ЖКИ с числом символом 16 в каждой строке. Это одна из наиболее ходовых моделей (а значит, и более дешевая). Кроме того, разрядность, меньшая чем 16х2, не позволит в будущем "развернуться" конструкторскому воображению, а большая разрядность накладна по финансам и габаритам. Остальные параметры ЖКИ, такие, как угол обзора сегментов, цвет фона, контрастность, яркость подсветки, химический состав "жидкого кристалла", напрямую зависят от технологии. В общем случае, чем выше цена изделия, тем параметры лучше. Но для первых экспериментов это не главное, подойдут непритязательные ЖКИ без подсветки, например, SC1602 (фирма Sunlike), WD-C1602 (фирма Wintek), BC1602 (фирма Bolymin), MTC-16204 (фирма Microtips), PC1602 (фирма Powertip), MT-16S2 (фирма МЭЛТ) и т.д. Внутреннее устройство ЖКИ По определению, в состав ЖКИ входит индикатор на жидких кристаллах. Впервые жидкие кристаллы были обнаружены в 1888 г. австрийским ботаником Фридрихом Райнитцером (Friedrich Reinitzer) при изучении физических свойств некоторых органических тканей. Однако до практического применения жидких кристаллов потребовалось еще столетие. В частности, первый в мире калькулятор с ЖК-экраном выпустила фирма Sharp в 1964 г., затем появились электронные часы (1966 г., RCA) и телевизор с размером экрана по диагонали 14 см (1976 г., Sharp). Физический принцип работы ЖКИ легко уяснить, представив элементарный конденсатор, обкладки которого заполнены специальным бесцветным веществом. При подаче на конденсатор напряжения, вещество меняет свою кристаллическую структуру и перестает пропускать свет. Визуально появляется темная окраска единичного сегмента индикации. Поскольку конденсатор имеет малые токи утечки, то и весь индикатор получается низкопотребляющим. Достоинством символьных многострочных ЖКИ является то, что заботу о подаче требуемых напряжений на массив "ЖК-конден- Таблица 1 саторов" берет на себя встроенный управляющий контроллер. На рис.2 показана структурная схема типового ЖКИ с организацией 16х2, которая идентична для всех моделей независимо от фирмы-изготовителя. Основу составляет специализированный контроллер, обычно выполненный в виде одной или двух микросхем-"ка-пелек", реже - в виде фирменной SMD-микросхемы. По назначению выводов и системе команд он совпадает с родоначальником серии - HD44780. Общепринятое название таких микросхем "Dot Matrix Liquid Crystal Display Controller/Driver", из чего следует их двойная функция - контроллер управляет интерфейсом, а драйвер "зажигает" сегменты. Контроллер синхронизируется внутренним RC-генератором G1, имеющим частоту 250 ±50 кГц. Напряжение подсветки подается через выводы А и К на светодиоды, которые освещают ЖК-панель с торца или обратной стороны корпуса. Светодиоды включены матрицей и соединены параллельно-последовательно. В связи с этим напряжение подсветки довольно высокое 4,0...4,2 В. Назначение и нумерация всех внешних выводов ЖКИ унифицированы (табл.2). Это не зависит от количества строк и символов, будь то "8x1" или "16x2". Даже контакты светодиодной подсветки 15, 16 имеются на всех ЖКИ, хотя при ее физическом отсутствии они будут просто "висеть в воздухе". Небольшой нюанс. На печатной плате ЖКИ порядок нумерации контактных площадок отличается от модели к модели. Например, встречаются следующие варианты: слева направо 1-16, справа налево 16-1, вперемежку 15, 16, 1-14. Подсказку следует искать визуально по отмаркированным цифрам на печатной плате. Контакты 15, 16 обычно дублируются еще одной парой контактов с маркировкой А и К соответственно. Электрически они соединены параллельно. Конструктивно выводы могут располагаться сверху, снизу или на боковой стороне платы ЖКИ. Это не суть важно, ведь соединяться с изделием они будут жгутом проводов длиной до 10 см. Крепление ЖКИ производится винтами через 4 угловых отверстия. Электрический интерфейс состоит из трех шин: DB0-DB7 шина данных; RS, R/W, Е шина управления; VCC, GND, Vo, A, K шина питания. Типовая схема подключения ЖКИ к МК показана на рис.3. Именно она и будет использоваться для первой тестовой проверки ЖКИ с выведением на экран знаменитой фразы "Hello, world!" ("Здравствуй, мир!"). Кнопка SB1 осуществляет начальный сброс. Переменным резистором R2 регулируют контрастность изображения. Его сопротивление непринципиально и может меняться от 5 до 20 кОм. Кстати, резистор R2 является первым элементом, который надо обязательно покрутить в разные стороны при начальном включении питания. Если ЖКИ исправен, то в крайних положениях движка будут наблюдаться полное гашение и полная засветка экрана. Отрегулировать R2 следует на перегибе характеристики, как правило, с потенциалом ближе к общему проводу, когда слабо видны все точки знакомест на ЖКИ. Неправильная установка контрастности может привести к ложному выводу о дефекте индикатора, хотя все, что надо сделать, это покрутить движок резистора. Управляющая программа хранится в МК DD1. Чтобы облегчить ее составление, здесь и в дальнейшем приняты некоторые упрощения. Во-первых, ЖКИ будет работать только на прием информации Таблица 2
Таблица 3
|
Среды: Smalltalk80 MicroCap Local bus Bios Pci 12С ML Микроконтроллеры: Atmel Intel Holtek AVR MSP430 Microchip Книги: Емкостный датчик 500 схем для радиолюбителей часть 2 (4) Структура компьютерных программ Автоматическая коммутация Кондиционирование и вентиляция Ошибки при монтаже Схемы звуковоспроизведения Дроссели для питания Блоки питания Детекторы перемещения Теория электропривода Адаптивное управление Измерение параметров Печатная плата pcad pcb Физика цвета Управлении софтверными проектами Математический аппарат Битовые строки Микроконтроллер nios Команды управления выполнением программы Перехода от ahdl к vhdl Холодный спай Усилители hi-fi Электронные часы Сердечники из распылённого железа Анализ алгоритмов 8-разрядные КМОП Классификация МПК История Устройства автоматики Системы и сети Частотность Справочник микросхем Вторичного электропитания Типы видеомониторов Радиобиблиотека Электронные системы Бесконтекстный язык Управление техническими системами Монтаж печатных плат Работа с коммуникациями Создание библиотечного компонента Нейрокомпьютерная техника Parser Пи-регулятор ч.1 ПИ-регулятор ч.2 Обработка списков Интегральные схемы Шина ISAВ Шина PCI Прикладная криптография Нетематическое: Взрывной автогидролиз Нечеткая логика Бытовые установки (укр) Автоматизация проектирования Сбор и защита Дискретная математика Kb радиостанция Энергетика Ретро: Прием в автомобиле Управление шаговым двигателем Магнитная запись Ремонт микроволновки Дискретные системы часть 2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||