входные сигналы:
·
D1 – D4 – напряжение с датчиков
частоты;
·
PU1 – PU4 – напряжение установки
с пульта оператора;
выходные сигналы :
·
Uout1 – Uout1 – управляющие сигналы,
выработанные САПЧ.
При включении питания схемы на вход RST МК через
дифференцирующую цепочку подаётся сигнал высокого уровня и запускается процесс
инициализации микроконтроллера.
После этого начинается опрос датчиков и сигналов
с пультов оператора. Масштабный усилитель приводит диапазон напряжений к
значению 0 – 5 В. В биты 0-2 порта Р0 выводится номер входа мультиплексора. Бит
3 порта Р0 управляет УВХ, стоящим перед АЦП, бит 4 управляет АЦП, бит 5
управляет дешифратором. В биты 4,5 сначала заносится 1, в бит 3 – 0. После переключения
мультиплексора в бит 3 заносится единица и начинает работать УВХ в режиме
выборки. По окончании выборки в биты 3,4 заносится 0. Начинается
аналого-цифровое преобразование сигнала. Далее двоичный код заносится в семь
младших разрядов порта Р1 МК. В старший разряд порта заносится сигнал
готовности с АЦП. В бит 4 порта Р0 заносится единица, которая переводит
выходные буферные устройства АЦП в высокоимпендансное состояние и отключает его
от шины данных.
После ввода необходимых значений и их обработки происходит
вывод управляющего сигнала. При этом в порт Р1 выводится двоичный код сигнала,
который преобразуется в ЦАП в аналоговое напряжение. После преобразования в
порт Р0 выводится номер канала, для которого предназначен управляющий сигнал.
Этот номер поступает на дешифратор, который выберет УВХ соответствующего
канала. УВХ запомнит значение и будет хранить его до следующей выдачи
управляющего сигнала в данный канал. В бит 5 порта Р0 записывается единица,
которая отключает дешифратор.
При отклонении текущей частоты более чем на 10 %
от заданной, в бит порта Р2 с номером канала, в котором произошло отклонение
записывается единица и загорается один из четырёх светодиодов, подключенных к
этому порту.
Для уменьшения наводок и падений напряжений,
связанных с переходными процессами в шинах питания и земли применены
индивидуальные сглаживающие конденсаторы. Емкость и количество распределенных
по схеме сглаживающих импульсные помехи конденсаторов выбраны следующим
образом: по одному керамическому конденсатору емкостью 0.1 мкФ на один корпус.
Конденсаторы подключаются между шинами питания и земли и устанавливаются в
непосредственной близости от обслуживаемых корпусов.
Кроме того, для компенсации бросков тока в
системе питания непосредственно около разъема подачи питания установлены
электролитические конденсаторы, по одному на каждую линию питания.
Для проектируемой системы потребляемая мощность
рассчитывается по следующей формуле:
Р=8 РК140УД6+РК590КН1+РКР1816ВЕ51+РКР1533ЛН1+5*РКР1100СК3+РК1113ПВ1А+РК1108ПА2+8*РКР1533ИД14,
Где Р – суммарная
потребляемая мощность, Ртип микросхемы - мощность, потребляемая
определённым типом микросхемы.
Максимальные потребляемые мощности для микросхем,
используемых в САПЧ:
РК140УД6=84 мВт;
РК590КН1=70 мВт;
РКР1816ВЕ51=2 Вт;
РКР1533ЛН1=20 мВт;
РКР1100СК3=75 мВт;
РК1113ПВ1А=320 мВт;
РК1108ПА2=500 мВт;
РКР1533ИД14=65 мВт.
Суммарная
потребляемая мощность, не более 3,1 Вт
Алгоритмы управления системой и индикации
показаны в приложении 1.
Рассмотрим основной алгоритм работы системы
(рис.1 приложения 1). При включении устройства начинается инициализация
необходимых переменных. Номеру входа мультиплексора, с которого считывается
значение, присваивается значение N равное числу каналов (N=4 – пульт оператора 1-го
канала). Далее начинается опрос датчиков частоты и пульта оператора. В системе
реализован циклический режим опроса. При этом режиме опрос осуществляется по
заранее установленной программе, определяющей последовательность коммутации.
Для каждого канала опрашивается сначала пульт оператора, затем датчик частоты.
Обрабатывается 1-й канал, затем 2-й и т.д. После опроса всех каналов, снова
начинает опрашиваться 1-й канал, и т.д.
Работа системы осуществляется следующим образом:
устанавливается адрес памяти R0, по которому будет заносится 1-е значение, опрашивается
вход I мультиплексора
(пульт оператора ) , адрес памяти R0 увеличивается на 1, номер входа I уменьшается на N, опрашивается вход I мультиплексора (датчик
частоты), происходит обработка данных, вывод результата, номер входа I увеличивается на N+1, происходит проверка:
равно ли I значению 2*N+1, т.е. все ли каналы
опрошены, если это условие выполняется, то I=N и всё начинается сначала с первого канала, если не
выполняется, то I остаётся неизменным и всё повторяется для следующего канала.
Ввод значений с датчиков осуществляется
процедурой INPUT.
Рассмотрим подробнее алгоритм этой процедуры
(рис.2 приложения 1).
Сначала необходимо подготовить управляющее слово,
которое будет содержать адрес опрашиваемого входа мультиплексора и сигналы,
начинающие или запрещающие работу соответствующих микросхем. Для этого в
младшие разряды слова помещается номер входа мультиплексора, 4-й бит и 5-й биты
устанавливаются в 1, 3-й бит обнуляется. Тем самым запрещается работа УВХ с АЦП
и дешифратора. Далее это слово выводится в порт 0. После окончания переходных
процессов в мультиплексоре в 3-бит записывается единица, что начинает выборку
сигнала на УВХ. После выборки в 3-й и 4-й биты записывается логический ноль,
заканчивается выборка и начинается аналого-цифровое преобразование. После этого
данные с АЦП считываются МК и проверяется старший бит считанного слова, который
является флагом окончания преобразования. Если этот бит равен 0, то данные
считываются снова, и так до тех пор, пока этот бит не будет равен 1. После
этого необходимо отключить АЦП (обнулить4-й бит управляющего слова), тем самым
отключить его от шины данных. В конце считанные данные заносятся в оперативную
память.
Вывод управляющих сигналов осуществляется
процедурой OUTPUT.
Рассмотрим алгоритм этой процедуры.
Сначала формируется управляющее слово. В младшие
биты заносится номер обслуживаемого канала. 3-й бит равен 0 (УВХ перед АЦП
отключено), 4-й бит равен 1 (АЦП отключен), 5-й бит равен 0 (разрешена работа
дешифратора). Затем выводится двоичный код управляющего сигнала в порт 1 и
начинается преобразование его в двоичный вид. После преобразования выводится
управляющее слово в порт 0, номер канала дешифрируется и выбирается
соответствующее УВХ, которое запоминает значение управляющего сигнала и
сохраняет его до следующего цикла обработки этого канала.
Обработка считанных значений частоты, текущей и
заданной, вычисление отклонения и выработка управляющих сигналов производится
процедурой OBRAB.
Рассмотрим алгоритм этой процедуры (рис.3
приложения 1).
Сначала вычисляется отклонение, равное разности
между заданной и текущей частотой. После этого выполняется процедура ANALIZ. Затем
отклонение делится на заданную частоту и умножается на 100 и получается
погрешность. В случае, если погрешность больше 0, то от неё отнимается 10. Если
результат больше нуля, то в соответствующий бит порта 2 заносится единица и
зажигается соответствующий светодиод. Если погрешность отрицательная, то к ней
прибавляется 10. И если результат меньше нуля, то также в соответствующий бит
порта 2 заносится единица.
Вычисление значения управляющего сигнала
осуществляется процедурой ANALIZ. В данной работе реализован простейший случай,
когда управляющий сигнал пропорционален измеренному отклонению. Алгоритм этой
процедуры показан на рис. 3 приложения 1.
Здесь отклонение умножается на коэффициент
пропорциональности и прибавляется значение, соответствующее нулевому
отклонению. В данном случае это значение равно 127. Получившийся результат
заносим в регистр R5.
Система команд МК КР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.
Рассчитаем время ввода данных, их обработки и
выдачи управляющего сигнала для одного канала. Для этого сложим время
выполнения всех команд и учтём время преобразования на АЦП.
При внешней частоте в 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. Главный
алгоритм работы системы.
Рис.2. Алгоритмы
процедуры ввода INPUT и процедуры вывода OUTPUT.
Рис.3. Алгоритм
обработки входных сигналов и подготовки результатов.
Программа работы микроконтроллера.
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
Страницы: 1, 2
|