О САЙТЕ
Добро пожаловать!

Теперь вы можете поделиться своей работой!

Просто нажмите на значок
O2 Design Template

ФЭА / АИТ / КУРСОВАЯ РАБОТА по курсу: «Вычислительные машины, системы и сети» на тему: «Управление светодиодными индикаторами»

(автор - student, добавлено - 17-09-2017, 21:00)

Скачать:  kursovaya-rabota-vych-mash.zip [615,69 Kb] (cкачиваний: 24)

 


 

Кафедра АИТ

 

 

КУРСОВАЯ РАБОТА

по курсу: «Вычислительные машины, системы и сети»

 

на тему: «Управление светодиодными индикаторами»

Вариант №7

 

 

Выполнила:

Проверил:

 

 

 

 

 

 

 

 

 

 

 

Оглавление

 

 

Введение.. 3

Теоретическая часть.. 5

Структура микрокомпьютера. 5

Память. 6

Арифметическое устройство. 6

Устройство управления. 6

Устройство ввода/вывода. 7

Микропроцессоры 8085. 8

Технические характеристики. 8

Регистры.. 10

Ввод и вывод последовательных данных. 11

Язык ассемблера. 12

Практическая часть.. 15

Листинг программы.. 16

ОПИСАНИЕ ПРОГРАММЫ... 16

Заключение.. 20

Список литературы... 21


Введение

 

 

Проблема широкого использования вычислительных средств в различных сферах человеческой деятельности долгое время оставалась нерешённой. Даже разработка и освоение производства больших интегральных схем (БИС) не оказали вначале сколько-нибудь значительного влияния на изменение ситуации. Это объясняется тем, что для практических применений требуется большое разнообразие устройств управления обработки данных, т.е. необходим выпуск широкого ассортимента отдельных типов БИС.

Первую подобную БИС (модель 4004 фирмы Intel), получившую название микропроцессора, выпустили в 1971 году. С этого времени начался стремительный рост производства микропроцессоров (МП), которые благодаря непрерывному улучшению их технических характеристик и постоянному снижению стоимости получают все более широкое распространение.

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

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

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

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

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

Язык, который понимает МП, называется машинным языком, команды машинного языка представляют собой двоичные коды. Для облегчения пользования машинным языком заменяют код каждой команды коротким именем, называемым мнемоническим. Мнемоника оказывается гораздо проще для запоминания, чем машинные коды. Программы, написанные с использованием мнемонических обозначений, называются программами на языке Ассемблера.


Теоретическая часть

Структура микрокомпьютера.

 

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

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

Не только память, но и другие устройства ЭВМ способны хранить информацию. Информация запоминается как содержимое групп двоичных разрядов (битов) на запоминающих устройствах-регистрах. По существу, любую операцию в ЭВМ можно рассматривать как серию передач информации между регистрами. Группа двоичных цифр, обрабатываемых одновременно, называется машинным словом. Слово является базовой логической единицей информации в компьютере. Типичные МП имеют длину слова 4,8,12,16 и 32 двоичных разрядов. В силу особой распространенности слово длиной 8 бит имеет специальное название-байт.

Память.

 

Запоминание больших объемов информации происходит в памяти или, точнее, в запоминающем устройстве. Этот функциональный блок компьютера подразделяется на подблоки, называемые регистрами, каждый из которых способен хранить одно машинное слово. Каждый такой регистр, или ячейка памяти, имеет свой адрес. Адрес – это просто целое число, однозначно идентифицирующее ячейку. Слово, хранящееся в ячейке, называют содержимым этой ячейки. Таким образом, как данные, так и программа (команды) хранятся в памяти.

Арифметическое устройство.

 

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

Устройство управления.

 

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

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

Устройство ввода/вывода.

 

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

 

Микропроцессоры 8085.

 

