рефераты рефераты
Главная страница > Дипломная работа: Разработка устройства автоматического регулирования света на микроконтроллере  
Дипломная работа: Разработка устройства автоматического регулирования света на микроконтроллере
Главная страница
Банковское дело
Безопасность жизнедеятельности
Биология
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
География экономическая география
Геодезия
Геология
Госслужба
Гражданский процесс
Гражданское право
Иностранные языки лингвистика
Искусство
Историческая личность
История
История государства и права
История отечественного государства и права
История политичиских учений
История техники
История экономических учений
Биографии
Биология и химия
Издательское дело и полиграфия
Исторические личности
Краткое содержание произведений
Новейшая история политология
Остальные рефераты
Промышленность производство
психология педагогика
Коммуникации связь цифровые приборы и радиоэлектроника
Краеведение и этнография
Кулинария и продукты питания
Культура и искусство
Литература
Маркетинг реклама и торговля
Математика
Медицина
Реклама
Физика
Финансы
Химия
Экономическая теория
Юриспруденция
Юридическая наука
Компьютерные науки
Финансовые науки
Управленческие науки
Информатика программирование
Экономика
Архитектура
Банковское дело
Биржевое дело
Бухгалтерский учет и аудит
Валютные отношения
География
Кредитование
Инвестиции
Информатика
Кибернетика
Косметология
Наука и техника
Маркетинг
Культура и искусство
Менеджмент
Металлургия
Налогообложение
Предпринимательство
Радиоэлектроника
Страхование
Строительство
Схемотехника
Таможенная система
Сочинения по литературе и русскому языку
Теория организация
Теплотехника
Туризм
Управление
Форма поиска
Авторизация




 
Статистика
рефераты
Последние новости

Дипломная работа: Разработка устройства автоматического регулирования света на микроконтроллере

17."LEDs move from indication to illumination" // EDN, 8/2/2001 http://www.edn.com/contents/images/149134.pdf

18. Л. Н. Кечиев, Е. Д. Пожидаев "Защита электронных средств от воздействия статического электричества" – М.: ИД "Технологии", 2005.

19. Жидецкий В.Ц., Джигирей В.С., Мельников А.В. Основы охраны труда: Учебник – Львов, Афиша, 2008 – 351с.

20. Денисенко Г.Ф. Охрана труда: Учебн.пособие – М., Высшая школа, 1989 – 319с.

21. Самгин Э.Б. Освещение рабочих мест. – М.: МИРЭА, 1989. – 186с.

22. Справочная книга для проектирования электрического освещения. / Под ред. Г.Б. Кнорринга. – Л.: Энергия, 1976.

23. Борьба с шумом на производстве: Справочник / Е.Я. Юдин, Л.А. Борисов;

Под общ. ред. Е.Я. Юдина – М.: Машиностроение, 1985. – 400с., ил.

24. Зинченко В.П. Основы эргономики. – М.: МГУ, 1979. – 179с.

25.Методичні вказівки до виконання дипломної роботи для учнів спеціальності «Оператор комп’ютерного набору; оператор комп’ютерної верстки»/ Упоряд.: Д.О. Дяченко, К.О. Ізмалкова, О.Г. Меркулова. – Сєверодонецьк: СВПУ, 2007. – 40 с.


ПРИЛОЖЕНИЯ

ПРИЛОЖЕНИЕ А

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

Date : 05.03.2010

Управление лампой накаливания.

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

#include "90s2313.h"

#include "delay.h"

#define red PORTD.4

#define green PORTD.5

#define number_of_impuls 63 //64 - max

#define udervanie 1563

#define ofa_min 0x80

#define ofa_max 0xE8

#define kn_plus PIND.0;

#define kn_minus PIND.6;

unsigned char s_reg;//хранилище SREG

unsigned char ofa;//отсечка фазы -> ofa_min <= ofa <= ofa_max

unsigned char mode;//режим работы прграммы обработки ДУ.

bit infra, infra_old;//текущее, предыдущее значение сигнала с ПДУ

bit second_half_period;//для двойного прохода по прерыванию timer1.

bit ir_plus, ir_minus, ir_plus_old, ir_minus_old;//нажатие на ПДУ "+", "-"

bit closed;//идет обработка полученного сигнала ПДУ; не нужно прерываться по OVF_timer0

unsigned char num;//

bit on_new, on_old, off_new, off_old;//биты состояния кнопок.

bit enable_count;

bit error;//определение идентичности посылки

bit ir_p_otp, ir_m_otp;//отпускание кнопки ДУ

unsigned int timer_ofa;//таймер задержки изменения ofa;

eeprom unsigned char pusto[1];

eeprom unsigned char plus[number_of_impuls];

eeprom unsigned char minus[number_of_impuls];

unsigned char serial[number_of_impuls];

