Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мпус_1 / mk51 / Книги / ПРОЕКТ_ МПС.doc
Скачиваний:
194
Добавлен:
11.05.2015
Размер:
2 Мб
Скачать
☆

Void main(void){

DDRB=0xFF; //Настройка порта В на вывод

PORTD=0x40; // 6 линия порта D - вход с подтяжкой

m1:

If(pind.6){

PORTB=1;

while (PORTB!=0){

delay_ms(10);

PORTB=PORTB<<1;};}

else {

PORTB=128;

while (PORTB!=0){

delay_ms(10);

PORTB=PORTB>>1;};}

goto m1;}

; файл z5_vm.prj

.MICRO "ATmega16"

.TOOLCHAIN GENERIC"

.TARGET "z5.hex"

.COFF "z5.cof"

.SOURCE "z5__.c"

.CLOCK 4meg

.POWER VDD = 5 VSS = 0

K0 PD6 VSS LATCHED ; кнопка 0 панели Control Panel

; Эмулятор имеет 8 светодиодов -

; подключаем их к выводам порта B

D1 VDD PB0

D2 VDD PB1

D3 VDD PB2

D4 VDD PB3

D5 VDD PB4

D6 VDD PB5

D7 VDD PB6

D8 VDD PB7

Модифицировать программу в соответствии со своим вариантом индивидуального задания и произвести ее отладку:

  1. При нажатии кнопки 1 (пятая линия порта А) должна меняться частота мигания светодиодов порта С.

  2. В одном положении кнопки 2 (седьмая линия порта А) должен наблюдаться эффект бегущего огонька на светодиодах порта D, в другом положении – светодиоды должны тухнуть.

  3. При нажатии кнопки 3 (первая линия порта D) эффект бегущего огонька на светодиодах порта А должен измениться на эффект бегущей тени.

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

  5. При нажатии кнопки 5 (первая линия порта А) эффект бегущего огонька на светодиодах порта C должен измениться на их постоянное горение.

  6. При нажатии кнопки 6 (пятая линия порта А) должна меняться частота мигания светодиодов порта D (эффект реализовать за счет смены горящих тетрад порта).

  7. Эффект «елочка» (последовательное заполнение огнями линий порта С и их общее погасание) при нажатии кнопки 7 (первая линия порта D) должен измениться на эффект бегущей тени.

  8. Эффект «елочка» (последовательное заполнение огнями линий порта D и их общее погасание) при нажатии кнопки 8 (вторая линия порта В) должен измениться на эффект бегущего огонька.

Контрольные вопросы

  • Назовите нагрузочную способность линий портов AVR.

  • Какими ассемблерными вставками можно разрешать и запрещать глобально прерывания в программе для AVR на языке Си?

  • Запишите результат выполнения арифметических операций: 245/37 и 245%37.

  • К линиям порта В через дешифраторы подключены два цифровых семисегментных индикатора. Записать команду на языке Си, выводящую на индикаторы число (от 00 до 99), соответствующее значению переменной period.

  • Дать комментарий к команде PORTA=~(per++);

  • Объявите переменную mnogo, если она может принимать значения от нуля до миллиона.

  • Прокомментировать результат выполнения команды ADCSRA|=0x40;

7. МОДЕЛИРОВАНИЕ РАБОТЫ МИКРОКОНТРОЛЛЕРА AVR С ПОМОЩЬЮ СИМУЛЯТОРА PROTEUS VSM

Proteus VSM – программа-симулятор микропроцессорных устройств. Поддерживает МК: PIC, 8051, AVR, HC11 и другие распространенные процессоры. PROTEUS содержит огромную библиотеку электронных компонентов: более 6000 популярных аналоговых и цифровых моделей устройств. PROTEUS VSM позволяет очень достоверно моделировать и отлаживать достаточно сложные устройства, в которых может содержаться несколько МК одновременно и даже разных семейств в одном устройстве. PROTEUS VSM великолепно работает с компилятором CodeVisionAVR. Proteus VSM является средой сквозного проектирования. Это означает создание устройства, начиная с его принципиальной схемы и заканчивая изготовлением печатной платы. Достаточный набор инструментов и функций, среди которых вольтметр, амперметр, осциллограф, всевозможные генераторы, способность отлаживать программное обеспечение микроконтроллеров, делают Proteus VSM хорошим помощником разработчика электронных устройств.

