.

Цифровой тахометр (курсовая)

Язык: русский
Формат: курсова
Тип документа: Word Doc
91 1829
Скачать документ

Министерство образования РБ

Белорусский государственный университет информатики и радиоэлектроники

Кафедра ЭВС

К защите допускаю

“ “ _________ 2001 г.

Руководитель работы

Давыдов А.Б.

Пояснительная записка

к курсовому проекту на тему:

“Цифровой тахометр”

Выполнил: Проверил:

студент гр. 810702

Трифонов А.А. Давыдов А.Б.

Минск 2001 г.

Содержание

Введение

1. Анализ задачи

1.1 Функциональная спецификация системы

1.2 Список функций, выполняемых системой

1.3 Описание интерфейса между системой и пользователем

2. Предварительное проектирование системы

2.1 Разбиение системы на модули

2.2 Выбор соотношения между аппаратными и программными средствами

3. Проектирование аппаратных средств системы

3.1 Разработка принципиальной схемы системы

3.2 Описание работы тахометра

4. Проектирование программного обеспечения

4.1 Разработка схемы алгоритма работы системы и программы

4.2 Описание алгоритма работы системы и программы

Заключение

Литература

Приложение А — Листинг управляющей программы

Введение

Современный этап развития научно-технического прогресса характеризуется
широким применением электроники и микроэлектроники во всех сферах жизни
и деятельности человека. Важную роль при этом сыграло появление и
быстрое совершенствование интегральных микросхем – основной элементной
базы современной электроники. Интегральные микросхемы применяются в
вычислительных машинах и комплексах, в электронных устройствах
автоматики, цифровых измерительных приборах, аппаратуре связи и передачи
данных, медицинской и бытовой аппаратуре, в приборах и оборудовании для
научных исследований и т.д.

Микрокомпьютер, в отличие от других компонентов, не обладает
фиксированным набором функциональных характеристик. Его характеристики
определяются в процессе проектирования системы с помощью
программирования. Практически неограниченный диапазон программируемых
функциональных возможностей микрокомпьютера придает этому компоненту
особое значение.

В данном курсовом проекте необходимо разработать цифровой тахометр на
базе микропроцессора 8086. Цифровой тахометр должен выполнять следующие
действия:

1) Обеспечить измерение частоты вращения ротора двигателя, которая может
изменятся от 100 до 5000 об/мин.;

2) Допустимая погрешность измерения в заданном диапазоне не более 2%;

3) Импульсный датчик выбрасывает 10 импульсов на каждый оборот.

4) Быстродействие системы должно быть таково, чтобы время измерения не
превышало двух оборотов.

5) Измеренное число оборотов выводится на индикатор.

Эти требования должны лечь в основу проектируемого устройства.

1. Анализ задачи

1.1 Функциональная спецификация системы

Функциональная спецификация фиксирует, что система должна сделать и как
она взаимодействует с окружением.

Функциональная спецификация включает два основных компонента:

1)список функций выполняемых системой;

2)описание интерфейса между системой и пользователем.

Список функций выполняемых системой и интерфейс между системой и
пользователем определяются требованиями, которые предъявляются к
проектируемой системе потребителем или пользователем, будущих
эксплуатировать устройство. Исходя из заданных данных на курсовой проект
можно выделить следующие основные функциональные действия, которые
должна выполнять проектируемая компьютерная система:

Обеспечить измерение частоты вращения ротора двигателя, которая может
изменятся от 100 до 5000 об/мин ;

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

обеспечивать точность измерения напряжений 2% на заданном
диапазоне;Данное требование в проектируемом устройстве обеспечивается
путем применения радиоэлементов с отклонением от номинала не более 0.5%
и АЦП соответствующей разрядности.

быть несложным в управлении;

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

1.2 Список функций, выполняемых системой

В результате анализа функциональных действий можно определить основные
функции, выполняемые системой:

преобразование аналогового сигнала в цифровой код;

считывание и запись данных в порты;

обработка полученных данных (определения порядка, знака и размерности
измеряемой величины);

преобразование вводимого двоичного кода в двоично-десятичный;

преобразование цифрового кода в символьное значение для индикации;

вывод проанализированных данных на индикатор.

1.3 Описание интерфейса между системой и пользователем

На основании списка функций выполняемых системой определим интерфейс
между системой и пользователем.

Внешний вид передней панели цифрового тахометра представлен на рисунке
1.

Рисунок 1 – Внешний вид передней панели тахометра

