4.2 Моделирование в среде Proteus

advertisement
ПЕРВОЕ ВЫСШЕЕ ТЕХНИЧЕСКОЕ УЧЕБНОЕ ЗАВЕДЕНИЕ РОССИИ
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«НАЦИОНАЛЬНЫЙ МИНЕРАЛЬНО-СЫРЬЕВОЙ УНИВЕРСИТЕТ «ГОРНЫЙ»
КУРСОВОЙ ПРОЕКТ
По дисциплине: «Программные средства разработки ВС»
Тема: «Разработка автоматизированной системы вентилирования серверной»
Выполнил студент: Горюнов Евгений Александрович
Шифр: 0403031994 Группа: ПОВТз-07
Дата защиты _____________________________
Оценка ________________
Санкт-Петербург
2013
Оглавление
Введение ................................................................................................................... 3
1.Техническое задание ............................................................................................ 4
2.Разработка ............................................................................................................. 5
2.1 Выбор датчика освещённости ....................................................................... 5
2.2 Выбор микроконтроллера .............................................................................. 8
3.Расчет задержки таймера на временной интервал .......................................... 20
4.Описание программной среды .......................................................................... 22
4.1 Proteus .............................................................................................................. 22
4.2 Моделирование в среде Proteus ................................................................... 24
4.3 MPLAB ........................................................................................................... 28
Приложение №1 .................................................................................................... 32
Список литературы ............................................................................................... 36
2
Введение
В любой достаточно крупной организации местом централизованного
хранения и обработки информации является серверная. Часто под нее
выделяется отдельная комната, позволяющая вместить все стойки серверов,
коммутационные шкафы и телефонное оборудование.
Вполне естественно, что в условиях работы большого количества
оборудования, температура в помещении может в скором времени стать
высокой, что непременно скажется на стабильности работы компьютерной
техники.
По этой причине поддержание «комфортной» температуры для
оборудования является одной из приоритетных задач, решаемых в серверной.
В большинстве случаев для подачи охлажденного воздуха устанавливают
систему приточно-вытяжной вентиляции, которая позволяет быстро
понизить температуру в помещениях любой площади. Но при ее
использовании необходимо помнить и о том, что работающее оборудование
системы вентиляции потребляет не малое количество электроэнергии, а это
денежные затраты.
Для оптимизации этих расходов необходимо добиться рациональной
работы системы вентиляции - температура в серверной должна быть именно
достаточной для стабильной работы оборудования. А это достигается путем
автоматического включения и выключения системы вентиляции.
3
1.
Техническое задание
Поставлена задача провести разработку автоматизированной системы
вентилирования серверной, которая выполняет следующие функции:
1.
Определяет температуру воздуха в помещении серверной
2.
Предусматривает проверку, в течение 2 минут, естественного
повышения температуры в целом, а не направленного потока, с целью не
включения системы вентилирования
3.
Автоматическое включение и выключение системы вентилирования.
4
2.
Разработка
2.1
Выбор датчика температуры
Для определения температуры воздуха необходимо подобрать датчик.
Датчик температуры
– это датчик, который включает или выключает
систему вентилирования в зависимости от достигнутого уровня температуры
окружающей среды. Так как диапазон измерений и их условия могут сильно
отличатся
друг
от
друга,
разработаны
разные
по
точности,
помехоустойчивости и быстродействию типы датчиков (и первичных
преобразователей). Какого бы типа не был температурный датчик, общим
для всех является принцип преобразования. А именно: измеряемая
температура преобразуется в электрическую величину (как раз за это и
отвечает
первичный
преобразователь).
Это
обусловлено
тем,
что
электрический сигнал просто передавать на большие расстояния (высокая
скорость
приема-передачи),
легко
обрабатывать
(высокая
точность
измерений) и, наконец, быстродействие.
Существует несколько видов температурных датчиков:
Терморезистивные датчики температуры (RTDs - Resistance Temperature
Devices) работают при пропускании через них электрического тока и
применяются
в
мостовых
схемах.
Измеряемая
температура
преобразовывается в сопротивление со стабильной линейной зависимостью.
Термисторы с положительным и отрицательным температурным
коэффициентом имеют высокую чувствительность к измеряемой
температуре, что нельзя сказать о линейности выходного сигнала.
Полупроводниковые датчики температуры работают в широком
диапазоне и имеют высокую точность. Кроме того, такие датчики имеют
встроенную схему усиления сигнала, позволяющую устанавливать
требуемую температурную зависимость.
5
Термопары предлагают идеальное решение для измерений температуры в
максимальном диапазоне (до +2300°С). Кроме того, устройства имеют
высокую воспроизводимость и точность. Следует отметить, что термопары
требуют схем усиления сигнала для его последующей обработки.
Также, датчики температуры различаются по материалу исполнения
чувствительного элемента и типу корпусирования: датчики с
полупроводниковым чувствительным элементом, датчики с платиновым
чувствительным элементом, корпусированные датчики.
Для удовлетворения поставленной задачи наиболее подходит
полупроводниковый датчик.
Полупроводниковые датчики регистрируют изменение характеристик p-n
перехода под влиянием температуры. В качестве термодатчиков могут быть
использованы любые диоды или биполярные транзисторы.
Пропорциональная зависимость напряжения на транзисторах от абсолютной
температуры дает возможность реализовать довольно точный датчик.
Диапазон измерений такого датчика от -55 до +150.
В
результате
поиска
был
выбран
следующий:
полупроводниковый датчик температуры LM75A
Главной характеристикой данного датчика является выходной сигнал
бинарного вида.
6
2.2 Выбор микроконтроллера
Микроконтроллер — микросхема, предназначенная для управления
электронными устройствами. Типичный микроконтроллер сочетает на одном
кристалле функции процессора и периферийных устройств, содержит ОЗУ
или ПЗУ. По сути, это однокристальный компьютер, способный выполнять
простые задачи.
При проектировании микроконтроллеров приходится соблюдать баланс
между размерами и стоимостью с одной стороны и гибкостью и
производительностью с другой. Для разных приложений оптимальное
соотношение этих и других параметров может различаться очень сильно.
Поэтому существует огромное количество типов микроконтроллеров,
отличающихся архитектурой процессорного модуля, размером и типом
встроенной памяти, набором периферийных устройств, типом корпуса и т. д.
В
отличие
от
обычных
компьютерных
микропроцессоров,
в
микроконтроллерах часто используется гарвардская архитектура памяти, то
есть раздельное хранение данных и команд в ОЗУ и ПЗУ соответственно.
Кроме
ОЗУ,
микроконтроллер
может
иметь
встроенную
энергонезависимую память для хранения программы и данных. Во многих
контроллерах вообще нет шин для подключения внешней памяти. Наиболее
дешёвые типы памяти допускают лишь однократную запись. Такие
устройства подходят для массового производства в тех случаях, когда
программа контроллера не будет обновляться. Другие модификации
контроллеров
обладают
возможностью
многократной
перезаписи
энергонезависимой памяти.
Неполный список периферии, которая может присутствовать в
микроконтроллерах, включает в себя:
7

