Санкт-Петербургский государственный
электротехнический университет.
Курсовой проект по дисциплине
«Цифровые и микропроцессорные устройства»
«Микропроцессоры в автоматизированных системах контроля и управления РЭС»
Выполнил:
Ямщикова Ольга
Группа: 4131
ФРТ
Проверил:
Артемьев А.К.
Санкт-Петербург 200
7
г.
Содержание:
1.
Задание на курсовой расчет.
2.
Разработка функциональной схемы.
3.
Расчет точности АЦП, расчет временных характеристик.
4.
Разработка схемы электрической принципиальной.
5.
Разработка программного обеспечения.
6.
Заключение.
7.
Список используемой литературы.
1.
Задание на курсовой расчет.
Тип модуляции: АМ
Частота несущей, кГц: 3000
Синхронизация: Б11*8
Цифровые каналы, количество: 10
Аналоговые каналы, количество: 8
Ошибка преобразования
аналоговых каналов, %: 0,1
Период опроса, мс: 1500
2.
Разработка функциональной схемы устройства:
MUX
#
10
#
CPU
Модулятор
MUX
8
^ ^ ^
^/#
3.
Расчет точности АЦП, временных характеристик.
Число разрядов АЦП:
Ошибка преобразования аналоговых сигналов 0,1 %. СКО=0,1
NАЦП= log2 (100/(2*√3*СКО))= log2 (100/(2*√3*0,1))=log2289=8
Общее число бит, передаваемых в информационном кадре:
NК=NС+NАЦП*NА+NЦ
NC-число передаваемых бит синхрогруппы: Б11*8, 88бит.
NА-количество аналоговых каналов. NА=8
NАЦП=8
NЦ- количество цифровых каналов. NЦ=10 NК=NС+NАЦП*NА+NЦ=88+8*8+10=162 бита
Длительность передачи одного бита:
TО=TОПР/NК=1,5c/162=9,259 мс
Формирование несущей частоты таймером ОЭВМ:
Для выработки несущей частоты используется возможности ОЭВМ, так как в её составе имеются соответствующие аппаратно- программные средства.
Расчет частоты кварцевого генератора:
f0 = fOSC/(4(65536-[RCAP2H,RCAP2L]))
f0=3000кГц, то есть минимальная частота кварцевого генератора будет: f0*4=fOSCmin=12МГц.
FOSC=K*FOSCmin, K-целое
K=2 Получаем fOSC=24МГц.
Приведем таблицу загрузки регистров таймера Т2:
f,кГц |
[RCAP2H,RCAP2L] dec |
[RCAP2H,RCAP2L] Hex |
[RCAP2H] |
[RCAP2L] |
3000 |
65536-2= =65534 |
0FFFЕH |
0FFH |
0FЕH |
<
Регистры таймера Т0:
Время машинного цикла:
τ0=12/FOSC=12/24МГц=0,5 мкс
Длительность передачи одного бита: Т0=9,259 мс
Количество точек в периоде огибающей D=80 шт.
Период работы таймера: J=T0/(τ0*D)=9,259 мс/(0,5 мкс*80)=231
Таймер Т0 инкриминирует значения TL0, значит для переполнения его через J машинных циклов в него записывается значение К=256-231=25.
Огибающая задана массивом из D значений. Адрес первого значения записан в константе TABSIN.
5
.
Разработка программного обеспечения:
ORG 4000H
JMP START ;обход программы прерывания Т0
ORG 0BH ;вызов программы прерывания Т0
IRQT0:
PUSH ACC ;сохранение аккумулятора в стеке
CLR A
MOVC A,@A+DPTR ;ввод в аккумулятор очередной точки огибающей
MOV P2,A ;вывод её в ЦАП
INC DPTR ;адрес следующей точки
DJNZ R7,IRQTE ;цикл вывода периода огибающей
MOV DPTR,#TABSIN ;адрес первой точки огибающей
MOV R7,#80 ;счетчик точек
SEYB 20H.0 ;флаг завершения периода огибающей
IRQTE:
POP ACC ;возврат аккумулятора из стека
RETI ;выход из программы прерывания Т0
INIT0: ;программа инициализации Т0
MOV TMOD,#2 ;режим автозагрузки
MOV TH0,#25 ;коэффициент деления частоты таймером Т0
MOV TL0,TH0
MOV DPTR,#TABSIN ;адрес первой точки огибающей
MOV R7,#80 ;счетчик точек
RET
INIT2: ;программа инициализации таймера Т2
MOV T2CON,#4 ;режим генератора F на P1.0
MOV T2MOD,#2
MOV RCAP2H,#0FFH ;3000кГц
MOV RCAP2L,#0FЕH
RET
SYNHRO:
MOV A,#11100010B ;первые 8 бит
CALL OUTA ;вывод байта из аккумулятора ACC
MOV B,#3 ;вывод оставшихся 3 бит
MOV A,#01000000
CALL OUTAB ;из аккумулятора
RET
;передача байта из аккумулятора путем сдвига его влево
OUTA: MOV B,#8 ;счетчик бит
OUTAB: RLC A ;сдвиг ACC влево
CALL OUTB
DJNZ B,OUTAB ;цикл вывода бит
RET
OUTB: JNB 20H.0,OUTB ;подпрограмма вывода бита из «С» в Р1.1
CLR 20H.0 ;ожидание завершения периода огибающей
MOV P1.1,C ;сброс флага
RET
TXBYTE: ;передача 8 бит АСС, начиная с младшего
MOV R4,#8D ;количество бит для передачи
TXBYTEL:
RRC A ;АСС.0>СARRY
CALL OUTB ;передача бита CARRY
DJNZ R4,TXBYTEL ;цикл передачи 8 бит
RET
START: ;начало основной программы
CALL INIT2 ;инициализация таймера Т2
CALL INIT0 ;инициализация таймера Т0
SETB ET0 ;разрешение прерывания от Т0
SETB EA ;разрешение всех прерываний
SETB TR0 ;пуск Т0
SYNHRO: MOV R4,#8
CALL B11
DJNZ R4,SYNHRO
;передача аналоговых сигналов
MOV P3,#00010000B ;первый адрес мультиплексора
MOV R5,#8D ;счётчик количества аналоговых каналов
ANST:
CLR P1.2 ;пуск АЦП
SETB P1.2
Z1:
JNB P1.3,Z1 ;ожидание выставления данных АЦП
CLR P1.2 ;начало чтения
MOV A,P0 ;загрузка оцифрованного сигнала в АСС
SETB P1.2 ;конец чтения из АЦП
CALL TXBYTE ;передача содержимого АСС на выход
INC P3 ;следующий адрес
DJNZ R5,ANST ;цикл последовательного опроса 8 каналов
;опрос цифровых каналов
DN:
MOV P3,#0 ;первый адрес мультиплексора
MOV R5,#10D ;счетчик количества каналов программы
DNST:
MOV C,P1.7 ;загрузка цифрового канала
CPL C
CALL OUNB ;вывод бита данных из «С» в Р1.1
INC P3 ;следующий адрес
DJNZ R5,DNST ;цикл последовательного опроса 10 каналов
JMP STRTN ;бесконечный цикл обработки входов
END ;конец основной программы
6
.
Заключение:
В ходе выполнения задания на курсовой проект было создано устройство, опрашивающее 10 цифровых и 8 аналоговых каналов и
передающее полученную информацию в виде модулированного сигнала с
cосредоточенным спектром. В качестве модуляции была использована амплитудная модуляция, в качестве синхросигнала –код Баркера Б11*8.
Разработанное устройство обладает высокой надежностью за счет использования микроконтроллера, минимизировавшего количество элементов на плате; универсальностью и возможностью модернизации за счет применения микроконтроллера со встроенной flash – памятью, позволяющей многократно изменять программу микроконтроллера.
Программа, написанная для микроконтроллера, так же обладает гибкостью за счет модулированного написания программы и небольшого её размера.
7
. Список используемой литературы:
1.
Микропроцессоры в автоматизированных системах контроля и управления РЭС., уч. Пособие, С-Пб. ЛЭТИ, 2003г.
2.
Однокристальные микроЭВМ семейства MCS51 метод. указания,
С-Пб. ЛЭТИ, 2000г.