3.2 Расчёт. Частота настройки контура зависит от управляющего напряжения следующим образом:
Fk=Fk0+S(Uупр-Uупр0) (1) где Fk0 — начальное значение частоты контура при Uупр=Uупр0 S — крутизна характеристики преобразования. DUупр=Uупр2-Uупр1 (2) Из (1) следует, что Т.к Df=3кГц, то при F1=Fmin+Df=1000+3=1003 (кГц), Þ (В) F2=Fmin+2Df=1006 (кГц) Þ (В) ÞDUупр=Uупр2-Uупр1=1,24-1,12=0,12 (В) (В) — минимальное значение напряжения на входе, которое даёт 1 в младшем разряде кода. DUупр>UЦАП Þ десятиразрядный ЦАП подходит для выполнения данной задачи. DUЦАП=0,01 В Þ на вход надо подавать по 12k импульсов (как бы проскакивая по 12 импульсов сразу), где k — номер шага . 1210 = 00000011002, Þ 2 первых разряда всегда равны 0, Þ их можно заземлить, Þ к порту подключается 8 разрядов (старших) и вместо 12 на ЦАП подается 3 (112=310). Þ можно охватить весь диапазон без использования дополнительных разрядов. — количество шагов для того чтобы пройти всю область настройки. 12∙Kn=2004 — нужно 10 разрядов 8∙Kn=501 — нужно 8 разрядов. (В) Если Uk возрастает на постоянно на всей области настройки, то (В) DUk>DUАЦП Þ 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 |
2 | | JC M3 | если флаг C=0 (Uk>Uk+1), то осуществляется переход на метку M3 |
1 | M5: | NOP | оператор задержки |
| | END | конец модуля программы |
7. Контрольный пример. Для просмотра результатов вместо порта
P1 будем значения
Uk, будут помещаться во внутреннюю память, начиная с адреса 20
H и заканчивая адресом 27
H ,
Þ в
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:\KEILTEST\BIN\A51.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)
1. Контрольная работа Проблема будущего России
2. Доклад Русский Север
3. Реферат Центральная низменность
4. Реферат Структура налоговых органов РФ права, обязанности и функции
5. Реферат Издание по компьютерным технологиям
6. Реферат Информационная технология 2
7. Доклад Creedence Clearwater Revival
8. Реферат Факторы, обуславливающие здоровый образ жизни
9. Сочинение на тему Лермонтов м. ю. - Про царя ивана васильевича по произведению м. ю. лермонтова
10. Реферат Государство и право Византии