Низкочастотный частотомер

Для построения системы воспользуемся микропроцессорным комплектом К1810 (центральный процессор К1810ВМ86). Для реализации времязадающих функций воспользуемся таймером К1810ВИ54. Взаимодействие с пользователем

Низкочастотный частотомер

Дипломная работа

Компьютеры, программирование

Другие дипломы по предмету

Компьютеры, программирование

Сдать работу со 100% гаранией
ись 2 байт, 2 режим, двоичный счет

MOV [BX+2],FFh[BX+2],FFh

 

ReadSignal:

;-------------------------------

;Считать внешний сигнал

;-------------------------------BX,0400h;Выбор таймера[BX+3],80h;Извещаем таймер о чтении третьего каналаCL,[BX+2];Читаем младший байтCH,[BX+2];Читаем старший байт

SUB CX,FFFFh;Инвертируем результат (таймер обратносчетный)

 

;-------------------------------

;Считать результат измерений

;-------------------------------[BX+3],40h;Извещаем таймер о чтении второго каналаDL,[BX+2];Читаем младший байтDH,[BX+2];Читаем старший байт

SUB DX,FFFFh;Инвертируем результат (таймер обратносчетный)

 

;-------------------------------

;Поступил сигнал?

;-------------------------------CX,1CheckFreq;Да

;Нет - далее

 

;-------------------------------

;Результат выше предела измерений?

;-------------------------------CX,0DisplayErrorDX,7530h;7530h=30 000 (10 Герц при учете кванта в 0,001 сек)ReadSignal;Нет - перейти на чтение сигнала

:

;-------------------------------

;Вывод сообщения об ошибке

;-------------------------------BX,0400h;Выбор IOPAX,AX;Очищаем AX[BX+1],90h;Извещаем IOP о записи в память дисплея[BX],AL;Очищаем дисплей (5 ячеек)

MOV [BX],AL[BX],AL[BX],AL[BX],AL

JMP InitTimer;Перейти к инициализации аймера

:

;-------------------------------

;Результат ниже предела измерений?

;-------------------------------DX,03E8h;03E8h=1 000(1 Герц при учете кванта в 0,001 сек)DisplayError;Да - перейти на отображение ошибки

 

;-------------------------------

;Расчет частоты

;-------------------------------DX,000Fh;Эти две команды устанавливают DX:AX в 1 000 000AX,4240hCX;Делим 1 000 000 на период в мсек,

;получаем частоту в AX в мГц

 

;-------------------------------

;Вывод частоты

;-------------------------------BX,0400h;Выбор IOP[BX+1],90h;Извещаем IOP о записи в память дисплеяCX,0Ah;Для вывода на дисплей будем делить на 0Ah, тоесть на

DX, DX;Обнуляем DX для деления, в AX уже нужное число

DIV CXDX,[DX+Digits]

MOV [BX],DX;Первая цифра по адресу :остаток от деления + база

массива цифр

 

XOR DX,DX

DIV CX

MOV DX,[DX+Digits][BX],DX;Вторая цифра

 

XOR DX,DXCXDX,[DX+Digits]

MOV [BX],DX;Третья цифра

DX,DXCX[BX],[DX+Digits];Четвертая цифраAX,1;Если пятая цифра - 1 то выводим один, иначе пустой экран

JNE BlankDigitDX,[Digits+1]

MOV [BX],DXInitTimer;Цикл закончен - переининциализируем таймер и заново

 

BlankDigit:[BX],0InitTimer

 

;-------------------------------

;Точка входа

;-------------------------------

F0:00:0E00;Переход в начало памяти и задание CS:

;-------------------------------

;Наборы бит для отображения цифр

;-------------------------------;0

h;1h

hh

BEhh;8h;9

 

Литература

 

1.«Микропроцессорный комплект К1810: структура, программирование, применение. Справочная книга» Казаринов, Номоконов, Филиппов - Москва, 2010г.

2.Методическое пособие №1882 «Освоение ассемблера» Мичурина М.М., Сушкин И.Н.

.Методическое пособие №2000 «Контроллер клавиатуры и индикации» Мичурина М.М.

.Методическое пособие №2187 «Цифровые устройства и микропроцессоры. Архитектура микропроцессоров Intel» Мичурина М.М.

.Информация сети Internet

Похожие работы

< 1 2