Смекни!
smekni.com

Система автоматической подстройки частоты (стр. 3 из 3)

Обработка считанных значений частоты, текущей и заданной, вычисление отклонения и выработка управляющих сигналов производится процедурой OBRAB.

Рассмотрим алгоритм этой процедуры (рис.3 приложения 1).

Сначала вычисляется отклонение, равное разности между заданной и текущей частотой. После этого выполняется процедура ANALIZ. Затем отклонение делится на заданную частоту и умножается на 100 и получается погрешность. В случае, если погрешность больше 0, то от неё отнимается 10. Если результат больше нуля, то в соответствующий бит порта 2 заносится единица и зажигается соответствующий светодиод. Если погрешность отрицательная, то к ней прибавляется 10. И если результат меньше нуля, то также в соответствующий бит порта 2 заносится единица.

Вычисление значения управляющего сигнала осуществляется процедурой ANALIZ. В данной работе реализован простейший случай, когда управляющий сигнал пропорционален измеренному отклонению. Алгоритм этой процедуры показан на рис. 3 приложения 1.

Здесь отклонение умножается на коэффициент пропорциональности и прибавляется значение, соответствующее нулевому отклонению. В данном случае это значение равно 127. Получившийся результат заносим в регистр R5.

8. Описание программы

Система команд МК КР1816ВЕ51 ориентирована на организацию гибкого ввода-вывода данных и первичную обработку информации. Особое внимание уделено операциям с битами и передаче управления по их значению.

В ассемблере 51 используются различные методы адресации, т.е. наборы механизмов доступа к операндам. В настоящей разработке использовались следующие методы адресации:

· регистровая адресация;

· косвенно-регистровая адресация;

· непосредственная адресация.

Для адресации портов, регистров специальных функций используются зарезервированные символические имена (Р0, Р1, Р2, Р3 – порты, А или АСС - аккумулятор).

Текст программы приведён в приложении 2.

В начале программы объявляются константы, выбирается банк регистров общего назначения, номер которого определяется разрядами RS0, RS1 регистра PSW. В данном случае выбирается нулевой банк (SEL RB0).

В регистр R2 заносится число каналов N. Регистр R2 далее используется для хранения номера входа мультиплексора, с которого берётся значение. Регистр R0 используется в качестве указателя на ячейку внутренней памяти данных, хранящей операнд. В начале в R0 заносится значение 20H. По этому адресу будет хранится значение с пульта оператора. По адресу 21Н будет хранится значение текущей частоты. В регистре R5 хранится значение управляющего сигнала. Отклонение заносится в регистр R4.

Большое значение в системе команд уделено операциям с битами. В программе используются следующие команды: SETB bit, CLR bit, которые устанавливают бит соответственно в 1 или в 0. Для адресации бит используются зарезервированные символические имена вида < имя РСФ или порта > . < номер бита >.

Для передачи управления использовались такие команды как АSJMP – короткий переход, JNB – переход, если бит равен 0, JB – переход, если бит равен 1, JZ – переход, если аккумулятор равен 0.

Время выполнения команд равно одному, двум или четырём машинным циклам. Цикл равен 12 периодам внешнего синхросигнала (при внешней частоте 4МГц длительность цикла составляет 3 мкс). Это позволяет не вводить дополнительные задержки при вводе данных между выдачей адреса на мультиплексор, запуском УВХ и запуском АЦП и при выводе данных между выдачей данных в порт 1 и выдачей адреса на дешифратор.

Система арифметических команд включает в себя операции сложения, вычитания, инкремент, декремент, а также умножение и деление.

Программа написана в соответствии с алгоритмами, представленными в приложении 1 и описанными в предыдущем разделе. Она включает в себя основную программу, подпрограммы INPUT, OUTPUT, OBRAB, ANALIZ. Вызов подпрограмм осуществляется командой АCALL.

9. расчет временных характеристик устройства.

Рассчитаем время ввода данных, их обработки и выдачи управляющего сигнала для одного канала. Для этого сложим время выполнения всех команд и учтём время преобразования на АЦП.

При внешней частоте в 4 МГц получим не более 672 мкс.

Для всех четырёх каналов получим не более 2.7 мс.

Частота опроса каналов не менее 0,37 кГц.

ЗАКЛЮЧЕНИЕ