Данный микропроцессор выпускается по 3-микронной технологии, это позволило уместить на кристалл, по площади равный кристаллу i8080, 6500 транзисторов. Кроме этого данный процессор работает от источника питания с напряжением +5В, в результате чего он и получил в конце названия цифру «5» — 8085. Тактовая частота оригинального процессора i8085/i8085A/i8085AH составляет 2МГц, были так же выпущены модели с частотами 6МГц (модель i8085A(H)-1) и 5МГц (модель i8085A(H)-2). На кристалле нового микропроцессора располагаются также генератор синхронизации и контроллер приоритетных прерываний, позволяющий обслуживать прерывания с 4-х дополнительных входов запросов прерываний. Также Intel в новый процессор добавила две новые команды для управления прерываниями. В этом процессоре появился сброс в начальное состояние — RESET.

 

Технические характеристики

 

·Дата анонса: март 1976 года

·Тактовая частота (МГц): 2; 5; 6

·Разрядность регистров: 8 бит

·Разрядность шины данных: 8 бит

·Разрядность шины адреса: 16 бит

·Объём адресуемой памяти: 64 Кбайт

·Количество транзисторов: 6500

·Техпроцесс (нм): 3000 (3 мкм)

·Корпус: 40-контактный керамический или пластмассовый DIP

·Поддерживаемые технологии: 79 инструкций

 

На рис. 1 показана архитектура МП Intel8085. Он имеет 16-разрядный счетчик команд и защелку адреса, которая загру­жает специализированную адресную (А15-А8) и мультиплек­сированную шины (AD7-AD0). Параллельные данные входят в МП и покидают его через AD7-AD0. Эта шина передает адрес, когда линия управления ALE получает Н-сигнал, и данные, ко­гда L-сигнал.

По 8-разрядной внутренней шине входящие и выходящие данные вводятся внутрь устройства. Они могут поступать с внутренней шины данных в 8-разрядный аккумулятор или ре­гистр временного хранения, в индикаторы, регистр команд, уст­ройство управления, в какой-либо из регистров общего назна­чения (В, С, D, E, H, L), 16-разрядный указатель стека, 16-разрядный счетчик команд или 8-разрядный буфер адреса/данных. Выводы SID и SODввода и вывода последовательных данных приведены справа вверху на рис. 1, входы прерывания (INTR, RST5.5, RST6.5,RST7.5 и TRAP) — вверху слева вместе с выходом INTA(подтверждение запроса на прерывание). Арифметико-логическое устройство загружается двумя 8-разрядными регистрами (аккумулятором и регистром времен­ного хранения). Регистр состояний со­держит пять индикаторов состояния.

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

Рисунок 1Функциональная схема МП 8085

Регистры

 

Как и в случае МП Intel 8080, в состав МП Intel 8085 вхо­дят 8- и 16-разрядные регистры. Адресуемых 8-разрядных реги­стров здесь восемь, шесть из которых (регистры общего назна­чения) могут быть использованы или как 8-разрядные, или могут объединяться в три 16-разрядные пары. Кроме того, МП In­tel 8085 содержит два 16-разрядных регистра.

1. Аккумулятор (или регистр А) является ядром все опера­ций МП, к которым относятся арифметические, логические операции, загрузки или размещения данных памяти и ВВ. Это 8-разрядный регистр.

2. Регистры общего назначения ВС, DE и HL могут быть использованы как шесть 8-разрядных пар или три 16-разрядные пары регистров в зависимости от текущей выполняемой коман­ды. Как и в МП Intel 8080, пара HL (фирмой Intel названа указа­телем данных) может быть использована для указания адреса. Несколько команд используют пары ВС и DEв качестве указа­теля адреса, но обычно они являются регистрами хранения дан­ных.

3. Счетчик команд PC всегда указывает на ячейку памяти следующей для выполнения команды.

4. Указатель стека SP является специальным регистром -указателем адреса (или данных), который всегда указывает на вершину стека в ОЗУ. Это 16-разрядный регистр.

5. Регистр состояния (или индикаторов) содержит пять одноразрядных индикаторов, в которых содержится информа­ция, относящаяся к состоянию МП. Эти указатели используют­ся условными ветвлениями программы, вызовами подпрограмм и возвратами из подпрограмм.

