Лекция 6 2.12 Программное управление ходом вычислений. Архитектура учебного микроконтроллера 16 EEPROM 16 16 8 RAM 8 8 PC 8 DPL DPH DPTR P0 . . . 8 8 8 SP P0.7 P0.6 P0.0 8 RAR 8 8 P2 . . . 8 P2.7 P2.6 P2.0 8 ALU Управление 8 8 8 8 8 ALE ROM Р Reset P1.7 P1.6 P1.0 CU EA . . . B ACC PSEN P1 8 8 Timer 0 TL0 TH0 Timer 1 TL1 TH1 IP IE UART SBuf 8 8 P3 . . . P3.7 P3.6 P3.0 Рисунок 2.12.1 Базовая архитектура микроконтроллеров семейства MCS-51 XTAL1 G XTAL2 1 Лекция 6 2.13. Программная реализация табличного способа вычисления Вычисления значения нелинейной функции выполняется с помощью 5 команд и требует 12 мкс времени при реализации программы на типовом контроллере MCS-51 с частотой кварцевого резонатора 12 МГц. ROM1 X 12 8 7 11 A 4 Ki 4 SUM Q x 8 Y ROM2 A Q 7 Рисунок 2.13.1 - Схема аппаратной реализации табличного вычислителя в рассматриваемой схеме реализованы вычисления по следующим уравнениям: X = Xi + ∆х, Y = f( Xi ) + Ki * ∆х , где: f( . ) - заданная нелинейная функция. 2 Лекция 6 2.13.2. Реализация генератора функции времени Для примера: необходим генератор задающего воздействия y = sin ( w*t) , частота воздействия 10 Гц, т.е. w = 62,8 1/с. G fк +1 CT2 A Q R ROM 7 N 10 Q Y Рисунок 2.13.2 - Генератор функции времени для задания периода квантования сигналов используется механизм обработки прерываний таймеров, а программа генерации значений функции пишется, как программа обработки прерывания одного из таймеров. 3 Лекция 6 Реализация генератора функции времени Начало Инициализация Требование прерывания ТС0 Запрет прерываний Установка режима таймера 0 Запрет прерываний Обработка прерывания Чтение Y=f(x) из буфера Вывод Y Запись периода прерывания TС0 N 100 N=0 N=N+1 N=0 Разрешение прерываний Разрешение прерываний RTI Различные сервисные программы Основная задача Рисунок 2.13.3 - Структура программы генератора функции времени 4 Лекция 6 2.14 Программная реализация регистрового способа вычисления Пусть необходимо реализовать устройство, вычисляющее среднее значение по четырем последовательно измеряемым значениям входной переменной х(n): y(nТ) = [x(nТ-T) + x(nТ-2Т) + x(nТ-3Т) + x(nТ-4Т)]/ 4, где: n - дискретное время, Т - заданный период квантования сигнала во времени. 8 X(nT) X1(nT) RG 8 D 8 Q SM X2(nT) Q 8 RG 8 RG D D RG D Q X3(nT) C C C 8 Q X4(nT) 9 SM Y(nT) 8 10 :4 C T SM 9 Рисунок 2.14.1 - Схема устройства, аппаратно реализующего регистровый способ вычислений 5 Лекция 6 Программная реализация регистрового способа вычисления Начало Инициализация Запрет прерываний Кофигурирование линии P3.2 на ввод сигнала Int0 Запись вектора прерывания Int0 Разрешение прерываний Int0 Разрешение прерываний Требование прерывания Int0 Запрет прерываний Чтение x(nT) через порт Р1 Синхронный ввод и обработка информации Вывод Y(nT) через порт Р2 Обновление информации в регистрах Вычисление нового значения Y Разрешение прерываний Различные сервисные программы RTI Асинхронный процесс Рисунок 2.14.2 - Блок-схема программы, реализующей регистровый способ вычислений.6 Цифровая техника систем управления В.И. Бойков, С.В. Быстров, В.В. Григорьев, Ю.В. Литвинов Учебное пособие 7