Разработка устройства для тестирования компьютерных шлейфов
Разработка архитектуры устройства: процессора, памяти, интерфейса, структурной, функциональной и принципиальной схем (блоки микро-ЭВМ и устройства). Проектирование программных средств, разработка структуры данных. Декомпозиция и алгоритмизация программы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 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