Разработка генератора шума с возможностью управления от ЭВМ по порту RS-232 с индикацией амплитуды выходного сигнала, страница 3

  mov al,10010000b ;команда записи в индикаторное ОЗУ с инкрементом адреса

  mov es:[8001h],al

  mov si,3

  xor bh,bh

  mov bl,ds:[si] ;считывание десятичной цифры

  mov al,es:[bx+400h] ;замена ее на индикаторный код через таблицу по адр. 400h

  or al,80h ;установка точки на левом индикаторе

  mov es:[8000h],al ;запись индикаторного кода в инд. ОЗУ

  dec si

  mov bl,ds:[si] ;считывание десятичной цифры

  mov al,es:[bx+400h] ;замена ее на индикаторный код через таблицу по адр. 400h

  mov es:[8000h],al

exit_:

;восстановление значений регистров из стека

  pop dx

  pop cx

  pop bx

  pop ax

  iret


7. Алгоритм работы программы

В момент включения питания программа начинает выполняться, начиная с адреса 0FF0h ПЗУ. По этому адресу расположена команда передачи управления на основную программу, расположенную, начиная с адреса 500h.

Основная программа начинается с инициализации сегментных регистров. После этого идет инициализация ВВ79 – устанавливается режим работы с 8-разрядным, 8-символьным дисплеем, ввод слева, с внутренней дешифрацией адреса, запретом одновременного нажатия 2-х клавиш и константой деления тактовой частоты на 31. Далее следует инициализация последовательного интерфейса ВВ51. Задается асинхронный режим приема 8N1 с делением тактовой частоты на 16. Последним инициализируется таймер ВИ54. Нулевой канал устанавливается во 2-й режим с константой 50000 (т.е. на выходе появляются импульсы с частотой 100Гц). Для первого канала задается 3-й режим с костантой 32 (на выходе - меандр с частотой 78125Гц. После инициализации всех контроллеров данной МПС программа переходит в режим циклического считывания с АЦП, преобразования переменной k в соответствующий код ЦАП и выдачи кода на ЦАП. Т.е. пока не пришло запроса прерывания от ВИ54, система работает как генератор шума с периодическим изменением напряжения на выходе ЦАП.

Как только от таймера приходит лог. 1 на вход запроса прерывания МП, процессор передает управление по адресу 600h – на подпрограмму обработки прерывания.

В начале подпрограммы идет сохранение регистров ax, bx, cx, dx в стеке. Делается это потому что запрос прерывания может прийти в момент времени, когда производятся вычисления и в это время указанные регистры могут содержать полезную информацию. После сохранения регистров идет блок обработки нажатий клавиш. Происходит считывание слова состояния ВВ79 и определение количества символов, записанных в нем. Если в клавиатурном ОЗУ нет символов, управление передается на блок опроса ВВ51. Если символ есть, происходит либо увеличение, либо уменьшение коэффициента k в соответствии с кодом нажатой клавиши. Коэффициент k определяет максимально возможное напряжение на ЦАП. Допустимые пределы изменения k соответствуют заданным пределам изменения максимального выходного напряжения на ЦАП от 0.5 до 8 В. По окончании обработки кода нажатой клавиши, управление передается на блок преобразования коэффициента k в индикаторный код, соответствующий максимальному текущему выходному напряжению.

Если в клавиатурном ОЗУ не обнаружилось символов, происходит считывание слова состояния ВВ51. Если и в ВВ51 не оказалось полезной информации (бит готовности приемника =0), происходит восстановление значений регистров ax, bx,cx, dx и возврат из подпрограммы обработки прерывания. Указанными действиями: анализ состояния ВВ79, ВВ51 – реализуется работа процессора по опросу.

Если в ВВ51 оказался байт полезной информации, происходит ожидание готовности прихода второго байта и его считывание. По RS-232 должен передоваться коэффициент k. Для случая приема ошибочной информации, происходит ограничение k в допустимых для него пределах.

После изменения фоэффициента k, производится его преобразование в десятичный и далле – в индикаторный код в соответствии с таблицей преобразования, расположенной, начиная с адреса 400h. Полученный код записывается в индикаторное ОЗУ ВВ79. При этом учитывается, что на левом индикаторе должна гореть точка. По окончании преобразования восстанавливаются значения регистров ax, bx, cx, dx и проиходит возврат из подпрограммы обработки прерывания.


8. Список литературы

1. А.С. Глинченко, М.М. Мичурина – «Микропроцессоры и вычислительные устройства. Прогр. и метод. указания.», КрПИ, Красноярск, 1990г.

2. Ю.М. Казаринов – «Микропроцессорный комплект К1810», “Высшая школа”, Москва, 1990г.

3. С.В. Якубовский и др. – Cправочник: «Цифровые и аналоговые интегральные микросхемы», “Радио и связь”, Москва, 1990г

4. Б.В. Тарабрин, С.В. Якубовский - «Справочник по интегральным микросхемам», Москва, “Энергия”, 1977.