flash unsigned char copyright[]="AMAR T0260";

unsigned int tic;//отсчет секунд

unsigned int clock;//отсчет времени

bit second;//флаг секунды

bit in_home;//флаг "хозяин дома"

#include "infrared.c"

void write(eeprom char *kuda)

{

for(num=0; num<number_of_impuls; num++) kuda[num]=serial[num];

mode=7;

num=0;

serial[0]=0;

}

void verify(unsigned char temp)

if((serial[num]<(temp-temp/4))

void infrared(void)

{

static unsigned int zader;

static unsigned char prop;

unsigned char temp;

if(zader)//ждем окончания приема сигнала

         {

         if(infra_old==1 && infra==1)

                   {

                   if(--zader)return;

                   ir_minus=ir_plus=0;

                   return;

                   }

         zader=udervanie;

         return;

         }

if(!prop)

         {

         if(!infra) goto rc5_fr;

         return;

         }

if(prop < 7)

         {

         if(infra_old)

                   {

                   if(infra) goto rc5_count;

                   }

        

else

                   {

                   if(!infra)

                            {

rc5_count:           if(++serial[0] > 250) prop=0;

                            return;

                            }

                   }

         if(serial[0] > 0x14) ++prop;

rc5_fr:        ++prop;

         serial[0]=0;

         return;

         }

if(infra_old != infra)

         {

         ++num;

         serial[num]=0;

         return;

         }

//infra_old == infra

if(num<number_of_impuls && serial[num]<255) ++serial[num];

else//проверка полученной последовательности

         {

         closed=1;

         prop=0;

         switch(mode)

                   {

                   case 5:

                            write(plus);

                            break;

                   case 6:

                            write(minus);

                            break;

                   default:

                            error=0;

                            for(num=0; num<number_of_impuls-1; num++)

                                      {

                                      temp=plus[num];

                                      if(temp==0xFF) break;

                                      verify(temp);

                                      }

                           

if(!error)

                                      {

                                      ir_plus=1;

                                      ir_minus=0;

                                      }

                            error=0;

                            for(num=0; num<number_of_impuls-1; num++)

                                      {

                                      temp=minus[num];

                                      if(temp==0xFF) break;

                                      verify(temp);

                                      }

                            if(!error)

                                      {

                                      ir_plus=0;

                                      ir_minus=1;

                                      }

                            if(ir_plus || ir_minus) zader=udervanie;

                            //очистка массива и переменной num

                            num=number_of_impuls;

                            while(num) serial[--num]=0;

                            break;

                   }

         }

}

#include "keyboard.c"

//==========================================================

//обработка кнопок.

//==========================================================

void keyboard(void)

{

#define press_time 10

static unsigned int counter;//счетчик для снижения частоты вызова опроса клавиатуры.

static unsigned char press_plus;//счетчик последовательных нажатий на кнопку "+"

static unsigned char press_minus;//счетчик последовательных нажатий на кнопку "-"

static unsigned char press_key;//отсчет лимита времени на вход в mode=5 или 6.

static unsigned int zader;//счетчик времени нажатия на кнопку.

if(++counter<2000) return;

//обнуляем счетчик

counter=0;

//опрашиваем кнопки.

on_old=on_new;

off_old=off_new;

on_new=kn_plus;

off_new=kn_minus;

//удерживаем "+" и "-"

if(!on_old && !off_old && !on_new && !off_new)

         {

         if(zader > press_time*3)

                   {

                   mode=0;//хозяин дома

                   in_home=1;

                   clock=0;

                   }

         else zader++;

         return;

         }

//удерживаем "-"

if(on_old && !off_old && on_new && !off_new || (ir_minus && !in_home))

         {

         if(zader>=press_time)

                   {

                   mode=1;//медленно снижать яркость

                   in_home=0;

                   }

         else zader++;

         return;

         }

//удерживаем "+"

if(!on_old && off_old && !on_new && off_new || (ir_plus && !in_home))

         {

         if(zader>=press_time)

                   {

                   mode=2;//медленно повышать яркость

                   in_home=0;

                   }

         else zader++;

         return;

         }

//отпускаем "-"

if(on_old && !off_old && on_new && off_new && (mode!=5) && (mode!=6) || ir_m_otp)

         {

         ir_m_otp=0;

         if(zader<press_time)

                   {

                   mode=3;//быстро выключить

                   in_home=0;

                   ofa=ofa - (ofa - ofa_min)/4;

                   }

         return;

         }

//отпускаем "+"

if(!on_old && off_old && on_new && off_new && (mode!=5) && (mode!=6) || ir_p_otp)

         {

         ir_p_otp=0;

         if(zader<press_time)

                   {

                   mode=4;//быстро включить

                   in_home=0;

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25

рефераты
Новости