Цифровий дозиметр з трьома режимами вимірювання і світлозвуковою реалізації випромінювання

Автор: Пользователь скрыл имя, 28 Марта 2015 в 17:12, курсовая работа

Краткое описание

В даній роботі було розроблено цифровий дозиметр з трьома режимами вимірювання, з візуальним і звуковим оповіщенням рівня радіації, збереження даних в енергонезалежній пам’яті, збереження на дисплеї попереднього значення, вимірювання, регулювання рівня сигналізації. Розраховано трансформатор блокинг генератора, розглянуто архітектуру мікроконтролера. Розроблено структурну, функціональну та принципову схему пристрою. Також розглянули структуру мікроконтролера ATmega8,алгоритм роботи, організацію пам’яті та розподіл адресного простору та написали програму курування мікроконтролером.

Файлы: 1 файл

KURSOVAYA METODI1.docx

— 1.08 Мб (Скачать)

my_keys();

lcd_gotoxy(0,0);

sprintf(lcd_buffer,”fon=%4umkr Time=%2uc” “RF=%2u “,k,sec,rf);// PRINT ON LCD

lcd_puts(lcd_buffer); // З буфера на LCD

delay_ms(1); // потрібно обслуговувати таймери

if((ok)&(a1)){delay_ms(50); #asm(“sei”);} //Start k=0; j=0; rf=0;

if(x){#asm(“cli”); beep=1;} //Зупинка

if(sec>=60){#asm(“cli”); a1=0;m_buffer=k; } // Авто зупинка

if(sec==61){sec=0; k=0; j=0; rf=0; beep=1;} // повторний запуск

if(ok){a1=1;}

if(x){a1=0;}

if((!pulse)&(a1)){delay_ms(10); k++; j++;} // Введіть допустиме значення радіації

 

if(j==20){delay_us(1); rf++; j=0;}

if(k==warn){delay_us(1); beep=0;} // Небезпечне випромінювання

if(k==1600){delay_us(1); sec=0; k=0; j=0; rf=0; beep=1;} //Допустиме випромінювання

break;

case 3: // Зберігання значення в пам’яті EEPROM в зоні 1

my_keys();

lcd_gotoxy(0,0);

sprintf(lcd_buffer,”Zone1=%4umkr “,memory);// TO LCD

lcd_puts(lcd_buffer);

lcd_gotoxy(0,1); lcd_putsf(“Save Load”);

delay_ms(1);

if(sec>=60){#asm(“cli”); m_buffer=k; }

if((ok)&(k>=10)){ zone1=m_buffer;} // Збережіть лише значення >10

if(x){ memory=zone1;}

break;

case 4: // Зберігання значення в пам’яті EEPROM в зоні 2

 my_keys();

lcd_gotoxy(0,0);

sprintf(lcd_buffer,”Zone2=%4umkr “,memory1);

lcd_puts(lcd_buffer);

lcd_gotoxy(0,1); lcd_putsf(“Save Load”);

delay_ms(1); // need wait on timers

if(sec>=60){#asm(“cli”); m_buffer=k; } // Збережіть лише значення >10

if((ok)&(k>=10)){ zone2=k;}

if(x){ memory1=zone2;}

break;

case 5: // Вмикання/вимикання сигнальної лампочки

my_keys();

 

lcd_gotoxy(0,0); lcd_putsf(“Backlight “);

lcd_gotoxy(0,1); lcd_putsf(“v on/off x”);

if(ok){a2=1; PORTC.4=1;}

if(x){a2=0; PORTC.4=0;}

delay_ms(1);

if(sec>=60){#asm(“cli”); m_buffer=k; }

if(a2){ lcd_gotoxy(11,0); lcd_putsf(“on “); }

if(!a2){ lcd_gotoxy(11,0); lcd_putsf(“off “);}

break;

case 6: // Вмикання/вимикання звукового резонатора

my_keys();

lcd_gotoxy(0,0); lcd_putsf(“Sound “);

lcd_gotoxy(0,1); lcd_putsf(“v on/off x”);

if(ok){a3=1; PORTC.5=1;}

if(x){a3=0; PORTC.5=0;}

delay_ms(1);

if(sec>=60){#asm(“cli”); m_buffer=k; }

if(a3){ lcd_gotoxy(11,0); lcd_putsf(“on “); }

if(!a3){ lcd_gotoxy(11,0); lcd_putsf(“off “);}

break;

case 7: // Попереджувальний рівень +/-

my_keys();

lcd_gotoxy(0,0);

sprintf(lcd_buffer,”Warning=%4umkr “,warn);

lcd_puts(lcd_buffer);

lcd_gotoxy(0,1); lcd_putsf(“v +/- x”);

//delay_ms(1); // need wait on timers

if(sec>=60){#asm(“cli”); m_buffer=k; }

if(warn<1500){if(!key1){warn++; delay_ms(80); }}

 

if(warn>10){if(!key2){warn--;delay_ms(80); }}

break;

case 8: // Вмикання режиму безперервного вимірювання

 my_keys();

lcd_gotoxy(0,0);

sprintf(lcd_buffer,”Fon=%4umkr Bufer=%4u” “RF=%2u “,k,m_buffer=k,rf);// Вивід значення на LCD

lcd_puts(lcd_buffer);

//lcd_gotoxy(0,1); lcd_putsf(“While”);

delay_ms(1); // need wait on timers

if((ok)&(a4)){delay_ms(50); #asm(“sei”);} //Start k=0; j=0; rf=0;

if(x){#asm(“cli”); beep=1;} // Зупинка

if(sec==61){ sec=0; k=0; j=0; rf=0; beep=1;m_buffer=k;}

if(ok){a4=1;}

if(x){a4=0;}

if((!pulse)&(a4)){delay_ms(10); k++; j++;}

if(j==20){delay_us(1); rf++; j=0;}

if(k==warn){delay_us(1); beep=0;} // Сигнальне вимірювання

if(k==1600){delay_us(1); sec=0; k=0; j=0; rf=0; beep=1;} //максимальне значення вимірювання

break;

}

};

 

 

 

ВИСНОВКИ

 

В даній роботі було розроблено цифровий дозиметр з трьома режимами вимірювання, з візуальним і звуковим оповіщенням рівня радіації, збереження даних в енергонезалежній пам’яті, збереження на дисплеї попереднього значення, вимірювання, регулювання рівня сигналізації. Розраховано трансформатор блокинг генератора, розглянуто архітектуру мікроконтролера. Розроблено структурну, функціональну та принципову схему пристрою. Також розглянули структуру мікроконтролера ATmega8,алгоритм роботи, організацію пам’яті та розподіл адресного простору та написали програму курування мікроконтролером.

 
ПЕРЕЛІК ПОСИЛАНЬ

 

  1. Офіціальний сайт www.vikipedia.ua Мікроконтролери AVR.
  2. Новіков Ю. В. Основи мікропроцессорної техніки. Курс лекцій.

  1. Бродин В. Б. Системы на микроконтроллерах и БИС программируемой логики. — М.: ЭКОМ, 2002.
  2. Жан М. Рабаі. Цифрові інтегральні схеми. Методологія проектування = Digital Integrated Circuits.
  3. Гостев В. І. Системи управління с цифровими регуляторами.
  4. Баранов В. Н. Застосування мікроконтроллерів AVR. Схеми, алгоритми, програми.
  5. Трамперт. В. Е. Вимірювання управління регулювання з допомогою AVR мікроконтроллерів.
  6. Угрюмов Э. П. Цифровая схемотехника. СПб.2004р.

 

 

Додаток А

 

Повна структура мікроконтролера ATmega8

 


 
Додаток Б

 

Граф - схема алгоритму функціонування пристрою.

Додаток В

Друкована плата пристрою.

 

 

Цифрова частина схеми

 

Високовольтна частина схеми

 

 


 



Информация о работе Цифровий дозиметр з трьома режимами вимірювання і світлозвуковою реалізації випромінювання