Разработка устройства для тестирования компьютерных шлейфов

Разработка архитектуры устройства: процессора, памяти, интерфейса, структурной, функциональной и принципиальной схем (блоки микро-ЭВМ и устройства). Проектирование программных средств, разработка структуры данных. Декомпозиция и алгоритмизация программы.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 14.12.2012
Размер файла 819,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Содержание

Введение

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

2. Разработка архитектуры устройства

2.1 Архитектура процессора

2.2 Архитектура памяти

2.3 Архитектура интерфейса

3. Разработка электрических схем

3.1 Структурная схема устройства

3.2 Функциональная схема устройства

3.3 Принципиальная схема устройства

3.3.1 Разработка принципиальной схемы модуля микро-ЭВМ

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

3.4 Расчет дискретных элементов

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

4.1 Формулировка требований к программе

4.2 Декомпозиция программы

4.3 Разработка структуры данных программы

4.4 Алгоритмизация программы

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

5. Руководство пользователя

Заключение

Список использованных источников

Приложение

программа устройство алгоритмизация

Введение

В настоящее время, в результате повсеместной автоматизации и компьютеризации, особо остро встаёт вопрос об обучении молодых специалистов в этой области. Предмет «Микропроцессорные системы» наиболее чётко даёт представление о том, как создаются автоматизированные устройства, управляемые микропроцессорами.

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

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

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

- проверку шлейфа (64 жил), сравнение образа тестируемой модели с образом эталонной модели;

- отображение образов эталонной и тестируемой модели шлейфа;

- отображение состояния проверяемого шлейфа, типа неисправности;

- подсчет количества исправных/неисправных шлейфов, неисправных входных контактов;

- отображение номеров неисправных входных/выходных контактов.

Входная информация:

- образ шлейфа, считывается с разъемов;

- тип считываемого шлейфа: эталонный или тестируемый.

Выходная информация:

- визуальное отображение образов эталонного/тестируемого шлейфа;

- индикация количества исправных/неисправных шлейфов;

- индикация количества неисправных входных контактов шлейфа;

- индикация номеров неисправных входных/выходных контактов шлейфа;

- индикация состояния проверяемого шлейфа.

В качестве устройств ввода следующие:

- для ввода образа шлейфа - разъем IDCC-64MS (SCM-64);

- для ввода типа считываемого шлейфа - кнопка без фиксации.

В качестве устройств вывода используем следующие:

- для индикации образов шлейфов - экран из матричных индикаторов 8х8;

- индикацию неисправных контактов тестируемого шлейфа осуществим миганием соответствующего индикатора на экране;

- для индикации состояния тестируемого шлейфа и типа неисправности используем двоичные индикаторы;

- для индикации количества исправных/неисправных шлейфов, количества неисправных входных контактов, номеров неисправных входных контактов - семисегментные индикаторы.

Системные требования:

- количество исправных/неисправных шлейфов - не более 99;

- сброс счетчика исправных/неисправных шлейфов при вводе нового эталонного шлейфа.

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

Рисунок 1.1 - Представление «Устройства тестирования компьютерных шлейфов» в виде «черного ящика»

Рисунок 1.2 - Лицевая панель устройства тестирования компьютерных шлейфов

Лицевая панель наглядно показывает все элементы ввода/вывода.

Работа с устройством тестирования компьютерных шлейфов начинается с подключения эталонного шлейфа. Далее при нажатии кнопки «ввод эталонной модели» образ шлейфа, будет считан как эталонный. Образ введенного шлейфа отобразится на матричных индикаторах. Далее к устройству подключается тестируемый шлейф. Этот образ будет отображен на матричных индикаторах, переключить отображение на эталонный шлейф и обратно можно с помощью кнопки «эталон/тестируемый». После нажатия кнопки «тестирование шлейфа» будет отображено состояние тестируемого шлейфа: исправный/неисправный, и соответственно увеличится либо количество исправных шлейфов или неисправных. В случаи если шлейф неисправный, то будет отображен тип неисправности шлейфа: обрыв/короткое замыкание, и количество. На экране неисправные контакты отобразятся миганием.

2. Разработка архитектуры устройства

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

2.1 Архитектура процессора

Так как данная микропроцессорная система (МПС) выполнена на основе однокристального микропроцессора К1810ВМ88, то архитектура процессора, представленная на рисунке 2.1, является полностью определенной и не требует более детального рассмотрения.

Рисунок 2.1 - Архитектура процессора

2.2 Архитектура памяти

В состав МПС должны входить постоянно запоминающее устройство (ПЗУ) и оперативно запоминающее устройство (ОЗУ). Основываясь на ранее приобретенном опыте, выберем объем ОЗУ - 2 Кбайта, ПЗУ - 2 Кбайта.

Важная особенность процессора, влияющая на распределение адресного пространства между ПЗУ и ОЗУ, заключается в следующем - при установлении процессора в исходное состояние по сигналу Reset на 20-ти разрядной шине адреса появляется адрес FFFF0h, по которому считывается первая команда. Именно этот адрес должен принадлежать ПЗУ. Таким образом, наиболее удобно старшее адресное пространство определить под ПЗУ, а младшее - под ОЗУ.

Разделение адресного пространства происходит за счет адресной линии А19.

Архитектура памяти представлена на рисунке 2.2.

2.3 Архитектура интерфейса

В качестве архитектуры ввода можно использовать линейную и матричную схему включения кнопок. Линейная схема несет в себе значительно большие аппаратные затраты при количестве элементов ввода больше 8. В нашем случае число кнопок 5 поэтому остановим выбор на линейной схеме. Клавиатурный порт ввода имеет имя keyport и изображен на рисунке 2.3.

Рисунок 2.3

Для подключения шлейфа используем последовательно 8 расположенных портов ввода и вывода, изображенных на рисунке 2.4. Опрос линий будет производить порты ShlPortOut0 - ShlPortOut7, считывание ShlPortIn0 - ShlPortIn7.

Рисунок 2.4

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

Рисунок 2.5

Для отображения цифровой информации используется динамическая схема индикации: управляющий порт semv1 и semv2, информационный порт semd, представленные на рисунке 2.6.

Рисунок 2.6

Составим таблицу образов десятичных цифр - таблица 2.1, выводимых на семисегментные индикаторы, учитывая, что сегмент «зажигается» единичным уровнем.

Таблица 2.1 - Образы десятичных цифр

H 7

