Файл: Курсовая работа по дисциплине Электронные промышленные устройства.docx

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 27.03.2024

Просмотров: 14

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


5) Реализованы дополнительные возможности контроля функционирования микроконтроллеров, повышающие надежность работы систем, в которых они применяются.

Все микроконтроллеры семейства 68НС08/908 содержат процессорное ядро CPU08, внутреннюю память программ - масочно-программируемое ПЗУ емкостью до 32 Кбайт или FLASH-память емкостью до 60 Кбайт, ОЗУ данных емкостью от 128 байт до 2 Кбайт. В ряде моделей имеется также память EEPROM емкостью 512 байт или 1 Кбайт. Большинство микроконтроллеров семейства работают при напряжении питания 5.0 В, обеспечивая максимальную тактовую частоту Ft = 8 МГц. Некоторые модели работают при пониженном напряжении питания 3.0В и даже 2.0В.

Микроконтроллеры семейства 68НС08/908 делятся на ряд серий, буквенные обозначения которых указываются для каждой модели после имени семейства (например, 68HC08AZ32 - серия AZ, модель 32). Серии отличаются, в основном, составом периферийных модулей и областями применения. Все модели содержат 16-разрядные таймеры, имеющие 2, 4 или 6 комбинированных входов захвата/выходов совпадения. Большинство моделей содержит 8- или 10-разрядные АЦП.

В состав серий АВ, AS, AZ входят микроконтроллеры общего назначения, которые обеспечивают расширенные возможности интерфейса с внешними устройствами благодаря наличию шести параллельных и двух последовательных портов (SCI, SPI). Модели серий BD, SR и GP имеют четыре параллельных порта. Ряд серий имеет специализированные последовательные порты, используемые для организации микроконтроллерных сетей. Это серия AS, обеспечивающая передачу данных по мультиплексной шине Л 850, серия JB, имеющая интерфейс с последовательной шиной USB, серия AZ, содержащая контроллер сети CAN, серия BD, реализующая интерфейс 12С. Микроконтроллеры этих серий широко используются в промышленной автоматике, измерительной аппаратуре, системах автомобильной электроники, вычислительной технике.

Специализированные микроконтроллеры серии MR содержат 12-разрядные модули ШИМ с 6 выходными каналами. Они ориентированы на применение в системах управления электроприводом. Микроконтроллеры RK и RF ориентированы на использование в радиотехнике.

Серии JB, JK, JL, КХ выпускаются в дешевых корпусах с малым числом выводов. Микроконтроллеры этих серий имеют от 13 до 23 линий параллельного ввода-вывода данных. Они используются в бытовой аппаратуре и изделиях массового применения, где требование низкой стоимости является одним из первостепенных факторов.


В сериях QT, QY представлены модели, ориентированные на применение в малобюджетных проектах. Эти микроконтроллеры отличаются низкой стоимостью и выпускаются в компактных корпусах с малым числом выводов (8 или 16). Они имеют встроенный осциллятор, обеспечивающий формирование тактовой частоты с точностью 5%. Небольшой объем FLASH-памяти (до 4 Кбайт), наличие АЦП и таймера делают эти модели идеальными для построения несложных контроллеров распределенных систем мониторинга и управления.

Оба семейства микроконтроллеров имеют программаторы, позволяющие использовать, как языки высокого уровня (в частности, язык С), так и ассемблеры. Цены на оба семейства микроконтроллеров существенно не отличаются: при средней стоимости около 400 рублей разница составляет 50-100 рублей, что практически не влияет на итоговую стоимость внедрения системы противопожарной защиты.



Рисунок 2 – Блок – схема алгоритма программы.

3.2 Разработка структурной схемы устройства


В данном курсовом проекте микроконтроллер является координирующим элементом системы. Следовательно, ему необходимо получать данные с датчиков и отдавать команды на элементы системы противодымной защиты. Так, как и те, и другие являются устройствами аналоговыми, а микроконтроллер - устройством цифровым, то необходимо использовать АЦП и ЦАП для преобразования сигналов.



Рисунок 3 – Структурная схема МПС

Для АЦП мы будем использовать встроенный в микропроцессорную систему преобразователь Н1562-8 фирмы Hitachi.

Приведём основные характеристики АЦП:

– разрядность 12 бит;