На передней панели расположены четыре цифровых индикатора, на которых
выводится значения измеряемой величины.

Включения тахометра производят клавишей «POWER»

2. Предварительное проектирование системы

2.1 Разбиение системы на модули

Из выше перечисленных функций следует, что в состав проектируемого
цифрового тахометра должны войти следующие модули.

Модуль аналого-цифрового преобразователя, который будет выполнять
функцию преобразования импульсов в цифровой код.

Преобразования двоичного кода в двоично-десятичный будет, осуществляется
при помощи модуля преобразования в двоично-десятичный код.

Модуль индикации необходим для отображения значения измеряемой частоты.

Обработка данных вводимых из АЦП (выделение знака, определение
размерности) осуществляется модулем обработки.

Преобразование значений импульсов в символьное значение для
знакоразрядного индикатора осуществляется модулем преобразования в
семисегментный код.

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

2.2 Выбор соотношения между аппаратными и программными средствами

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

Рисунок 2 – Соотношения между программными аппаратными модулями в
цифровом тахометре

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

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

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

решение этих задач не критично по времени;

реализация данных функции аппаратно сложная задача и требует включения в
состав устройства большого количества логических ИМС.

Аппаратным методом реализованы модули аналого-цифрового преобразователя,
масштабирующего устройства, модуль переключателя, модуль индикации и
преобразователь в семисегментный код.

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

Также в состав аппаратных средств вошел микрокомпьютер, который содержит
в себе необходимые элементы, позволяющие реализовать все необходимые
программные действия системы.

3. Проектирование аппаратных средств системы

3.1 Разработка принципиальной схемы системы

Основу проектируемого устройства составляет центральный процессор (ЦП).
В разрабатываемом цифровом тахометре ЦП строится на основе
микропроцессора 8086. При разработке структуры блока ЦП возникают задачи
разделения (демультиплексирования) шины адреса/данных буферирования шин
адреса и шин данных, а также выработка тактовых импульсов и
синхронизация сигналов REDY и RESET с тактовыми сигналами
микропроцессора.

Первая задача решается с помощью БИС КР580ИР82, выполняющих функции
адресной защелки. Поэтому на принципиальной схеме два 8 – битовых
регистра КР580ИР82 (DD12 и DD13) обеспечивают запоминание 11 разрядов
адреса.

Вторая задача решается с помощью двух 8 – битовых шинных формирователей
КР580ВА86 (DD14 и DD15), которые усиливают сигналы системной шины.

Выработка тактовых импульсов и синхронизация сигналов REDY и RESET с
тактовыми сигналами микропроцессора выполняется генератором тактовых
импульсов (ГТИ) КР1810ГФ84. Ко входом X1 и X2 БИС КР1810ГФ84 (DD6)
подключается кварцевый резонатор РК374 (ZQ1) с частотой колебаний – 15
МГц.

На вход RDY БИС КР1810ГФ84 поступает сигнал готовности от блока АЦП.

Сброс МП осуществляется сигналом RESET, который вырабатывается в момент
включения питания. Выработка сигнала RESET осуществляется RC цепочкой
построенной на элементах C1 и R8. Выбор номиналов элементов C1 и R8
производят исходя из того, что минимальная продолжительность сигнала
RESET, при первом включении МП должна составлять не менее 50 мкс. При
номиналах C1 = 1мкф и R8 = 200кОм получим длительность сигнала сброса
равную:

picscalex1000100090000037101000003001c0000000000050000000902000000000500
0000020101000000050000000102ffffff00050000002e01180000000500000031020100
0000050000000b0200000000050000000c02c00500101200000026060f001a00ffffffff
000010000000c0ffffffb0ffffffc00f0000700500000b00000026060f000c004d617468
547970650000500108000000fa0200001000000000000000040000002d01000005000000
1402c002180c050000001302c002400f1c000000fb0240fe0000000000009001000000cc
0402001054696d6573204e657720526f6d616e2043797200d067ef77b3030a6a00000a00
040000002d01010008000000320a2003500f010000005d7908000000320a2003d0090100
0000317909000000320a20030e08030000006c6e5b651c000000fb0240fe000000000000
9001010000cc0402001054696d6573204e657720526f6d616e2043797200d067ef77b203
0a3b00000a00040000002d01020004000000f001010008000000320a77056f0d02000000
636308000000320a8c04070c01000000556308000000320a7d02ca0d0100000068630800
0000320a7d015b0c01000000556308000000320a2003f70501000000436308000000320a
2003110401000000526308000000320a20031d000100000054631c000000fb0240fe0000
000000009001000000020002001053796d626f6c0000b3030a6ba587ed77ae87ed77d067
ef77b3030a6b00000a00040000002d01010004000000f001020008000000320a2003d10a
010000002d6308000000320a20036f0701000000d76308000000320a20035f0501000000
d76308000000320a20030503010000002d6308000000320a2003ad01010000003d630a00
000026060f000a00ffffffff0100000000001c000000fb021000070000000000bc020000
00cc0102022253797374656d0077b103668907008a0100000a0007008a0107008a010000
0a00040000002d01020004000000f0010100030000000000( 1 )

