Микропроцессорный управляемый генератор специальных сигналов
47

3.3.2.Листинг программы

 

Разработка программы проводилась с помощью программы Prokus48.exe.

Мнемокоды программы и машинные коды приведены в таблице 3. 5.

Таблица 3.5

Программа генератора специальных сигналов

 

Адрес

Код

Метка

Мнемокод

Комментарий

000

B9

 

MOV R1,#00

;в регистр R1 кладем 00H

001

00

 

 

 

002

08

M2:

INS A,BUS

;в аккумулятор помещаем данные с порта BUS

003

A8

 

MOV R0,A

;в регистр R0 помещаем данные из аккумулятора

004

F9

M3:

MOV A,R1

 

005

39

 

OUTL P1,A

;пересылка аккумулятора в порт Р1

006

F8

 

MOV A,R0

 

007

07

M1:

DEC A

;декремент аккумулятора

008

00

 

NOP

 

009

00

 

NOP

 

00А

00

 

NOP

 

00B

96

 

JNZ M1

;переход на метку М1, если в аккумуляторе не ноль

00C 

07

 

 

 

00D

19

 

INC R1

;инкремент регистра R1

00E

F9

 

MOV A,R1

 

00F 

C6

 

JZ M2

; переход на метку М2, если в аккумуляторе  ноль

010

02

 

 

 

011

00

 

NOP

 

012

96

 

JNZ M3

;переход на метку М3, если в аккумуляторе не ноль

013

04

 

 

 

В данной программе регистр R0 используется для хранения значения временной задержки, а регистр R1 для хранения номера шага (от 0 до 255).

В самом начале работы программы кладем в регистр R1 00h.Данную опереацию выполняем единожды, поэтому она практически не влияет на время работы программы. Затем в регистр R0 помещается значение временной задержки, а на порт Р1 выводится номер шага генерирования синала. Это число является адресом ячеек памяти ПЗУ констант генерирования сигнала. Выведеное на порт Р1 число буфферизируется в порте, и на ПЗУ постоянно поступает адрес текущего шага генерирования. На выходе ПЗУ формируется выходной код, который поступает на ЦАП.

Машинные коды, приведенные в таблице 3.5 следует хранить в ПЗУ команд, на принципиальной схеме обозначенном DD3 с нулевого адреса.

 

3.3.3. Расчет констант, хранимых в ПЗУ данных

В данном курсовом проекте будет две базы для хранения констант: база для хранения значений временной задержки и база для хранеия выходных величин, подаваемых на ЦАП.

По техническому заданию входная величина задается шестью разрядами, т. е. на вход спроектированного устройства будут подаваться последовательность нулей и единиц (всего 6 цифр). Данный входной код можно по всем правилам преобразовать в шестнадцатиричный и рассчитать время задержки. Но при таком подходе, мы получим достаточно большие погрешности в интервале частот от 60 Гц и выше. Чтобы избежать погрешностей, можно поступить следующим образом: расчитать таблицу соответствий кодов и частот. Каждому двоичному коду будет соответствовать определенная частота, т. о., мы избавим себя от расчета погрешностей.