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




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

Курсовая работа: Транзисторний перетворювач з дроселем в первинному ланцюзі

 

Інвертор

 


Блок живлення

 
180В,50Гц

Випр. 2

 

 


 



razvodka


Подпрограмма установок и инициализации

//Watchdog initialize

// prescale: 2048K

void watchdog_init(void)

{

 WDR(); //this prevents a timout on enabling

 WDTCR = 0x0F; //WATCHDOG ENABLED - dont forget to issue WDRs

}

void port_init(void) //инициализация портов

{

 DDRA = 0b00110100;

 PORTA = 0b000000000;

 DDRD = 0b11111111;

 PORTD = 0b00000000;       
 DDRB =0b11111111;

 PORTB = 0b00000000;

}

void timer1_init(void) //инициализация таймера на время 18мкс

 {

 TCCR1B = 0x00; //stop

 TCNT1H = 0x3C; //setup

 TCNT1L = 0xB0;

 OCR1AH = 0xC3;

 OCR1AL = 0x50;

 OCR1BH = 0xC3;

 OCR1BL = 0x50;

 ICR1H = 0xC3;

 ICR1L = 0x50;

 TCCR1A = 0x00;

}

void init_devices(void) //инициализация устройств

{

 CLI();

 watchdog_init();

 port_init();

 timer1_init();

SREG = 0b10000000;

 ADCSRA = 0b10000110; //инициализация АЦП (режим)

 ADMUX = 0b11100011; // инициализация АЦП (выбор РА3)

 MCUCR = 0x00;

 TIMSK = 0x04; //прерывание по таймеру 1

 GICR = 0x00;

 SEI();                 

}

Подпрограмма функций

unsigned int out,set ,Ton;

int high,low,b,tint1,des,edi;

int mas_code[10]={0b01000000,0b01111001,0b00100100,0b00110000,

0b00011001,0b00010010,0b00000010,0b01111000,0b00000000,0b00010000};

void BCD(int b) //BCD-преобразование

{

des=((b%100)/10);

edi=((b%100)%10);

}

void delay_mcs(unsigned int tmp) //задержка

{

 unsigned int tmp1;

 tmp1=tmp*10;

 while(tmp1>0)

 {tmp1--;}

}

 void start(void) //функция запуска стабилизатора

{

ADCSRA = 0b11000110; //запуск АЦП

delay_mcs(10);

low=ADCL; high=ADCH;

ADCSRA = 0b01000110; //остановка АЦП

Uin = high;

while(Uin != 0)

{delay_mcs (100);}

PORTA = 0b000000100; //VT1

}

 void vol(void) //определение напряжения нагрузки и необходимого тока за 2мкс, индикация

{

 ADMUX = 0b11110000; // инициализация АЦП (выбор РА0,РА1)

 ADCSRA = 0b11000110; //запуск АЦП

 low=ADCL; high=ADCH; //считывание напряжения

 out = high; //запись в регистр

 ADCSRA = 0b01000110; //остановка АЦП

 ADMUX = 0b11100110; // инициализация АЦП (выбор РА6)

 ADCSRA = 0b11000110; //запуск АЦП

 low=ADCL; high=ADCH; //считывание напряжения

 set = high; //запись в регистр

 ADCSRA = 0b01000110; //остановка АЦП

 if(out<set) {Ton++;}

 if(out>set) {Ton--;}

 BCD(set);

 PORTB= mas_code[edi];

 PORTD= mas_code[des];

}

#pragma interrupt_handler timer1_ovf_isr:9

void timer1_ovf_isr(void) //подпрограмма прерывания по таймеру 1

{

tint1 = 1;

TCNT1H = 0x3C;

TCNT1L = 0xB0;

}

Основная программа:

// Target : M16

// Crystal: 10.000Mhz

#include <iom16v.h>

#include <init.h>

#include <functions.h>

#include <math.h>

#include <macros.h>

unsigned int T;

void main(void)

{

 init_devices();

 start();

 PORTA&0b001000000 = 0;

 PORTA&0b000100000 = 0;

 Ton = 10;

 while(1)

 {

 vol();

 tint1=0;

 TCCR1B = 0x01; //запуск таймера

T = 0;

while (T<=Ton){ PORTA&0b001000000 = 1;T++}

else { PORTA&0b001000000 = 0; PORTA&0b000100000 = 0;} //VT2

while(tint1 != 1)delay_mcs(0);

vol();

tint1=0;

TCCR1B = 0x01; //запуск таймера

T = 0;

while (T<=Ton){ PORTA&0b000100000 = 1;T++}

else { PORTA&0b001000000 = 0; PORTA&0b000100000 = 0;} //VT3

while(tint1 != 1)delay_mcs(0);

 }

}


Страницы: 1, 2, 3

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