Согласно схеме изображенной на рис. 3.15.2. преобразуем колебания от генератора в П-импульсы и подаем на вывод прерывания (INT0) МК. Диод D1 обеспечивает однополупериодное выпрямление исследуемой синусоиды. После делителя R1, R3 напряжение поступает на ограничитель R2, D2 с напряжением ограничения не больше 5 В.
Рис. 3.15.2 Схема подключения генератора колебаний к микроконтроллеру.
Таймер/счетчик Т1 ведет подсчет тактовых импульсов с коэффициентом деления частоты равным 64, а при переполнении останавливается и обнуляется.
Внешнее прерывание INT0 вызывает соответствующую подпрограмму обработки при нарастающем фронте сигнала на одноименном выводе INT0. Эта подпрограмма позволяет таймеру/счетчику Т1 определить число импульсов за один период внешнего сигнала. Далее основная программа преобразует этот значение в частоту и переведя в двоично-десятичный код выводит на семисегментные индикаторы, которые подключаются к МК согласно разделу 1.4.2. Программа прошивки МК для реализации устройства измерителя частоты на базе МК AT90S8515 приведена в ПРИЛОЖЕНИИ 3.
Последний рассмотренный пример представляет устройство «кодовый замок». Реализованное на основе МК AT90S1200, оно содержит матричную клавиатуру и два светодиода для индикации работы и правильности введенного кода. Программа прошивки МК для реализации этого устройства приведена в ПРИЛОЖЕНИИ 4.
3.3. Описание макета программатора.
Макет программатора состоит из общей платы и вспомогательных плат реализующих необходимые функции заданий. Общая плата имеет разъем, соединяющая программатора с параллельным портом компьютера. На общей плате также расположены две контактных колодки (дип панели) для установки программируемых микроконтроллеров. Они позволяют использовать МК следующих типов: а) дип панель DIP2x20.2 для МК серий AT90S4414 и AT90S8515; б) дип панель DIP2x10.1 для МК серии AT90S1200 AT90S2313.
Вспомогательные платы позволяют макетировать проектируемое устройство, управляемое микроконтроллером, не подвергая нежелательным механическим воздействиям сам программатор и микросхему контроллера. Вспомогательные платы соединяются с общей платой через дополнительные разъемы, что позволяет более прагматично использовать имеющиеся порты (выводы) МК.
Питание программатора обеспечивается от внешнего блока стабилизированного питания МС9011.02 с выходным напряжением Vcc=+5В при максимальном токе нагрузки Iн=1.5А.
Рис. 3.16. Принципиальная схема макета программатора.
На рис 3.16. приведена принципиальная схема макета программатора для последовательного программирования МК серии AT90S1200 и AT90S8515 через параллельный (LPT) порт компьютера. Подсоединение к компьютеру осуществляется с помощью кабеля подключения изображенного на рис. 3.17.
Соединительный кабель для подключения макета программатора к параллельному (LPT) порту компьютера состоит из двух разъемов DB25F и BH10.1 и двух шлейфов по 26 и 10 жил соединенных между собой согласно таблице 3.1. и таблице 3.2. Разъем DB25F (штырь) подсоединяется к параллельному (LPT) порту компьютера, а BH10.1 (гнездо) к разъему BH10.2 (штырь) на макете программатора (см. рис. 3.16).
Рис. 3.17. Кабель подключения макета к LPT порту компьютера.
Таблица № 3.1. Соответствие номера контакта разъема DB25F и порядкового номера 25 жильного шлейфа. |5 |XTAL1 |4 | |6 |RESET |5 | |7 |MOSI |1 | |8 |SCK |7 | |10 |MISO |9 | |19-25 |Gnd |10 |
На приведенной схеме макета программатора кроме соединительных разъемов и контактных колодок МК находятся внешние элементы необходимые для обеспечения работы тактового генератора. Это конденсаторы С2=С1=39 пФ, С3=1000 пФ и кварц с частотой генерации колебаний 4 МГц. Кнопка В1 обеспечивает сброс МК в начальное состояние.
Подключение вспомогательных плат к макету программатора осуществляется через штыревые разъемы PLS.1, PLS.2 и PLS.3. Так как разъем PLS.1 соединен с дип панелью DIP2x10.1, в которую устанавливается МК серии AT90S2313 и AT90S1200, а разъемы PLS.2 и PLS.3 соединены с дип панелью DIP2x20.2, в которую устанавливается МК серий AT90S4414 и AT90S8515, то нумерация выводов разъема PLS.1 соответствует нумерации ножек AT90S1200, а нумерация выводов разъемов PLS.2 и PLS.3 соответствует нумерации ножек AT90S4414 и AT90S8515.
В макете программатора при программировании и последующей работе должен находиться только один (!) микроконтроллер, либо в панели DIP2x10.1 (AT90S1200 или AT90S2313), либо в панели DIP2x20.2 (AT90S4414 или AT90S8515). К разъемам PLS.n (n=1,2,3) через соответствующую колодку можно подсоединять любые внешние устройства: светодиоды, ССИ, кнопки, матричную клавиатуру, подавать сигнал на какой либо порт (вывод) микроконтроллера или считывать его. При этом надо помнить, что на контакт 20 разъема PLS.1 и на контакт 40 разъема PLS.3 подается напряжение Vcc=+5В.
Макет программатора имеет два режима работы. Первый – непосредственное программирование микроконтроллера с помощью компьютера. Как с подключенными внешними устройствами, так и без них. Второй режим – автономный, когда происходит работа с внешними устройствами, выполненными на вспомогательных платах. При этом режиме макет программатора должен быть отсоединен от компьютера.
Сначала обучающийся должен, получив задание, подготовить (написать и отладить) программное обеспечение с помощью AVR Studio (см. раздел 3.1.), согласно пп. 1-6 раздела 3.2. (Принципы выполнения заданий). Результатом данного этапа является безошибочная трансляция разработанной программы. Только после этого можно приступить к использованию макета программатора и построению внешнего устройства на вспомогательной плате, если это предусмотрено заданием.
ЗАКЛЮЧЕНИЕ
Разработанные методические указания содержат описания программного обеспечения и аппаратных средств реализации набора примеров заданий, предназначенных для изучения как непосредственной архитектуры МК, так и для выработки конкретных навыков программирования.
Проведен анализ архитектуры современных микроконтроллеров. Уделено внимание систематизации аппаратных средств и общим вопросом методам отладки разрабатываемых программ.
Особое внимание уделено серийным МК фирмы ATMEL семейства AVR. Рассмотрены их особенности построения и функционирования. Анализ системы команд микроконтроллеров AVR и практические рекомендации работы в интегрированной среде разработки «AVR Studio» позволяет эффективно создавать и разрабатывать программы для AVR микроконтроллеров.
Представлен набор типовых примеров с наиболее распространенными задачами программирования МК. Предложены классификация и принципы выполнения заданий. Дано описание универсального макета программатора.
Изготовлен универсальный макет программатора, позволяющий проводить не только прошивку МК AVR четырех типов (AT90S1200, AT90S2313, AT90S4414, AT90S8515), но и управление проектируемыми внешними устройствами.
Реализован ряд задач по работе с памятью, по перекодировке, сложению и делению чисел, по работе с динамической индикацией и матричной клавиатурой. На основе этого смакетированы реальные устройства кодового замка на основе AT90S1200 и измерителя частоты в звуковом диапазоне на основе AT90S8515.
Предлагаемая на этой основе методика обучения программирования и применения МК позволяет ввести интересующихся в эту перспективную область.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Предко М. Руководство по микроконтроллерам. Том 1. / Пер. с англ. под ред. И. И. Шагурина и С. Б. Лужанского – М.: Постмаркет, 2001. – 416 с.
2. Предко М. Руководство по микроконтроллерам. Том 2. / Пер. с англ. под ред. И. И. Шагурина и С. Б. Лужанского – М.: Постмаркет, 2001. – 488 с.
3. Cady, Fredrick M. Microcontrollers and microcomputers: principles of software
and hardware engineering. – New York – Oxford, Oxford University
Press,
1997. – 252 p.
4. Вуд А. Микропроцессоры в вопросах и ответах. / Пер. с англ. под ред.
Д. А. Поспелова. – М.: Энергоатомиздат. 1985. – 184 с.
5. Уильямс Г.Б. Отладка микропроцессорных систем: / Пер. с. англ. – М.:
Энергоатомиздат, 1988. – 253с.
6. Угрюмов Е.П. Цифровая схемотехника. – Спб.: БВХ – Санкт-Петербург,
2000. – 528 с.
7. Алексенко А.Г., Шагурин И.И. Микросхемотехника. – М.: Радио и связь,
1990. – 496 с.
8. Бродин Б.В., Шагурин И.И. Микроконтроллеры: Справочник. – М.: ЭКОМ,
1999. – 395 с.
9. Программируемые логические ИМС на КМОП-структурах и их применение. /
П.П. Мальцев, Н.И. Гарбузов, А.П. Шарапов, А.А. Кнышев. – М.:
Энергоатомиздат, 1998. – 158 с. 10. Соловьев В.В., Васильев А.Г. Программируемые логические интегральные схемы и их применение. – Мн.: Беларуская наука, 1998. – 270 с. 11. Bursky D. Embedded Logic and Memory Find a Home in FPGA. – Electronic
Design, 1999, №14, pp. 43-56. 12. Chang D., Mazek-Sadowska M. Dynamically Reconfigable FPGA. – JEEE
Transition on Computers, 1999, №6, pp. 565 – 578. 13. Bursky D. Advanced CPLD Architectures Challenge FPGA, Gas. –
Electronic Design, 1998, №22, pp. 78 – 86. 14. Takai Y. a.o. 250 Mbytes Synchronous DRAM Using a 3-Stage-Pipeline
Architecture. – JEEE. Journal of Solid-Stage Circuits. – 1994, v.29,
№4,
pp. 426 – 429. 15. Лаптев В. Цифровой измеритель температуры на базе AVR микроконтроллера и RC-цепочки. – Электронные компоненты, 2001. №2, с.
46 – 49. 16. http://www.atmel.ru/ - описание AVR микроконтроллеров, русскоязычный сайт. 17. http://www.dontronics.com/atmel.html - программные проекты по AVR. 18. http://www.gaw.ru/, http://www.cec-mc.ru - информация о МК фирмы ATMEL 19. http://trush.da.ru/, http://avr.da.ru/ - описание МК AT90S1200 фирмы
Atmel 20. http://www.ln.com.ua/~real/avreal, http://www.chat.ru/~avreal: -
AVReAl: программа прошивки At90sXXXX через LPT порт 21. http://trush.pp.ru/avr/ - полезные ссылки по AVR.
ПРИЛОЖЕНИЕ 1
Инструкции процессоров AVR.
Ниже приведен набор команд процессоров AVR, более детальное описание их можно найти в AVR Data Book [16,19].
Таблица А.1. Арифметические и логические инструкции. |Мнемони|Опера|Описание |Операция |Флаги |Цик| |ка |нды | | | |лы | |ADD |Rd,Rr|Суммирование без переноса|Rd = Rd + Rr |Z,C,N,V|1 | | | | | |,H,S | | |ADC |Rd,Rr|Суммирование с переносом |Rd = Rd + Rr + C |Z,C,N,V|1 | | | | | |,H,S | | |SUB |Rd,Rr|Вычитание без переноса |Rd = Rd - Rr |Z,C,N,V|1 | | | | | |,H,S | | |SUBI |Rd,K8|Вычитание константы |Rd = Rd - K8 |Z,C,N,V|1 | | | | | |,H,S | | |SBC |Rd,Rr|Вычитание с переносом |Rd = Rd - Rr - C |Z,C,N,V|1 | | | | | |,H,S | | |SBCI |Rd,K8|Вычитание константы с |Rd = Rd - K8 - C |Z,C,N,V|1 | | | |переносом | |,H,S | | |AND |Rd,Rr|Логическое И |Rd = Rd · Rr |Z,N,V,S|1 | | | | | | | | |ANDI |Rd,K8|Логическое И с константой|Rd = Rd · K8 |Z,N,V,S|1 | |OR |Rd,Rr|Логическое ИЛИ |Rd = Rd V Rr |Z,N,V,S|1 | |ORI |Rd,K8|Логическое ИЛИ с |Rd = Rd V K8 |Z,N,V,S|1 | | | |константой | | | | |EOR |Rd,Rr|Логическое исключающее |Rd = Rd EOR Rr |Z,N,V,S|1 | | | |ИЛИ | | | | |COM |Rd |Побитная Инверсия |Rd = $FF - Rd |Z,C,N,V|1 | | | | | |,S | | |NEG |Rd |Изменение знака (Доп. |Rd = $00 - Rd |Z,C,N,V|1 | | | |код) | |,H,S | | |SBR |Rd,K8|Установить бит (биты) в |Rd = Rd V K8 |Z,C,N,V|1 | | | |регистре | |,S | | |CBR |Rd,K8|Сбросить бит (биты) в |Rd = Rd · ($FF - |Z,C,N,V|1 | | | |регистре |K8) |,S | | |INC |Rd |Инкрементировать значение|Rd = Rd + 1 |Z,N,V,S|1 | | | |регистра | | | | |DEC |Rd |Декрементировать значение|Rd = Rd -1 |Z,N,V,S|1 | | | |регистра | | | | |TST |Rd |Проверка на ноль либо |Rd = Rd · Rd |Z,C,N,V|1 | | | |отрицательность | |,S | | |CLR |Rd |Очистить регистр |Rd = 0 |Z,C,N,V|1 | | | | | |,S | | |SER |Rd |Установить регистр |Rd = $FF |None |1 | |ADIW |Rdl,K|Сложить константу и слово|Rdh:Rdl = Rdh:Rdl +|Z,C,N,V|2 | | |6 | |K6 |,S | | |SBIW |Rdl,K|Вычесть константу из |Rdh:Rdl = Rdh:Rdl -|Z,C,N,V|2 | | |6 |слова |K6 |,S | | |MUL |Rd,Rr|Умножение чисел без знака|R1:R0 = Rd * Rr |Z,C |2 | |MULS |Rd,Rr|Умножение чисел со знаком|R1:R0 = Rd * Rr |Z,C |2 | |MULSU |Rd,Rr|Умножение числа со знаком|R1:R0 = Rd * Rr |Z,C |2 | | | |с числом без знака | | | | |FMUL |Rd,Rr|Умножение дробных чисел |R1:R0 = (Rd * Rr) |Z,C |2 | | | |без знака |
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12