Proteus VSM состоит из двух самостоятельных программ: ISIS и ARES. ARES – это трассировщик печатных плат. Основной программой является ISIS, в ней предусмотрена горячая связь с ARES для разводки платы.

При запуске программы появляется основное окно (рис.6). Самое большое место отведено под окно редактирования. Именно в нем происходят все основные процессы создания, редактирования и отладки схемы устройства. В самом низу основного окна расположена панель управления активной симуляцией (ПУСК-ПОШАГОВЫЙ РЕЖИМ-ПАУЗА-СТОП).

На рис. 6 приведена схема моделирования цифрового термометра на микроконтроллере ATmega16 с термодатчиками фирмы DALLAS SEMICONDUCTOR и выводом информации на LCD-дисплей. Микросхема DS18S20 обеспечивает 9-битные температурные измерения по шкале Цельсия. Микросхема DS18S20 подключается через 1-проводную шину, которая по определению требует только одной линии данных (а также общей) для взаимодействия с центральным процессором. Она имеет рабочий температурный диапазон от -55°C до +125°C и точность ±0.5°C в диапазоне от -10°C до +85°C.

Модель термометра DS18S20 позволяет задавать температуру термодатчика (в данном примере +100.0 и -32.0 оС). При указании свойств микроконтроллера подключается файл прикладной программы с расширением .hex, подготовленный компилятором CVAVR.

Рисунок 6 – Моделирование цифрового термометра для измерения

комнатной и наружной температуры

C помощью встроенного в среду моделирования Proteus осциллографа можно снять управляющие сигналы микроконтроллера и информационный сигнал датчика. Временные диаграммы сигналов (протокол 1-Wire) представлены на рисунках 7 и 8 соответственно. Уровни напряжения можно видеть на всех выводах компонентов непосредственно (лог.1 - красный цвет, лог.0 - синий, неподключенные выводы - серый цвет). В данном примере моделирование позволило показать работоспособность устройства при измерении высоких и низких температур.

Рисунок 7 – Осциллограмма управляющих сигналов микроконтроллера

Рисунок 8 – Осциллограмма информационного сигнала датчика

Экспериментально в рамках группового проектного обучения студентами четвертого курса специальности «Промышленная электроника» Алексеем Качаловым, Дмитрием Резепиным и Ильхамом Кадышевым была проверена работа устройства, предназначенного для лекционной аудитории с индикацией комнатной и наружной температуры, а также даты и текущего времени. Устройство предварительно было смоделировано в симуляторе Proteus VSM (рис.9).

Рисунок 9 – Моделирование работы устройства в симуляторе

ProteusVSM

Cхема компонуется в рабочем окне подобно тому, как это делается в Electronics Workbench. При указании свойств микроконтроллера подключается файл прикладной программы с расширением .hex, подготовленный компилятором CVAVR.

Функционирование часов осуществляется при помощи специализированной микросхемы DS1307 (малопотребляющие полные двоично-десятичные часы-календарь, включающие 56 байтов энергонезависимого статического ОЗУ). Адреса и данные передаются последовательно по двухпроводной двунаправленной шине, при использовании протокола I2C.

Теми же авторами проведен эксперимент с выводом информации на индикаторную панель в режиме динамической индикации (рис. 10). Ниже показан заголовок прикладной программы.

Основные компоненты схемы:

  1. Термодатчик фирмы Dallas Semiconductor DS18S20.

  2. Индикаторная панель фирмы Kingbright CA25-12GWA.

  3. Микроконтроллер фирмы Atmel Mega 8.

Рисунок 10 – Моделирование работы цифрового термометра

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

This program was produced by the

CodeWizardAVR V1.25.5 Professional

Project : Digital Termometr

Version :

Date : 17.05.2008

Author : Kachalov Alexey, Rezepin Dmitriy, Kadyshev Ilham

Company : TUSUR, PrE, GPO

Comments:

Chip type : ATmega8

Program type : Application

Clock frequency : 1,000000 MHz

Memory model : Small

DataStacksize: 256

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

Соседние файлы в папке Книги