Проектирование удаленного устройства индикации - Коммуникации, связь, цифровые приборы и радиоэлектроника курсовая работа

Проектирование удаленного устройства индикации - Коммуникации, связь, цифровые приборы и радиоэлектроника курсовая работа



































Проектирование принципиальной схемы устройства индикации на основе 8-битного AVR микроконтроллера типа ATmega16 с питанием от источника питания на 10 V и отображением данных на графическом LCD-дисплее. Разработка программного обеспечения микроконтроллера.


посмотреть текст работы


скачать работу можно здесь


полная информация о работе


весь список подобных работ


Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
1.1 Обоснование достаточности аппаратных и программа ресурсов
1.2 Доопределение набора аппаратных средств для реализации устройства
1.3 Распределение функций устройства между узлами микроконтроллера
2. Проектирование принципиальной схемы устройства
2.1 Схема включения микроконтроллера
2.2 Формирование тактовых импульсов
2.4 Схема входных и выходных устройств
3. Проектирование программного обеспечения микроконтроллера
3.1 Проектирование функции инициализации микроконтроллера
3.2 Проектирование процедур обработки прерываний
3.3 Проектирование процедур ввода информации
3.4 Проектирование процедур вывода информации
3.5 Проектирование процедур управления периферийны! устройствами
3.6 Проектирование процедуры main()
Приложение 1. Схема электрическая принципиальная
Приложение 2. Чертеж печатной платы (вид сверху)
Приложение 3. Чертеж печатной платы (вид снизу)
Широко распространенное семейство микроконтроллеров MCS51, выпускаемое целым рядом фирм-производителей (Intel, Philips, Temic, OKI, Siemens и др.), уже являлось де-факто промышленным стандартом для 8-разрядных систем и прекрасно подходило для использования в широком классе задач, особенно если выбирались кристаллы с дополнительными встроенными периферийными устройствами и повышенной тактовой частотой. Но эти микроконтроллеры обладали значительным энергопотреблением. Тогда, если необходимо было получить высокую производительность кристалла при фиксированном энергопотреблении или, наоборот, снизить последнее не теряя производительности, внимание разработчика, как правило, останавливалось на микросхемах Dallas Semiconductor, Microchip или Hitachi. Широко развитые линии PIC-контроллеров фирмы Microchip и микроконтроллеров Н8/300 фирмы Hitachi обеспечивают достаточно высокую производительность при небольшом энергопотреблении. Эффективность работы микроконтроллеров Dallas Semiconductor, имеющих базовую архитектуру MCS51, в среднем превышает стандартную в 2,5 - 3 раза. Появившиеся в последнее время новые процессорные платформы MSP430 фирмы Texas Instruments и ХЕ8000 фирмы Xeraics также заслуживают самого пристального внимания, особенно если основным критерием для конечного приложения является минимальное энергопотребление.
Окончательный выбор разработчиком той или иной микропроцессорной платформы для реализации своей задачи зависит от большого числа разнообразных факторов, включая экономические. Но обычно первостепенным условием остается получение максимально выгодного соотношения "цена - производительность энергопотребление", определяемого сложностью решаемой задачи. Видимо, это обстоятельство и послужило толчком к разработке в середине 1990-х нового 8-разрядного микроконтроллера.
AVR одно из самых интересных направлений, развиваемых корпорацией Atmel. Они представляют собой мощный инструмент для создания современных высокопроизводительных и экономичных многоцелевых контроллеров. На настоящий момент соотношение "цена - производительность - энергопотребление" для AVR является одним из лучших на мировом рынке 8-разрядных микроконтроллеров. Объемы продаж AVR в мире удваиваются ежегодно. В геометрической прогрессии растет число сторонних фирм, разрабатывающих и выпускающих разнообразные программные и аппаратные средства поддержки разработок для них. Можно считать, что AVR постепенно становится еще одним индустриальным стандартом среди 8-разрядных микроконтроллеров общего назначения.
Области применения AVR очень широки. Для семейства "tiny" -это интеллектуальные автомобильные датчики различного назначения, игрушки, игровые приставки, материнские платы персональных компьютеров, контроллеры защиты доступа в мобильных телефонах, зарядные устройства, детекторы дыма и пламени, бытовая техника, разнообразные инфракрасные пульты дистанционного управления. Для семейства "classic" - это модемы различных типов, современные зарядные устройства, изделия класса Smart Cards и устройства чтения для них, спутниковые навигационные системы для определения местоположения автомобилей на трассе, сложная бытовая техника, пульты дистанционного управления, сетевые карты, материнские платы компьютеров, сотовые телефоны нового поколения а также различные и разнообразные промышленные системы контроля и управления. Для "mega" AVR - это аналоговые (NMT, ETACS, AMPS) и цифровые (GSM, CDMA) мобильные телефоны, принтеры и ключевые контроллеры для них, контроллеры аппаратов факсимильной связи и ксероксов, контроллеры современных дисковых накопителей, CD-ROM и т.д.
В данной работе приводится пример использования AVR типа ATmega16 для построения устройства удаленной индикации, принимающее сигналы по протоколу связи RS-485 и отображающее соответствующую информацию на графическом ЖКИ дисплее фирмы Bolyrain.
Постановка задачи; спроектировать удаленное устройство индикации на основе 8-битного AVR микроконтроллера типа ATmega16 с питанием данного устройства от источника питания на 10 V. Требуется обеспечить прием данных по протоколу RS-485 на скорости 9600 бит в секунду, с размером посылки данных 8 бит, проверкой на четность и одним стоповым битом. Данные должны отображаться на графическом LCD-дисплее фирмы Bolymin.
1.1 Обоснование достаточности аппаратных средств и программных ресурсов
Предложенный для решения задачи микроконтроллер ATmegal6 обладает следующими характеристиками:
программируемый последовательный УСАПП
Этих свойств микроконтроллера вполне достаточно для обеспечения взаимодействия с графическим LCD-дисплеем и протоколом обмена данными RS-485, поскольку большой объем памяти программ позволяет обеспечить логику работы всех аппаратных средств микроконтроллера и управление LCD-дисплеем. Кроме того, подключение внешнего источника тактовых импульсов позволяет обеспечить скорость обмена данными до 1 миллиона бит в секунду.
1.2 Доопределение набора аппаратных средств
Для организации канала связи по протоколу RS-485 необходимо использование устройств, отвечающих требованиям этого протокола. Возможное решение - использование схемы МАХ485, которая работает от одного источника питания +5 V, и его выходное сопротивление становится высоким в диапазоне синфазного сигнала от -7 до +12 V при подаче и при выключении питания. Передатчик имеет максимальное время задержки 50 пз и время нарастания и спада менее 80 ns. Это позволяет получить скорость передачи данных до 4 Mbaud.
Поскольку разрабатываемое устройство питается от источника напряжения +10 V, то для обеспечения питания микросхем устройства необходимо использование стабилизатора напряжения, который можно реализовать на микросхеме LM2574 (понижающий импульсный стабилизатор напряжения).
1.3 Распределение функций устройства между узлами микроконтроллера
Разрабатываемое удаленное устройство индикации должно выполнять следующие две главные функции: обеспечение приема данных по каналу связи и индикация обработанных данных на LCD-дисплей.
Вполне логично в качестве приемника использовать встроенный в контроллер программируемый последовательный универсальный синхронно-асинхронный приеме-передатчик (УСАПП). При этом будут задействованы выводы PDO (RxD) и PD1 (TxD), которые подключаются к соответствующим выводам микросхемы МАХ485. Кроме того, для управления микросхемой МАХ485 необходимо подключить также сигналы разрешения приема и передачи данных (сигнал разрешения приема - инверсный), Но поскольку в нашем устройстве не предусмотрена возможность одновременно принимать и передавать данные, представляется удобным использование общего сигнала с одного из выводов контроллера для управления приемом и передачей (вывод порта С РС5). Более того, в частном случае наше устройство не будет передавать данные на внешние устройства, поэтому как один из вариантов может быть использовано просто подключение разрешающих выводов микросхемы МАХ485 к общему постоянному сигналу низкого уровня, что запретит микросхеме передачу данных и она будет все время использоваться как приемник.
Управление LCD-дисплеем осуществляется с помощью восьми линий, по которым передаются данные, и пяти линий, по которым передаются сигналы управления (чтение/запись данных, запись команды и т.п.}. Поэтому для управления дисплеем мы выделим порт А контроллера для передачи сигналов данных и линии РСО - РС4 порта С для передачи сигналов управления.
Все остальные устройства контроллера в нашем (простейшем) случае остаются незадействованными.
2. Проектирование принципиальной схемы устройства
2.1 Схема включения микроконтроллера
Микроконтроллер AVR типа ATmegal6 имеет напряжение питания +5 V, которое подводится к выводу VCC. Так как питание всего нашего устройства +10 V, то питание к микроконтроллеру должно подводится через понижающий импульсный стабилизатор. Кроме этого, микроконтроллер имеет еще два вывода для питания порта А (или АЦП), один из которых (AVCC) должен быть подключен к напряжению питания даже если порт А не используется. При если используется АЦП, то это питание должно подключатся через фильтр низких частот. Второй вывод (AREF) используется для подачи напряжения смещения на АЦП.
В нашем устройстве АЦП не используется, поэтому к выводам VCC и AVCC можно подключить предварительно стабилизированное питание +5 V от стабилизатора, а вывод AREF подключить к общей шине земли.
Рис.1 Схема включения микроконтроллера
2.2 Формирование тактовых импульсов
Тактовые импульсы для работы микроконтроллера можно формировать с помощью либо встроенного генератора импульсов, либо подключая внешний генератор на кварцевом резонаторе. Внутренний генератор тактовых импульсов в нашем случае не обеспечит необходимую стабильность для работы с интерфейсом RS-485, поэтому мы будем использовать внешний кварцевый генератор на 7.3728 MHz. Для работы на такой частоте разработчики фирмы ATMEL советуют использовать два дополнительных конденсатора емкостью 22 pF, включенные по следующей схеме:
Схема сброса должна формировать импульс логического нуля для подачи его на инверсный вывод сброса микроконтроллера RESET. Это импульс должен формироваться при, например, нажатии на кнопку сброса устройства или при переключении ключа. Кроме этого, этот сигнал сброса должен подаваться и на вывод сброса LCD - дисплея.
Для такой схемы подходит включение транзистора, показанное на рис.3. Когда ключ открыт, транзистор находится в закрытом состоянии и на входы RESET AVR и RST LCD-дисплея поступает сигнал логической единицы. Когда ключ замыкается, транзистор открывается и на входы сброса устройств поступает сигнал логического нуля.
Рис.3 Схема формирования сигнала сброса
2.4 Схемы входных и выходных устройств
Входным устройством в нашем проекте является микросхема обеспечения связи по протоколу передачи данных RS-485 МАХ 485 со следующими электрическими характеристиками:
Из этих параметров видно, что микросхема МАХ485 согласуется с микроконтроллером ATmegal6.
Рис. 4 Подключение микросхемы MAX4S5
Выходное устройство жидкокристаллический графический дисплей BG12864D фирмы Bolymin со встроенным контроллером Т6963С. Этот дисплей обладает следующими характеристиками:
В соответствии с этими параметрами схема подключения LCD-дисплея к микроконтроллеру будет следующей:
В качестве стабилизатора напряжения в нашем устройстве используется импульсный понижающий стабилизатор LM2574, который обладает следующими характеристиками:
входное напряжение - до 60 V {для HV версий)
выходное напряжение - 3.3 V, 5 V, 12 V, 15V
Схема включения стабилизатора для преобразования +10 V - +5 V приведена на рис.6:
Рис. 6 (Схема стабилизатора напряжения
3. Проектирование программного обеспечения микроконтроллера
3.1 Проектирование функции инициализации микроконтроллера
Процедура инициализации микроконтроллера должна состоять из процедур или операторов инициализации всех узлов самого микроконтроллера и всех периферийных устройств, и установить все начальные значения для их регистров. Таким образом, мы должны проинициализировать следующие узлы устройства - порт А, порт С, УСАПП, таймер 0 и LCD-дисплей.
Порты А и С в начале работы устройства работают только на вывод данных, поэтому при их настройке необходимо в соответствующие регистры DDRx записать значение 0, тем самым настроив все их выводы на передачу данных. Для этого используются две процедуры;
void InitPortCWrite(void){ DDRC = Oxff; PORTC = 0x30;
Инициализация таймера О проходит по следующему алгоритму - устанавливается делитель частоты на 1024 записью значения 5 в регистр TCCRO. Затем разрешается прерывание этого таймера и устанавливается его начальное значение:
TCCRO = 5;// установить делитель частоты 1024
TIMSK |= (1 « TOIEO); // разрешить прерывания таймера
Инициализация УСАПП работает следующим образом - в регистр
UBRR записывается значение, которое соответствует заданной скорости передачи данных для соответствующей частоты работы микроконтроллера.
УСАПП и параметры кадра данных. Кроме этого, т.к. прием и обработка данных в программе происходит через кольцевой буфер, то в процедуре инициализации необходимо провести начальные установки для головы и хвост буфера - обнулить их.
void USART_Init( unsigned int baudrate )
UBRROH = (unsigned char) (baudrate»8) ; UBRROL = (unsigned char) baudrate;
UCSRB = ({1 « RXCIE) j <1«ЮСЈН) ) ;
UCSRC = (1«URSEL) | (3«UCSZO) | (1«UPM1);
USART_RxTail = x; USARTJRxHead = x;
3.2 Проектирование процедур обработки прерываний
В процессе работы нашего устройства могут возникнуть два прерывания - от таймера 0 и от УСАПП. Прерывание от таймера О обрабатывается очень просто: перезагружается начальное значение и флаг его срабатывания устанавливается в 1.
interrupt void TIMERO_OVF_interrupt(void)
Прерывание от УСАПП говорит о том, что прием пакета данных был закончен и принят в буферный регистр UDR. Обработчик этого прерывания должен принять эти данные и поместить в кольцевой буфер. Для этого должен быть рассчитан новый индекс буфера (указатель головы) и если этот индекс вдруг стал равен указателю хвоста, это говорит о том, что произошла ошибка и буфер приемника переполнился.
^interrupt void USART_RX_interrupt{ void )
unsigned char data; unsigned char tmphead;
USART_RxHead = tmphead; /* Сохранить новый индекс V
/* Ошибка! Буффер приемника переполнен */
USART_RxBuf[tmphead] = data; /* Сохранить полученные данные в буффере */
3.3 Проектирование процедур ввода информации
Ввод информации в разрабатываемое устройство осуществляется через УСАПП по протоколу RS-4 85. Как уже отмечалось, прием данных в программе происходит по прерыванию от УСАПП, обработчик которого помещает принятый байт в Оуфер приемника. В главной программе, для того, чтобы можно было анализировать этот буфер и читать данные уже непосредственно из него, необходима процедура, которая будет доставать данные из буфера таким образом, чтобы первыми поступали байты, попавшие в буфер раньше всех. Это делает процедура USART_Receive(), которая сначала ждет поступления данных в буфер, а затем по одному байту достает их оттуда.
while ( USARTJixHead == USART_RxTail )
tmptail = USART_RxTail + 1; USART_RxTail = tmptail; return USART_RxBuf[tmptail];
3.4 Проектирование процедур вывода информации
Вывод информации в нашем устройстве осуществляется на LCD-дисплей. Основной процедурой, которая отображает строки поступивших данных на дисплее - это процедура AutoWriteMode(), которая по сути управляет дисплеем, выводя на него последовательно символы, хранящиеся в глобальном массиве OutString[], в режиме автозаписи, При этом нам необходимо только менять адрес позиции, в которую выводятся данные.
WORD AutoWriteMode(WORD Address, BYTE NumBytes)
SetAddressPointer(Address); SendCommanct{SET_DATA_AUTO_HRITE_COMMAND);
forfint i = 0; i < NumBytes; i++) {
SendCommand(AUTO_RESET_COMMAND); return Address; }
3.5 Проектирование процедур управления периферийными устройствами
Все процедуры управления LCD-дисплеем осуществляются согласно системе команд встроенного контроллера Т6963:
3.6 Проектирование процедуры main()
Процедура main{) работает следующим образом после инициализации все узлов AVR и периферийных устройств, разрешается выполнение всех прерываний. После этого программа ждет срабатывания таймера, который настроен таким образом, что он немного чаще, чем может происходить прерывание от УСАПП. Сигналом того, что таймер 0 сработал служит факт установки глобальной переменной TmrOFlag в 1, что делается обработчиком прерываний таймера.
Затем, все время, пока кольцевой буфер не будет пуст, происходит считывание данных из него. Считанный байт помещается в строку-массив OutString[], и увеличивается счетчик принятых байт.
После этого проверяется, а не был ли последний принятый из буфера байт признаком окончания строки. Если да, то в режиме автозаписи эта строка выводится на дисплей (за исключением последнего символа конца строки). После этого строка обнуляется и счетчик принятых байт устанавливается в ноль.
В любом случае происходит сброс флага таймера в ноль и происходит ожидание следующего срабатывания таймера.
^define BYTE unsigned char ttdefine WORD unsigned int
#define SET_TEXT_HOME_ADDRESS_COMMAND 0x^0
#define SET_GR№HIC_HOME_ADDRESS_CO№1AND 0x42
#define SET_GRAPHIC_AREA_CCMMAND0x43
tfdefine EXTERNAL_CG_RAM__MODE 0x88
tfdefine SET_DATA_AUTO_WRITE_COMMAND OxBO
^define SET_DATA_AUTO_READ_COMMAND OxBl
/* Includes */ ^include ^include
Static unsigned char USART_RxBuf[USART_RX_BUFFER_SIZE];
static volatile unsigned char USART_RxHead; static volatile unsigned char USART_RxTail;
// Процедуры инициализации устройств
void USART_Init( unsigned int baudrate );
// Процедуры для работы с УСАПП и LCD
unsigned char USART_Receive( void );
void SendlByteCommand(BYTE Data, BYTE Command);
void Send2ByteCommand(WORD Data, BYTE Command);
void SetCursorPointer(WORD Position)
void SetAddressPointer(WORD Address)
void ByteWriteToRam(WORD AddressPointer, BYTE Data)
if(TmrOFlag) // Произошло срабатывание таймера
while(DatalnReceiveBuffer() != 0) // Пока буффер не пуст
rec = USART_Receive(); // Приняли байт из буффера
OutString[NumBytes] = Rebuild(rec); // Записали его в строку NumBytes-n-;// Увеличить счетчик принятых байт
if (rec == OxOD)// Конец строки - ?
/* Выводим строку на LCD в режиме AutoWrite*/
for(int i = 0; i <= NumBytes; i++) OutStringU] = 0;
/* Процедура инициализации USART */ void USART_Init( unsigned int baudrate ) t
UBRROH = (unsigned char) (baudrate»8) ;
/* Включить приемник UART */ UCSRB = { (1 « RXCIE) | (1«RXEH) ) ;
У/Формат приема данных: 8 бит данных, 1 стоп-бит, проверка на четность UCSRC = (1«URSEL) I (3«UCSZO) | (1«UPM1) ;
/* Обнулить буффер приемника */ х = 0;
USARTJbcTail = х; USART_RxHead = х;
/* Процедура чтения из приемника */ BYTE USART_Receive( void }
while ( USART_RxHead == USART_RxTail ) /* Ждем поступления данных */ ;
tmptail = USART_RxTail + 1; /* Рассчет индекса буффера */ USART_RxTail = tmptail;/* Сохранить новели индекс */
return USART_RxBuf[tmptail]; /* Вернуть данные */
unsigned char DatalnReceiveBuffer( void )
return ( USART_RxHead != USART_RxTail ); /* Возвращает О если буффер пуст */
/* Обработчик прерывания от приемника */ #pragma vector=USART_RXC_vect _interrupt void USART_RX_interrupt( void ) {
USART_RxHead = tmphead; /* Сохранить новый индекс V
/* Ошибка! Буффер приемника переполнен */
USART_RxBuf[tmphead] = data; /* Сохранить полученные данные в буффере */ }
TCCRO = 5;// timerO counts elk/1024
TIMSK |= M « TOIEO); //Enable TimerO Interrupt TCWTO = TmrO_Reload; TmrOFlag = 0;
/* Обработчик прерывания от таймера */ tfpragma vector=TIMERO_OVF_vect
interrupt void TIMERO_OVF_interrupt(void)
Send2ByteComraand(tm.p, ET_TEXT_HOME_ADDRESS_COMMAND);
Send2ByteCommand(tmp, SET_TEXT_AREA_COMMAND);
CoromandWrite(INTERNAL_CG_ROM_MODE);
USART_Init( 47 };//Установить частоту 9,600 используя 1.3728MHz кристалл
// Процедуры для работы с LCD-дисплеем void DataWrite(BYTE Data)
BYTE tempFlag = 0; BYTE stat; InitPortAReadO ; while(tempFlag != 1) (
if((stat & 0x03) == 0x03) tempFlag = 1; }
BYTE tempFlag = 0; BYTE stat; InitPortAReadO; while(tempFlag != 1) {
if((stat b 0x08) == 0x08) tempFlag = 1; }
ReadStatus{); WriteCommand(Command); }
void SendlByteCommandfBYTE Data, BYTE Command) {
void Send2ByteCommand{WORD Data, BYTE Command) {
// Position: младший байт - координата X (от OOh до 4Fh)
//старший байт - координата Y (от OOh до IFh)
void SetCursorPointer(WORD Position)
Send2ByteComnand(Positon, SET_CURSOR_COMMAND);
void SetAddressPointer(WORD Address)
Serid2BytesCommand[Address, SЈT_ADDRESS_COMMAND);
void ByteWriteToRamfWORD AddressPointer, BYTE Data)
// Массив символов OutString должен быть объявлен как
WORD AutoWriteModefWORD Address, BYTE NumBytes)
SendCommand(SET_DATA_AUTO_WRITE_COMMRND);
for(int i = 0; i < NumBytes; i++) {
SendCommand (AUTO_RESET_CCMMAND) ; return Address;
Разработка структурной функциональной схемы устройства, его аппаратного обеспечения: выбор микроконтроллера, внешней памяти программ, устройства индикации, IGBT транзистора и драйвера IGBT, стабилизатора напряжения. Разработка программного обеспечения. курсовая работа [495,1 K], добавлен 23.09.2011
Условия эксплуатации микропроцессорного устройства "Светодиодные фонари с электронным управлением" на базе МК ATtiny 15. Техническое описание микроконтроллера. Разработка структурной и электрической принципиальной схем, интерфейса управления и индикации. курсовая работа [267,5 K], добавлен 01.05.2015
Описание интегратора первого порядка. Обзор микроконтроллера AТmega16. Доопределение набора аппаратных средств. Схема включения микроконтроллера. Формирование тактовых импульсов. Организация сброса. Алгоритм работы и проектирование модулей устройства. курсовая работа [1,1 M], добавлен 19.12.2010
Разработка системы считывания данных с пяти четырехбитных датчиков. Проектирование структурной схемы микроконтроллера, схемы электрической принципиальной, блок-схемы работы программного обеспечения устройства. Разработка алгоритма основной программы. контрольная работа [275,4 K], добавлен 08.01.2014
Проектирование устройства индикации на микроконтроллере KP1816BE51. Выбор и обоснование аппаратной части устройства. Разработка обслуживающей программы на ассемблере. Время выполнения программы индикации. Максимальная оптимизация выполняемого кода. курсовая работа [21,6 K], добавлен 22.03.2011
Разработка микропроцессорной системы для контроля и индикации параметров изменяющегося по случайному закону 8-ми разрядного двоичного кода. Проектирование принципиальной схемы микроконтроллера, описание работы схемы. Разработка блок-схемы программы. курсовая работа [752,4 K], добавлен 10.01.2013
Разработка блока динамической индикации для тринадцатиразрядного светодиодного семисегментного индикатора с общим анодом. Хранение отображаемой информации (тринадцать цифр). Элементная база для разработки устройства. Разработка принципиальной схемы. реферат [679,6 K], добавлен 30.06.2014
Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д. PPT, PPTX и PDF-файлы представлены только в архивах. Рекомендуем скачать работу .

© 2000 — 2021



Проектирование удаленного устройства индикации курсовая работа. Коммуникации, связь, цифровые приборы и радиоэлектроника.
Гдз Контрольные Работы Петерсон 3 Класс
Курсовая работа: Современные представления о восприятии и его нарушениях
Реферат: Веселый купец
Практическая Работа Презентация 10 Класс
Латынь В Современном Мире Реферат
Сочинение Про Брата Младшего
Реферат по теме Чешская музыкальная культура
Авторефераты Диссертаций По Цветной Капусте
Реферат: Adult Cartoons Who
Реферат По Теме Фразеологизмы 10 Класс
Направления Тем Итогового Сочинения 11 Класс
Курсовая работа по теме Производственная система OPТ (логистика на транспорте)
Ответ на вопрос по теме Правовое регулирование социального обеспечения
Реферат: Александр I и его либеральные реформы в начале ХIX в. и начало ослабления крепостного права
Дипломная работа: Характерные черты информационной поддержки программы дети сироты в
Положение Конкурса Эссе Для Педагогов
Контрольная работа: Кибернетика и синергетика наука о самоорганизующихся системах. Скачать бесплатно и без регистрации
Курсовая Работа На Тему Налог На Имущество Юридических Лиц
Дипломная работа по теме Современное деловое письмо
Конец Колониальной Эпохи Реферат
Магнитогидродинамический генератор - Коммуникации, связь, цифровые приборы и радиоэлектроника презентация
Lingual-Stylistic Peculiarities of Poetic Works of English Romanticism - Иностранные языки и языкознание курсовая работа
Комерційна інформація - Государство и право реферат


Report Page