Инициализация и программирование ВУ. Инициализация контроллера клавиатуры и дисплея

Страницы работы

Содержание работы

4 Программа.

;-----------------инициализация и программирование ВУ----------------------------------------------00000000h:    MOV AL, 00h            ;инициализация контроллера клавиатуры и

OUT 09h, AL             ;дисплея

MOV AL, 28h            ;установка тактовой частоты ft  контроллера клавиатуры            

OUT 09h, AL             ;и дисплея

;программирование таймера

MOV AL, 34h            ;загрузка УС (34h) в нулевой канал таймера

OUT 07h, AL             ;

MOV AL, 70h            ;загрузка УС (70h) в первый канал таймера

OUT 07h, AL             ;

MOV AL, b0h            ;загрузка УС (b0) во второй канал таймера        

OUT 07h, AL            

MOV AL, 04h            ;загрузка константы в нулевой канал таймера

OUT 04h, AL             ;(младший байт)

MOV AL, 1fh ;

OUT 04h, AL             ;(старший байт)

MOV AL, 04h            ;загрузка константы в первый канал таймера

OUT 05h, AL             ;(младший байт)

MOV AL, 1fh ;

OUT 05h, AL             ; (старший байт)

MOV AL, b0h            ;загрузка константы во второй канал таймера

OUT 06h, AL             ;(младший байт)

MOV AL, 4eh            ;

OUT 06h, AL             ;(старший байт)

;----------------определение количества квантующих импульсов------------------------------------IN 06h                        ;чтение младшего байта счётчика 2 канала таймера

MOV CL, AL             ;

IN 06h                        ;чтение старшего байта счётчика 2 канала таймера

MOV  CH, AL            ;

;(рез-т в СХ)

MOV BX, 4e20h        ;

SUB ВX, CX              ;определяем количество импульсов, вошедших в

;измеряемый сигнал (рез-т в ВХ) 

STI                              ;разрешение прерывания

HLT                            ;ожидание прерывания

;----------------вывод значения на индикатор-------------------------------------------------------------;-----------------определение и вывод на индикатор старшего разряда------------------------------MOV AX, BX ;

MOV DX, 2710h        ;определение старшего разряда (крайн. левый)

MOV CX, 0h              ;помещаем в СХ ноль

CMP AX, DX            ;определяем есть ли старший разряд в AХ

;()

JNAE met_2               ;если рез-т меньше 10000dec то переходим на met_2

met_1:             SUB AX, 2710h         ;вычитаем 10000dec

INC CX                      ;CX=CX+1

CMP AX, DX             ;определяем есть ли ещё старший разряд в AХ

JNBE met_1               ;определяем чему равен старший разряд (СХ=?)

met_2             MOV AL, 70h            ;

OUT 09h, AL             ;передача на ККД команды на прием данных

MOV AL, CX

OUT 08h, AL             ;вывод на индикатор первой цифры (самый левый

;разряд)

;-----------------определение и вывод на индикатор следующего разряда--------------------------MOV DX, 3e8h          ;определение второго разряда (расположен правее)

MOV CX, 0h              ;помещаем в СХ ноль

CMP AX, DX            ;определяем есть ли этот разряд в AХ

;()

JNAE met_4               ;если рез-т меньше 1000dec то переходим на met_4

met_3:             SUB AX, 3e8h           ;вычитаем 1000dec

INC CX                      ;CX=CX+1

CMP AX, DX             ;определяем есть ли ещё старший разряд в AХ

JNBE met_3               ;определяем чему равен старший разряд (СХ=?)

met_4             MOV AL, 70h            ;

OUT 09h, AL             ;передача на ККД команды на прием данных

MOV AL, CX ;

OUT 08h, AL                         ;вывод на индикатор второй цифры

;-----------------определение и вывод на индикатор третьего разряда--------------------------MOV AX, BX ;

MOV DX, 64h            ;определение третьего разряда

MOV CX, 0h              ;помещаем в СХ ноль

CMP AX, DX            ;определяем есть ли этот разряд в AХ

;()

JNAE met_6               ;если рез-т меньше 100d то переходим на met_6

met_5:             SUB AX, 64h             ;вычитаем 100d

INC CX                      ;CX=CX+1

CMP AX, DX             ;определяем есть ли ещё старший разряд в AХ

JNBE met_5               ;определяем чему равен старший разряд (СХ=?)

met_6             MOV AL, 70h            ;

OUT 09h, AL             ;передача на ККД команды на прием данных

MOV AL, CX ;

OUT 08h, AL             ;вывод на индикатор третьей цифры

;-----------------определение и вывод на индикатор четвертого разряда--------------------------MOV AX, BX ;

MOV DX, 0аh            ;определение четвёртого разряда (крайний правый)

MOV CX, 0h              ;помещаем в СХ ноль

CMP AX, DX            ;определяем есть ли этот разряд в AХ

;()

JNAE met_8               ;если рез-т меньше 10d то переходим на met_8

met_7:             SUB AX, 0аh              ;вычитаем 10d

INC CX                      ;CX=CX+1

CMP AX, DX             ;определяем есть ли ещё старший разряд в AХ

JNBE met_7               ;определяем чему равен старший разряд (СХ=?)

met_8             MOV AL, 70h            ;

OUT 09h, AL             ;передача на ККД команды на прием данных

MOV AL, CX ;

OUT 08h, AL             ;вывод на индикатор четвертой цифры

HLT                            ; ожидание сигнала “сброс”

1F0h:              CLI                             ; запрещение прерывания

JMP 00000000h         ; и переход на основную программу

Похожие материалы

Информация о работе

Тип:
Курсовые работы
Размер файла:
50 Kb
Скачали:
0