G 6

F 5

E 4

D 3

C 2

B 1

A 0

7 сегм. код

0

0

0

1

1

1

1

1

1

3Fh

1

0

0

0

0

1

1

0

0

0Ch

2

0

1

1

1

0

1

1

0

76h

3

0

1

0

1

1

1

1

0

5Eh

4

0

1

0

0

1

1

0

1

4Dh

5

1

1

0

1

1

0

1

1

5Bh

6

0

1

1

1

1

0

1

1

7Bh

7

0

0

0

0

1

1

1

0

0Eh

8

0

1

1

1

1

1

1

1

7Fh

9

0

1

0

1

1

1

1

1

5Fh

Для подключения 64 матричных индикаторов экрана понадобится 8+1+1 портов. 8 портов предназначенных для выбора индикатора целесообразно заменить одним портом и дешифратором. Схема подключения изображена на рисунке 2.7.

Рисунок 2.7

Порт dispportX и dispportY будут выбирать строки и столбцы индикатора соответственно, dispportS будет выбирать соответствующий индикатор.

В результате по итогам разработки системы ввода вывода можно составить таблицу 2.2

Таблица 2.2 - Порты

Название порта

Назначение

Номер порта в десятичном виде

Номер порта в двоичной системе

KeyPort

Ввода

16

00010000b

ShlPortOut0

Вывода

8

00001000b

ShlPortOut7

Вывода

15

00001111b

ShlPortIn0

Ввода

8

00001000b

ShlPortIn7

Ввода

15

00001111b

Lport

Вывода

0

00000000b

SemV1

Вывода

6

00000110b

SemV2

Вывода

7

00000111b

SemD

Вывода

5

00000101b

dispportX

Вывода

4

00000100b

dispportY

Вывода

3

00000011b

dispportS

Вывода

2

00000010b

3. Разработка электрических схем

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

3.1 Структурная схема устройства

В состав системы входят: центральный процессор, ОЗУ, ПЗУ и интерфейс, которые подключаются к шине адреса, шине данных и шине управления.

Основной элемент любой микропроцессорной системы - центральный процессор. Он производит обработку входных и формирование выходных сигналов, кроме того, управляет функционированием остальных модулей системы. Центральный процессор коммутирует сигналы по трем шинам: данных (ШД), адреса (ША) и управления (ШУ). Так как будет использован центральный процессор К1810ВМ88, то разрядность шины данных оказывается определенной - 8 линий.

Память организуется в виде одного банка и подключается к системной шине стандартным образом. В состав банка памяти входят ПЗУ и ОЗУ. Распределение адресного пространства будет осуществляться с помощью адресной линии A19. Объем ОЗУ определяется объемом данных, которыми оперирует программа - 2 Кбайта. Объем ПЗУ определяется размером программного кода - 2 Кбайта. На ОЗУ от центрального процессора должен поступать адрес по шине адреса (линии A0 - A10), сигналы MEMR и MEMW с шины управления, а также должна быть подключена шина данных (линии D0 - D7). На ПЗУ от центрального процессора должны быть заведены: шина адреса (линии A0 - A10), шина управления (линия MEMR) и шина данных (линии D0 - D7).

В совокупности центральный процессор и память составляют микро-ЭВМ, которая связана с устройствами ввода/вывода посредством интерфейса. К интерфейсу подводятся: шина адреса - выбор конкретного устройства ввода/вывода (линии A0 - A7, так как в архитектуре интерфейса представлены 6 портов вывода и 4 порт ввода), шина управления (линии IOR и IOW), а также шина данных (линии D0 - D7).

На шлейф идут сигналы SO0_SO63, а считываются SI0_SI63.

Для управления экраном используются следующие линии: OS01_OS64 выбор индикатора, XO0_XO7 выбор столбца, YO0_YO7 выбор строки.

Двоичные индикаторы управляются линиями IO1_IO4.

Для управления семисегментными индикаторами заведены следующие линии: вывод данных на индикатор (O8Y0-O8Y7), выбор индикатора дисплея (O8X01-O8X14). Также на дисплей идут сигналы на двоичные индикаторы (IO0-IO5).

Клавиши подключаются по линиям KI0 - KI4.

Разработанная электрическая структурная схема находится в приложении А.

3.2 Функциональная схема устройства

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

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

Генератор тактовых импульсов (ГФ84). Он обеспечивает формирование сигнала синхронизации CLK. В качестве время задающего элемента используется кварцевый резонатор. Для компенсации индуктивности резонатора и для снятия с него постоянной составляющей напряжения, последовательно с ним ставится конденсатор C1. Для обеспечения запуска программы с начального адреса при включении системы используется RC-цепь автоматического сброса (R2 и C2). Постоянна времени этой цепи выбирается из условия длительности первоначального сигнала сброса не менее 50 мкс. Диод VD1 служит для быстрого разряда конденсатора C2 и восстановления исходного состояния цепи автоматического сброса при пропадании напряжения питания.

Адресный регистр-защелка. Он служит для демультиплексирования шины адреса и шины данных микропроцессора и буферирования шины адреса системы. Он состоит из 2х регистров ИР86.

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

Дешифратор DC служит для формирования сигналов управления системной шиной, таблица 3.1. Будем использовать ИД7.

Таблица 3.1

IO/-M

-RD

-WR

Вход дешифратора

Сигнал

Пояснения

0

0

1

Q1

-IOW

Чтение из порта ввода/вывода

0

1

0

Q2

-IOR

Запись в порт ввода/вывода

1

0

1

Q5

-MEMR

Чтение данных из памяти

1

1

0

Q6

-MEMW

Запись данных в память

  • Проектирование памяти. Так как системе необходимо 2 Кбайт ОЗУ и 2 Кбайт ПЗУ выбор микросхемы будет осуществлять линия A19.

Линии данных микросхем памяти через двунаправленный буфер подключаются к шине данных, при этом управление направлением осуществляется сигналами MEMR и MEMW.

Проектирование интерфейса. Интерфейс устройства содержит 17 портов вывода и 9 портов ввода. Обращение к портам вывода осуществляется сигналом IOW шины управления, а к порту ввода - IOR. Обращение к матричным индикаторам осуществляется через дешифратор 6 в 64, на входе у которого линии SI0-SI5 а на выходе OS01 - OS64.

Разработанная электрическая функциональная схема находится в приложении Б.

3.3 Принципиальная схема устройства