– быстродействие 0.4 мкс; -DNL ±0,018%;

– INL ±0,018%;

– напряжение питания Ucc +5/-15 В;

– ток питания 1СС15/48 мА;

– опорное напряжение Uref +10,24В;

– выходной ток Iout 3-7 мА;

– рабочие температуры от-60 до ±85°С;

– корпус 210В.24-1 (24-pin CerDIP).

Для отображения текстовых данных воспользуемся LCD WH16028-NGK-CP фирмы Winstar Display. Это монохромный дисплей с возможностью одновременного отображения до 32 символов (две строки по 16 позиций). Помимо этого, в состав схемы входят светодиоды и динамик.
    1. Разработка функциональной схемы


Опираясь на структурную схему, составляем функциональную схему устройства.

Непосредственно на входы порта Р1.0-Р1.2 микроконтроллера приходят сигналы с датчиков дыма. Для взаимодействия с периферией в схему включена МАХ3064: сигналы с выходов D0-D10 поступают на LCD. Сигналы для светодиодов поступают с выходов D10-D16. Управляющие сигналы для светодиодов и LCD приходят из портов РО и Р2 микроконтроллера. Через Р1.5-Р1.7 подаются управляющие сигналы системам дымоудаления.


4.РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ МИКРОПРОЦЕССОРНОЙ СИСТЕМЫ

4.1 Выбор и обоснование выбора среды программирования


Программное обеспечение было решено реализовывать с помощью инструментальных средств фирмы Keil Software. Эта фирма поддерживает все стадии разработки приложения: создание исходного файла на С или Ассемблере, трансляцию, исправление ошибок, линкование объектных файлов, тестирование приложения. В пакете Keil Software содержатся практически все необходимые средства разработки для микроконтроллера 8051 /5/. Компилятор С51 поддерживает стандарт ANSI С, разработан специально для 8051 семейства и позволяет создавать программы на языке С (который является наиболее освоенным разработчиком данного курсового проекта), сохраняя эффективность и скорость оптимизации Ассемблера. Расширения, включенные в инструментальные средства Keil, обеспечивают полный доступ к ресурсам микроконтроллеров 8051.


4.2 Разработка алгоритма программы


При загрузке программы в память микроконтроллера происходит начальная установка состояния лифта. А именно, сразу подается сигнал о выключении света, далее следует сигнал о закрытии дверей. В переменную «текущий этаж» заносится 1, в переменную «Препятствие» 0, как показатель отсутствия препятствий. Далее ожидается нажатие клавиши вызова этажа (возможно нажатие как внутри лифта, так и снаружи). Если таковое регистрируется, то подается сигнал на включение света, далее сравнивается номер запрашиваемого этажа. Если он равен текущему этажу, то сразу подается сигнал об открытии дверей, если больше или меньше, то выбирается специальный сигнал о направлении движения лифта (вверх или вниз). При достижении нужного этажа подается сигнал на двигатель дверей, чтобы произвелось открытие. После этого, используя встроенный таймер, отсчитывается 20 секунд. Если в течение этого времени происходит новый вызов, то начинается закрытие дверей с постоянным прослушиванием датчика «Препятствие». Если приходит сообщение от датчика, то управление переходит на метку, где начиналось открытие дверей.


Если по истечении 20 секунд вызова не поступило, то отправляется сигнал на выключение света, затем сигнал на закрытие дверей (опять же с постоянным ожиданием препятствия). Свет выключен, двери закрыты. Микроконтроллер переходит в режим ожидания, на начальную стадию, с тем лишь отличием, что в переменной текущего этажа записан тот этаж, на котором произошла крайняя высадка пассажиров либо остановка.

Заключение


В работе было на практике разобрано проектирование реальной микропроцессорной системы с использованием поэтапного метода разработки: анализ существующих микроконтроллеров, выбор элементной базы для системы, выбор производителя, создание структурной схемы, функциональной и как основной результат – принципиальная электрическая схема, на основе которой можно приступать к распайке устройства. Для обеспечения полного функционирования аппаратного продукта разработано специальное программное обеспечение к нему (Приложение А – Листинг программы)

