Курсовая работа: Система автоматической подстройки частоты
Работа системы осуществляется следующим образом:
устанавливается адрес памяти 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 ;
Страницы: 1, 2, 3, 4 |