где Ucc – напряжение источника питания;

Uh – напряжение логической единицы на входе RES.

Из формулы ( 1 ) видно, что при выбранных номиналах элементов
достигается необходимая длительность сигнала сброса.

В разрабатываемой системе блок ПЗУ построен из двух включенных
параллельно БИС КР556РТ6 (DD16 и DD19) емкостью 2 Кбайта каждая.
Адресные входы А0 – А10 каждой бис соединены параллельно и подключены к
адресным линиям А0 – А10. Процесс обращения к ПЗУ стробируется сигналами
M/IO и RD подаваемыми на входы CS БИС. Выдача данных на шину
микропроцессора после установки адресов микросхемой памяти осуществится
не позднее чем, через 80 нс. Так как в МП 8086 длительность цикла чтения
длится дольше, то выбранные для построения памяти микросхемы смогут
передавать информацию с максимальной пропускной способностью шины.

Для преобразования импульса в код используется микросхема АЦП КР1113ПВ1
(DD3). Микросхема КР1113ПВ1 – это биполярный, десяти разрядный АЦП, с
динамическим диапазонам от –5.5В до +5.5В и выдачей данных в прямом
коде.

Данная микросхема имеет внутренний буфер, что позволяет подключать ее
непосредственно к шине данных. Управления началом преобразования и
выдачей данных на шину осуществляется логической схемой собранной на
элементах DD4, DD5, DD8 и DD11. Если микропроцессор не обращается к АЦП,
то низким уровнем на входе логического элемента И (DD8) триггер
готовности (DD11) удерживается в единичном состоянии. При этом на входе
RDY БИС КР1810ГФ84 присутствует высокий уровень напряжения (устройство
готово), а выходы данных АЦП находятся в третьем состоянии. При
обращении к АЦП на одном входе элемента И будет присутствовать высокий
уровень напряжения, а состояния на другом будет определятся сигналом
готовности АЦП. Если данные в АЦП не готовы, то высоким уровнем на входе
логического элемента И триггер готовности устанавливается в нулевое
состоянии. При этом на входе RDY БИС КР1810ГФ84 присутствует низкий
уровень напряжения (устройство не готово), а выходы данных АЦП по
прежнему находятся в третьем состоянии. Если же данные в АЦП готовы, то
низким уровнем на входе логического элемента И триггер готовности
устанавливается в единичное состояние. При этом на входе RDY БИС
КР1810ГФ84 появляется высокий уровень напряжения (устройство готово), а
на шину АЦП помещает данные.

В микросхеме КР1113ПВ1 младший значащий разряд (МЗР) соответствует
напряжению:

picscalex1000100090000038601000003001c0000000000050000000902000000000500
0000020101000000050000000102ffffff00050000002e01180000000500000031020100
0000050000000b0200000000050000000c024004a0111200000026060f001a00ffffffff
000010000000c0ffffffb5ffffff60110000f50300000b00000026060f000c004d617468
547970650000e00008000000fa0200001000000000000000040000002d01000005000000
140220026c050500000013022002ba081c000000fb0240fe0000000000009001010000cc
0402001054696d6573204e657720526f6d616e2043797200d067ef773b030a7500000a00
040000002d01010008000000320a80022f0f02000000ecc208000000320a780191070100
0000c2c209000000320a8002400003000000ccc7d0651c000000fb0240fe000000000000
9001000000cc0402001054696d6573204e657720526f6d616e2043797200d067ef778803
0af300000a00040000002d01020004000000f001010009000000320a8002710c03000000
3734326508000000320a8002060c010000002c3408000000320a8002520a020000003130
08000000320aec034d0601000000323008000000320a7801a80601000000353008000000
320a78014406010000002c3008000000320a780177050100000035301c000000fb0220ff
0000000000009001000000cc0402001054696d6573204e657720526f6d616e2043797200
d067ef773b030a7600000a00040000002d01010004000000f001020008000000320a2403
3e070100000039301c000000fb0240fe0000000000009001000000020002001053796d62
6f6c000088030af4a587ed77ae87ed77d067ef7788030af400000a00040000002d010200
04000000f001010008000000320a80022b09010000003d3008000000320a80020d040100
00003d300a00000026060f000a00ffffffff0100000000001c000000fb02100007000000
0000bc02000000cc0102022253797374656d0077780366fc07008a0100000a0007008a01
07008a0100000a00040000002d01010004000000f0010200030000000000( 2 )