Ввод и вывод последовательных данных

 

Выводы, предназначенные для ввода и вывода последова­тельных данных в МП Intel 8085, способствуют минимизации числа кристаллов в малой системе, составляя интерфейс после­довательного порта. По специальной команде RIM данные пе­редаются с вывода последовательного входа SID в бит 7 (b7) аккумулятора (рис. 2,а, где в качестве примера Н-сигнал пере­дается по линии SID в наиболее значимый бит аккумулятора).

Отдельный последовательный бит может быть выведен через выход SOD, используя специальную команду SIM (см. рис. 2,6, где в качестве примера L-сигнал выводится по линии SOD через защелку последовательного выхода). Заметим, что на рис. 8.2 ис­точником данных является наиболее значимый бит 7 (b 7) аккуму­лятора. Бит 6 (b 6) аккумулятора должен быть установлен в положе­ние 1, чтобы мог осуществляться последовательный вывод данных.

Последовательный вход SID может быть использован так же, как универсальный вход TEST, тогда как вывод выхода SODможет служить выходом однобитовой команды.

Рисунок 2Схемы выполнения команд:

а – последовательного ввода RIM;

б - последовательного вывода SIM

Рисунок 3Доступные для программиста регистры МП Intel 8085

 

МнемоникаRIM означаетсчитывать маску прерывания (Read Interrupt Mask), SIM - установить маску прерывания (Set Interrupt Mask).

На рис. 3 представлены программируемые регистры МП Intel 8085. Эти регистры являются для программиста основны­ми, так как они доступны, и этот набор регистров составляет программную модель МП Intel8085.

Язык ассемблера

 

Исторически можно рассматривать язык ассемблера как второе поколение языков программирования ЭВМ (если первым считать машинный код). Недостатки языка ассемблера, сложность разработки на нём больших программных комплексов привели к появлению языков третьего поколения — языков программирования высокого уровня (Фортран, Лисп, Кобол, Паскаль, Си и др.). Именно языки программирования высокого уровня и их наследники в основном используются в настоящее время в индустрии информационных технологий. Однако языки ассемблера сохраняют свою нишу, обусловливаемую их уникальными преимуществами в части эффективности и возможности полного использования специфических средств конкретной платформы.

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

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

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

Каждая модель (или семейство) процессоров имеет свой набор команд и соответствующий ему язык ассемблера. Наиболее популярные синтаксисы — Intel-синтаксис и AT&T-синтаксис.

Существуют компьютеры, реализующие в качестве машинного язык программирования высокого уровня (Forth, Lisp, Эль-76); фактически, в них он является языком ассемблера.

Типичный формат записи команд:

[метка:] опкод [операнды] [;комментарий]

Типичными командами языка ассемблера являются (большинство примеров даны для Intel-синтаксиса архитектуры x86):

·Команды пересылки данных (mov, lea и др.)

·Арифметические команды (add, sub, imul и др.)

·Логические и побитовые операции (or, and, xor, shr и др.)

·Команды управления ходом выполнения программы (jmp, loop, ret и др.)

·Команды вызова прерываний (иногда относят к командам управления): int, into

·Команды ввода/вывода в порты (in, out)

Для микроконтроллеров и микрокомпьютеров характерны также команды, выполняющие проверку и переход по условию, например:

·cbne — перейти, если не равно

·dbnz — декрементировать, и если результат ненулевой, то перейти

·cfsneq — сравнить, и если не равно, пропустить следующую команду

 

 

 

 

 

 


Практическая часть

Исполнительными элементами в данном задании являются четыре семи-сегментных светодиодных индикатора, на которых непрерывно должны высвечиваться символы Е,З,Н,О. Кнопка н.р. ( нормально-разомкнутая) предназначена для входа в программу управления светодиодами.

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

 

Рисунок 4 Схема 7-сегментного индикатора

 

 

 

 

Листинг программы

 

JMP BEGIN

NOP

MAIN: MVI A,61H ; код сегментов в порт B

OUT 12H

MVI A,0EH ; код разряда в порт А

