ПЕРВОЕ ВЫСШЕЕ ТЕХНИЧЕСКОЕ УЧЕБНОЕ ЗАВЕДЕНИЕ РОССИИ МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «НАЦИОНАЛЬНЫЙ МИНЕРАЛЬНО-СЫРЬЕВОЙ УНИВЕРСИТЕТ «ГОРНЫЙ» КУРСОВОЙ ПРОЕКТ По дисциплине: «Программные средства разработки ВС» Тема: «Разработка автоматизированной системы вентилирования серверной» Выполнил студент: Горюнов Евгений Александрович Шифр: 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