При обработке данных использовать данное значение неудобно, поэтому для
того чтобы довести это значение до величины 10мВ напряжение на вход АЦП
подается через усилитель постоянного тока с коэффициентом передачи
равным:

picscalex1000100090000034901000003001c0000000000050000000902000000000500
0000020101000000050000000102ffffff00050000002e01180000000500000031020100
0000050000000b0200000000050000000c028004000d1200000026060f001a00ffffffff
000010000000c0ffffffbcffffffc00c00003c0400000b00000026060f000c004d617468
547970650000000108000000fa0200001000000000000000040000002d01000005000000
140220026003050000001302200212081c000000fb0240fe0000000000009001000000cc
0402001054696d6573204e657720526f6d616e2043797200d067ef77c3030a1900000a00
040000002d01010008000000320a80020c0b02000000393308000000320a8002a80a0100
00002c3308000000320a8002d40901000000303309000000320aec036705030000003734
326508000000320aec03fc04010000002c3408000000320aec0348030200000031300800
0000320a7801c8040200000031301c000000fb0240fe0000000000009001000000020002
001053796d626f6c000036030a61a587ed77ae87ed77d067ef7736030a6100000a000400
00002d01020004000000f001010008000000320a8002830801000000bb3008000000320a
80020102010000003d301c000000fb0240fe0000000000009001010000cc040200105469
6d6573204e657720526f6d616e2043797200d067ef77c3030a1a00000a00040000002d01
010004000000f001020008000000320a80024700010000004b300a00000026060f000a00
ffffffff0100000000001c000000fb021000070000000000bc02000000cc010202225379
7374656d00777a0366fa07008a0100000a0007008a0107008a0100000a00040000002d01
020004000000f0010100030000000000( 3 )

Точное значение коэффициента передачи устанавливается при помощи
построечного резистора R15 в цепи обратной связи.

Коэффициент передачи инвертирующего операционного устройства
определяется следующим образом:

picscalex1000100090000034c01000003001c0000000000050000000902000000000500
0000020101000000050000000102ffffff00050000002e01180000000500000031020100
0000050000000b0200000000050000000c02a00460061200000026060f001a00ffffffff
000010000000c0ffffffbcffffff200600005c0400000b00000026060f000c004d617468
547970650000100108000000fa0200001000000000000000040000002d01000005000000
14022002600305000000130220021c061c000000fb0220ff0000000000009001010000cc
0402001054696d6573204e657720526f6d616e2043797200d067ef7739030a6700000a00
040000002d01010008000000320a5c04910402000000ced11c000000fb0240fe00000000
00009001010000cc0402001054696d6573204e657720526f6d616e2043797200d067ef77
9d030ac600000a00040000002d01020004000000f001010008000000320aec0387030100
000052d108000000320a7101f1030100000052d108000000320a80024700010000004bd1
1c000000fb0220ff0000000000009001000000cc0402001054696d6573204e657720526f
6d616e2043797200d067ef7739030a6800000a00040000002d01010004000000f0010200
08000000320ae101fe040100000030d11c000000fb0240fe000000000000900100000002
0002001053796d626f6c00009d030ac7a587ed77ae87ed77d067ef779d030ac700000a00
040000002d01020004000000f001010008000000320a80020102010000003dd10a000000
26060f000a00ffffffff0100000000001c000000fb021000070000000000bc02000000cc
0102022253797374656d00773b0366ae07008a0100000a0007008a0107008a0100000a00
040000002d01010004000000f0010200030000000000( 4 )

Из формулы ( 4 ) видно, что изменения коэффициента передачи может быть
осуществлено изменением сопротивления в цепи обратной связи. Его, легко
изменять параллельным подключением различного числа резисторов в цепи
обратной связи.