Список использованных источников


  1. Справочник. Микроконтроллеры: архитектура, программирование, интерфейс. Бродин В.Б., Шагурин М.И.М.: ЭКОМ, 2009.

  2. Андреев Д.В. Программирование микроконтроллеров MCS-51: Учебное пособие. - Ульяновск: УлГТУ, 2009.

  3. М. Предко. Руководство по микроконтроллерам. Том I. Москва: Постмаркет, 2001.

  4. Интегральные микросхемы: Справ. / Б.В. Тарабрин, Л.Ф. Лукин, Ю.Н. Смирнов и др.; Под ред. Б.В. Тарабрина. – М.: Радио и связь, 1985.

  5. Бурькова Е.В. Микропроцессорные системы. ГОУ ОГУ. 2005.




Приложение А


(Листинг программного обеспечения)

#include "ADuC812.h"

#include "max.h"

#include "kb.h"

#include "lcd.h"

#include "i2c.h"

int etazN,i,j,curEtaz,Prepat;

int VvodEtaz ()

{

char etaz;

int tmp;

LCD_Type("Etazh:");

etaz='0';

while(etaz=='0')

{

if(ScanKBOnce(&etaz))

{

etazN=etaz-48;

LCD_Putch(etazN+48);

etaz='0';

while(etaz=='0')

{

if(ScanKBOnce(&etaz))

{

if(etaz=='A’) {break;} else

{

tmp=etaz-48;

etazN=(etazN*10) + (etaz-48);

LCD_Putch(tmp+48);

};

};

};

};

};

return etazN;

}

void HodLifta ()

{

int j,i;

if(curEtaz
{

for (i=curEtaz;i<=etazN;i++)

{

for (j=0; j<=10000; j++)

{

WriteMax(SV,i);

Delay ();

}

}

};

if(curEtaz>etazN)

{

for (i=curEtaz;i>=etazN;i--)

{

for (j=0; j<=10000; j++)

{

WriteMax(SV,i);

Delay ();

}

}

};

curEtaz=etazN;

}

// 5 sec na zakrytie dverei i proverka prepatstviya:

void ZakrDveri ()


{

int j,i;

char Bc;

Bc='0';

for (i=1; i<=5; i++)

{

for (j=0; j<=1000; j++)

{

if(ScanKBOnce(&Bc))

{

if(Bc=='B')

{

Prepat=1;

goto id3;

}; // B - datchik prepatstviya

};

Delay ();

};

LCD_GotoXY (15,1);

LCD_Putch(i+48);

}

id3: i=1;

}

void main ()

{

char Ac,etaz;

int tmp;

TMOD=0x20;

TCON=0x40;

InitLCD();

LCD_GotoXY(0,1);

LCD_Type("SvetVyk");

LCD_GotoXY(7,1);

LCD_Type("DveriZakr");

curEtaz=1; // tekushii etaz

Prepat=0; // prepyatsvii net

id: Ac='0';

while(Ac=='0')

{

if(ScanKBOnce(&Ac))

{

if(Ac=='A')

{

etazN=VvodEtaz ();

LCD_GotoXY (0,0); // "etaz" propal

LCD_Type (" ");

LCD_GotoXY (0,1);

LCD_Type("SvetVkl");

HodLifta();

id2: LCD_GotoXY (7,1);

LCD_Type("DveriOtkr");

// zdem 20 sec:

for (i=0; i<=10000; i++)

{

if(ScanKBOnce(&Ac)) // nazhatie etaza vnutri

{

if(Ac=='A')

{

etazN=VvodEtaz ();

LCD_GotoXY (7,1);

LCD_Type("DveriZakr");

ZakrDveri (); // medlenno zakryvaem dveri

if (Prepat==1)

{

LCD_GotoXY (0,1);

LCD_Type("SvetVkl");

Prepat=0;

goto id2;

};

LCD_GotoXY (0,0);

LCD_Type (" ");

HodLifta ();

goto id2;

};

};

Delay ();

};

LCD_GotoXY (0,1);

LCD_Type("SvetVyk");

LCD_GotoXY (7,1);

LCD_Type("DveriZakr");

ZakrDveri (); // medlenno zakryvaem dveri

if (Prepat==1)

{

LCD_GotoXY(0,1);

LCD_Type("SvetVkl");

Prepat=0;

goto id2;

};

LCD_GotoXY (0,0);

LCD_Type (" ");

LCD_GotoXY (0,0);

// zdem sled vyzova:

goto id;

}

}

}

while (1);

}