Скачать: 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-разрядные пары. Кроме того, МП Intel 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 Гц.
Заключение
В результате проделанной
курсовой работы, мы научились разрабатывать электрическую принципиальную схему
и создавать программу функционирования на языке Ассемблера ASM 85.
Система команд МП 8085 (как и большинство других МП) ограничена узким кругом
простых команд. Машинный язык - это единственный язык, непосредственно
воспринимаемый микропроцессором, но программирование на нем нелегко. Поэтому
обычно программы пишутся на языке ассемблера, а затем транслируются на машинный
язык специальной программой. Язык ассемблера - это не какой-то конкретный язык
программирования, а целый класс языков. Каждый микропроцессор имеет собственный
язык ассемблера. В нашем случае рассматривался язык ассемблера микропроцессора Intel 8085.
Список литературы
1.Калабеков Б.А., Цифровые устройства и микропроцессорные системы.-
Москва, 2002.
2.Палагута
К.А., Микропроцессоры Intel 8080, 8085 и их программирование.2007.
3.Рафикузаман М., Микропроцессоры и машинное проектирование микропроцессорных
систем. Кн.1. - М.: Мир, 1988.
4.Рафикузаман М.Б,Микропроцессоры и машинное проектирование микропроцессорных
систем. Кн.2. - М.: Мир, 1988.
5.Томус Ю.Б.,
И.П.Ситдикова,
Н.В.Бухарова.
Микропроцессорные средства и системы.
Учебное пособие 1-ая часть - АлНИ, 1999.