универсальные цифровые порты, которые можно настраивать как на
ввод, так и на вывод;

различные интерфейсы ввода-вывода, такие как UART, I²C, SPI, CAN,
USB, IEEE 1394, Ethernet;

аналого-цифровые и цифро-аналоговые преобразователи;

компараторы;

широтно-импульсные модуляторы;

таймеры;

контроллеры бесколлекторных двигателей;

контроллеры дисплеев и клавиатур;

радиочастотные приемники и передатчики;

массивы встроенной флеш-памяти;

встроенный тактовый генератор и сторожевой таймер;
Ограничения по цене и энергопотреблению сдерживают также рост
тактовой частоты контроллеров. Хотя производители стремятся обеспечить
работу своих изделий на высоких частотах, они, в то же время,
предоставляют заказчикам выбор, выпуская модификации, рассчитанные на
разные
частоты
и
напряжения
питания.
Во
многих
моделях
микроконтроллеров используется статическая память для ОЗУ и внутренних
регистров. Это даёт контроллеру возможность работать на меньших частотах
и даже не терять данные при полной остановке тактового генератора. Часто
предусмотрены
различные
режимы
энергосбережения,
в
которых
отключается часть периферийных устройств и вычислительный модуль.
Известные семейства

MCS 51 (Intel)

MSP430 (TI)
8

ARM (ARM Limited)

AVR (Atmel)
o
ATmega
o
ATtiny
o
XMega