Подключение и отключение резисторов осуществляется, ключами DD2.1-
DD2.3. Управление состоянием ключа (открыт, закрыт), осуществляется
уровнем напряжения на выходе регистра DD1. При высоком уровне напряжения
на одном из выходов регистра отпирается ключ, подключенный к этому
выводу. Данные в регистр заносятся микропроцессором, командой вывода в
порт по адресу 01h. Таким образом, значения коэффициента передачи будет
определятся выражением:

picscalex1000100090000030e02000003001c0000000000050000000902000000000500
0000020101000000050000000102ffffff00050000002e01180000000500000031020100
0000050000000b0200000000050000000c02a004001b1200000026060f001a00ffffffff
000010000000c0ffffffbcffffffc01a00005c0400000b00000026060f000c004d617468
547970650000100108000000fa0200001000000000000000040000002d01000005000000
14022002600305000000130220024805050000001402200239060500000013022002bf1a
1c000000fb0220ff0000000000009001000000cc0402001054696d6573204e657720526f
6d616e2043797200d067ef77ca030aff00000a00040000002d01010008000000320aec03
3a1a01000000347908000000320a5c046c1701000000307908000000320a5c045d140100
0000337908000000320a5c04aa1101000000307908000000320a5c04940e010000003279
08000000320a5c04da0b01000000307908000000320a5c04d50801000000317908000000
320a5c0493040100000030791c000000fb0240fe0000000000009001000000cc04020010
54696d6573204e657720526f6d616e2043797200d067ef77d8030a5000000a0004000000
2d01020004000000f001010008000000320aec034918010000002f7908000000320aec03
8712010000002f7908000000320aec03b70c010000002f7908000000320aec0311070100
00002f7908000000320aec03210601000000317908000000320a78010c10010000003179
08000000320a7801e4030100000031791c000000fb0240fe0000000000009001010000cc
0402001054696d6573204e657720526f6d616e2043797200d067ef77ca030a0000000a00
040000002d01010004000000f001020008000000320aec03161901000000527908000000
320aec038a16010000006e7908000000320aec03541301000000527908000000320aec03
c810010000006e7908000000320aec03840d01000000527908000000320aec03f80a0100
00006e7908000000320aec03de0701000000527908000000320aec038703010000005279
08000000320a80024700010000004b791c000000fb0240fe000000000000900100000002
0002001053796d626f6c0000d8030a51a587ed77ae87ed77d067ef77d8030a5100000a00
040000002d01020004000000f001010008000000320aec034415010000002b7908000000
320aec03820f010000002b7908000000320aec03b209010000002b7908000000320a8002
8c0501000000d77908000000320a80020102010000003d790a00000026060f000a00ffff
ffff0100000000001c000000fb021000070000000000bc02000000cc0102022253797374
656d00777303668f07008a0100000a0007008a0107008a0100000a00040000002d010100
04000000f0010200030000000000( 5 )

Так как в разрабатываемом вольтметре необходимы следующие значения
коэффициента передачи 1, то принимая значения R0 = 90 кОм по формуле (5)
получим следующие значения номиналов резисторов:

R1 = 1 МОм.

Информация об измеряемой частоте (значение) отображается на четырех
индикаторах (HG1, HG2, HG3 и HG4). Для хранения отображаемых данных до
поступления новых используются два регистра КР1533ИР27 (DD17 и DD18).
Процесс записи данных в регистры КР1533ИР27 стробируется сигналами M/IO
и WR, подаваемые на входы PE и C. В разряды с нулевого по двенадцатый
регистров DD17 и DD18 в двоично-десятичном коде микропроцессором
записывается значение измеренного напряжения. Эти данные с выходов
регистров поступают на дешифраторы двоично-десятичного кода в
семисегментный.

Индикаторы HG1 – HG4 подключаются к выводам микросхем через
ограничительные резисторы. Номинал резисторов рассчитываются из
выражения:

picscalex1000100090000031c02000003001c0000000000050000000902000000000500
0000020101000000050000000102ffffff00050000002e01180000000500000031020100
0000050000000b0200000000050000000c02a004a0201200000026060f001a00ffffffff
000010000000c0ffffffa2ffffff60200000420400000b00000026060f000c004d617468
547970650000e00008000000fa0200001000000000000000040000002d01000005000000
1402800221030500000013028002fa0f0500000014028002ca110500000013028002dc19
1c000000fb0240fe0000000000009001010000cc0402001054696d6573204e657720526f
6d616e2043797200d067ef7776030aa300000a00040000002d01010008000000320ae002
081e02000000ceec08000000320a4c0436090100000049ec08000000320ad1018d0b0100
000055ec08000000320ad1014b070100000055ec08000000320ad10110030100000055ec
08000000320ae00247000100000052ec1c000000fb0220ff0000000000009001010000cc
0402001054696d6573204e657720526f6d616e2043797200d067ef777f030a3c00000a00
040000002d01020004000000f001010009000000320add01ba0d03000000c2dbd5650800
0000320a4102c80802000000cfd008000000320a41027c040200000043431c000000fb02
40fe0000000000009001000000cc0402001054696d6573204e657720526f6d616e204379
7200d067ef7776030aa400000a00040000002d01010004000000f001020009000000320a
e002741b030000003130306508000000320a4c04fa1402000000323008000000320ad801
f81801000000353008000000320ad8019418010000002c3008000000320ad801c0170100
0000303008000000320ad8016a1501000000353008000000320ad8010615010000002c30
08000000320ad801321401000000323008000000320ad801d5110100000035301c000000
fb0220ff0000000000009001000000cc0402001054696d6573204e657720526f6d616e20
43797200d067ef777f030a3d00000a00040000002d01020004000000f001010008000000
320a0901220d0100000030301c000000fb0240fe00000000000090010000000200020010
53796d626f6c000076030aa5a587ed77ae87ed77d067ef7776030aa500000a0004000000
2d01010004000000f001020008000000320ae0024d1a010000003d3008000000320ad801
8716010000002d3008000000320ad801f212010000002d3008000000320ae0026b100100
00003d3008000000320ad101770a010000002d3008000000320ad1013506010000002d30
08000000320ae002c201010000003d300a00000026060f000a00ffffffff010000000000
1c000000fb021000070000000000bc02000000cc0102022253797374656d0077cf03660c
07008a0100000a0007008a0107008a0100000a00040000002d01020004000000f0010100
030000000000( 6 )

где Ucc – напряжения источника питания;

Uпр – напряжение на светодиоде матричного индикатора;

U0вых – напряжение логического нуля на выходе ИМС;

I – ток протекающий через светодиод матричного индикатора.

3.2 Описание работы тахометра

После включения питания микропроцессор считывает поступающие импульсы,
устанавливая на выходах логические уровни. В регистр DD1 записывается
соответствующее значение. И на вход АЦП поступает некоторое количество
импульсов. После окончания преобразования импульсов в код, данные из АЦП
по шине данных поступают в микропроцессор, где они преобразуются из
двоичного кода в двоично-десятичный. Полученный код МП записывает в
регистры DD17 и DD18.

Значение измеренной частоты после преобразование в семисегментный код
дешифраторами DD20 – DD22 отображается на индикаторах HG1-HG4.

4. Проектирования программного обеспечения

4.1 Разработка схемы алгоритма работы системы и программы

С точки зрения программиста разработанный цифровой тахометр, который
состоит из программно доступных регистров микропроцессора и двух портов:
порт АЦП и порт индикатора. И вся работа системы заключается в вводе
данных из АЦП и их обработка (перевод в двоично-десятичный код), и
выводе данных на индикатор.

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

4.2 Описание алгоритма работы системы и программы

Разработанный алгоритм работы системы представлен на чертеже
БГУИ.ХХХХХХ.002.

Рисунок 3 – Размещение программы в адресном пространстве
микропроцессорной системы

При включении тахометра выполняет начальные установки режимов работы и
регистров, ждет прерывания от таймера и сигнального входа. Установки
портов – индикатор погашен. Обнуляет счетчик оборотов и таймер 1
секунда. Снимает показания счетчика оборотов. Увеличивается содержимое
таймера на 1, следит за реальным временем и записывает результат в буфер
индикации. Производит счет входных импульсов + нормировку для
обеспечения показаний в оборотах/мин, счет ведется в двоично-десятичном
коде, обнуление счетчика при включении и по таймеру после считывания
результата.

Заключение

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

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

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

Литература

1. Абрайтис В. -Б. Б., Аверьянов Н. Н., Белоус А. И. и др. Под ред.
Шахнова В. А. Микропроцессоры и микропроцессорные комплекты интегральных
микросхем: справочник. В 2 т. – М.: Радио и связь, 1988.

