Описание реализуемой программы на языке ассемблера

Для упрощения написания и последующего восприятия программы, возможности ее частичного написания до разработки аппаратной части МПС и для уменьшения затрат времени на отладку программы используются символической формы обозначения различных устройств, параметров, констант и т.д. Например, для адреса регистра порта «А» ППА определим константу PPA_A, адреса регистра порта «В» ППА определим константу PPA_В, и т.д.

Для хранения значений переменных X и K, а также результатов вычисления функций Y1, Y2, Y3 используются переменные Data_X, Data_K, Data_Y1, Data_Y2, Data_Y3.

Для связи символических имен с их числовыми значениями используется директива EQU.

В программе используются следующие процедуры:

1) ProgramPrer - подпрограмма обработки прерывания. Эта подпрограмма вызывает подпрограмму ProgramCalculateY2SetPIT, не изменяя значение ax.

2) ProgramKlavIn - подпрограмма опроса клавиатуры (порта А ППА). Эта подпрограмма помещает значение регистра порта А ППА и значение регистра порта В ППА в переменные Data_X и Data_K, не изменяя содержимое регистров общего назначения.

3) ProgramCalculateY1SetY1SetInd - подпрограмма вычисления У1 и выводит результата в порт С.

4) ProgramCalculateY2SetPIT - подпрограмма расчета Y2 и программирования ПИТ.

5) ProgramCalculateY3SetPIT - подпрограмма расчета Y3.

В начале программы описана инициализация МПС, состоящая из следующих этапов:

) Устанавливается режим запрета аппаратных прерываний.

) Устанавливается сегмент данных на ОЗУ.

) Устанавливается вектор прерывания

) Программирование ППА

) Программирование ПИТ

) Программирование контроллера прерываний

Основная программа состоит из следующих операций: опрос порта А ППА, расчет У1, вывод У1 на порт С, возврат к опросу порта А.

Текст программы представлен в приложении.

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

Составлен алгоритм работы МПС, разработана программа обеспечивающая выполнение заданного алгоритма, также была распределена область памяти под ОЗУ и ПЗУ. Проведена организация оперативной и постоянной памяти.

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

Данный проект может быть использован для создания микроконтроллера автоматизированного управления удаленным объектом.

Приложение

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

;-

; - kp_386_Real_NoOS.asm -

; - Текст программы для курсового проекта по ОЭВМ (i386). -

; - После включения питания или сброса регистры процессора -

; - установлены: CS = F000h; IP = FFF0h; DS = SS = ES = 0. -

; - Код программы должен быть размещен в микросхеме ПЗУ -

; - в микросхеме ПЗУ начиная с нулевой ячейки -

;-

; - Адреса переменных, в сегменте данных ОЗУ. Размер переменных - слово

Data_X EQU 0h ; переменная Х (данные с шины Х)

Data_K EQU 2h ; переменная K (константа с тумблеров)

Data_X EQU 4h ; переменная Х (данные с шины Х)

Data_Y1 EQU 6h ; результат вычисления функции Y1

Data_Y2 EQU 8h ; результат вычисления функции Y2

Data_Y3 EQU 0Ah ; результат вычисления функции Y3

; - Определение констант

Adr_IRQ EQU 36h ; Адрес вектора в таблице прерываний

PIC_ICW1 EQU 0 ; Адрес контроллера прерываний (A0 = 0)

PIC_ICW2 EQU 2 ; Адрес контроллера прерываний (A0 = 1)

_0 EQU 8 ; Адрес регистра состояния счетчика 0 ПИТ_1 EQU 10 ; Адрес регистра состояния счетчика 1 ПИТ_2 EQU 12 ; Адрес регистра состояния счетчика 2 ПИТ_CW EQU 14 ; Адрес регистра управления ПИТ

_A EQU 16 ; Адрес регистра порта А ППА_B EQU 18 ; Адрес регистра порта B ППА_C EQU 20 ; Адрес регистра порта C ППА _CW EQU 22 ; Адрес регистра управления ППА

0 ; Начальный адрес микросхемы ROM

;-

; - Инициализация -

;-

: ; Запрет аппаратных прерываний

; - Установка сегмента данных на ОЗУ

mov ax, 400h

mov ds, ax ss, ax

; - Установка вектора прерывания (адрес подпрограммы обработки прерывания)

mov ax, offset ProgramPrer ; Определение смещения адреса

; подпрограмм мы обработки прерывания

mov es: Adr_IRQ, ax ; Запись в два младших байта ТВП

; по адресу Adr_IRQ

push cs

pop ax es: Adr_IRQ + 2, ax

; - Программирование ППА

mov al, 10010000b ; Управляющее слово для ППА

out PPA_CW, al

; - Программирование ПИТ

call ProgramCalculateY2SetPIT

call ProgramCalculateY3SetPIT

; - Программирование контроллера прерываний al, 00010010b ; Запись ICW1 в КП (работа КП)

Перейти на страницу: 1 2

Читайте также

Поверка электронного вольтметра В7-26 по напряжению постоянного тока
Считается, что первый вольтметр изобрел М. Фарадей, причем в 1830 году, ещё за год до того, как он же открыл явление электромагнитной индукции, на котором основано действие целого класса ...

Проектирование дискретного устройства
На современном этапе развития транспорта наблюдается бурный рост темпов и объемов перевозок, особенно на железнодорожном транспорте в силу высокой скорости и невысокой стоимости грузопер ...

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

Основные разделы

Все права защищены! (с)2019 - www.generallytech.ru