PIC (Microchip)
В данном курсовом проекте мы используем контроллер из семейства PIC
(Microchip)
PIC — микроконтроллеры Гарвардской архитектуры, производимые
американской компанией Microchip Technology Inc. Название PIC является
сокращением от Peripheral Interface Controller, что означает «периферийный
интерфейсный контроллер». Название объясняется тем, что изначально PIC
предназначались для расширения возможностей ввода-вывода 16-битных
микропроцессоров CP1600.
В номенклатуре Microchip Technology Inc. представлен широкий спектр
8-и, 16-и и 32-битных микроконтроллеров и цифровых сигнальных
контроллеров
под
маркой
PIC.
Отличительной
особенностью
PIC-
контроллеров является хорошая преемственность различных семейств. Это и
программная совместимость (единая бесплатная среда разработки MPLAB
IDE), и совместимость по выводам, по периферии, по напряжениям питания,
по средствам разработки, по библиотекам и стекам наиболее популярных
коммуникационных протоколов. Номенклатура насчитывает более 500
различных контроллеров со всевозможными вариациями периферии, памяти,
количеством выводов, производительностью, диапазонами питания и
температуры и т. д.
9
Архитектура базового (BASELINE) семейства
Базовая архитектура (BASELINE) состоит из контроллеров семейства
PIC10 и части контроллеров семейств PIC12 и PIC16. Основываются они на
12-и разрядной архитектуре слова программ и представлены контроллерами
в корпусах от 6 до 28-и выводов. Упрощенная архитектура базового
семейства предоставляет наиболее дешевое решение из предлагаемых
Microchip. Широкий диапазон напряжений питания, возможность работы при
низких
напряжениях
преследует
целью
возможность
применения
микроконтроллеров в батарейных устройствах.

маловыводные и миниатюрные корпуса

Flash память программ

низкое потребление тока

низкая цена

легкое освоение, всего 35 команд
Архитектура среднего (MID-RANGE) семейства
Архитектура среднего семейства (Mid-Range) нашла применение в
микроконтроллерах серий PIC12 и PIC16, и имеет ширину слова памяти
программ 14 бит. Эти микроконтроллеры выпускаются в корпусах от 8 до 64
выводов. Микроконтроллеры с Flash памятью работают в диапазоне
напряжений питания от 2.0 до 5.5В, имеют систему прерываний, аппаратный
стек и энергонезависимую память данных EEPROM, а также богатый набор
периферии, такой как USB, SPI, I²C, USART, LCD, компараторы, АЦП и т. п.

различные корпуса: 6 — 64 выводов

Flash память программ
10

малый ток потребления

богатая периферия

производительность 5 MIPS

легкое освоение, всего 35 команд
Расширенное ядро микроконтроллеров среднего семейства
В более новых микроконтроллерах Microchip применяет улучшенную
архитектуру 8-битных PIC микроконтроллеров среднего семейства PIC12 и
PIC16:

увеличенный объем памяти программ и данных

более глубокий и улучшенный аппаратный стек

дополнительные источники сброса

расширенная периферия, периферия включает модуль mTouch ™ для
создания сенсорных пользовательских интерфейсов

уменьшенное время входа в прерывание

производительность увеличена на 50 %, а размер кода снижен на 40 %

14 дополнительных инструкций, оптимизированных под С-компилятор
— итого, 49 инструкций
В качестве контролирующего устройства был выбран микроконтроллер
Microchip серии PIC16F877a.
Основные характеристики:
Высокопроизводительный RISC-процессор:

Всего 35 простых для изучения инструкции
11

Все инструкции исполняются за один такт (200 нс), кроме инструкций
перехода, выполняемых за два такта

минимальная длительность такта 200 нс

14 битовые команды

8 - битовые данные

Вход внешних прерываний

8-уровневый аппаратный стек

Прямой, косвенный и относительный режимы адресации для данных и
инструкций
Периферия:

33 линий ввода/вывода с индивидуальным контролем направления

Сильноточные схемы портов ввода/вывода:

- 25 мА макс. вытек. ток

- 25 мА макс. втек. ток

Timer0: 8-разрядный таймер/счетчик

Timer1: 16-разрядный таймер/счетчик

Timer2: 8-разрядный таймер/счетчик

2 ШИМ модуля

Последовательные интерфейсы

- 3-проводный SPI

- I2C Master и Slave режимы

- USART (с поддержкой адреса)