Разработка принципиальной схемы устройства подразделяется на два этапа:

разработка принципиальной схемы микроЭВМ и разработка принципиальной схемы устройства.

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

3.3.1 Разработка принципиальной схемы микро-ЭВМ

Основой разрабатываемой микро-ЭВМ является микропроцессор К1810ВМ88 (DD2), работающий в минимальном режиме. В состав процессора также входят: генератор тактовых импульсов К1810ГФ84 (DD1), два адресных регистра-защелки К1810ИР82 (DD4, DD5), шинный буфер К1810ВА86 (DD6) и дешифратор управляющих сигналов КР1531ИД7 (DD3).

Частота работы системы задается кварцевым резонатором РК169МВ-7АП-6МГц. Последовательно с кварцевым резонатором включен конденсатор С1 на 10пФ, служащий для компенсации индуктивности резонатора и снятия с него постоянной составляющей напряжения.

Для задания минимального режима работы микропроцессора на его вход MN/MX нужно подать логическую единицу, для этого подадим на вход напряжение питания через резистор С2-23-0,125-1К5%. Цепь автоматического сброса (R2, C2) должна иметь такую постоянную времени, чтобы длительность первоначального сигнала сброса была не менее 50 мкс. Поэтому R2 - С2-23-0,125-100К5%, C2-К-53-14-16В-10мк20%. Для быстрого разряда конденсатора и восстановления исходного состояния цепи автоматического сброса при пропадании напряжения питания используется диод КД522А.

В качестве ОЗУ используется микросхема КР537РУ25А, а ПЗУ - КС1626РФ1. Выбор микросхемы ОЗУ осуществляется нулевым сигналом линии А19, а ПЗУ единичному сигналу линии А19 через инвертор. Линии данных памяти буферизируются шинным буфером К1810ВА86. При CS=1 работа буфера запрещена, выводы находятся в высокоимпедансном состоянии. При CS=0 осуществляется передача данных. Направление передачи определяется уровнем на входе TF. При TF=0 данные передаются от B к A, а при TF=1 от A к B.

В качестве портов ввода/вывода используем регистры-защелки КР1810ИР2. Для определения обращения к ним используются дешифраторы КР1533ИД7 (DD9, DD10 и DD11) и логические элементы ЛИ1 и ЛН1 (DD16, DD17).

Дешифратор для выбора индикатора реализуем с помощью четырех элементов К1531ИД3 (D12 - D15).

Для подключения клавиатуры будут использоваться 5 контактных площадок.

Для подключения экрана будут использоваться 80 контактных площадок (64 линий для выбора индикатора, 8 для выбора столбца и 8 для выдачи данных).

Для подключения семисегментных индикаторов - 22 контактные площадки (14 линий для выбора индикатора и 8 для выдачи данных)

Для подключения двоичных индикаторов - 4 контактные площадки.

Для уменьшения высокочастотных помех в шине питания на каждый корпус микросхем памяти и процессора ставится керамический конденсатор (C4..C6) емкостью 0,1мкФ, для других корпусов микросхем, используемых в данном устройстве, ставятся керамический конденсатор (C7..C14) емкостью 6800пФ на пять корпусов микросхем, к входам положительного и отрицательного напряжения. Принципиальная схема модуля Микро-ЭВМ и перечень элементов приведены в приложениях В и Г соответственно.

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

Экран содержит 64 матричных индикатора (DD1 - DD64), к индикаторам подключены транзисторы:

- VT9 - VT72 - выбор индикатора;

- VT73 - VT584 - выбор столбца;

- VT1 - VT8 - передача данных.

Информационная часть устройства содержит 14 семисегментных индикаторов (HG1 - HG14). К индикаторам подключены транзисторы:

- VT585 - VT592 - передача данных;

- VT593 - VT606 - выбор индикатора.

В качестве клавиш используются кнопки PS580N (S2 - S6) подключенных по линейной схеме.

В качестве двоичных индикаторов используются светодиоды (VD1…VD4). Светодиоды зажигаются логической единицей

Принципиальная схема устройства и перечень элементов приведены в приложениях Д и Е соответственно.

3.4 Расчет дискретных элементов

Произведём расчет дискретных элементов для блока микроЭВМ. Рассчитаем резисторы (R3 … R4) необходимые для создания уровня логической 1 на входах микросхем. Уровень логической единицы определяется при IВХ1=30 мкА и формулой 3.1.

(3.1)

ЕП = 5 (В), тогда сопротивление резисторов:

Таким образом, R3 … R4 - резистор С2-23-0,125-10кОм10%.

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

, (3.2)

где - частота возбуждения кварцевого резонатора. Рабочая частота может лежать в пределах от 2 до 5 МГц.

Наиболее критичными в устройстве являются элементы памяти. Время отклика ОЗУ - 220 нс, ПЗУ - 450 нс. Поэтому необходимо ориентироваться именно на ПЗУ.

Для его нормальной работы должно быть , где Тclk - это период задающей частоты и рассчитывается по формуле 3.3

=1/ (3.3)

Отсюда, подставляя числовые значения .

Возьмём =2 (МГц) тогда . Выберем кварцевый резонатор РК169МВ-7АП-6МГц.

Расчет дискретных элементов для блока устройства. Подключение кнопок будет осуществляться через резисторы. Резисторы R597 - R601 ограничивают ток входящий в порт, их сопротивление рассчитывается по формуле 3.4.

(3.4)

Подставив числовые значения получим .

Таким образом, R597 - R601 - резистор С2-23-0,125-1,2К10%.

Подключение двоичных индикаторов: светодиоды представлены на принципиальной схеме устройства светодиодами VD1…VD6 (КИПД05А-1К (Uпр=1.8 В, Iпрmax=6 мА)). Резисторы R593 - R596 служат для ограничения тока, протекающего через светодиоды, и их номиналы рассчитываются по формуле 3.5.

(3.5)

Тогда .

Таким образом, R593 - R596 - резистор С2-23-0,125-560Ом10%.

Подключение семисегментных индикаторов. При динамической индикации ток, проходящий через сегменты, увеличивают в k раз (k=14, количество индикаторов).

Транзисторы VT593..VT606 осуществляют выбор индикатора, ток коллектора рассчитывается по формуле 3.6, ток базы - формула 3.7, и падение напряжения находится по формуле 3.8.

, (3.6)

где k=14, подставляя числовые значения получим .

