KURS


Задание.



Создать МП
систему управления
настройкой
приемника.
Упрощенная
схема приемника
изображена
на рис. 1.



Рис
1



Контур приемника
состоит из
индуктивности
Lк и емкости
варикапа VD1. Эта
емкость зависит
от подаваемого
на варикап
постоянного
напряжения
Uупр (зависимость
обратнопропорциональная).
Выделенное
контуром ВЧ
напряжение
Uк детектируется
амплитудным
детектором
(АД) и при настройке
на станцию на
выходе АД получается
сигнал Uвых.
Необходимо
подключить
МПС к приемнику
так, чтобы МП
измеряя величину
Uвых мог
воздействовать
на варикап с
целью настройки
входного контура.
МПС должна
обеспечить:



— точную настройку
на заданную
станцию (величина
рассогласования
по частоте не
должна превышать
3% от ширины полосы
контура 2f,



— поиск станций
в диапазоне
частот Fmin...Fmax.



1. Описание
алгоритма.



Напряжение
на контуре
детектируется
амплитудным
детектором
(АД), преобразуется
в АЦП в двоичный
код и поступает
на МП. МП оценивает
сигнал и выдает
управляющее
напряжение
Uупр, которое
после ЦАП поступает
на варикап для
изменения
частоты настройки
контура. Задача,
решаемая МП,
состоит в поиске
экстремума
функции Uупр(F).
Из всех известных
алгоритмов
поиска вследствие
малой разрядности
МП выбирается
метод нулевого
порядка - метод
случайного
пошагового
поиска экстремума
с запоминанием
верного шага.



Суть алгоритма
состоят в следующем.
Так как напряжение
на контуре
является функцией
расстройки
{Fk-Fo}, то пря
изменении F
изменяется
и Uk. МП формирует
приращение
Uупр (может
быть и положительным
и отрицательным).
Происходит
сравнение
Ukn=f(Uy) и Ukn+1=f(Uy+Uy).Если
Ukn+1>Ukn, то делается
шаг в ту же сторону,
в противном
случае - в противоположную.
Одноэкстремальный
вид функции
настройки
позволяет
одновременно
осуществить
операцию
автоматического
поиска частоты
Fo. АЦП и ЦАП
подсоединяются
к МПС через
порты ввода/вывода.
Для построения
портов ввода/вывода
используются
порты Р1 и Р2 ОЭВМ.
Это позволяет
использовать
для ввода/вывода
команды ОЭВМ
работы портами.
Предположим,
что для АЦП
осуществляется
программная
задержка на
время, большее
времени преобразования,
чтобы избежать
ввода еще одного
регистра для
опроса сигнала
готовности
АЦП. Сигнал на
ЦАП подается
сразу из ОЭВМ
через порт.
Однако при
регулировании
необходимо
организовать
программную
задержку на
время установления
переходных
процессов в
контуре. Кроме
того, для исключения
влияния шума
на процесс
регулирования
нужно установить
нижний предел
изменения Uk.



2. Структурная
схема алгоритма.





3. Математическое
описание.



3.1 Исходные данные:
























































Диапазон
частот поиска


Fmin=1
мГц







Fmax=1,5
мГц




Полоса
частот




f=3кГц




Параметры
варикапа:


Начальное
значение частоты
контура


Fk0=1
мГц




Управляющее
напряжение


Uупр0=2В




Крутизна
характеристики
преобразования
S=25 кГц/В


Параметры
ЦАП (БИС ЦАП
К572ПА1):


Опорное
напряжение


UЦАП=10,24В




Количество
разрядов


n=10


Параметры
АЦП (AD7575):


Опорное
напряжение


UАЦП=2,56В




Количество
разрядов
n=8


3.2 Расчёт.


Частота
настройки
контура зависит
от управляющего
напряжения
следующим
образом:



Fk=Fk0+S(Uупр-Uупр0)

(1)



где Fk0
— начальное
значение частоты
контура при
Uупр=Uупр0



S — крутизна
характеристики
преобразования.



Uупр=Uупр2-Uупр1

(2)



Из (1) следует,
что



Т.к f=3кГц,
то при



F1=Fmin+f=1000+3=1003
(кГц), 
(В)



F2=Fmin+2f=1006
(кГц) 
(В)



Uупр=Uупр2-Uупр1=1,24-1,12=0,12
(В)



(В) — минимальное
значение напряжения
на входе, которое
даёт 1 в младшем
разряде кода.



Uупр>UЦАП
 десятиразрядный
ЦАП подходит
для выполнения
данной задачи.
UЦАП=0,01
В  на
вход надо подавать
по 12k импульсов
(как бы проскакивая
по 12 импульсов
сразу), где k
— номер шага
.
1210 = 00000011002, 
2 первых разряда
всегда равны
0,  их можно
заземлить, 
к порту подключается
8 разрядов (старших)
и вместо 12 на
ЦАП подается
3 (112=310). 
можно охватить
весь диапазон
без использования
дополнительных
разрядов.



— количество
шагов для того
чтобы пройти
всю область
настройки.



12∙Kn=2004
— нужно 10 разрядов



8∙Kn=501
— нужно 8 разрядов.



(В)



Если Uk
возрастает
на постоянно
на всей области
настройки, то
(В)



Uk>UАЦП
 8-ми
разрядный ЦАП
подходит для
решения данной
задачи.



4. Распределение
ресурсов МП
системы



Регистр ОЭВМ
R2 будет
хранить значения
Uупр, в
R3 помещаются
значения предыдущего
шага Uk-1,
а в A (аккумулятор)
— значения
последующего
шага Uk.
В R4 в процессе
работы программы
будем помещать
только N
— параметр
программной
задержки. В B
будет храниться
количество
шагов для прогона
всей области
настройки.
Выбираем N=135,
т.к время программной
задержки равно
400 мкс, а вся процедура
реализуется
в 3 цикла, 
.



5. Подробная
структурная
схема алгоритма.





6. Программа
работы МК.




















































































































































































































Кол-во
циклов


Метка


Мнемоники
Комментарий








NAME
P78
имя модуля
программы


CSEG AT 0H




абсолютный
кодовый сегмент










ORG
0H
псевдокоманда
задания адреса
памяти


1





MOV
R2,
#3


в R2 помещается
Uупр




1





MOV
B,
#167
в B помещается
количество
шагов


1





MOV A P1


в A помещается
содержимое
Uk
из порта P1




1





MOV R3, A


в R3 помещается
значение Uk
из A




1


M1:


MOV R4, #135
инициализация
счетчика
программной
задержки


1





MOV A, R2


в
A
помещается
значение Uупр
из R2


1





MOV P2, A


в порт P2
помещается
значение Uупр
из A




1





SETB
3.7
формирование
отрицательного
импульса для
включения
АЦП


1





CLR 3.7


1





SETB 3.7


1


M2:


NOP
оператор
задержки


2





DJNZ R4, M2


значение R4
(счетчик программной
задержки)
уменьшается
на 1 и при R40
осуществляется
переход на
метку M2




1





MOV A, P1


в A записывается
Uk+1
из порта P1




1





SUBB A, R3


из A вычитается
R3 (Uk+1
сравнивается
с Uk)




2





JC
M3


если флаг C=0
(Uk+1>Uk),
то осуществляется
переход на
метку M3




1





MOV A, P1


в A помещается
значение Uk+1
из порта P1




1





MOV R3, A


в R3 помещается
значение Uk+1
из A




1





INC
R2


значение R2
(Uупр)
увеличивается
на 1




1





INC
R2


значение R2
(Uупр)
увеличивается
на 1




1





INC
R2


значение R2
(Uупр)
увеличивается
на 1




2





DJNZ B, M1


значение B
(счетчик шагов)
уменьшается
на 1 и при B0
осуществляется
переход на
метку M1




2





AJMP
M5
осуществляется
безусловный
переход на
метку M5


1


M3:


MOV R4, #135
инициализация
счетчика
программной
задержки


1





CLR
C
флаг С устанавливается
в 0


1





DEC
R2


значение R2
(Uупр)
уменьшается
на 1




1





MOV A, R2


в A помещается
значение Uупр
из R2




1





MOV P2, A


в порт P2
помещается
значение Uупр
из A




1





SETB
3.7
формирование
отрицательного
импульса для
включения
АЦП.


1





CLR 3.7


1





SETB 3.7


1


M4:


NOP
оператор
задержки



















































2





DJNZ R4, M4


значение R4
(счетчик программной
задержки)
уменьшается
на 1 и при R40
осуществляется
переход на
метку M4




1





MOV A, P1


в A помещается
содержимое
Uk+1
из порта P1




1




SUBB A, R3




из
A
вычитается
R3
(Uk
сравнивается
с Uk+1)




1





MOV A, P1


в A записывается
Uk+1
из порта P1




1





MOV R3, A


в R3 помещается
значение Uk
из A


r />
2





JC
M3


если флаг C=0
(Uk>Uk+1),
то осуществляется
переход на
метку M3




1


M5:


NOP
оператор задержки








END
конец модуля
программы


7. Контрольный
пример.



Для просмотра
результатов
вместо порта
P1 будем
значения Uk,
будут помещаться
во внутреннюю
память, начиная
с адреса 20H
и заканчивая
адресом 27H
,  в R0
будет размещаться
адрес внутренней
памяти и “MOV
A, P1”
заменяется
на “MOV A,
@R0”. Так же
уменьшим количество
шагов и время
программной
задержки.

































































































































































NAME 78





CSEG AT 0H


ORG 0H







MOV 21H, #1


задаются значения
Uk







MOV 22H, #3





MOV 23H, #6





MOV 24H, #9





MOV 25H, #6





MOV 26H, #7





MOV 27H, #9





MOV R0, #20H
в R0 помещается
адрес 20H





MOV
R2,
#3


в R2 помещается
начальное
значение Uупр







MOV
B,
#10
в B помещается
количество
шагов





MOV A @R0
в A помещается
содержимое
ячейки с адресом
R0





MOV R3, A
в R3 помещается
содержимое
А (ячейки с
адресом 20H)


M1:


INC R0
значение R0
(адрес внутренней
памяти) увеличивается
на 1





MOV
R4,
#3
инициализация
счетчика
программной
задержки





MOV A, R2





MOV P2, A


M2:


NOP





DJNZ R4, M2


значение R4
(счетчик программной
задержки)
уменьшается
на 1 и при R40
осуществляется
переход на
метку M2







MOV A, @R0


в A помещается
содержимое
ячейки с адресом
R0 (Uk+1)







SUBB A, R3


из A вычитается
R3 (Uk+1
сравнивается
с Uk)







JC
M3


если флаг C=0
(Uk>Uk+1),
то осуществляется
переход на
метку M3







MOV A, @R0
в A помещается
содержимое
ячейки с адресом
R0





MOV R3, A


в R3 помещается
значение Uk+1
из A







INC
R2


значение R2
(Uупр)
увеличивается
на 1







INC
R2


значение R2
(Uупр)
увеличивается
на 1







INC
R2


значение R2
(Uупр)
увеличивается
на 1







DJNZ B M1


значение B
(счетчик шагов)
уменьшается
на 1 и при B0
осуществляется
переход на
метку M1







AJMP
M5
осуществляется
безусловный
переход на
метку M5


M3:


INC R0
значение R0
(адрес внутренней
памяти) увеличивается
на 1







































































DEC
R2


значение R2
(Uупр)
уменьшается
на 1







MOV
R4,
#3
инициализация
счетчика
программной
задержки


CLR
C


флаг С устанавливается
в 0





MOV A, R2





MOV P2, A


M4:


NOP





MOV A, @R0


в A помещается
содержимое
ячейки с адресом
R0 (Uk+1)







SUBB A, R3


из A вычитается
R3 (Uk+1
сравнивается
с Uk)







MOV A, @R0


в A помещается
содержимое
ячейки с адресом
R0 (Uk+1)







MOV R3, A


в R3 помещается
значение Uk+1
из A







JC
M3


если флаг C=0
(Uk>Uk+1),
то осуществляется
переход на
метку M3




M5


NOP





END


8. Определение
быстродействия
программы.


Найдём,
сколько времени
потребуется
для поиска
станции, которая
находится в
середине диапазона.
F0=1,25 мГц и
при условии
что придётся
делать один
шаг назад.


T=Nц1tц1+Nц2tц2+tпер+tд


Nц1=250
— количество
шагов в первом
цикле


Nц2=1
— количество
шагов во втором
цикле


tц1=417
мкс


tц2=414
мкс


tпер=424
— время перехода
из одного цикла
в другой


tд=4
мкс — время
ввода начальных
данных



T=250417+1414+424+4=104717
мкс



9. Листинг
отлаженной
программы.


A51 MACRO ASSEMBLER
78 24/12/01 13:46:28 PAGE 1


DOS MACRO ASSEMBLER
A51 V5.10


OBJECT MODULE PLACED
IN 78.OBJ


ASSEMBLER INVOKED BY:
M:KEILTESTBINA51.EXE 78.A51 DB EP


























































































































































































































































































LOC OBJ LINE SOURCE
1 NAME P78
---- 2 CSEG AT 0H
0000 3 ORG 0H
0000 7A03 4 MOV R2, #3
0002 75F0A7 5 MOV B, #167
0005 E590 6 MOV A, P1
0007 FB 7 MOV R3, A
0008 7C87 8 M1: MOV R4, #135
000A EA 9 MOV A, R2
000B F5A0 10 MOV P2, A
11
000D 00 12 M2: NOP
000E DCFD 13 DJNZ R4, M2
0010 E590 14 MOV A, P1
0012 9B 15 SUBB A, R3
0013 400B 16 JC M3
0015 E590 17 MOV A, P1
0017 FB 18 MOV R3, A
0018 0A 19 INC R2
0019 0A 20 INC R2
001A 0A 21 INC R2
001B D5F0EA 22 DJNZ B, M1
001E 0132 23 AJMP M5
0020 7C87 24 M3: MOV R4, #135
0022 C3 25 CLR C
0023 1A 26 DEC R2
0024 EA 27 MOV A, R2
0025 F5A0 28 MOV P2, A
29
0027 00 30 M4: NOP
0028 DCFD 31 DJNZ R4, M4
002A E590 32 MOV A, P1
002C 9B 33 SUBB A, R3
002D E590 34 MOV A, P1
002F FB 35 MOV R3, A
0030 40EE 36 JC M3
0032 00 37 M5: NOP
38 END


A51 MACRO ASSEMBLER 78 24/12/01
13:46:28 PAGE 2












SYMBOL TABLE LISTING
------------ ------------- ------------












































































NAME T Y P E VALUE ATTRIBUTES
B. . . . . . . . . . . D ADDR 00F0H A
M1 . . . . . . . . . C ADDR 0008H A
M2 . . . . . . . . . C ADDR 000DH A
M3 . . . . . . . . . C ADDR 0020H A
M4 . . . . . . . . . C ADDR 0027H A
M5 . . . . . . . . . C ADDR 0032H A
P1 . . . . . . . . . . D ADDR 0090H A
P2 . . . . . . . . . . D ADDR 00A0H A
P78. . . . . . . . . N NUMB -----

REGISTER BANK(S)
USED: 0


ASSEMBLY COMPLETE. 0
WARNING(S), 0 ERROR(S)



15



P2


P1


CP


ALE


PSEN


RD


Приложение
1


Амплитудный
детектор



Uупр


VD1


L1



К572ПА1


AD 7575



8 р



8 р



~



D B0


D B1


D B2


D B3


D B4


D B5



D B6


D B7

BUSY


W


CS


RD


C1



Uk



Uk+1


Структурная
схема управления
настройкой
приёмника.


16





МГАПИ



Курсовой проект



Группа
ПР-7



Специальность
2008



Студент
Розенфельд
А.



2001г.


Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: KURS

Слов:4672
Символов:40817
Размер:79.72 Кб.