Параллельный Slave порт

8 каналов 10-битного АЦП

2 аналоговых компаратора

Интегрированный программируемый источник опорного напряжения
12
Особенности микроконтроллера:

Сброс при включении питания (POR)

Таймер включения питания (PWRT) и таймер запуска генератора (OST)

Сброс по снижению напряжения питания (BOR)

Сторожевой
таймер
(WDT)
с
собственным
встроенным
RC-
генератором для повышения надежности работы

Режим экономии энергии (SLEEP)

Выбор источника тактового сигнала

Программирование на плате через последовательный порт (ICSPT) (с
использованием двух выводов)

Отладка
на
плате
через
последовательный
порт
(ICD)
использованием двух выводов)

Возможность самопрограммирования

Программируемая защита кода

1000 циклов записи/стирания FLASH памяти программы

100 000 циклов записи/стирания памяти данных ЭСППЗУ

Период хранения данных ЭСППЗУ > 40 лет
Технология КМОП:

Экономичная, высокоскоростная технология КМОП

Полностью статическая архитектура

Широкий рабочий диапазон напряжений питания - от 2,0В до 5,5В

Промышленный и расширенный температурный диапазоны

Низкое потребление энергии
Расположение выводов
13
(с
Структурная схема микроконтроллера PIC16F877a
14
При написании таймера, который является проверкой естественного
затемнения, для микроконтроллера была написана программа.
разработки
программы
были
использованы
микроконтроллера:
15
следующие
В ходе
команды
BCF Очистить бит b в регистре f
Синтаксис: [label] BCF f,b
Операнды: 0 ≤ f ≤ 127
0≤b≤7
Операция: 0 → (f<b>)
Измен. флаги: Нет
Описание: Очистить бит 'b' в регистре 'f'.
BSF Установить бит b в регистре f
Синтаксис: [label] BSF f,b
Операнды: 0 ≤ f ≤ 127
0≤b≤7
Операция: 1 → (f<b>)
Измен. флаги: Нет
Описание: Установить бит 'b' в регистре 'f'.
BTFSC Проверить бит b в регистре f, пропустить если 0
Синтаксис: [label] BTFSC f,b
Операнды: 0 ≤ f ≤ 127
0≤b≤7
Операция: пропустить если (f<b>) = 0
Измен. флаги: Нет
Описание: Если бит 'b' в регистре 'f' равен '1' , то исполняется
следующая инструкция.
Если бит 'b' в регистре 'f' равен '0' , то следующая
инструкция не выполняется, команда выполняется за два
цикла. Во втором цикле выполняется NOP.
BTFSS Проверить бит b в регистре f, пропустить если 1
Синтаксис: [label] BTFSS f,b
16
Операнды: 0 ≤ f ≤ 127
0≤b≤7
Операция: пропустить если (f<b>) = 1
Измен. флаги: Нет
Описание: Если бит 'b' в регистре 'f' равен '0' , то исполняется
следующая инструкция.
Если бит 'b' в регистре 'f' равен '1' , то следующая
инструкция не выполняется, команда выполняется за два
цикла. Во втором цикле выполняется NOP.
CALL Вызов подпрограммы
Синтаксис: [label] CALL k
Операнды: 0 ≤ k ≤ 2047
Операция: (PC) + 1 → TOS,
k → PC<10:0>,
(PCLATH<4:3>) → PC<12:11>
Измен. флаги: Нет
Описание: Вызов подпрограммы. Адрес следующей инструкции
(PC+1) помещается в вершину стека. Одиннадцать бит
адреса загружаются из кода команды в счетчик команд
PC<10:0>. Два старших бита загружаются в счетчик
команд PC<12:11> из регистра PCLATH. Команда CALL
выполняется за два цикла
CLRF Очистить f
Синтаксис: [label] CLRF f
Операнды: 0 ≤ f ≤ 127
Операция: 00h → (f)
1→Z
Измен. флаги: Z
17
Описание: Очистить содержимое регистра 'f' и установить флаг Z
DECFSZ Вычесть 1 из f и пропустить если 0
Синтаксис: [label] DECFSZ f,d
Операнды: 0 ≤ f ≤ 127
d ∈ [0,1]
Операция: (f) - 1 → (dest); пропустить если результат равен 0
Измен. флаги: Нет
Описание: Декрементировать содержимое регистра 'f'. Если d=0,
результат сохраняется в регистре W. Если d=1, результат
сохраняется в регистре 'f'.
Если результат не равен '0' , то исполняется следующая
инструкция. Если результат равен '0' , то следующая
инструкция не выполняется, команда выполняется за два
цикла. Во втором цикле выполняется NOP.
GOTO Безусловный переход
Синтаксис: [label] GOTO k
Операнды: 0 ≤ k ≤ 2047
Операция: k → PC<10:0>,
(PCLATH<4:3>) → PC<12:11>
Измен. флаги: Нет
Описание: Выполнить безусловный переход. Одиннадцать бит
адреса загружаются из кода команды в счетчик команд
PC<10:0>. Два старших бита загружаются в счетчик
команд PC<12:11> из регистра PCLATH. Команда GOTO
выполняется за два цикла.
MOVLW Переслать константу в W
Синтаксис: [label] MOVLW k
Операнды: 0 ≤ k ≤ 255
18
Операция: k → (W)
Измен. флаги: Нет
Описание: Переслать константу 'k' в регистр W. В неиспользуемых
битах ассемблер устанавливает '0'.
MOVWF Переслать W в f
Синтаксис: [label] MOVWF f
Операнды: 0 ≤ f ≤ 127
Операция: (W) → (f)
Измен. флаги: Нет
Описание: Переслать содержимое регистра W в регистр 'f'.
NOP Нет операции
Синтаксис: [label] NOP
Операнды: Нет
Операция: Нет операции
Измен. флаги: Нет
Описание: Нет операции
RETURN Возврат из подпрограммы
Синтаксис: [label] RETURN
Операнды: Нет
Операция: TOS → PC
Измен. флаги: Нет
Описание: Возврат из подпрограммы. Вершина стека TOS
загружается в счетчик команд PC. Инструкция
выполняется за 2 цикла.
19
3.
Расчет задержки таймера на временной интервал
Для того, чтобы не было ложных срабатываний устройства
сделаем
временную задержку включения. Т.е. после поступления сигнала с датчика
необходимо отсчитать некоторое количество тактов синхронизирующего
сигнала до включения исполняющего устройства.
Используем цикл со счетчиком проходов, где один проход цикла будет равен
одной секунде.
Теперь рассчитаем количество тактов контроллера, исполнение которых
займет 1сек.
Для этого зададимся частой кварцевого резонатора равной 4МГц. 1
машинный цикл контроллера исполняется за 4 такта кварцевого резонатора,
следовательно, чтобы прошла 1 секунда необходимо совершить 1000000
машинных циклов.
Т.к. команды ассемблера исполняются за разное количество машинных
циклов (2,4,1) то подсчет временной задержки вручную становиться
трудоемким. Для расчета я воспользовался программой
PAUSE, которая
автоматически рассчитывает цикл и количество проходов для обеспечения
нужной задержки.
Результат работы программы:
;delay = 1'000'000 machine cycles
Pause
movlw
.173
movwf
Reg_1
movlw
.19
movwf
Reg_2
movlw
.6
movwf
Reg_3
20
wr
decfsz
Reg_1, F
goto
wr
decfsz
Reg_2, F
goto
wr
decfsz
Reg_3, F
goto
wr
nop
nop
Данная программа осуществляет задержку в 1 секунду. В рамках данного
курсового
проекта
необходимо
следовательно, необходимо
совершить
задержку
в
2
минуты,
увеличить число операций выполняемых
микроконтроллером в 120 раз (2 минуты = 60 секунд * 2). Программа
таймера примет следующий вид:
;delay = 120'000'000 machine cycles
Pause
wr
movlw
.105
movwf
Reg_1
movlw
.231
movwf
Reg_2
movlw
.242
movwf
Reg_3
movlw
.6
movwf
Reg_4
decfsz
Reg_1, F
goto
wr
decfsz
Reg_2, F
goto
wr
decfsz
Reg_3, F
goto
wr
decfsz
Reg_4, F
21
goto
wr
22
4.
Описание программной среды
4.1 Proteus
Для
моделирования
рабочего
устройства
был
использован
программный комплект Proteus.
Proteus - это пакет программ для автоматизированного проектирования
электронных схем. Пакет представляет собой систему схемотехнического
моделирования,
базирующуюся
на
основе
моделей
электронных
компонентов принятых в PSpice. Отличительной чертой пакета Proteus
Professional является возможность моделирования работы программируемых
устройств:
микроконтроллеров,
микропроцессоров,
DSP
и
прочее.
Дополнительно в пакет Proteus входит система проектирования печатных
плат.
Proteus
Professional
может
симулировать
работу
следующих
микроконтроллеров: 8051, ARM7, AVR, Motorola, PIC, Basic Stamp. База
программы содержит больше 6000 моделей различных аналоговых и
цифровых
элементов.
Proteus
7.10
Pro
содержит мощную
систему
проектирования печатных плат. Внутренняя библиотека имеет огромную
базу
справочных
данных.
Программа
совместима
с
большинством
компиляторов и ассемблеров. Proteus 7.10 Pro содержит два модуля: ISIS и
ARES. Данный графический редактор имеет встроенный автотрассировщик
ELECTRA, а также автоматическое размещение рабочих элементов на
печатной плате. Кроме того, библиотека модуля достаточно обширна.
Поддерживает МК: PIC, 8051, AVR, HC11, MSP430, ARM7/LPC2000 и
другие распространенные процессоры. Более 6000 аналоговых и цифровых
моделей устройств. Работает с большинством компилятором и ассемблерами.
PROTEUS
VSM
позволяет
очень
достоверно
моделировать
и
отлаживать достаточно сложные устройства в которых может содержаться
несколько
МК
одновременно
и
даже
23
разных
семейств
в
одном
устройстве.PROTEUS
содержит
огромную
библиотеку
электронных
компонентов.Отсутствующие модели можно сделать. Если компонент не
программируемый нужно на сайте производителя скачать его SPICE модель
и добавить в подходящий корпус.
Proteus 7 состоит из двух основных модулей:
1.
ISIS - графический редактор принципиальных схем служит для ввода
разработанных проектов с последующей имитацией и передачей для
разработки печатных плат в ARES. К тому же после отладки устройства
можно сразу развести печатную плату в ARES которая поддерживает авто
размещение и трассировку по уже существующей схеме.
2.
ARES - графический редактор печатных плат со встроенным
менеджером библиотек и автотрассировщиком ELECTRA, автоматической
расстановкой компонентов на печатной плате.
Возможности программы для моделирование схем Proteus 7.10:
1.
- Использование шаблонов PCB c возможностью сохранения настроек
печатной платы
2.
- Изменения цвета фона по умолчанию в ARES
3.
- Переключение видимых слоёв и цвета в ARES
4.
- Улучшенная прокладка проводников в ISIS
5.
- Отображение размеров контактных площадок в окне предпросмотра в
ARES
6.
- Добавлены примеры для микроконтроллеров AVR и 8051
7.
- Файл справки переделан в CHM формат
24
8.
- вы можете подключить через "шнурок" к свободному COM-порту
сотовый телефон и отлаживать устройство на МК которое должно управлять
им.
9.
- вы можете подключить к COM-порту любое реальное устройство с
которым ваш создаваемый прибор будет общаться в реальности
PROTEUS VSM - работает с популярными компиляторами Си для МК:
1.
- CodeVisionAVR (для МК AVR)
2.
- IAR (для любых МК)
3.
- ICC (для МК AVR, msp430, ARM7, Motorola )
4.
- WinAVR (для МК AVR)
5.
- Keil (для МК архитектуры 8051 и ARM)
6.
- HiTECH (для МК архитектуры 8051 и PIC от Microchip)
Программа PROTEUS VSM идеально подходит для новичков,
решивших начать изучение микроконтроллеров. Программа имеет еще два
полезных компонента. COMPIM – позволяет подключиться виртуально
созданному устройству к реальному COM-порту компьютера, а USBCONN –
к реальному USB-выходу. Это дает возможность подключить к компьютеру
реальный прибор, с которым создаваемое устройство будет в будущем
обмениваться данными. Конечно, при работе с программой нужно понимать,
что любое моделирование не сможет на 100 % повторить работу реального
устройства. Однако для общей отладки этого вполне достаточно.
4.2 Моделирование в среде Proteus
Размещаем на рабочей области основные компоненты.
25
Подключаем осциллограф.
Эмулируем срабатывание датчика. После 2 минут ожидания лампочка
зажглась.
26
Эммулируем
срабатывание
После 2 минут ожидания лампочка потухла.
27
датчика.
28
4.3 MPLAB
Для программирования микроконтроллера была использована среда
разработки MPLAB.
MPLAB - это интегрированная среда разработки (IDE) для семейства
микроконтроллеров PICmicro фирмы Microchip Technology Incorporated.
MPLAB позволяет писать, отлаживать и оптимизировать программы для
Ваших разработок. MPLAB включает текстовый редактор, симулятор
(виртуальный отладчик), менеджер проектов и поддерживает эмуляторы
(внутрисхемные отладчики) MPLAB-ICE и PICMASTER , программаторы
PICSTART Plus и PRO MATE II и другие средства и инструменты разработок
фирмы Microchip и других фирм.
Инструментальные
средства
MPLAB,
организованные
как
ниспадающие меню и определяемые быстрые клавиши, позволяют:
- ассемблировать, компилировать исходный текст;
- отлаживать логику работы, наблюдая с помощью симулятора или, в
реальном времени, с эмулятором MPLAB-ICE ;
-
просматривать переменные в окнах просмотра;- программировать
кристаллы с помощью программаторов PICSTART Plus или PRO MATE II
MPLAB IDE ( (Integrated Development Environment) – интегрированная
среда разработки, представляет собой программный продукт работающий
под управлением операционной системы WINDOWS и предназначенный для
написания, отладки и оптимизации программ для Microchip PIC
контроллеров. MPLAB обеспечивает полную среду разработки и включает в
себя:Integrated Development Environment) – интегрированная
29
среда разработки, представляет собой программный продукт работающий
под управлением операционной системы WINDOWS и предназначенный для
написания, отладки и оптимизации программ для Microchip PIC
контроллеров. MPLAB обеспечивает полную среду разработки и включает в
себя:
1.
MPLAB Project Manager– менеджер проекта;
2.
MPLAB Editor – текстовый редактор,
3.
MPLAB-SIM Simulator – симулятор;
4.
MPASM – универсальный Ассемблер, а так же MPLINK
5.
(Линковщик) и MPLIB (Библиотекарь);
6.
MLPAB-ICE Emulator – эмулятор,
7.
программаторы PICSTART Plus и PRO MATE 2;
8.
а также инструментальные средства третьих лиц – большое
Программная оболочка MPLAB обладает широкими возможностями
для написания исходного кода программы, дальнейшей отладки текста с
исправлением ошибок и предупреждений финальной оптимизации проекта.
Кроме этого MPLAB может рассчитать время работы программы, открыть
доступ к переменным и специальным регистрам контроллера, объединить
разрозненные файлы в проект. В программной среде используются
разнообразные методики для обнаружения логических несоответствий.
Большое количество вспомогательных окон (сервисных, листинга, исходного
кода, регистров памяти), трассировка, присутствие точек остановки
помогают с легкостью исправлять ошибки.
30
Благодаря встроенной системе помощи программа довольно проста в
изучении, разумеется, при наличии определенных знаний. А производитель
PIC-контроллеров
Microchip,
разработавший
MPLAB,
осуществляет
прекрасную поддержку своих продуктов.
В папке, где размещается MPLAB, по пути \template\code лежат файлышаблоны для проектов, разрабатываемых на ассемблере, с которых удобно
начинать работу. Необходимо помнить, что для каждого проекта MPLAB
создает целый ряд вспомогательных файлов, поэтому если в одном месте
будут находиться несколько работ, то можно перепутать их.
Самодельные русификаторы MPLAB широко распространены на просторах
интернета. Однако они зачастую приносят в программу свои баги и жестко
привязаны к определённой версии. Стоит отметить, что основные
необходимые для работы в MPLAB функции ясны и без перевода.
MPLAB доступна на операционных системах Windows, Mac OS и Linux.
Программа работоспособна во всех последних версиях ОС Microsoft
Windows.
4.4 Написание программы в среде MPLAB
Набираем программу таймера и реагирования микроконтроллера на
значения, полученные от датчика освещенности. Листинг программы см. в
Приложении 1.
31
Компилирование программы
32
Приложение №1
Листинг программы микроконтроллера.
indf equ 0
tmr0 equ 1
pc equ 2
status equ 3
fsr equ 4
porta equ 5
portb equ 6
portc equ 7
portd equ 8
porte equ 9
tmr1l equ 0Eh
tmr1h equ 0Fh
t1con equ 10h
option_reg equ 81h
trisa equ 85h
trisb equ 86h
trisc equ 87h
trisd equ 88h
trise equ 89h
adcon0 equ 1Fh
adres equ 1Eh
pclath equ 0Ah
intcon equ 0Bh
adcon1 equ 9Fh
pir1 equ 0Ch
pie1 equ 8Ch
; status
c
dc
equ 0
equ 1
33
z
equ 2
pd equ 3
to equ 4
rp0 equ 5
rp1 equ 6
irp equ 7
rind1 equ
rind2 equ
rind3 equ
rind4 equ
rind5 equ
rind6 equ
rind7 equ
rind8 equ
rind9 equ
rind10 equ
rind11 equ
rind12 equ
rind13 equ
rind14 equ
rind15 equ
rind16 equ
riz1 equ
riz2 equ
riz3 equ
riz4 equ
riz5 equ
riz6 equ
riz7 equ
riz8 equ
riz9 equ
riz10 equ
;
;
;
;
;
15h
16h
1Bh
20h
21h
22h
23h
24h
25h
26h
27h
28h
29h
30h
31h
32h
33h
34h
35h
36h
37h
38h
39h
3Ah
3Bh
3Ch
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
34
riz11
riz12
riz13
riz14
riz15
riz16
flag
x1
x2
x3
rd3
rd4
time
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
3Dh
3Eh
3Fh
40h
41h
42h
43h
6Bh
7Ah
7Bh
7Ch
7Dh
7Fh
;
;
;
;
;
;
;
;для цикла задержки
; для цикла задержки
; для цикла задержки
;
;
; регистр хранения времени задержки
;------------------------------Объявляем константы------------------------------------C0 equ .5 ;10 сек
;--------------------------------------------------------------------------------------;------------------------устанавливаем параметры портов------------------------------clrf portb
bsf status,rp0
movlw b'011111'
movwf trisa
movlw b'00000000'
movwf trisb
movlw b'00000000'
;
movwf trisc
movlw b'00001000' ;
movwf trisd
movlw b'111'
;порт Е как вход
movwf trise
bcf status,rp0
clrf portb
clrf portc
clrf portd
bsf status,rp0
35
movlw b'100'
movwf adcon1
bcf status,rp0
;---------------------------------------------------------------------------------------movlw C0
movwf time ;заносим данные в регистр времени
;---------------------------------------основная прорамма--------------------------------start btfsc porte,0 ;ждем 0 с датчика (если 0 то света нету)
goto st
decfsz time,f
goto pause
nop
movlw C0
movwf time ;заносим данные в регистр времени
vikl bsf portb,7 ; подключаем внешнее освещение
btfss porte,0 ;ждем 1 с датчика (если 1 то свет есть)
goto vi2
nop
decfsz time,f
goto pause2
bcf portb,7 ; отключаем внешнее освещение
goto start ; переходим в начало алгоритма
st
movlw C0
movwf time ;заносим данные в регистр времени
goto start
vi2
movlw C0
movwf time ;заносим данные в регистр времени
goto vikl
pause call sek1
goto start
pause2 call sek1
goto vikl
36
;------------------------------задержка 1 секунда---------------------------sek1
movlw
.173
movwf
x1
movlw
.19
movwf
x2
movlw
.6
movwf
x3
wr
decfsz x1, f
goto
wr
decfsz x2, f
goto
wr
decfsz x3, f
goto
wr
nop
nop
return
;-----------------------------------------------------------------------------End
37
Список литературы
1.
Интегрированная среда разработки для микроконтроллеров PICmicro
компании
Microchip
Technology
Incorporated
ООО
“Микро-Чип”
Москва – 2001
2.
Однокристальные
PIC16F87X
8-разрядныеFLASH
CMOS
микроконтроллеры компании Microchip Technology Incorporated ООО
“Микро-Чип” Москва – 2002
3.
Таненбаум, Э. Архитектура компьютера / Э. Таненбаум. – СПб.: Питер,
2007.
4.
Норенков
И.
П.
Основы
автоматизированного
проектирования.
Учебник для вузов. М.: Изд-во МГТУ им. Н. Э. Баумана, 2000. - 360 с.
5.
Интернет ресурс http://www.chipdip.ru/
38
Download