Разработка цифрового вольтметра на базе микропроцессора, страница 2

      Если в разряд D0  записана 1, то информация в виде последовательного потока данных подается на вывод TXD. Если нет информации для передачи, то на выходе TXD устанавливается 1. Если запрограммирован режим «пауза», то на выходе TXD устанавливается 0. 

2 Программа

00000000h:

MOV AX, 0000h

MOV DS, AX

;ИНИЦИАЛИЗАЦИЯ ТАЙМЕРА

MOV AL, 14h

OUT 5000h, AL

MOV AL, 64h            

OUT 5000h, AL

;ИНИЦИАЛИЗАЦИЯ RS232

MOV AL, CEh

OUT 4001h, AL

;ИНИЦИАЛИЗАЦИЯ КОНТРОЛЛЕРА КЛАВ. И ИНДИКАЦИИ

MOV AL, 00h

OUT 1001h, AL

MOV AL, 64h ;  - КОЭФФИЦИЕНТ ДЕЛЕНИЯ

OUT 1001h, AL

MOV AL, 00h

DIAP1:

MOV DX, 0014h        ;положить в DX    20

PUSH AL                ;Запомнить AL

OUT 3000h, AL        ;Защелкнуть AL в регистре DD6

 M1:

MOV BX, 0000h          ;положить в BX   0

MOV CX, 0014h           ;положить в СX    20

STI

HLT

0040h:

IN AX, 2000h           ; Считать данные с АЦП

PUSH AX                   ;Запомнить считанные данные

CMP DX, 0000h           ;сравнить DX с 0

JNE EXIT                      ; если не равен переход на EXIT

;Выбор максимального числа

MAX:                             

POP AX                         ;вспомнить данные считанные с АЦП

CMP AX, BX                ;сравнить с BX

JB M2                         ; если  AX < BX , переход на M2

XCHG AX, BX               ; обменять AX с BX , в  BX большее число                            

М2:

LOOP MAX                      ; переход на MAX

; Проверка – правильно ли выбран поддиапозон

CMP BX, 0064h                 ;сравнить BX с 0,5 В

JB DIAP2                       ; если меньше перейти на переключение поддиапазона

JMP VIVOD                        ;переход на VIVOD

; переключение поддиапазона

DIAP2:                              

POP AL                             ; вспомнить AL

DEC AL                               ;AL = AL+1

JMP DIAP1                         ; переход на DIAP1

;проверка –какой выбран поддиапазон

VIVOD:                                    

POP AL                                    ; вспомнить AL

CMP AL, 00h                           ;сравнить с 0

JNE K1                                     ;если не равен, перейти на К1

CALL VIVOD4                        ;если равен вызов подпрограммы VIVOD4

K1:

CMP AL, 01h                            ;сравнить с 1

JNE K2                                     ; если не равен, перейти на К2

CALL VIVOD3                        ;если равен вызов подпрограммы VIVOD3

K2:

CMP AL, 02h                            ;сравнить с 2

JNE K3                                      ;если не равен, перейти на К3

CALL VIVOD2                        ;если равен вызов подпрограммы VIVOD2

K3:

CMP AL, 03h                             ;сравнить с 3

JNE K4                                       ;если не равен, перейти на К4

CALL VIVOD1                          ;если равен вызов подпрограммы VIVOD1

K4:

MOV AL, 00h                            ; положить в   AL 0              

JMP DIAP1                                 ; переход на  DIAP1

EXIT:

 INC DX                                      ;уменьшить DX на 1

JMP M1                                        ;переход на М1

Подпрограмма VIVOD1:

VIVOD1  proc ‘near’

MOV AX, BX

MOV BX, 0002h

MOV DL, 00h

DIV BX

OUT 4000h, AL

OUT 4000h, AH

MOV BL, 0Ah

DIV BL

PUSH AL

XOR AX, AX

POP AX

DIV BL

MOV BL, 90h

OUT 1001h, BL

OUT 1000h, AL

OUT 1000h, DL

RET

ENDP VIVOD1

Подпрограмма VIVOD2:

VIVOD2  proc ‘near’

MOV AX, BX

MOV BX, 0002h

DIV BX

OUT 4000h, AL

OUT 4000h, AH

MOV BL, 0Ah

DIV BL

PUSH AL

XOR AX, AX

POP AX

DIV BL

MOV BL, 90h

OUT 1001h, BL

OUT 1000h, AL

OUT 1000h, AH

RET

ENDP VIVOD2

Подпрограмма VIVOD3:

VIVOD3  proc ‘near’

MOV AX, BX

MOV BX, 0002h

DIV BX

OUT 4000h, AL

OUT 4000h, AH

MOV BL, 0Ah

DIV BL

PUSH AH

PUSH AL

XOR AX, AX

POP AX

DIV BL

MOV BL, 90h

OUT 1001h, BL

OUT 1000h, AL

OUT 1000h, AH

POP AL

OUT 1000h, AL

RET

ENDP VIVOD3

Подпрограмма VIVOD4:

VIVOD4  proc ‘near’

MOV AX, BX

MOV BX, 0002h

DIV BX

PUSH DX

OUT 4000h, AL

OUT 4000h, AH

MOV BL, 0Ah

DIV BL

PUSH AH

PUSH AL

XOR AX, AX

POP AX

DIV BL

MOV BL, 90h

OUT 1001h, BL

OUT 1000h, AL

OUT 1000h, AH

POP AL

POP AH

OUT 1000h, AL

OUT 1000h, AH

RET

ENDP VIVOD4

3  Список используемых источников

1.  Ю.М. Казаринов - Микропроцессорный комплект К1810, Высшая школа,  М. , 1990г.

2.  М.М. Мичурина, И.Н. Сушкин - Цифровые устройства и микропроцессоры: Прогр. и метод. указания, КГТУ, Красноярск, 1999г.

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

3  ПЕРЕЧЕНЬ ЭЛЕМЕНТОВ

  Обозначение

                            Наименование

Количество

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

С2

К10-7в   -10пФ

1

С1

КМ6   -1мкФ

1

Микросхемы

DA3

TDA8760К/2

1

DD1

КР1810ГФ84

1

DD2

КР1810ВМ86

1

DD3, DD4

КР580ИР82

2

DD5

К155ИД7

1

DD6

КР1533ИР23

1

DD8, DD9

КР580ВА86

2

DD10,DD11, DD27

КС531ЛИ1

1

DD12, DD26

КР1533ЛН1

1

DD13, DD14

КР531ЛА3

1

DD16

1

DD17

K1810ВИ54

1

DD18

К580ВВ79

1

DD19

T74LS155

1

DD20

КМ555ИД18

1

DD21, DD22

К568РЕ1

2

DD23, DD24

К537РУ10

2

DD25

КР580ВВ51А

1

DD28, DD29

КР531ЛЛ1

1

DA1

DA2

К140УД9

Кварц

ZQ1

Кварц 12 МГц

1

Резисторы

R1

С23-0,125   -10 Ом ±10%

1

R2

С23-0,125   -100 Ом ±10%

R3, R5

С23-0,125   -1к Ом ±5%

2

R4

С23-0,125   -10 кОм ±1%

1

R6 – R14

С23-0,125   -200 кОм ±1%

9