Автор работы: Пользователь скрыл имя, 20 Июля 2011 в 21:26, курсовая работа
В данном курсовом проекте поставлена задача разработки системы противопожарной защиты помещения, в которой микропроцессор будет выполнят координирующую роль: он будет получать сигналы с датчиков и определять поведение противодымной системы в целом в зависимости от данных, пришедших с датчиков. Одним из плюсов данной системы является отличная масштабируемость, которая позволяет применять подобную схему как для небольших офисов, так и для этажа здания или всего здания в целом путем внесения лишь небольших изменений. Внедрение разрабатываемой противодымной защиты позволит существенно повысить пожарную безопасность простым, дешевым и эффективным способом.
Введение………………….……………………………………………………........4
1 Постановка задачи и её физическая интерпретация………….………………..5
2 Выбор технических средств и структурная схема МПУ.……………..…..........7
3 Алгоритм работы МПУ и протокол обмена информацией между МПУ и объектом управления……………………………………………………………....12
Заключение…………………………………………………………………………13
Список использованных источников…………………………………………......14
Приложение
Специализированные микроконтроллеры серии MR содержат 12-разрядные модули ШИМ с 6 выходными каналами. Они ориентированы на применение в системах управления электроприводом. Микроконтроллеры RK и RF ориентированы на использование в радиотехнике.
Серии JB, JK, JL, КХ выпускаются в дешевых корпусах с малым числом выводов. Микроконтроллеры этих серий имеют от 13 до 23 линий параллельного ввода-вывода данных. Они используются в бытовой аппаратуре и изделиях массового применения, где требование низкой стоимости является одним из первостепенных факторов.
В сериях QT, QY представлены модели, ориентированные на применение в малобюджетных проектах. Эти микроконтроллеры отличаются низкой стоимостью и выпускаются в компактных корпусах с малым числом выводов (8 или 16). Они имеют встроенный осциллятор, обеспечивающий формирование тактовой частоты с точностью 5%. Небольшой объем FLASH-памяти (до 4 Кбайт), наличие АЦП и таймера делают эти модели идеальными для построения несложных контроллеров распределенных систем мониторинга и управления.
Оба
семейства микроконтроллеров
В силу большей доступности на рынке микроконтроллеров ADuC812 и программаторов для них, было решино использовать микроконтроллеры этого семейства, а конкретно - ADuC812BS.
В данном курсовом проекте микроконтроллер является координирующим элементом системы. Следовательно, ему необходимо получать данные с датчиков и отдавать команды на элементы системы противодымной защиты. Так как и те, и другие являются устройствами аналоговыми, а микроконтроллер - устройством цифровым, то необходимо использовать АЦП и ЦАП для преобразования сигналов.
Для АЦП мы будем использовать встроенный в микропроцессорную систему преобразователь Н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 позиций). Помимо этого в состав схемы
входят светодиоды и динамик.
3
Алгоритм работы МПУ и
Непосредственно на входы порта Р1.0-Р1.2 микроконтроллера приходят сигналы с датчиков дыма. Для взаимодействия с периферией в схему включена МАХ3064: сигналы с выходов D0-D10 поступают на LCD. Сигналы для свето диодов поступают с выходов D10-D16. Управляющие сигналы для светодиодов и LCD приходят из портов РО и Р2 микроконтроллера. Через Р1.5-Р1.7 подаются управляющие сигналы системам дымоудаления.
Схема
алгоритма программы приведена
в приложении Б.
Заключение
В работе было на практике разобрано проектирование реальной микропроцессорной системы с использованием поэтапного метода разработки: анализ существующих микроконтроллеров, выбор элементной базы для системы, выбор производителя, создание структурной схемы, функциональной и как основной результат – принципиальная электрическая схема, на основе которой можно приступать к распайке устройства. Для обеспечения полного функционирования аппаратного продукта разработано специальное программное обеспечение к нему.
.
Список
использованных источников
1 Справочник. Микроконтроллеры: архитектура, программирование, интерфейс. Бродин В.Б., Шагурин М.И.М.:ЭКОМ, 1999.
2 Андреев Д.В. Программирование микроконтроллеров MCS-51: Учебное пособие. - Ульяновск: УлГТУ, 2000.
3 М. Предко. Руководство по микроконтроллерам. Том I. Москва: Постмаркет, 2001.
4 Интегральные микросхемы: Справ. / Б. В. Тарабрин, Л. Ф. Лукин, Ю. Н. Смирнов и др.; Под ред. Б. В. Тарабрина. – М.: Радио и связь, 1985.
5 Бурькова
Е.В. Микропроцессорные системы. ГОУ ОГУ.
2005.
ПРИЛОЖЕНИЕ А
(Справочное)
Структурная
схема МК ADuC812BS
ПРИЛОЖЕНИЕ Б
(обязательное)
Схема алгоритма программы
ПРИЛОЖЕНИЕ В
(обязательное)
Схема устройства
ПРИЛОЖЕНИЕ Г
(обязательное)
Листинг программы
#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<etazN)
{
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