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

 

Содержание


1.Техническое задание

.Анализ технического задания

.Распределение адресного пространства

.Устройства системы и их программирование

.1 Центральный процессор

.2 Генератор тактовых импульсов

.3 Шинные формирователи и регистры - защелки

.4 ПЗУ

.5 Контроллер клавиатуры и индикации

.6 Интервальный таймер

.Текст программы

Литература


1.Техническое задание


Разработать электронный частотомер в диапазоне частот от 1 до 10 Гц, с детализацией измерений до 1 мГц. Ввод измеряемого сигнала производить напрямую, без согласующего элемента. Согласование будет обеспечиваться внешним устройством. Результаты измерений вывести на дисплей.



2.Анализ технического задания


Для построения системы воспользуемся микропроцессорным комплектом К1810 (центральный процессор К1810ВМ86). Для реализации времязадающих функций воспользуемся таймером К1810ВИ54. Взаимодействие с пользователем организуем с помощью контроллера клавиатуры и индикации КР580ВВ79. Программный код будем хранить в ПЗУ, организованной двумя микросхемами К537РФ6. Тактовый генератор для системы будем использовать К1810ГФ84. Для адекватной работы шины адреса и шины данных будем использовать буферные регистры КР580ИР82 и шинные формирователи КР580ВА86. Все микросхемы выполнены по стандартной ТТЛ технологии, поэтому могут свободно взаимодействовать друг с другом.

Так как проектируемое устройство оперирует достаточно малым количеством информации, то ОЗУ использоваться не будет. Его функции будут выполнять дополнительные регистры процессора. Это решение уменьшит стоимость оборудования, т.к. не придется устанавливать микросхемы памяти, однако увеличит размер исполняемого кода, т.к. не останется возможности для организации циклов встроенными средствами ЦП, организации подпрограмм и работы стека.

Так как устройство не представляется сложным, а алгоритм его работы достаточно прост, то принцип прерываний использовать не будем, и работу системы организуем «по опросу». Основываясь на тех же причинах, откажемся от использования системы раздельной адресации, и будем использовать общую адресацию.

Тактовую частоту зададим максимально возможную - 5МГц



3.Распределение адресного пространства


Схематически распределение адресного пространства представлено на следующей схеме:



Примечание: [х] - бит не важен или не существует (для сегмента)


Всего используется три информационных устройства (банк памяти, таймер, контроллер клавиатуры и дисплея), каждое выбирается своим битом шины адреса, причем ПЗУ выбирается уровнем логической 1 (т.к. при старте на шину старшие 16 бит выдаются равными 1), остальные устройства - логическим нулем.

Наибольшую информационную емкость имеет ПЗУ - каждая микросхема рассчитана на 256 байт, и соответственно адресуется 8 битами, а учитывая, что микросхем две - на их адресацию уйдет 9 бит.

В результате младшие 9 бит шины адреса будут использоваться устройствами, следующие 3 бита будут участвовать в выборе устройства, последние 8 бит для системы не будут иметь значения.

электронный частотомер процессор таймер


4.Устройства системы и их программирование


4.1 Центральный процессор


Центральный процессор К1810ВМ86 представляет собой однокристальный 16-битовый МП, выполненный по высококачественной n-МОП технологии. Кристалл микросхемы с геометрическими размерами 5.5х5.5 мм содержит около 29000 транзисторов и потребляет 1.7 Вт от источника питания +5В. Схема выпускается в 40-выводном корпусе. Синхронизируется однофазными импульсами с частотой повторения 5 МГц от внешнего тактового генератора. МП ВМ86 содержит 14 16-битовых внутренних регистров и образует 16-битовую шину данных для связи с внешней памятью и портами ввода-вывода. Шина адреса имеет 20 линий, что позволяет непосредственно адресоваться к памяти емкостью до 1 Мбайта.

Т.к. проектируемое устройство состоит только из одного процессора, и число сопрягаемых с ним устройств невелико, ВМ86 работает в минимальном режиме.


4.2 Генератор тактовых импульсов


Стандартным образом к микропроцессору подключается генератор тактовых импульсов К1810ГФ84. К его входу RES подключена RC-цепочка, которая формирует сигнал сброса автоматически при включении питания либо с помощью ключа Sк.


4.3 Шинные формирователи и регистры - защелки


При разработке структуры блока ЦП необходимо решить задачи разделения (демультиплексирования) шины адреса/данных, буферизации шины адреса и шины данных, а также задачу формирования системных управляющих сигналов для внешних устройств. Первая задача решается с помощью ИС К580ИР82, выполняющих функции адресной защёлки (в связи с тем, что адресная информация должна быть выставлена в течение всего цикла чтения/записи). Первая микросхема защёлкивает младшие 8 бит ША, вторая - старшие. Вторая задача решается с помощью двунаправленных 8-битовых шинных формирователей К580ВА86, которые усиливают сигналы системной шины данных.