Выбираем транзистор КТ361В (IK MAX=0,5A, ЯMIN=40).

(3.7)

где S=1,5..2, тогда

, (3.8)

Подставив числовые значение получим падение напряжения равным

.

Таким образом, номиналы резисторов R618 - R631 в цепях базы транзисторов VT593 - VT606 рассчитываются необходимо рассчитать по формуле 3.9.

(3.9)

тогда то есть, выбираем резисторы R618 - R631 _ С2-23-0,125-180Ом10%.

Транзисторы VT585 - VT610 выступают в качестве усилителей, берем КТ361В. Рассчитаем номиналы резисторов R602…R609 и R610..R618 по формулам 3.10 и 3.11 соответственно.

(3.10)

получится

(3.11)

получится

Чтобы определить номиналы резисторов в цепи базы, необходимо определить сначала падение напряжения в цепи базы по формуле 3.12. А затем рассчитать номиналы по формуле 3.13.

(3.12)

Тогда

(3.13)

в результате

Таким образом, R602 - R609 - резистор С2-23-0,125-75Ом10%. Номиналы резисторов в цепи эмиттера рассчитываются по формуле 3.14.

RЭ*IК=URЭ, (3.14)

падение напряжения в цепи эмиттера находится из формулы 3.15.

(3.15)

подставив числовые значения в данную формулу получим

И тогда номиналы резисторов будет равны

Таким образом, R610 - R618 - резистор С2-23-0,125-13Ом10%.

Расчеты для матричных индикаторов. Количество индикаторов . Ток свечения (сила тока сегмента индикатора импульса) определяется по формуле 3.16.

(3.16)

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

Транзисторы VT9..VT72 осуществляют выбор индикатора, и их расчет по формуле 3.17.

(3.17)

подставив в формулу значение тока, вычисленное предыдущей формулой получим

Выбираем транзистор ГТ702А (IK MAX = 30A, Я=15, UБ-Э нас = 0,8В, UК-Э нас = 0,6 В).

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

(3.18)

Таким образом, номиналы резисторов R17 - R80 в цепях базы транзисторов VT9 - VT72 рассчитываются по формуле 3.13. Подставив в данную формулу полученные значения номиналы будут равны

,

то есть резисторы R17 - R80 _ С2-11-0,125-2,2Ом10%.

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

(3.19)

получится .

Выбираем транзистор ГТ702А (IK MAX = 30A, Я=15, UБ-Э нас = 0,8В, UК-Э нас = 0,6 В).

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

(3.20)

Таким образом, номиналы резисторов R81 - R592 в цепях базы транзисторов VT17 - VT80 рассчитываются по формуле 3.13 и равны:

то есть резисторы

R81 - R592 _ С2-11-0,125-15Ом10%.

Транзисторы VT1 - VT8 выступают в качестве усилителей, берем ГТ403А (IK MAX = 1,25A, Я=20, UБ-Э нас = 0,8В, UК-Э нас = 0,5 В). Рассчитаем номиналы резисторов R1 - R8. Значение тока коллектора равно Ток базы найдем по формуле 3.11. Значение падения напряжения по формуле 3.21.

(3.21)

Выразив падание напряжения из данной формулы:

,

найдём номиналы резисторов в цепи базы по формуле 3.13, и подставив числовые значения получим следующие номиналы:

Таким образом, R1 - R8 - резистор С2-11-0,125-10Ом?10%.

Номиналы резисторов в цепи эмиттера R9 - R16рассчитываются по формуле 3.14, а падение напряжения в цепи эмиттера по формуле 3.22. Подставив числовые значения в данные формулы, получим следующие номиналы

(3.22)

Таким образом, R9 - R16 - резистор С2-11-0,125-3,9Ом10%.

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

4.1 Формулировка требований к программе

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

Рисунок 4.1- Представление программы «Устройство тестирования компьютерных шлейфов» в виде «черной сферы»

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

4.2. Декомпозиция программы

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

Рисунок 4.2 - Статическая модель программы

Далее разбиваем «Рабочий процесс». Его можно представить в виде двух подзадач: ввод и вывод данных.

Рисунок 4.3 - Статическая модель программы после первого этапа декомпозиции

4.3 Разработка структуры данных программы

Таблица 4.1 - Структура данных программы «Устройство тестирования компьютерных шлейфов»

Наименование данных

Символьное имя

Формат данных

Кодирование данных

Примечание

D7

D6

D5

D4

D3

D2

D1

D0

Образ кнопок

keyimg

Упакованный байт

0

0

0

0

*

*

*

*

Образ шлейфа

shcur

16 слов

**

**

**

**

**

**

**

**

Данные о шлейфе

Образ эталонного шлейфа

shetal

16 слов

**

**

**

**

**

**

**

**

Данные о шлейфе

Количество обрывов

colobr

байт

0

0

0

0

*

*

*

*

От 0 до 16

Количество замыканий

colzam

байт

0

0

0

0

*

*

*

*

От 0 до 16

Массив номеров входных контактов с обрывом

obrnumb

16 байтов

0

0

0

0

*

*

*

*

Байт = 0 - обрыва нет;

Байт = №контакта обрыв есть

Массив номеров выходных контактов с обрывом

vihobrnumb

16 байтов

0

0

0

0

0

0

0

0

*

*

*

*

*

*

*

*

Байт = 0 - обрыва нет;

Байт = № контакта - обрыв есть

Массив номеров входных контактов с замыканием

zamnumb

16 байтов

0

.

0

0

.

0

0

.

0

0

.

0

*

.

*

*

.

*

*

.

*

*

.

*

Байт = 0 - обрыва нет;

Байт = № контакта - обрыв есть

Массив номеров выходных контактов с замыканием

zamvih

16 слов

0

.

0

0

.

0

0

.

0

0

.

0

*

.

*

*

.

*

*

.

*

*

.

*

Бит = 1- замыкание в шлейфе

Номер выводимого контакта с обрывом

topobrnumb

слово

0

0

0

0

*

*

*

*

От 0 до 15

Номер выводимого контакта с замыканием

topzamnumb

слово

0

0

0

0

*

*

*

*

От 0 до 15

Количество исправных шлейфов

colgood

байт

*

*

*

*

*

*

*

*

От 0 до99

Количество неисправных шлейфов

colbad

байт

*

*

*

*

*

*

*

*

От 0 до99

Флаг наличия

обрыва

flobr

Флаговый байт

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

Пассивно

