Разработка микропроцессорной системы
Курсовая работа, 23 Декабря 2012, автор: пользователь скрыл имя
Краткое описание
Микропроцессоры и микропроцессорные системы являются в настоящее время наиболее массовыми средствами вычислительной техники. Разработка микропроцессорных систем является сложной проблемой, стоящей на стыке общесистемных вопросов с вопросами проектирования средств вычислительной техники и разработки программного обеспечения.
Широкая автоматизация процессов в сферах производства, научных исследований, эксплуатации оборудования с использованием средств вычислительной техники является основным направлением интенсификации физического и интеллектуального труда человека, повышения производительности труда.
Вложенные файлы: 1 файл
Вариант 2.doc
— 98.00 Кб (Скачать файл)Министерство образования Российской Федерации
Тульский государственный
Кафедра «Системы автоматического управления»
Курсовая работа
по дисциплине:
«Вычислительные машины, системы и сети»
«Разработка микропроцессорной системы»
Выполнили: ст. гр. xxxxxx Xxxxxxx X.X.
ст. гр. xxxxxx Xxxxxxx X.X.
Проверил: доц., к.т.н. Морозов О.О.
Тула 2003.
Содержание
Введение
Микропроцессоры и микропроцессорные системы являются в настоящее время наиболее массовыми средствами вычислительной техники. Разработка микропроцессорных систем является сложной проблемой, стоящей на стыке общесистемных вопросов с вопросами проектирования средств вычислительной техники и разработки программного обеспечения.
Широкая автоматизация
процессов в сферах производства,
научных исследований, эксплуатации
оборудования с использованием средств
вычислительной техники является основным
направлением интенсификации физического
и интеллектуального труда
Основной технической базой автоматизации управления технологическими процессами являются специализированные микропроцессорные устройства (МПУ). При изучении специализированных МПУ рассматриваются приемы проектирования как аппаратных, так и программных средств МПУ. Проектирование аппаратных средств требует знания особенностей микропроцессорных комплектов микросхем различных серий. Проектирование программных средств требует знаний, необходимых для выбора метода и алгоритма решения задач, входящих в функцию МПУ, для составления программы (часто с использованием языков низкого уровня – языка кодовых комбинаций, языка Ассемблера), а также умение использовать средства отладки программ.
1 Анализ задания выбор процессора
Анализируя задание, выбираем центральный процессор (ЦП) исходя из разрядности шины данных (ШД) – 8 бит, общего объема памяти 3 КБайт – шина адреса 16 разрядов. Наиболее подходящий и довольно простой процессор – Z80 фирмы Zilog.
Рисунок 1. Схема включения центрального процессора.
2 Проектирование памяти
Требуется спроектировать блок запоминающего устройства со следующими параметрами:
-объем ОЗУ – 1 Кб;
-объем ПЗУ – 2 Кб;
Для хранения в ОЗУ 1 Кб необходимо 1 микросхема (банк) с организацией 128 б х 8. Для хранения в ПЗУ 2 Кб необходимо 1 микросхема (банк) с организацией 256 б х 8.
Разряды шины адреса А0 – А9 поступают одновременно на все микросхемы ОЗУ, т. к. для адресации (выбора) 1028 восьмиразрядных ячеек памяти необходимо 10 двоичных разрядов (210= 1024). Аналогично для адресации памяти ячеек ПЗУ используется 11 разрядов.
Выбор банка ОЗУ либо ПЗУ производится в зависимости от значения разряда А11. Составим таблицу адресов памяти (смотри таблицу 1). Начальный адрес страницы ПЗУ 00 00h, а конечный – 0B FFh. Начальный адрес страницы ОЗУ формируется как двоичная сумма конечного адреса страницы ОЗУ и логической единицы в младшем разряде., т.е. имеет место перенос единицы в разряд А11. Для определения конечного адреса этой страницы прибавляем к начальному адресу 211-1, т.е. код с логическими единицами в разрядах А0 – А9.
Таблица 1. Адресное пространство памяти.
А15 |
А14 |
А13 |
А12 |
А11 |
А10 |
А9 |
А8 |
А7 |
А6 |
А5 |
А4 |
А3 |
А2 |
А1 |
А0 |
Адрес |
ЗУ |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Нач. 00 00h |
ПЗУ |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
Кон. 07 FFh | |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Нач. 08 00h |
ОЗУ |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
Кон. 0B FFh |
На основании произведенных рассуждений строится адресный дешифратор. На вход разрешения дешифратора подается сигнал «Запрос памяти» и сигналы «Чтение» и «Запись», объединенные по «И».
На микросхемы ОЗУ, кроме сигнала «Выбор микросхемы», необходимо подать сигнал «Чтение/Запись». Если на этом входе присутствует логическая единица, то осуществляется запись байта информации с шины данных в ячейку с адресом, установленным в разрядах А0 – А9, иначе осуществляется считывание данных из микросхемы в шину данных. Такой режим работы микросхем обеспечивается подачей сигнала «Запись памяти» на вход «Чтение/Запись».
Рисунок 2. Дешифратор памяти.
3 Проектирование ввода-вывода
От фотодатчика сигнал подается на аналого-цифрофой преобразователь, с которого через шинный драйвер снимается значение и анализируется программой. В схеме есть еще один шинный драйвер на который подается задаваемый уровень освещенности.
Управляющее напряжение на осветитель через усилитель мощности подается с 16-разрядного цифроаналогового преобразователя. Задающее значение которого снимается с 2-х 8-ми разрядных регистра.
По заданию необходимо отображать уровень освещенности в некоторых единицах на 3-х 7-ми сегментных индикаторах. Для их управления используем дешифратор (каждый на свой индикатор). А также регистр для задачи состояния последних.
Выбор той или иной микросхемы осуществляется при помощи дешифратора ввода-вывода, который управляется 3-мя младшими адресными битами.
Рисунок 3. Схема работы портов.
4 Разработка программы
В соответствии с заданием программа разрабатывается на Ассемблере с использованием системы команд выбранного процессора. Логически программа состоит из:
- обработчика маскированного прерывания, в котором происходит чтение входных данных и их обработка в соответствии с алгоритмом, изложенным в задании.
- основной программы,
где устанавливается режим
Таблица 2. Распределение памяти.
Диапазон адресов |
Содержание памяти |
Область памяти |
00 00h – 00 22h |
Основная программа |
ПЗУ |
00 23h – 00 64h |
Подпрограмма обслуживания INT | |
0B FFh |
Стек |
ОЗУ |
Исходный код программы
Fd Equ 000b ; Чтение датчика
rg0 Equ 001b ; Запись в регистр 0
rg1 Equ 010b ; Запись в регистр 1
input Equ 011b ; Чтение задающей освещенности
write Equ 100b ; Отображение на индикаторы
org 0000h ; Начальный адрес программы
jmp begin ; Переход к метке begin (3 байта)
jmp int ; Переход к метке int (обработка прерывания) (3)
@begin di ; Запрещаем прерывание (1)
im1 ; Устанавливаем режим прерывания 1 (2)
mov sp, stack ; Задаем адрес стека (3)
xor b,b ; Обнуляем значение регистра В (2)
xor a, a ; Обнуляем значение регистра А (2)
out rg0, 255 ; Задаем значение регистра 0 равным 255 (3)
@beg mov c, b ; Записываем значение регистра В в С (3)
inc a ; Увеличиваем значение А (1)
out rg1, a ; Задаем значение регистра 1 равным 1 (3)
in fd, b ; Считываем значение счетчика в регистр В (3)
cmp b, c ; Сравниваем текущее значение и предыдущее (2)
jne @beg ; Если они не равны, то идем к метке @beg (2)
ei ; Разрешаем прерывания (1)
halt ; Ожидаем прерывания (1)
;ИТОГО 35 байт
int: org 0023h ; Обработчик прерывания начинается с этого адреса
push a ; Сохраняем в стек значение регистра А (1)
in input, b ; Считываем знач. задав. скорости в регистр В (3)
xor d, d ; Обнуляем значение регистра D (1)
xor e, e ; Обнуляем значение регистра Е (1)
@mux: add d, b ; Складываем регистры d и b (1)
adc e, 1 ; Прибавляем 1 к регистру е с четом переноса (2)
dec a ; Уменьшаем на единицу регистр А (1)
jnz @mux ; Если а<>0, то идем к метке @mux (2)
out rg0, d ; Записываем в порт rg0 значение регистра d (3)
out rg1, e ; Записываем в порт rg1 значение регистра e (3)
pop a ; Восстанавливаем значение регистра а (1)
; A – множитель (в зависимости от осветителя)
; В – скорость
; Отображаем значение на
xor A, A ; Обнуляем А (1)
xor D, D ; Обнуляем D (1)
xor E, E ; Обнуляем E (1)
mov C, B ; (2)
Cmp B, 200 ; Сравниваем B с числом 200 (2)
Jl m200 ; Если А<200, то переходим к метке m200 (2)
Or A, 10000000b ; Записываем в регистр A биты (2)
Sub C, 200 ; Вычитаем из регистра С число 200 (2)
Jmp Decidki ; Переход к метке Desidki (3)
m200: Cmp B, 100 ; Сравниваем А с числом 100 (2)
Jl Desidki ; Если B<100, то переходим к метке Desidki (2)
Or A, 01000000b ; Записываем в регистр A биты (2)
Sub C, 100 ; Вычитаем из регистра С число 100 (2)
Desidki: Cmp C, 10 ; Сравниваем С с числом 10 (2)
Jl EndDes ; Если С<10, то переходим к метке EndDes (2)
Sub C, 10 ; Вычитаем из регистра С число 10 (2)
Inc D ; Увеличиваем регистр D на 1 (1)
Jmp Desidki ; Переход к метке Desidki (3)
EndDes: Mov E, D ; Записываем в регистр Е значение регистра D (2)
Shl E ; Сдвигаем знач. регистра Е на один бит влево (1)
Shl E ; Сдвигаем знач. регистра Е на один бит влево (1)
Shl E ; Сдвигаем знач. регистра Е на один бит влево (1)
Or A, E ; Записываем в регистр A биты (2)
Or A, C ; Записываем в регистр A биты (2)
Out Write, A ; Отображаем на индикаторы (2)
Reti ; (1)
; Итого 65 байтов
Список литературы
1 Пухгальский Г. И.,
Новосельцева Т. Я.
связь, 1990.
2 Хоровиц П., Хилл У. Искусство схемотехники том 2. – М.: МИР, 1986.
3 Микропроцессоры и
микропроцессорные комплекты
4 Калабеков Б.А.
5 Балашов Е.П., Пузанков
Д.В. Микропроцессоры и
6 Микропроцессоры и
микроЭВМ в системах