Санкт-Петербургский государственный
Электротехнический университет.
Курсовой проект по дисциплине
«Цифровые и микропроцессорные устройства»
«Микропроцессоры в автоматизированных системах контроля и управления РЭС»
Выполнил:
Ямщикова Ольга
Группа: 4131
ФРТ
Проверил:
Артемьев А.К.
|
|
Санкт-Петербург 2007г.
Содержание:
Задание на курсовой расчет.
Разработка функциональной схемы.
Расчет точности АЦП, расчет временных характеристик.
Разработка схемы электрической принципиальной.
Разработка программного обеспечения.
Заключение.
Список используемой литературы.
Задание на курсовой расчет.
Тип модуляции: АМ
Частота несущей, кГц: 3000
Синхронизация: Б11*8
Цифровые каналы, количество: 10
Аналоговые каналы, количество: 8
Ошибка преобразования
аналоговых каналов, %: 0,1
Период опроса, мс: 1500
2. Разработка функциональной схемы устройства:
MUX
#
10#
CPU
Модулятор
MUX
8^ ^ ^
^/#
Расчет точности АЦП, временных характеристик.
|
|
Число разрядов АЦП:
Ошибка преобразования аналоговых сигналов 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г.