Реферат по предмету "Коммуникации и связь"


Программно управляемый генератор линейно нарастающего напряжения сверхнизкой частоты на микроконтроллере

КУРСОВАЯРАБОТА
«Программноуправляемый генератор линейнонарастающего напряжения сверхнизкойчастоты на микроконтроллере»

Содержание
Введение
1 Обзораналогичных устройств
2 Обоснованиевыбранного варианта технического решения
3 Разработкапринципиальной схемы устройства
4 Разработкаалгоритма и программы функционирования устройства
5 Результатыэмуляции программы в пакете VMLAB
6 Анализвременных соотношений и оценка погрешностей
Выводы

Введение
В наше время в сфере радиоэлектроники находят широкое применениетакие устройства, как микроконтроллеры, представляющие собой микропроцессорнуюсистему, реализованную в виде интегральной микросхемы. В микроконтроллервозможно записать любую программу-прошивку, определяющую алгоритмфункционирования устройства на базе микроконтроллера, что позволяетиспользовать микроконтроллеры практически во всех устройствах, где используетсяобработка цифровых сигналов. В качестве иллюстрации возможностей применениямикроконтроллеров при проектировании радиотехнических устройств, в данномкурсовом проекте приводится пример проектирования линейно нарастающегогенератора с изменяемой частотой от 5 до 20 Гц с шагом 5 Гц, а также сдискретно меняющейся амплитудой от 0.5 до 5 Вольт, подстройка которойосуществляется двумя кнопками. Индикация амплитуды генерируемых сигналовосуществляется с помощью ЖКИ.