Активно

Флаг наличия

замыкания

flzam

Флаговый байт

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

Пассивно

Активно

Флаг вывода

результата

flresult

Флаговый байт

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

Пассивно

Активно

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

Образ кнопок представляет собой упакованный байт, в котором бит D1 отображает состояние кнопки «тестирование шлейфа», D2 - кнопки «ввод эталонной модели шлейфа», D3 - кнопки «следующий» для просмотра номеров неисправных контактов при обрыве, D4 - кнопки «следующий» для просмотра номеров неисправных контактов при замыкании.

Образ шлейфа и образ эталонного шлейфа представляют собой совокупность из 16 слов, для хранения образов шлейфов выставленных на клавиатуре.

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

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

Флаговые байты: флаг наличия сравнения, обрыва в шлейфе, короткого замыкания в шлейфе, могут принимать два значения. При наличии ситуации, соответствующей названию команды или флага, флаговый байт принимает активное значение (код FFh), а при отсутствии - пассивное значение (код 00h).

4.4 Алгоритмизация программы

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

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

- «Функциональная подготовка» (funcprep);

- «Ввод образа текущего шлейфа» (ShlInput);

- «Ввод с кнопок» (KeyInput);

- «Формирование команд управления» (KeyObr);

- «Сравнение эталонного и текущего массивов» (analyz);

- «Вывод на двоичные индикаторы отображающие состояние проверяемого шлейфа» (lampscontr);

- «Вывод на матричные индикаторы» (dispmatr);

- «Корректировка значений для вывода на семисегментные индикаторы» (perevod);

- «Вывод данных на семисегментные индикаторы» (disp7);

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

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

Алгоритм программы «Устройство тестирования компьютерных шлейфов» в двухуровневом представлении приведён на рисунке 4.4.

Рисунок 4.4 - Алгоритм программы «Устройство тестирования компьютерных шлейфов» (двухуровневое представление)

Модуль «Функциональная подготовка» (funcprep).

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

Рисунок 4.5 - Алгоритм модуля «Функциональная подготовка»

Модуль «Ввод образа текущего шлейфа» (ShlInput).

Задачей этого модуля является считывание состояния нажатых клавиш на клавиатуре, записи этих данных в массив shcur.

Рисунок 4.6 - Алгоритм модуля «Ввод образа текущего шлейфа»

Модуль «Ввод с кнопок» (KeyInput).

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

Рисунок 4.7 - Алгоритм модуля «Ввод с кнопок»:

а) общий алгоритм; б)алгоритм гашения дребезга контактов

Модуль «Формирование команд управления» (KeyObr).

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

Рисунок 4.8 - Алгоритм модуля «Формирование команд управления»

Модуль «Сравнение эталонного и текущего массивов» (Аnalyz).

Задачей этого модуля является сравнение двух массивов shcur и shetal. При нажатии кнопки «тестирование шлейфа» происходит поэлементное сравнение. При совпадении образов шлейфов количество исправных шлейфов colgood инкрементируется. При обнаружении неравных элементов инкрементируется переменная colbad, и устанавливаются номера несправных входных/выходных контактов, а так же тип неисправности - короткое замыкание или обрыв

Рисунок 4.9 - Алгоритм модуля «Сравнение эталонного и текущего массивов»

Модуль «Вывод на двоичные индикаторы» (Lampscontr).

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

Рисунок 4.10 - Алгоритм модуля «Вывод на двоичные индикаторы»

Модуль «Вывод на матричные индикаторы» (Dispmatr).

Этот модуль служит для отображения образов эталонного и тестируемого шлейфов, которые выставляются на клавиатуре.

Рисунок 4.11 - Алгоритм модуля «Вывод на двоичные индикаторы»

Модуль «Корректировка значений для вывода на семисегментные индикаторы» (Perevod).

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

Рисунок 4.12 - Алгоритм модуля «Корректировка значений для вывода на семисегментные индикаторы»

Модуль «Вывод на семисегментные индикаторы» (Disp7).

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

Рисунок 4.13 - Алгоритм модуля «Вывод на матричные индикаторы»

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

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

5. Руководство пользователя

После запуска программы необходимо задать образ текущего шлейфа подключив его к разъемам. По умолчанию текущий образ отображается на матричных индикаторах как «Образ тестируемой модели шлейфа». Для того чтобы выставлеенный образ на клавиатуре стал эталонным, необходимо нажать кнопку «Ввод эталонной модели». Сравнение эталонного и тестируемого образов шлейфов осуществляется нажатием на кнопку «Тестирование шлейфа». В результате тестирования образов активируются двоичные индикаторы: «шлейф исправный», в случаи совпадения образов или «шлейф неисправный» в случаи, если образы не совпадают. Если тестируемый шлейф неисправный, то в зависимости от типа неисправности обрыв/короткое замыкание, соответствующий им индикатор будет светиться. При этом так же на индикаторах (семисегментные) будут отображены номера неисправных входных/выходных контактов в диапазоне от 0 до 16. Количество неисправных контактов лежит в диапазоне от 0 до 99. Чтобы просмотреть на дисплее поочередно все номера неисправных контактов, необходимо нажать кнопку «Следующий» (отдельные для типа неисправности обрыв и короткое замыкание).

Заключение

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

Список использованных источников

1. В.М. Комаров. Микропроцессорные системы: Учебное пособие. - Рыбинск: РГАТА, 2006.- 92 с.

2. СТП 1.01 - 2002. Текстовые документы. Общие требования к оформлению учебных документов. - Введ. 2002-01-01.- Рыбинск: РГАТА имени П. А. Соловьева, 2002. - 28 c.

3. СТП 1.01 - 2002. Графические документы. Общие требования к оформлению учебных документов. - Введ. 2003-10-10. - Рыбинск: РГАТА имени П. А. Соловьева, 2003. - 27 c.

4. Казаринов Ю.М. Микропроцессорный комплект К1810: Структура, программирование, применение [Текст]: Справочная книга / Ю.М. Казаринов, В.Н. Номоконов, Г.С. Подклетнов, Ф.В. Филиппов - М. : Высш. шк., 1990, - 296 с.

5. Комаров В.М. Микропроцессорные системы [Текст]: Учебное пособие / В. М. Комаров - Рыбинск : РГАТА, 1997. - 324 с.

6. Нефедов А.В. Интегральные микросхемы и их зарубежные аналоги [Текст] : Справочник в 10 т. / А.В. Нефедов; - М.: КУБК-а, 1997 - 2 т.