В результате курсового проектирования была разработана система автоматической подстройки частоты на основе однокристальной ЭВМ КР1816ВЕ51 со следующими параметрами: потребляемая мощность: 3,1 Вт, число обсуживаемых каналов – 4, частота опроса не менее 0,37 кГц.

Разработка системы была проведена с учетом требований, указанных в техническом задании.

Система обеспечивает индикацию канала, в котором отклонение текущей частоты от заданной превышает определённое значение.

Была разработана принципиальная схема устройства, алгоритм управления и программа на языке ассемблер для микроконтроллеров серии MCS-51.

Разработанная система может применяться регулировки частоты в различных устройствах и приборах.

Список использованной литературы

1. В.Б. Бродин, М.И. Шагурин – Микроконтроллеры. Справочник. /М.; Издательство ЭКОМ, 1999 г. – 400 с.

2. Е.В. Вениаминов – Микросхемы и их применение. Справ. Пособие. / М.; Радио и связь, 1989г. – 240 с.

3. В.Г. Гусев, Ю.М. Гусев – Электроника. Учебное пособие / М.; Высшая школа, 1990 г. – 622 с.

4. Ф.В. Шульгин – Справочник по аналоговым микросхемам / М., 1997 г.

ПРИЛОЖЕНИЕ 1.

Алгоритмы управления САПЧ.

Рис.1. Главный алгоритм работы системы.

Рис.2. Алгоритмы процедуры ввода INPUT и процедуры вывода OUTPUT.



Рис.3. Алгоритм обработки входных сигналов и подготовки результатов.

ПРИЛОЖЕНИЕ 2.

Программа работы микроконтроллера.

N EQU 4

K EQU 31

INIT: SEL RB0 ;выбор банка регистров

L1: MOV R2,N ;занести номер канала

L2: MOV R0,#20H ;занести в РПД адрес памяти для данных

АCALL INPUT;чтение данных

MOV A,R2 ;

SUBB A,N ;

MOV R2,A ;R2=R2-N

INC R0 ;увеличить адрес на 1

АCALL INPUT ;чтение данных

АCALL OBRAB ;обработка данных

АCALL OUTPUT;вывод результата

MOV A,R2;

INC ;

ADD A,N ;

MOV R2,A;R2=R2+1+N

MOV A,N ;

MOV B,#2 ;

MUL AB ;A=2*N

SUBB A,R2;

JZ L1;сравнение A и R2

АJMP L2;переход на L2

RET

INPUT: MOV A,R2 ;процедура чтения данных из порта

SETB ACC.5

SETB ACC.4

OUT P0,A ;вывод в Р0 адреса

SETB PO.3 ;запуск УВХ

CLR P0.3;

CLR P0.4 ;запуск АЦП

L3: IN A,P1;чтение из Р1

JNB ACC.7 L3;проверка готовности АЦП

CLR ACC.7;ст. бит аккумулятора равен 0

SETB PO.4

MOV @R0,A;занести считанные данные в память

RET

OUTPUT: MOV A,R2;процедура вывода результатов

SETB ACC.4

OUT P1,R5;вывод в Р1

OUT P0,A ;вывод в Р0 адреса

SETB P0.5

RET

OBRAB: DEC RO;адрес значения пульта оператора

MOV A,@R0;значение пульта оператора в акк.

INC R0;адрес значения датчика

SUBB A,@R0;отклонение между пультом оператора и датчиком

MOV R4,A ;отклонение в регистр 4

АCALL ANALIZ ;процедура обработки и получения сигнала управления

MOV A,R4 ;значения отклонения в акк.

MOV B,#100;

MUL AB;умножить отклонение на 100%

DEC R0;адрес значения пульта оператора

MOV B,@R0;значение пульта оператора в В

DIV AB;разделить отклонение на значение пульта оператора

JB ACC.7 NEG;переход если погрешность <0

SUB A,#10 ;вычесть 10% из погрешности

JNB ACC.7 INDIK1;если погрешность > 10% индикация

АSJMP INDIK2

NEG: ADD A,#10

JB ACC.7 INDIK1 ;если погрешность > 10% индикация

АJMP INDIK2

INDIK1: SETB P2.R2

АJMP KON

INDIK2: CRL P2.R2

KON: RET

ANALIZ: MOV B,K;в регистр B значение коэффициента пропорциональности

MUL AB ;умножить отклонение на коэффициент

ADD A,#127;прибавить макс. зн-е результата деленное на 2 =127

MOV R5,A;занести результат в регистр 5

RET