1. Обзор аналогичных устройств
Прежде, чем приступить к рассмотрению проектирования генератора наоснове МК, приведем краткий обзор аналогичных вариантов реализации генераторалинейно нарастающего напряжения. Кроме МК, генератор импульсов можнореализовать на базе обычного двухтранзисторного симметричного мультивибратора.Достоинства такого варианта заключаются в отсутствии необходимости писать программудля МК, недостатки же заключаются в том, что в аналоговых генераторах труднеедобиться идеальной формы фронтов импульса, а также обеспечить наиболее точнуюподстройку частоты вследствие разброса номиналов элементов схемы генератора.Индикация амплитуды с помощью ЖКИ несет усложнение такой схемы и неизбежностьприменения микроконтроллера с АЦП. Еще один вариант заключается в использованиилогических элементов, соединенных последовательно в неинвертирующий усилитель иприменении RC-цепочки для создания положительной обратной связи. Недостатоктакой схемы заключается в ее усложнении по сравнению с мультивибратором, авопрос с индикацией решается путем еще большего усложнения устройства. Наконец,схема генератора на базе МК обладает неоспоримыми преимуществами: простотой(генерирование и управление индикацией осуществляется с помощью одноймикросхемы), хорошей формой генерируемого сигнала, а также широкимивозможностями по точной подстройке частоты и амплитуды сигнала.
2. Обоснование выбранного варианта технического решения
В данной работе для реализации генератора на базе МК будутиспользованы такие элементы, как микроконтроллер, ЦАП, ЖКИ и управляющиекнопки. Необходимость использования ЦАП вызвана тем, что амплитуду сигналовпроектируемого генератора можно будет изменять. ЦАП же позволяет формироватьсигналы произвольной формы путем подачи цифрового кода мгновенного значениянапряжения сигнала на его вход. В качестве ЖКИ используется индикатор на базеконтроллера HD44780, который является фактически промышленным стандартом и набазе которого производятся большинство ЖКИ. В качестве МК выбрана модельAT90S8515 (AVR-микроконтроллер семейства Classic фирмы Atmel). Будучивыпущенным несколько лет назад, такой МК имеет небольшую стоимость, но в егосоставе есть все необходимые для разработки генератора компоненты (4 8-разрядныхПВВ, 8-разрядный таймер-счетчик, ядро с рабочими частотами до 16 МГц).
3. Разработка принципиальной схемы устройства
Как уже было сказано выше, основными компонентами схемы генератораявляются микроконтроллер, ЦАП, ЖКИ и управляющие кнопки. ЦАП имеет 8 входов, накоторые подается цифровой код сигнала, и выход, с которого снимается аналоговыйсигнал. В данном случае было решено подключить входы ЦАП к 8-разрядному порту Смикроконтроллера. Управляющие кнопки делятся на 2 кнопки регулировки амплитудыи 4 кнопки установки частоты. Кнопки регулировки амплитуды были подключены квыходам 2 и 3 порта D, которые являются входами внешних прерываний INT0 и INT1.Кнопки установки частоты подключены к выводам 4, 5, 6 и 7 порта D.
ЖКИ подключается к микроконтроллеру 11-ю выводами. 8 из нихявляются шиной данных и подключаются к порту А. Оставшиеся 3 выводаявляются управляющими: вывод RS определяет, что передается по 8-разрядной шине:команды или данные (коды отображаемых символов) и подключен он к нулевомувыходу порта В, вывод R/W определяет режим чтения / записи шины данных, иподключается к первому выходу порта В, по выводу Е подаются стробирующиеимпульсы, сопровождающие процессы чтения или записи, подключен выход Е к выводу2 порта В. Также у МК есть выводы XTAL1 и XTAL2, к которым подключаетсякварцевый резонатор. Схема генератора электрическая принципиальная приведена начертеже, прилагающемся к пояснительной записке. Проектный файл программы VMLAB,описывающий схему устройства электрическую принципиальную, приведен вприложении А.
4. Разработка алгоритма и программы функционирования устройства
Алгоритм главной программы можно условно разделить на 3 части:блок инициализации МК и ЖКИ, блок опроса кнопок и блок генерирования сигнала.Кроме того, в данной программе будут использоваться вспомогательныеподпрограммы, алгоритмы которых будут рассмотрены чуть позже.
В блоке инициализации можно выделить такие основные части, какприсвоение значений объявленным константам, настройка портов ввода-вывода,инициализацию прерываний, а также команды инициализации ЖКИ и индикацииамплитуды по умолчанию. Настройка ПВВ осуществляется путем присвоенияопределенных значений регистрам ввода-вывода – DDRX (отвечает за тип порта –вход, или выход) и PORTX (позволяет программным путем подключать подтягивающиерезисторы).
Разрешение прерываний происходит на двух уровнях: общем уровне(установкой в 1 флага I регистра SREG) и местном уровне. В данной программеиспользуются два вида прерываний: внешние INT0 и INT1, и прерывания посравнению от первого таймер-счетчика. Внешние прерывания разрешаются путем установкив 1 6-го и 7-го битов регистра GIMSK, а прерывание по переполнению нулевого таймер-счетчикаразрешается установкой в 2-го бита регистра TIMSK (регистра маскированияпрерываний). Команды инициализации ЖКИ выполняют включение ЖКИ и очисткуэкрана, настройку вида курсора, указание кол-ва строк, равного двум и установкуразрядности шины данных (8-разрядная шина, в нашем случае).
В блоке опроса кнопок опрашиваются 4, 5, 6 и 7 выводы порта D, ккоторым подключены кнопки управления частотой. (Кнопки регулировки амплитудыподключены к выводам внешних прерываний, обработка которых будет рассмотренапозднее.) Опрос кнопок производится путем проверки соответствующего выводапорта на нулевое состояние (когда кнопка не нажата, на ее выводе стоит «1»,вследствие наличия подтягивающих резисторов). Если кнопка нажата, происходитпереход на соответствующую метку, в которой устанавливаются значения констант,которые будут записаны в регистр счетчик TCNT0 таймер-счетчика. Если же ненажата ни одна из кнопок, то в регистры сравнения загружаются значения поумолчанию, соответствующие частоте 10 Гц. После блока опроса кнопок следуетблок генерирования сигнала.
Генерация линейно нарастающего напряжения происходит по следующемупринципу. Сначала на вход ЦАП подается значение амплитуды увеличенное наединицу, затем сравнивается с максимальным значением, если амплитуда недостигла максимального значения амплитуды, то значение опять увеличивается наединицу и подается на вход ЦАП. Если же значение достигло максимальнойамплитуды, то вызывается подпрограмма формирования временной задержки. Послеэтого на вход ЦАП подается цифровой код, равный нулю, затем опять вызываетсяподпрограмма временной задержки и происходит переход на метку блока опросакнопок. Перед блоком генерирования сигнала 6 и 7 биты регистра GIMSKустанавливаются в ноль, чтобы нажатие кнопки регулировки амплитуды не влияло начастоту импульсов.
Кроме главной программы, в данном проекте используютсяподпрограммы формирования временной задержки, индикации текущей амплитудысигнала, записи команд и записи данных в ЖКИ, опроса флага занятости ЖКИ ичтения кода отображаемого символа из EEPROM.
В подпрограмме формирования временной задержки выполняютсяследующие шаги. Сначала в регистр TCNT0 записывается значение константы freq.Рассчитывается оно по следующему алгоритму. Период импульса делим на числоравное максимальному значению амплитуды, затем умножаем на тактовую частоту МК,если полученное число больше 255, то делим его на коэффициент предделения.Затем из 255 вычитаем полученное число и записываем значение в регистр TCCR1B.После чего вызывается команда sleep, переводящая МК в режим Idle Mode, вкотором ядро не выполняет никаких операций. После того, как таймер отсчитываетнужное число тактов, он вызывает прерывание, выводящее МК из режима Idle Mode,и следующей командой в регистр TCCR0 записывается 0, т.е. таймер-счетчиквыключается.
Подпрограмма проверки флага занятости ЖКИ нужна для того, чтобыопределить момент, когда ЖКИ свободен и готов к выполнению очередной команды.Последовательность проверки флага занятости следующая. Сначала порт А МК,подключенный к шине данных ЖКИ, настраивается как вход, и к нему подключаютсяподтягивающие резисторы. Затем выход R/W ЖКИ устанавливается в 1, чтонастраивает шину данных ЖКИ на запись в порт МК. Затем, в соответствии свременной диаграммой сигналов ЖКИ, выдерживается задержка в 1 мкс, для которойтребуются 4 команды nop. После них сигнал E устанавливается в 1, выдерживаетсязадержка еще в 0.5 мкс и значение шины данных записывается во временный регистрtemp МК. Затем сигнал E сбрасывается в 0 и опрашивается 7-й бит регистра temp,содержащий значение флага занятости. Если он равен 1, то идет возврат на меткукоманды установки R/W в 1, если нет, то идет команда выхода из подпрограммы.
Подпрограмма записи команд в ЖКИ содержит следующие шаги. Сначалапорт А настраивается на вывод информации. Затем устанавливаются в 0 сигналы RS(по шине данных передаются команды) и R/W (шина данных ЖКИ настроена на приеминформации из порта МК). После чего выдерживается время 0.5 мкс, и сигнал Eустанавливается в 1. Затем выдерживается время 1 мкс и в шину данных через портА записывается значение команды из константы comm. После этого сигнал Eсбрасывается в 0, и идет выход из подпрограммы.
Подпрограмма записи данных в ЖКИ немногим отличается от записикоманд. Различия заключаются лишь в том, что сигнал RS устанавливается в 1, чтоговорит о передаче данных, а на шину данных подается не код команды, а кодотображаемого символа.
Коды отображаемых символов хранятся в EEPROM по следующемупринципу. Поскольку изменение цифрового кода амплитуды импульса осуществляетсяс шагом 5 (приблизительно 0.1 В), а максимальное значение цифрового кода равно255, то кол-во значений амплитуды равно 46 (вместе с нулевым значением). На ЖКИотображаются целая, десятичная и сотая части значений амплитуды. Поэтому впервые 46 байта EEPROM записываются коды целой части амплитуды, во вторые 46байта – коды десятичной части амплитуды, и в третьи 46 байта – коды сотойчасти. Сама же подпрограмма чтения из EEPROM содержит в себе команды записиадреса считываемого байта в регистры EEARH и EEARL, установки нулевого битарегистра EECR в 1 (разрешение чтения из EEPROM) и чтения значения кода изрегистра данных EEDR в константу symbol.
Подпрограмма индикации текущей амплитуды сигнала используетподпрограммы проверки флага занятости ЖКИ, а также записи команд и данных вЖКИ. Ее можно условно разделить на блоки очистки экрана, индикации целой частизначения амплитуды, индикации десятичной точки, десятичной и сотой частизначения амплитуды, а также индикации пробела и буквы V. В итоге значениеамплитуды по умолчанию выводится на ЖКИ в виде «2.45 V». Каждый из блоков(кроме блоков индикации точки, пробела и буквы V) содержит вызов подпрограммы чтенияфлага занятости, чтения кода символа из EEPROM, индикации символа на ЖКИ. Послеблоков вывода целой и десятичной части значение адреса увеличивается на 46.
Подпрограммы уменьшения и увеличения амплитуды действуют последующему принципу. Сначала текущая амплитуда сравнивается со значениями 0(при уменьшении амплитуды) и 255 (при увеличении амплитуды). Если текущаяамплитуда не равна этим значениям, то в ПП уменьшения амплитуды происходитуменьшение значения константы amplitude на 5, уменьшение константы адреса наединицу и вызов ПП индикации амплитуды, а в ПП увеличения амплитуды происходитсоответственно увеличение значения amplitude на 5, увеличение константы addressна единицу и вызов ПП индикации амплитуды. Блок-схема алгоритма приведена начертеже, прилагающемся к пояснительной записке.
Исходный код программы приведен ниже.
; ******************************************************
; Генератор сигнала линейно нарастающего напряжения сверхнизкойчастоты с управляемой частотой и амплитудой
; Выполнил студент
; ******************************************************
include «C:\VMLAB\include\8515def.inc»
def temp =r16
def ConstFF = r17
def Const0 = r18
def amplitude = r19
def freq = r20
def max_ampl=r21
def Const5 = r22
def address=r23
def comm=r24
def symbol=r25
reset:
rjmp start
rjmp minus
rjmp plus
reti
reti
reti
reti
reti
reti
reti
reti
reti
start:
; инициализация стека
ldi temp, high(RAMEND)
out SPH, temp
ldi temp, low(RAMEND)
out SPL, temp
; присвоение значений константам
ldi ConstFF, $FF
ldi Const0, $00
ldi Const5, 5
ldi amplitude, 0
ldi freq, 155
ldi max_ampl, 125
ldi amplitude, 0
; настройка портов ввода-вывода
out DDRC, ConstFF
out PORTD, ConstFF
out DDRB, ConstFF
sei
; инициализация таймер-счетчика T0 и режима Idle Mode
ldi temp, 2
out TIMSK, temp
ldi temp, 0b00101010
out MCUCR, temp
ldi temp, 0b11000000
out GIMSK, temp
; инициализация индикатора ЖКИ
rcall bf_check
ldi comm, 0b00001111
rcall command
ldi comm, 0b00111000
rcall bf_check
rcall command
ldi address, 25
rcall display_ampl; индикация амплитуды по умолчанию
main:; опрос кнопок
ldi temp, 0b11000000
out GIMSK, temp
sbis PIND, 4
rjmp mm1
sbis PIND, 5
rjmp mm2
sbis PIND, 6
rjmp mm3
sbis PIND, 7
rjmp mm4
gener:; генерация пилы
out GIMSK, Const0
out PORTC, amplitude
cpse amplitude, max_ampl
rjmp gen1
rjmp gen2
gen1:
inc amplitude
rcall delay
rjmp gener
gen2: ldi amplitude, 0
rjmp main
; выбор значения частоты
mm1: ldi freq, 156
rjmp gener
mm2: ldi freq, 206
rjmp gener
mm3: ldi freq, 222
rjmp gener
mm4: ldi freq, 231
rjmp gener
; подпрограмма временной задержки
delay:
out TCNT0, freq
ldi temp, 0b00001011
out TCCR0, temp
sleep
out TCCR0, Const0
ret
display_ampl:; подпрограмма индикации амплитуды
rcall bf_check
ldi comm, 1; вызов команды
rcall command; очистки экрана
; вывод целой части значения амплитуды
rcall read_EEPROM
rcall bf_check
rcall data
; вывод десятичной точки
ldi symbol,$2E
rcall bf_check
rcall data
; вывод десятичной части значения амплитуды
ldi temp, 46
add address, temp
rcall read_EEPROM
rcall bf_check
rcall data
; вывод сотой части значения амплитуды
ldi temp, 46
add address, temp
rcall read_EEPROM
rcall bf_check
rcall data
ldi temp, 92
sub address, temp
; вывод пробела и буквы V
rcall bf_check
ldi symbol, $20
rcall data
ldi symbol,$56
rcall bf_check
rcall data
ret
command:; подпрограмма записи команды в ЖКИ
out DDRA, ConstFF
out PORTB, Const0
nop
nop
sbi PORTB, 2
nop
nop
nop
out PORTA, comm
cbi PORTB, 2
ret
data:; подпрограмма записи кода символа в ЖКИ
out DDRA, ConstFF
ldi temp, 1
out PORTB, temp
nop
nop
sbi PORTB, 2
nop
nop
out PORTA, symbol
nop
nop
nop
cbi PORTB, 2
ret
bf_check:; подпрограмма проверки флага занятости
out DDRA, Const0
out PORTA, ConstFF
bf:
ldi temp, 2
out PORTB, temp
nop
nop
nop
nop
sbi PORTB, 2
nop
nop
in temp, PINA
cbi PORTB, 2
sbrc temp, 7
rjmp bf
ret
read_EEPROM:; подпрограмма чтения кода символа из EEPROM
out EEARH, Const0
out EEARL, address
ldi temp, 1
out EECR, temp
in symbol, EEDR
ret
minus:; уменьшение амплитуды
ldi temp, 25
cpse max_ampl, temp
rjmp min1
rjmp min2
min1:
sub max_ampl, Const5
dec address
rcall display_ampl
; здесь надо подкрутить частоту
min2:
reti
plus:; увеличение амплитуды
cpse max_ampl, ConstFF
rjmp pl1
rjmp pl2
pl1:
add max_ampl, Const5
inc address
rcall display_ampl
; здесь надо подкрутить частоту
pl2:
reti
eseg
db $30, $30, $30, $30, $30, $31, $31
db $31, $31, $31, $31, $31, $31, $31, $31, $32, $32, $32, $32, $32
db $32, $32, $32, $32, $32, $33, $33, $33, $33, $33, $33, $33, $33
db $33, $33, $34, $34, $34, $34, $34, $34, $34, $34, $34, $34, $35
db $35, $36, $37, $38, $39, $30, $31
db $32, $33, $34, $35, $36, $37, $38, $39, $30, $31, $32, $33, $34
db $35, $36, $37, $38, $39, $30, $31, $32, $33, $34, $35, $36, $37
db $38, $39, $30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $30
db $39, $39, $38, $38, $38, $38, $38
db $37, $37, $37, $37, $37, $36, $36, $36, $36, $36, $35, $35, $35
db $35, $35, $34, $34, $34, $34, $34, $33, $33, $33, $33, $33, $32
db $32, $32, $32, $32, $31, $31, $31, $31, $31, $30, $30, $30, $30
db $00 $00 $00 $00 $00 $00 $00 $00 $00 $00
db $00 $00 $00 $00 $00 $00 $00 $00 $00 $00
db $00 $00 $00 $00 $00 $00 $00 $00 $00 $00
db $00 $00 $00 $00 $00 $00 $00 $00 $00 $00
db $00 $00 $00 $00 $00 $00 $00 $00 $00 $00
db $00 $00 $00 $00 $00 $00 $00 $00 $00 $00
db $00 $00 $00 $00 $00 $00 $00 $00 $00 $00
db $00 $00 $00 $00 $00 $00 $00 $00 $00 $00
db $00 $00 $00 $00 $00 $00 $00 $00 $00 $00
db $00 $00 $00 $00 $00 $00 $00 $00 $00 $00
В начале программы с помощью директив.def регистрам общегоназначения присваиваются определенные, осмысленные имена, с целью облегчениячтения кода в дальнейшем. Затем, после метки reset идет блок описанияподпрограмм обработки прерываний. В нашем случае таких подпрограмм 2 –подпрограммы уменьшения и увеличения амплитуды (minus и plus). После меткиstart начинается основная программа. Первые 4 команды после нее инициализируютстек (записывают в старший и младший байты указателя стека SPH и SPL адресаграницы оперативной памяти, тем самым под область стека отводится все адресноепространство ОЗУ). Затем с помощью команд ldi в используемые РОНы загружаютсятребуемые значения. После присвоения значений РОНам (константам) с помощьюкоманд out в регистры ввода-вывода записываются значения настройки портов.Командами
out DDRA, ConstFF и out DDRC, ConstFF порты A и С настраиваются навыход, командой out PORTD, ConstFF к порту D подключаются подтягивающиерезисторы. Далее, командой sei разрешаются прерывания на общем уровне. Далее,командами   ldi temp, 2 и out TIMSK, temp
в регистре TIMSK устанавливается в 2-й бит, разрешающий прерыванияпо сравнению от первого таймер-счетчика. Следующими двумя командами в регистрMCUCR записывается значение 0b00101010. Установка пятого бита регистраразрешает использование режима пониженного энергопотребления, а значение 4-гобита, равное 0, задает тип режима – Idle Mode. 3-й и 1-й биты, установленные в1, задают внешнее прерывание по переднему фронту сигнала (по отпусканиюкнопки). Далее, запись значения 0b11000000 в регистр GIMSK разрешает внешниепрерывания INT0 и INT1.
В блоке инициализации ЖКИ с помощью команд rcall вызываютсяподпрограммы опроса флага занятости, записи команд в ЖКИ и индикации амплитудыпо умолчанию.
В блоке опроса кнопок используются команды sbis, пропускающиеследующую за ними команду, если опрашиваемый бит порта установлен в 1 (кнопкане нажата). В противном случае происходит переход по соответствующей метке, гдекомандами ldi в константу freq загружаются требуемое значение. В блокегенерации командами out в порт С, подключенный ко входу ЦАП, загружаютсязначения амплитуды и нулевые значения, задающие 2 полупериода импульса.
 