7. Михайлов Н.Л. Конструирование электронно-вычислительной аппаратуры [Текст]: Учебное пособие / Н.Л. Михайлов - Ярославль: ЯПИ

8. Брежнева К.М. Транзисторы для аппаратуры широкого применения [Текст]: Справочник / К.М. Брежнева, Е.И. Гантман, Т.И. Давыдова и др.; под общ. ред. Б.Л. Перельмана - М. : Радио и связь, 1981. - 656 с.

9. Дубровский В.В. Резисторы [Текст]: Справочник / В.В. Дубровский, Д.М. Иванов, Н.Я. Пратусевич и др.; под общ. ред. И.И. Четверткова и В.М. Терехова. -2-е изд., перераб. и доп. - М. : Радио и связь, 1991. - 528 с.

10. Дьяконов, М. Н. Справочник по электрическим конденсаторам [Текст] / М.Н. Дьяконов, В.И. Карабанов, В.И. Присняков и др.; под общ. ред. И.И. Четверткова и В.Ф. Смирнова. - М. : Радио и связь 1983. - 576 с.

Приложение

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

RomSize EQU 4096

NMax EQU 10

ShlPort EQU 1h;выбор линии шлейфа

ShlinP1 EQU 10h;порты для ввода с клавиатуры

ShlinP2 EQU 20h

ShlinP3 EQU 30h

ShlinP4 EQU 40h

Lport EQU 2h;для двоичных индикаторов

Lport2 EQU 7h

Lport3 EQU 8h

semd EQU 21h;данные на семисегментные индикаторы

semv EQU 22h;выбор семисегментных индикаторов

dispport EQU 31h;мартричные индикаторы

dispport2 EQU 5h

dispport3 EQU 3h

dispport4 EQU 32h

keyport EQU 4h;порт для ввода с кнопок

Stk SEGMENT AT 10h

DW 10 DUP (?)

StkTop LABEL WORD

Stk ENDS

Data SEGMENT AT 20h

keyimg DB ?;образ кнопок

prkeyimg DB ?;предыдущее значение образа кнопок

shcur DW 16 DUP(?);текущий образ шлейфа (для тестирования)

shetal DW 16 DUP(?);образ эталонного шлейфа

outimages DB 14 DUP(?);образы на индикаторах

flrezult DB ?;флаг вывода результатов

flobr DB ?;флаг обрыва

flzam DB ?;флаг замыкания

flgood DB ?;флаг исправного состояния

colgood DB ?;количество исправных контактов

colbad DB ?;количество не исправных контактов

colobr DB ?;количество обрывов

obrnumb DB 16 DUP(?);массив номеров неисправных входных контактов при обрыве

vihobrnumb DB 16 DUP(?);массив номеров неисправных выходных контактов при обрыве

topobrnumb DW ?;указатель на выводимый элемент в массиве неисправных номеров контактов обрыва

colzam DB ?;количество замыканий

zamvih DW 16 DUP(?);массив выходных контактов замыканий (для 16ти лампочек)

zamnumb DB 16 DUP(?);массив номеров неисправных входных контактов при замыкании

topzamnumb DW ?;указатель на выводимый элемент в массиве неисправных номеров контактов при замыкании

Data ENDS

Code SEGMENT

ASSUME cs:Code, ds:Data, es:Code, ss:Stk

SymImages DB 03Fh,00Ch,076h,05Eh,04Dh,05Bh,07Bh,00Eh,07Fh,05Fh

ShlInput PROC NEAR;ввод с шлейфа

mov si,0

mov cx,8;подготовка счетчика для 8 циклов

mov bl,1

K5: mov al,bl

out ShlPort,al;выбор строки

in al,ShlinP2;ввод с порта

mov di,8;зеркальное отображение бит прочитанного байта

K1: rcl al,1

rcr dl,1

dec di

cmp di,0

jne k1

mov al,dl

mov ah,al;сохранение старшего байта состояния шлейфа

in al,ShlinP1;ввод с порта

mov di,8

K2: rcl al,1

rcr dl,1

dec di

cmp di,0

jne k2

mov al,dl

mov shcur[si],ax;сохранение слова состояния шлейфа

in al,ShlinP4;ввод с порта

mov di,8

K3: rcl al,1

rcr dl,1

dec di

cmp di,0

jne k3

mov al,dl

mov ah,al;сохранение старшего байта состояния шлейфа

in al,ShlinP3;ввод с порта

mov di,8

K4: rcl al,1

rcr dl,1

dec di

cmp di,0

jne k4

mov al,dl

mov shcur[si+16],ax;сохранение слова состояния шлейфа

inc si;модификация смещения

inc si

rol bl,1;выбор следующей строки

loop K5

ret

ShlInput ENDP

KeyInput PROC NEAR

mov dx,KeyPort

in al,dx

call VibrDestr;вызов процедуры гашения дребезга

not al

mov KeyImg,0h;обнуление образа

mov ah,al

xor ah,prkeyimg;в образе учитывается только передний фронт

and ah,al

mov KeyImg,ah;если изменилось с 0 на 1 то сохраняем в образ

mov prkeyimg,al

ret

keyInput ENDP

VibrDestr PROC NEAR;гашение дребезга (dx - адрес порта)

VD1: mov ah,al;сохранение исходного состояния

mov bh,0;сброс счетчика повторений

VD2: in al,dx;ввод текущего состояния

or al,011000000b

cmp ah,al;текущеее состояние равно исходному

jne VD1

inc bh;инкремент счетчика повторений

cmp bh,NMax;конец дребезга?

jne VD2

mov al,ah

ret

VibrDestr ENDP

lampscontr PROC NEAR;процедура управления индикаторами,отображающие состояние шлейфа

mov al,0

cmp flrezult,0ffh;если анализа не производилось,то на конец

jne lс1

mov si,topzamnumb;вывод номеров выходных контактов замыканий

shl si,1;вычисляем смещение для элемента массива образов замыканий

mov ax,zamvih[si]

out Lport2,al;вывод элемента в порты

mov al,ah

out Lport3,al

mov al,10b;анализ флагов, наложение масок для лампочек

cmp flgood,0ffh;исправность

jne lс2

xor al,11b

lс2: cmp flobr,0ffh;обрыв

jne lс3

or al,100b

lс3: cmp flzam,0ffh;замыкания