4.4 ПЗУ


Система ПЗУ состоит из двух микросхем К537РФ6, общей емкостью 512 байт. Одна микросхема подключается к младшим разрядам шины данных, вторая - к старшим. На вход выбора кристалла первой подается 0 разряд шины адреса, на вход выбора кристалла второй - BHE центрального процессора. Адресная шина с 1 по восьмой разряд заводится на адресные входы микросхем. При такой организации центральный процессор может считывать информацию словами или отдельными байтами.


4.5 Контроллер клавиатуры и индикации


Контроллер КР580ВВ79 предназначен для ввода данных в микропроцессор с клавиатуры и вывода из микропроцессора на индикаторный дисплей. Микросхема состоит из двух функционально автономных частей: клавиатурной и дисплейной. Индикаторная часть имеет свое ОЗУ 16х8 бит, которое также можно использовать, как два ОЗУ 16х4 бита. Оно хранит воспроизводимые на индикаторе символы, загружается и опрашивается микропроцессором. Индикатор может быть основан как на светодиодах, жидких кристаллах, так и на простых лампочках. Контроллер поддерживает 2 типа вводов: ввод слева, ввод справа со сдвигом (как на калькуляторах).

Программирование

Устройство будет работать в режиме восьмиразрядного восьмисимвольного дисплея, для выбора индикатора будет использоваться внешний дешифратор. Для чего составим управляющие слова, по следующей схеме:



Тогда управляющее слово примет вид: 00000000, где младшие три бита для нас не имеют значения, так как управляют клавиатурой. 3-4 биты задают режим дисплея - 8 символьный 8 разрядный, со вводом слева (00). Старшие биты определяют команду, в данном случае 000 - инициализация.


4.6 Интервальный таймер


Микросхема КР580ВИ54 - трехканальное программируемое устройство (таймер), предназначено для организации работы микропроцессорных систем в режиме реального времени. Микросхема формирует сигналы с различными временными параметрами.

Программируемый таймер (ПТ) реализован в виде трех независимых 16-разрядных каналов с общей схемой управления. Каждый канал может работать в шести режимах.

Управляющее слово определят режим работы канала, тип счета, формат чисел. Обмен информацией с микропроцессором осуществляется по 8-разрядному двунаправленному каналу данных.

Программирование

Все три канала таймера будут работать во втором режиме («импульсный генератор частоты», с автозапуском). Запись и чтение будут производиться попарно, начиная с младшего байта, режим счета - двоичный

Для чего составим управляющие слова, по следующей схеме:



Тогда управляющие слова примут вид: 00110100, 01110100, 10110100 соответственно.

Старшие 2 бита каждого из них определяют канал (00-0, 01-1, 10-2), младший бит определяет 16 разрядный счет (0), 1-3 биты определяют режим канала, для всех каналов режим 2 (010). 4-5 биты определяют, что загрузка и выгрузка информации будет проходить двумя подряд идущими байтами, причем первыми будут младшие разряды.

После загрузки управляющих слов необходимо загрузить константы пересчета (см. код программы). В данном случае первый канал содержит константу пересчета, отвечающую за деление частоты до одного микрогерца:



Что позволит отсчитывать каждую тысячную секунды для обеспечения точности измерений, указанной в задании.

Второй канал таймера будет накапливать отчеты, рассчитанные выше, ориентируясь на выход первого таймера.

Третьим каналом таймера будет приниматься внешний импульс для дальнейшей обработки.


5.Текст программы


Init:

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

;Обнуление

;-------------------------------AX,AXDS,AX;сегмент данных = 0


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

;Инициализация IOP

;-------------------------------[0401h],AL;10 канал адреса=0 (выбор IOP), 0 канал=1(управление)

;AL=0 - нулевой режим дисплея

:

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

;Инициализация таймера

;-------------------------------BX,0400h;11 канал адреса (выбор таймера)[BX+3],34h;0 и 1 каналы = 1 (управление)

;канал 0, запись 2 байт, 2 режим, двоичный счет[BX],18h;1318h константа пересчета для точности[BX],13h[BX+3],74h;канал 1, запись 2 байт, 2 режим, двоичный счет[BX+1],FFh;FFFFh максимальная константа пересчета[BX+1],FFh[BX+3],B4h;канал 2, запись 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.Техническое задание .Анализ технического задания .Распределение адресного пространства .Устройства системы и их программирование

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