OUT 11H

 

CALL DELAY

 

MVI A,0DH

OUT 12H

MVI A,0DH

OUT 11H

 

CALL DELAY

MVI A,91H

OUT 12H

MVI A,0BH

OUT 11H

 

CALL DELAY

 

MVI A,03H

OUT 12H

MVI A,07H

OUT 11H

 

CALL DELAY

 

JMP MAIN

 

DELAY: MVI A,FFH

LOOP_1: DCR A

JNZ LOOP_1

MVI A,FFH

LOOP_2: DCR A

JNZ LOOP_2

RET

ОПИСАНИЕ ПРОГРАММЫ

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

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

Для высвечивания определённых символов следует в порт А отправить код в шестнадцатеричной системе исчисления соответствующий нужному символу и включать соответствующие светодиодные индикаторы. В нашем случае при сигнале 1- светодиод будет погашен, а при 0 – гореть.

Так как символу Е соответствует код 01100001, если перевести его в шестнадцатеричную систему то получим 61H.

Символ

Код в двоичной системе счисления

Код в шестнадцатеричной системе счисления

 

a

b

c

d

e

f

g

h

HEX

Е

0

1

1

0

0

0

0

1

61H

З

0

0

0

0

1

1

0

1

0DH

Н

1

0

0

1

0

0

0

1

91H

О

0

0

0

0

0

0

1

1

03H

 

Кнопку же присоединим к порту С и по выполнению условия (нормально замкнутая) будем пускать основную программу.

 

Работа программы начинается с того, что программируются порт А и В – на вывод, а порт С – на ввод.

Затем производится считывание значения из порта С в аккумулятор, проверяется, какой код находится в аккумуляторе, так как кнопка нормально разомкнутая, то если кнопка не нажата, то значит в аккумуляторе. Так как кнопка нормально разомкнутая, то если кнопка не нажата, то, значит, в аккумуляторе будет 1. В таком случае программа вернется на метку М1 и будет продолжать опрашивать порт С до тех пор, пока на входе не получит 0. После этого программа включит первый индикатор. Далее происходит переход на подпрограмму задержки, которая длится примерно 5 мс. После этого переходит к следующему индикатору, и вызывается подпрограмма задержки. Таким же образом производится отображение всех остальных индикаторов и цикл повторяется.

Кнопку присоединим к порту С и по выполнению условия (нормально замкнутая) будем пускать основную программу.

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

Приложение 1

Заключение

 

В результате проделанной курсовой работы, мы научились разрабатывать электрическую принципиальную схему и создавать программу функционирования на языке Ассемблера ASM 85. Система команд МП 8085 (как и большинство других МП) ограничена узким кругом простых команд. Машинный язык - это единственный язык, непосредственно воспринимаемый микропроцессором, но программирование на нем нелегко. Поэтому обычно программы пишутся на языке ассемблера, а затем транслируются на машинный язык специальной программой. Язык ассемблера - это не какой-то конкретный язык программирования, а целый класс языков. Каждый микропроцессор имеет собственный язык ассемблера. В нашем случае рассматривался язык ассемблера микропроцессора Intel 8085.


Список литературы

 

1.Калабеков Б.А., Цифровые устройства и микропроцессорные системы.- Москва, 2002.

2.Палагута К.А., Микропроцессоры Intel 8080, 8085 и их программирование.2007.

3.Рафикузаман М., Микропроцессоры и машинное проектирование микропроцессорных систем. Кн.1. - М.: Мир, 1988.

4.Рафикузаман М.Б,Микропроцессоры и машинное проектирование микропроцессорных систем. Кн.2. - М.: Мир, 1988.

5.Томус Ю.Б., И.П.Ситдикова, Н.В.Бухарова. Микропроцессорные средства и системы. Учебное пособие 1-ая часть - АлНИ, 1999.

 


Ключевые слова -


ФНГ ФИМ ФЭА ФЭУ Яндекс.Метрика
Copyright 2021. Для правильного отображения сайта рекомендуем обновить Ваш браузер до последней версии!