jne lс4

or al,1000b

lс4:

lс1: out Lport,al

ret

lampscontr ENDP

KeyObr PROC NEAR;процедура обработки кнопки(в зависимости от кода клавиш (keyimg)выполняется действие)

m1: cmp keyimg,1;нажата кнопка "тестирование"

jne m2

call analyz;вызов процедуры сравнения шлейфов

jmp endnv

m2: cmp keyimg,2;нажата кнопка "ввод эталонной модели"

jne m3

mov flrezult,0;сброс флагов в начальное состояние

mov flobr,0;сброс флага обрыва

mov flzam,0h;сброс флага замыкания

mov colobr,0;обнуление количества обрывов

mov colzam,0;обнуление количества замыканий

mov cx,16

mov si,0

m6: mov obrnumb[si],0;обнуление массивов номеров неисправных входных контактов при обрыве

mov zamnumb[si],0;обнуление массивов номеров неисправных входных контактов при замыкании

mov vihobrnumb[si],0;обнуление массивов номеров неисправных выходных

контактов при обрыве

inc si

loop m6

mov cx,16;сохранение эталона в shetal

mov si,0

m7: mov ax,shcur[si]

mov shetal[si],ax

inc si

inc si

loop m7

mov colgood,0;количество исправных

mov colbad,0;количество неисправных

jmp endnv

m3: cmp keyimg,4;нажата кнопка "следующий" для обрывов

jne m4

mov bx,topobrnumb

mov cx,16;цикл на 16 проходов

m5: inc bx;инкремент номера выводимого элемента

cmp bx,16;если пришли на конец массива, то начинаем с начала массива

jne m8

mov bx,0

m8: cmp obrnumb[bx],0;если элемент массива=0,то переходим к следующему

je m9

mov topobrnumb,bx;если нет, то сохраняем номер в переменную - указатель topobrnumb

jmp m10

m9: loop m5

m10: jmp endnv

m4: cmp keyimg,8;нажата кнопка "следующий" для замыканий

jne endnv

mov bx,topzamnumb

mov cx,16

m11: inc bx;инкремент номера выводимого элемента

cmp bx,16;если пришли на конец массива,то начинаем с начала массива

jne m12

mov bx,0

m12: cmp zamnumb[bx],0;если элемент массива=0,то переходим к следующему

je m13

mov topzamnumb,bx;если нет,то сохраняем номер в переменную - указатель topzamnumb

jmp m14

m13: loop m11

m14:

endnv: ret

KeyObr ENDP

analyz PROC NEAR;процедура сравнения образов шлейфов

mov flrezult,0ffh;убираем результаты предыдущего сравнения

mov flobr,0h;флаг того, что было тестирование

mov flzam,0h;флаг замыкания

mov colobr,0;количество обрывов

mov colzam,0;количество замыканий

mov flgood,0ffh;флаг исправного шлейфа

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

mov topobrnumb,0

mov topzamnumb,0

mov cx,16

mov si,0

an01: mov obrnumb[si],0;очистка массивов номеров контактов обрывов и замыканий

mov zamnumb[si],0

mov vihobrnumb[si],0

inc si

loop an01

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

mov si,0

an02: mov zamvih[si],0

inc si

inc si

loop an02

mov cx,1;подготовка к циклу проверки шлейфа

mov si,0

mov bx,0

an1: cmp shetal[si],0;если эталон на контакт не задан

jne an23

an23: mov ax,shcur[si];проверка - совпадают ли образы

cmp ax,shetal[si]

je an21

jmp an22

an21: jmp an2

an22: cmp shetal[si],0;переход, если эталон на контакт задан

je an24

an24: mov ax,shcur[si]

mov flgood,0h;сброс флага исправности шлейфа

mov bx,shetal[si];проверка есть ли недостающие соединения - разрыв

xor bx,ax

and bx,shetal[si]

cmp bx,0;если разрывов нет, то переход на анализ замыканий

je anzam

;разрыв есть - добавить контакт в массив

mov flobr,0ffh;установить флаг обрыва

inc colobr;увеличить количество обрывов

mov di,cx;берётся cx как смещение

dec di

mov obrnumb[di],cl;cx записывается в массив номеров вх. контактов с обрывом

mov topobrnumb,di;формируется указатель на элемент массива с обрывом

mov dl,1;вычисление номера контакта обрыва - номер бита в образе

обрывов

an3: shr bx,1

jc an31

inc dl

jmp an3

an31: mov vihobrnumb[di],dl;запись в массив номеров выходных контактов с обрывов

номера контакта (выходного) по смещению (номер строки)

anzam: xor ax,shetal[si];проверка - есть ли лишние соединения - замыкание

and ax,shcur[si]

cmp ax,0;если замыкания нет, то на конец

je an2

;короткое замыкание - добавление элемента в массив

mov flzam,0ffh;установка флага замыкания

inc colzam;увеличение количества замыканий

mov di,cx;формирование смещения - номера строки- номер входного контакта с замыканием

dec di

mov zamnumb[di],cl;запись номера вх контакта в массив по смещению

mov topzamnumb,di;запись в указатель на текущий выводимый элемент этого

номера

shl di,1;умножение смещения на 2

mov zamvih[di],ax;запись образа с замыканиями в массив для вывода на лампочки

an2:

inc si

inc si

inc cx

cmp cx,17

je an11

jmp an1

an11: inc colgood

cmp flgood,0ffh

je an12

dec colgood

inc colbad

an12:

ret

analyz ENDP

dispmatr PROC NEAR;процедура вывода на матричные индикаторы

mov dh,1;выбор индикатора

mov ah,0

mov dl,0;счётчик индикаторов

mov si,0

zz2: mov al,dh

out DispPort2,al;выбрали индикатор

mov cx,8;подготовка к выбору строк индикатора

mov ah,1;начиная с первого столбща текущего индикатора

zz3: mov al,ah

out DispPort3,al;выбор строки

mov al,byte ptr[shcur+si];чтение в al очередного байта

out DispPort,al;вывод очередного столбца

mov al,0

out DispPort,al;гашение столбца

mov al,byte ptr[shcur+si+1];чтение в al очередного байта

out DispPort4,al;вывод очередного столбца

mov al,0

out DispPort4,al;гашение столбца

inc si;модификация смещения

inc si

sal ah,1;переход к следующей строке

loop zz3

inc dl;инкремент номера индикатора