2. Богданович М. И., Грель И. Н., Прохоренко В. А., Шалимо В. В.
Цифровые интегральные микросхемы: справочник. – Мн.: Беларусь, 1991.

3. Каган Б. М., Сташин В. В. Основы проектирования микропроцессорных
устройств автоматики. – М.: Энергоатомиздат, 1987.

4. Тарабрин Б. В., Лунин Л. Ф., Смирнов Ю. Н и др. Под ред. Тарабрина Б.
В. Интегральные микросхемы: справочник. – М.: Радио и связь, 1984.

5. Фридмен М., Ивенс Л. Проектирование систем с микрокомпьютерами: пер.
с англ. – М.: Мир, 1986.

Приложение А

Листинг управляющей программы

;******Стандартная шапка******************

list p=16f84, f=inhx8m; *

#include p16f84.inc; *

;*****************************************

;——-буфер индикатора———–

INR EQU H’0C’ ; номер текущего разряда

IKANB EQU H’0D’ ; косвен. адрес начала буфера

IR0 EQU H’0D’ ; разряд 0

IR1 EQU H’0E’ ; разряд 1

IR2 EQU H’0F’ ; разряд 2

IR3 EQU H’10’ ; разряд 3

;——–таймер———————————

TIM0 EQU H’11’ ; младший байт

TIM1 EQU H’12’ ; старший байт

TIMF EQU H’00’ ; флаг переполнения таймера

;-счетчик входных импульсов – работа по прерыванию—

OB0 EQU H’13’ ;

OB1 EQU H’14’ ;

DOB EQU H’15’ ; приращение счетчика импусов

;———————————————

org 0

goto Begin

org 4

goto Int

;—————-подпрограммы————————

Table1

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

; в семисегментный код

; перед вызовом программы в W загрузить преобразуемое число

; результат после выполнения программы – в W

addwf PCL

retlw H’7F’ ; 0

retlw H’0D’ ; 1

retlw H’B7′ ; 2

retlw H’9F’ ; 3

retlw H’CD’ ; 4

retlw H’DB’ ; 5

retlw H’FB’ ; 6

retlw H’0F’ ; 7

retlw H’FF’ ; 8

retlw H’DF’ ; 9

retlw H’01’ ; пусто

;———————————————–

Table2

;-сканирование разряда индикатора

; перед вызовом программы в W загрузить текущий номер раз-да

; результат после выполнения программы – в W

addwf PCL

retlw H’0E’ ; 0

retlw H’0D’ ; 1

retlw H’0B’ ; 2

retlw H’07’ ; 3

;—————————————————-

Indic

;-обслуживание индикатора——

; коррекция TMR0

; при обращении преобразует число текущего разряда

; в семисегментный код, и производит его подсветку

; затем производит смещение указателя

; текущего разряда на 1 в пределах 0…3

movlw 0xF1

movwf TMR0 ; коррекция TMR0

bcf STATUS,RP0 ; банк 0

movlw 0xFF ; погасить индикатор

movwf PORTA ;

movlw IKANB

addwf INR,0 ; вычисление косвенного адреса разряда

movwf FSR

movf INDF,0 ; код числа разряда – в W

call Table1

movwf PORTB ; семисегментный код – на индикатор

movf INR,0

call Table2

movwf PORTA ; подсветка разряда

incf INR,1 ;

btfsc INR,H’02’ ;

clrf INR ; INR=INR+1

return

;————————————————————

Sum

;-производит счет входных импульсов + нормировку для

; обеспечения показаний в оборотах/мин.

; счет ведется в двоично-десятичном коде

; обнуление счетчика при включении и по таймеру после

; считывания результата

bcf STATUS,RP0 ; банк 0

; задание приращения счетчика импульсов

movlw 0x1 ; *!!! в десятичном виде !!!!!!

movwf DOB

; ———-

movlw 0x0F ;

andwf DOB,0 ;

addwf OB0,1 ; добавить младшую тетраду приращения

btfss STATUS,DC ;

goto Metka2 ;————————–

movlw 0x06 ;

addwf OB0,1 ; коррекция при переносе из 3 в 4

goto Metka3 ;——————–

Metka2 movlw 0x06 ; проверка и коррекция

addwf OB0,0 ; недопустимой комбинации

btfss STATUS,DC ; первой тетрады

goto Metka4 ; выход в конец процедуры !!!!!!!

movwf OB0 ;————————–

Metka3 ;проверка и коррекция недопустимой комбинации II тетр.

