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

Обозначение

Наименование (тип)

Количество

Датчики

S1

Шумящий датчик

1

Диод

VD1

Д9

1

Индикаторы

HL1,HL2

TDSG1150

2

Кварцевый резонатор

ZQ1

Кварц 15МГц

1

Конденсаторы

C1

К15-5-10пФ±20%

1

С2, С5

К53-1-10мкФ±20%

2

C3

К15У-3-3300пФ±20%

1

С4

К15У-3-470пФ±20%

1

Микросхемы

DA1

К140УД2А

1

DD1

К1810ГФ84

1

DD2

К1810ВИ54

1

DD3

КР580ВВ79

1

DD4

К1810ВМ86

1

DD5

DAC813

1

DD6

КР580ВВ51А

1

DD7, DD8

КР580ИР82

2

DD9, DD10

КР580ВА86

2

DD11

КР531ИД7

1

DD12

TDA8714/4

1

DD13, DD14

К573РФ2

2

DD15, DD16

К537РУ9А

2

DD17

К155ЛИ1

1

DD18

К155ЛЛ1

1

DD19

К155ЛН1

1

Резисторы

R1-R8

МЛТ-0,25-20кОм±10%

8

R9-R16, R18, R19-R26

МЛТ-0,25-1кОм±10%

17

R17

МЛТ-0,25-200кОм±10%

1

R27

МЛТ-0,25-68кОм±10%

1

Транзисторы

VT1-VT8

2N1613

8


6. Программа

03fch: 600h

03feh: 0h

2000h: k dw 200

2002h; db 2 dup (0)

0ff0h: jmp far ptr start    

400h:

db 00111111b ;код цифры 0

db 00000110b ;код цифры 1

db 01011011b ;код цифры 2

db 01001111b ;код цифры 3

db 01100110b ;код цифры 4

db 01101101b ;код цифры 5

db 01111101b ;код цифры 6

db 00000111b ;код цифры 7

db 01111111b ;код цифры 8

db 01101111b ;код цифры 9

500h:

start:

;инициализация сегментных регистров

  mov ax,200h

  mov ds,ax

  mov ss,ax

  mov sp,0fffh

  xor ax,ax

  mov es,ax

  mov k,200

;инициализация ВВ79

  mov al,1 ;8-разрядный, 8-символьный дисплей, ввод слева, внутр. дешифрация

  mov es:[8001h],al

  mov al,00111111b ;деление частоты на 31

  mov es:[8001h],al

;инициализация ВВ51

  mov al,01001110b ;асинхронный режим 8N1 (F=1/16Fclk)

  mov es:[0a001h],al

  mov al,00010100b ;сброс битов ошибок и разрешение приема

  mov es:[0a001h],al

;инициализация ВИ54

  mov bx,50000

  mov al,00110100b ;0-й канал: 2-й режим, 2-байтная константа

  mov es:[0c003h],al

  mov es:[0c000h],bl

  mov es:[0c000h],bh

  mov al,01010110b ;1-й канал: 3-й режим, 1-байтная константа

  mov es:[0c003h],al

  mov al,32

  mov es:[0c001h],al

;циклическое считывание с АЦП, преобразование, вывод на ЦАП

g:

  xor ah,ah

  mov al,es:[4000h] ;считывание с АЦП

;преобразование переменной k в соотв. код АЦП

  mov bx,k

  mul bx

  mov bx,255

  div bx

;вывод данных на АЦП

  mov es:[6000h],ax ;первая фаза вывода на ЦАП (загрузка внутр. защелок)

  mov es:[6001h],ax ;вторая фаза вывода на ЦАП (запуск преобразования)

  mov cx,3

f:

  loop f ;задержка на 27 тактов (5.4мкс)

  jmp g

;600h:

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

  push ax

  push bx

  push cx

  push dx

;обработка ВВ79

  mov al,es:[8001h] ;считывание слова состояния

  and al,0fh

  jz rs ;если в ОЗУ клавиатуры 0 символов - перейти на rs

  mov al,01010000b ;команда чтения ОЗУ клавиатуры

  mov es:[8001h],al

;увеличение/уменьшение k в соответствии с кодом нажатой клавиши

  mov al,es:[8000h] ;считывание кода нажатой клавиши

  and al,1

  jz a1 ;если нажата +U, перейти на a1

  sub k,40

  cmp k,200

  jae preobr

  mov k,200

  jmp preobr

a1:

  add k,40

  cmp k,3200

  jbe preobr

  mov k,3200

  jmp preobr

;обработка ВВ51

rs:

  mov al,es:[0a001h]

  and al,2

  jz exit_

  mov bl,es:[0a000h]

b1:

  mov al,es:[0a001h]

  and al,2

  jz b1

  mov bh,es:[0a000h]

;ограничение коэффициента k, если он выходит за допустимые пределы

  cmp bx,200

  jae b2

  mov bx,200

b2:

  cmp bx,3200

  jbe b3

  mov bx,3200

b3:

  mov k,bx

;преобразование 16-ричного числа в десятичное

preobr:

  mov dl,40

  mov ax,k

  div dl

  mov bl,10

  mov si,2

c:

  xor ah,ah

  div bl

  mov ds:[si],ah ;загрузка остатка от деления на 10 по адресу ds:[si]

  inc si

  cmp al,0

  jne c

;преобр. десятичного кода в индикаторный и запись его в индикаторное ОЗУ