shl dh,1;переход к следующему индикатору

cmp dl,2;всё

jne zz2

mov ah,0

mov dl,0;счётчик индикаторов

mov si,0

z2: mov al,dh

out DispPort2,al;выбрали индикатор

mov cx,8;подготовка к выбору столбцов индикатора

mov ah,1;начиная с первого столбща текущего индикатора

z3: mov al,ah

out DispPort3,al;выбор столбца

mov al,byte ptr[shetal+si];чтение в al очередного байта

out DispPort,al;вывод очередного столбца

mov al,0

out DispPort,al;гашение столбца

mov al,byte ptr[shetal+si+1];чтение в al очередного байта

out DispPort4,al;вывод очередного столбца

mov al,0

out DispPort4,al;гашение столбца

inc si;модификация смещения

inc si

sal ah,1;переход к следующему столбцу

loop z3

inc dl;инкремент номера индикатора

shl dh,1;переход к следующему индикатору

cmp dl,2;всё

jne z2

ret

dispmatr ENDP

perevod PROC NEAR;процедура перевода в десятичное значение

mov ah,0

mov bl,10

div bl

mov bl,ah

mov ah,al

mov al,bl

ret

perevod ENDP

disp7 PROC NEAR;процедура выводы на семисегментные индикаторы

mov al,colobr;вывод количества обрывов

call perevod;получим в ax - десятичное значение

mov bh,0

mov bl,al;по цифре из соотв. элемента (от 0 до 9) вычисляем смещение (от 0 до 9) относительно начала массива образов

mov al,symimages[bx];берётся элемент из массива образов со смещения относительно начала sysimages

mov outimages,al;в соотв. элемент outimages записываем образ

mov bl,ah;по цифре из соотв. элемента digout (от 0 до 9) вычисляем смещение (от 0 до 9) относительно начала массива образов

mov al,symimages[bx];берется элемент из массива образов со смещения относительно начала sysimages

mov outimages+1,al;в соотв. элемент outimages записываем образ

mov si,topobrnumb

mov al,obrnumb[si]

call perevod

mov bh,0

mov bl,al

mov al,symimages[bx]

mov outimages+2,

mov bl,ah

mov al,symimages[bx]

m...


Подобные документы

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

    курсовая работа [577,8 K], добавлен 24.06.2013

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

    дипломная работа [1,8 M], добавлен 20.05.2012

  • Описание структурной схемы операционного устройства. Построение обратной структурной таблицы автомата. Проектирование функций выходов и управление элементами памяти. Изображение пользовательского интерфейса и инструкции по инсталляции и запуску программы.

    курсовая работа [642,6 K], добавлен 19.05.2014

  • Актуальность задачи. Разработка функциональной схемы устройства. Радиолокационная установка (РЛУ). Микропроцессорная часть. Обоснование алгоритма работы устройства. Разработка управляющей программы устройства. Схема алгоритма. Пояснения к программе.

    курсовая работа [193,9 K], добавлен 18.10.2007

  • Разработка структурной и принципиальной схемы. Блок-схема основной программы и подпрограмм обработки прерываний. Имена переменных, используемых в них. Результаты моделирования работы устройства в программе ISIS пакета Рroteus. Разработка печатной платы.

    курсовая работа [1,5 M], добавлен 13.11.2016

  • Анализ способов сопряжения персонального компьютера с разрабатываемым устройством. Разработка интерфейса ПК. Объединение модулей микропроцессорного устройства в единую систему. Выбор аналоговых коммутаторов. Разработка структурной схемы устройства.

    курсовая работа [426,7 K], добавлен 03.05.2014

  • Разработка компьютерного устройства RAM-диск, позволяющего считывать, записывать и хранить информацию в модулях динамической памяти типа SDRAM под управлением микроконтроллера. Составление структурной и принципиальной схемы устройства, листинг программы.

    курсовая работа [3,9 M], добавлен 24.12.2012

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

    курсовая работа [656,0 K], добавлен 05.12.2012

  • Обзор мультимедиа-устройств с поддержкой USB и Bluetooth. Разработка структурной и функциональной схем устройства. Возможности его аппаратной модернизации. Разработка печатной платы устройства. Расчет схемы подключения питания и USB входа к AT91SAM7SE.

    дипломная работа [749,0 K], добавлен 18.06.2010

  • Разработка принципиальной электрической схемы микропроцессорного устройства управления двигателем постоянного тока на базе контроллера ATmega 128. Разработка пакета подпрограмм на языке Assembler в целях регулирования и корректной работы устройства.

    курсовая работа [271,5 K], добавлен 14.01.2011

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

    курсовая работа [754,8 K], добавлен 12.03.2009

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

    курсовая работа [2,7 M], добавлен 10.11.2014

  • Разработка устройства, реализующего набор команд из числа операций с плавающей точкой семейства процессора i486. Структура сопроцессора FPU. Принцип выполнения операций, разработка блок-схемы, построение структурной схемы основных блоков процессора.

    курсовая работа [734,9 K], добавлен 27.10.2010

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

    дипломная работа [3,4 M], добавлен 10.03.2013

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

    курсовая работа [2,8 M], добавлен 15.05.2014

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

    курсовая работа [401,3 K], добавлен 14.03.2015

  • Обоснование выбора программно-технических средств. Надежность программы и состав технических средств. Разработка структурной схемы программы, алгоритмического и программного интерфейса. Технология разработки интерфейса пользователя и программных модулей.

    дипломная работа [3,2 M], добавлен 22.01.2013

  • Анализ архитектуры, структуры и элементной базы существующих ОЗУ и системных шин компьютеров. Разработка структурной и принципиальной схемы адаптера связи оперативного запоминающего устройства с синхронной системной шиной. Выбор элементов и узлов ОЗУ.

    курсовая работа [271,4 K], добавлен 17.09.2013

  • Используемые в компьютерах устройства памяти для хранения данных. Внутренние (оперативная и кэш-память) и внешние устройства памяти. Уровни иерархии во внутренней памяти. Подключения дисководов и управления их работой с помощью дискового контроллера.

    презентация [47,7 K], добавлен 26.11.2009

  • Наименование разрабатываемого устройства. Назначение разрабатываемого устройства в городском транспорте. Обзорный анализ найденных аналогов. Обоснование актуальности разработки устройства. Разработка функциональной схемы разрабатываемого устройства.

    курсовая работа [175,6 K], добавлен 04.07.2008

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.