movlw 0x1 ;*

addwf OB0,0 ;

btfss STATUS,C ;

goto Metka4 ; !!!!!!!!!!

movwf OB0

incf OB1,1 ;

; проверка и коррекция I тетрады II байта

movlw 0x06

addwf OB1,0

btfss STATUS,DC

goto Metka4

movwf OB1

; проверка II тетрады

movlw 0x1 ;*

addwf OB1,0

btfss STATUS,C

goto Metka4

movwf OB1

Metka4 ; Добавить старшую тетраду приращения

movlw 0xF0

andwf DOB,0

addwf OB0,1

btfss STATUS,C

goto Metka5

movlw 0x1 ;*

addwf OB0,1

goto Metka6

Metka5

movlw 0x1 ;*

addwf OB0,0

btfss STATUS,C

goto Metka7

movwf OB0

Metka6

incf OB1

movlw 0x06

addwf OB1,0

btfss STATUS,DC

goto Metka7

movwf OB1

movlw 0x1 ;*

addwf OB1,0

btfss STATUS,C

goto Metka7

movwf OB1

Metka7

bcf INTCON,INTF ; сброс флага прерывания

return

;————————————————–

Taim

; вызывает программу Indic

;-увеличивает содержимое таймера на 1

; следит за реальным временем:

; и вызывает программу Result

call Indic

bcf STATUS,RP0 ; банк 0

incfsz TIM0,1

goto Metka0

incf TIM1,1

Metka0 btfsc TIM1,TIMF

call Result

bcf INTCON,T0IF ; сброс флага прерывания

return

;—————————————————

Result

;-снимает показания счетчика оборотов,

; записывает результат в буфер индикации

bcf STATUS,RP0 ; банк 0

movlw H’0F’

andwf OB0,0

movwf IR0

swapf OB0,0

andlw 0x0F

movwf IR1

movlw H’0F’

andwf OB1,0

movwf IR2

swapf OB1,0

andlw 0x0F

movwf IR3

; гасит незначащие нули на индикаторе

movf IR3,1

btfss STATUS,Z

goto Metka1

movlw 0x0A

movwf IR3

movf IR2,1

btfss STATUS,Z

goto Metka1

movlw 0x0A

movwf IR2

movf IR1,1

btfss STATUS,Z

goto Metka1

movlw 0x0A

movwf IR1

; обнуляет счетчик оборотов и таймер 1 секунда

Metka1 clrf OB0

clrf OB1

clrf TIM0

clrf TIM1

return

;—————————————————–

Int

;-начало подпрограммы обработки прерываний—–

;-прерывания возможны от таймера и от входа INT0

;-задача – определить причину прерывания и вызвать

;-соответствующую подпрограмму – Taim или Sum

btfsc INTCON,INTF

call Sum

btfsc INTCON,T0IF

call Taim

retfie

;————————————————-

Begin

;—–начало основной программы—————–

; выпоняет начальные установки режимов работы и регистров

; ждет прерывания от таймера и сигнального входа

bcf STATUS,RP0 ; банк 0

; установки портов – индикатор погашен

clrf PORTB

movlw 0xFF

movwf PORTA

; установки режимов работы

bsf STATUS,RP0 ; банк 1

movlw 0x10

movwf TRISA

movlw 0x01

movwf TRISB

; bcf OPTION_REG,PS0 ;

bcf OPTION_REG,PS2 ; коэффициет деления 1:16

bcf OPTION_REG,PSA ; предв. делитель перед TMRO

bcf OPTION_REG,T0CS ; внутреннее тактирование TMRO

;!!!!!!!bcf OPTION_REG,NOT_RBPU ; включить подтяг. рез-ры

bcf STATUS,RP0 ; банк 0

; сброс таймера

clrf TMR0

clrf TIM0

clrf TIM1

; сброс счетчика входных импульсов

clrf OB0

clrf OB1

; сброс буфера индикации

clrf INR

clrf IR0

clrf IR1

clrf IR2

clrf IR3

movlw 0xB0 ; сброс всех флагов прерывания

movwf INTCON ; разрешить прер-я от таймера и входа

;—————————————-

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

;————————————————————

end

Нашли опечатку? Выделите и нажмите CTRL+Enter

Похожие документы
Обсуждение

Ответить

Курсовые, Дипломы, Рефераты на заказ в кратчайшие сроки
Заказать реферат!
UkrReferat.com. Всі права захищені. 2000-2020