5. Результаты эмуляции программы в пакете VMLAB
Рисунок – Меандр с частотой 5 Гц
/>
Рисунок Меандр с частотой 10 Гц
/>

Рисунок – Меандр с частотой 15 Гц
/>
Рисунок – Меандр с частотой 20 Гц
/>

6. Анализ временных соотношений и оценка погрешностей
С помощью результатов, полученных при эмуляции программы в средеVMLAB, можно оценить частоту полученных сигналов. В первом режиме периодмеандра оказывается равным 200 мс, как следствие его частота равна 5 Гц и неотличается от заданной в ТЗ. Во втором режиме период меандра равен 100 мс, ачастота сигнала – 10 Гц, которая также не отличается от заданной. В третьемрежиме период меандра равен 68.0 мс, а его частота равна f = 1000/68.0 = 14.7Гц. Она отличается от заданной частоты 15 Гц на 0.03 Гц, и в данном случаеотносительная погрешность частоты сформированного сигнала равна:
е = 0.03/15 = 0.002 = 0.2%
Полученная относительная погрешность меньше заданной в ТЗ – 0.5%,следовательно, требуемая точность полученного значения частоты достигнута.
В 4-м режиме период меандра равен 50 мс, а его частота – 20 Гц,которая не отличается от заданной.
Что касается 1-го, 2-го и 4-го режимов, то погрешность значениячастоты есть, но она меньше погрешности измерения частоты сигнала средствамипрограммы VMLAB.

Выводы
В итоге выполнения курсового проекта была разработана схемагенератора линейно нарастающего напряжения, а также был составлен алгоритм итекст программы функционирования МК. Полученное устройство обладает следующимихарактеристиками:
– частота сигнала устанавливается в 4 фиксированных значения
(5, 10, 15 и 20 Гц) 4-мя кнопками. Погрешность значения частоты непревышает 0.5%;
– амплитуда сигнала изменяется в пределах от 0.5 до 5 Вольт 2-мякнопками увеличения и уменьшения амплитуды через 0.1 Вольт;
– индикация амплитуды осуществляется с помощью ЖКИ на базеконтроллера HD44780.
Проверка работоспособности устройства эмулировалась в программеVMLAB, позволяющей описать схему электрическую принципиальную устройства,ввести текст программы функционирования устройства, а также осуществитьвизуальный контроль над генерируемым сигналом и проверку работы устройства вразличных режимах.


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.